Bewertungsmethoden: Basis & Kriterien
In dieser Blogreihe werde ich zu ergründen versuchen, was "gute" e-PKWs genau ausmacht und welche Methoden es ermöglichen diese Fahrzeuge in der stetig steigenden Anzahl an Modellen zu finden.
In diesem Blogeintrag wird es darum gehen, die Basisparameter für die weitere Bewertung zu klären und erste Analysen durchzuführen.
Grundsätzlich gehen als grundlegende Daten neben Marke, Modell und Variante die folgenden ein:
"Kbrutto" #Brutto-Kapazität des Akkus in kWh
"Knetto" #Netto-Kapazität des Akkus in kWh
"LadeleistungDC" #Gleichstromladeleistung des Fahrzeugs in kW
"MaxLeergewicht" #Maximales Leergewicht des Fahrzeugs in kg
"WLTP" #Normreichweite des Fahrzeugs laut WLTP-Prüfung
"EPA" #Normreichweite des Fahrzeugs laut EPA-Prüfung
"LPbrutto" #Österreichsicher Listenpreis inkl. MwSt.
Für das weitere Vorgehen ist die Berechnung einiger essentieller Kennzahlen (Key Performance Indicators) notwendig:
"RealeReichweite" #Berechnung der realistischen Reichweite in km
"AkkuPuffer" #Unterschied von Brutto- zu Netto-Akkukapazität in %
"EffizienzBrutto" #Verbrauch (also realistische Reichweite) bezogen auf die Brutto-Akkukapazität in kWh/100km
"EffizienzNetto" #Verbrauch (also realistische Reichweite) bezogen auf die Netto-Akkukapazität in kWh/100km
"Weightefficiency" #Maximales Leergewicht bezogen auf die realistische Reichweite (mal 10) in kg/km
"Reichweitenkosten" #Listenpreis durch realistische Reichweite in €/km
"Spitzenladeleistung" #Brutto-Effizienz bezogen auf die DC-Ladeleistung in km/h
"CRate" #DC-Ladeleistung bezogen auf die Brutto-Akkukapazität 1/h (Wikipedia 2021)
Diese Berechnung wird mittels folgendem R-Code durchgeführt:
#Setup & Import #################################################################
data <- read.csv2("data-in-PKW.csv")
#data <- data[, -1]
#Renaming and Tidying Up #################################################################
#Naming first column "Marke"
names(data)[1] <- "Marke"
#Merging Modell and Variante columns
data[2] <- paste(data$Modell, data$Variante)
#data <- data[-c(3,7,8)]
#Deleting "Variante" column
data <- data[-3]
#Converting EPA miles into EPA km and formatting as integer
data$EPA <- round(data$EPA * 1.61, digits = 0)
data$LPbrutto <- as.integer(data$LPbrutto) #needed?
#Starting########################################################
#Defining real range function
realrange <- function(wltp,epa) {
if (is.na(epa) == TRUE) {
wltp * 0.85
} else if (is.na(wltp) == TRUE) {
epa * 0.95
} else {
(wltp * 0.85 + epa * 0.95) / 2
}
}
data$RealeReichweite <- round(mapply(realrange, data$WLTP, data$EPA), digits = 0)
#Defining batt buffer function
battbuffer <- function(kbrutto,knetto) {
if (is.na(knetto) == TRUE) {
NA
} else {
((kbrutto / knetto) - 1) * 100
}
}
data$AkkuPuffer <- round(mapply(battbuffer, data$Kbrutto, data$Knetto), digits = 0)
#Defining gross efficiency function
grossefficiency <- function(kbrutto, realrange) {
if (is.na(kbrutto) == TRUE) {
NA
} else {
kbrutto / (realrange / 100)
}
}
data$EffizienzBrutto <- round(mapply(grossefficiency, data$Kbrutto, data$RealeReichweite), digits = 0)
#Defining net efficiency function
netefficiency <- function(knetto, realrange) {
if (is.na(knetto) == TRUE) {
NA
} else {
knetto / (realrange / 100)
}
}
data$EffizienzNetto <- round(mapply(netefficiency, data$Knetto, data$RealeReichweite), digits = 0)
#Defining weight efficiency function
weightefficiency <- function(baseweight, realrange) {
if (is.na(baseweight) == TRUE) {
NA
} else {
(baseweight / realrange) * 10
}
}
data$Weightefficiency <- round(mapply(weightefficiency, data$MaxLeergewicht, data$RealeReichweite), digits = 0)
#Defining range cost function
rangecost <- function(cost, realrange) {
cost / realrange
}
data$Reichweitenkosten <- round(mapply(rangecost, data$LPbrutto, data$RealeReichweite), digits = 0)
#Defining peak charge rate function
peakcharge <- function(grossefficiency, chargepower) {
((grossefficiency / 100) / chargepower) ^ (-1)
}
data$Spitzenladeleistung <- round(mapply(peakcharge, data$EffizienzBrutto, data$LadeleistungDC), digits = 0)
#Defining c-rate function
crate <- function(chargepower, kbrutto) {
chargepower / kbrutto
}
data$CRate <- round(mapply(crate, data$LadeleistungDC, data$Kbrutto), digits = 1)
#Exporting data #################################################################
library(xlsx)
write.xlsx(data, "data-out-PKW.xlsx", row.names = FALSE, showNA = FALSE)
###End of File###
Als Ergebnis der ersten Basisanalyse ergibt sich also eine Tabelle in welcher die einzelnen Fahrzeuge hinsichtlicher folgender Merkmale aufgelistet sind:
[1] "Marke" "Modell" "Kbrutto"
[4] "Knetto" "LadeleistungDC" "MaxLeergewicht"
[7] "WLTP" "EPA" "LPbrutto"
[10] "RealeReichweite" "AkkuPuffer" "EffizienzBrutto"
[13] "EffizienzNetto" "Weightefficiency" "Reichweitenkosten"
[16] "Spitzenladeleistung" "CRate"
Nachdem diese Arbeit nun getan ist, kann endlich die Bewertung der einzelnen Fahrzeuge beginnen!