Nachdem ich die ersten 10 Akkuzyklen verfahren hatte wollte ich meinen Eindruck überprüfen, dass der SOC nicht linear verläuft. Konkret hatte ich den Eindruck, dass der SOC nach unten hin schneller fällt. Das hatte ich zunächst auf die SOC-Psychologie geschoben, aber nun wollte ich es doch genauer wissen.
BACKGROUND
Den SOC kann man nicht messen, er wird regulär aus einer Kombination aus Coulombzählung und Ruhespannung/Spannungsreaktion generiert, unter Einbeziehung der Rahmenparameter wie Zellchemie, Akkualter und Temperatur. D.h. es ist immer ein Schätzwert. Genau messen kann man Spannung und Strom, und damit die geflossene Strommenge (Coulomb, Ah) und die Energiemenge (Energie in Wh = Coulomb x Spannung). Diese Messwerte stufe ich daher als verlässliche Primärdaten ein.
Technisch wird bei Akkus die Coulombzählung als Basis für die Kapazität und den Ladestand verwendet, da diese unabhängig von der Spannung ist. Die Spannung ändert sich über die Ladung/Entladung hinweg, außerdem reagiert die Spannung bei niedrigem Ladestand oder niedriger Temperatur stärker auf Last.
Aus Nutzersicht ist die Coulombzählung jedoch falsch, da wir ja im Schnitt immer die gleiche Leistung abrufen (oder einspeisen) möchten. Leistung = Spannung x Strom, d.h. bei niedrigerer Spannung wird ein höherer Strom für die gleiche Leistung benötigt → dies bewirkt eine zunehmend schnellere Entladung. Im Effekt ist die nutzbare Energiemenge ungleich über den Coulomb-Ladebereich eines Akkus verteilt, und eine Aufgabe des BMS ist es, einen SOC zu berechnen, der das ausgleicht.
Daher war mein Gedanke, dass das BMS möglicherweise die Spannungskurve falsch kompensiert.
Ich habe zur Datenerhebung im OVMS ein dediziertes Telemetrie-Log (XVU-LOG-SocMon) implementiert, das neben den verschiedenen SOC-Quellen auch die Energie- und Coulombzähler mit aufzeichnet. Die Details findet ihr hier im Manual: https://docs.openvehicles.com/en/latest ... toring-log
Damit habe ich in den letzten Wochen aufeinander folgend zwei Lade- und einen Fahrzyklus aufgezeichnet, die je möglichst nah an 100% SOC-Hub heran kamen.
LADEN
Die Spannungskurve über die Ladung unterscheidet sich bei verschiedenen Stromstärken nur im Offset, der Verlauf ist identisch und sieht bspw. so aus:
Der hier als Bezug verwendete SOC ist der User-SOC aus dem Lademanager ("CMG", Steuergerät BD), dieser entspricht exakt dem Anzeigeinstrument im Fahrzeug.
Auffällig ist die Stufe bei knapp 70%. Die zweite Ladung zeigt bei knapp 70% sogar einen Schlenker an, weil das BMS dort den SOC sogar kurz wieder reduziert (bei weiter hochlaufendem Coulomb- und Energiezähler). Das deutet m.E. an, dass hier eine SOC-Rekalibrierung anhand der Spannung geschieht, und es bedeutet, dass der SOC unterhalb des Korrekturpunkts anders zu bewerten ist als oberhalb. Diese Kalibrierung erfolgt also nicht erst bei 100%, sondern während der Ladung. Ob immer bei knapp über 70% weiß ich noch nicht.
Weiter seltsam fand ich hier, dass der Spannungsverlauf so nah an der üblichen Ah-basierten Spannungskurve von NMC-Zellen ist, mit dem typischen Knick bei ziemlich genau 50%. Beispiel:
Bei Kompensation der Spannungsänderung würde ich hier einen genau umgekehrten Verlauf erwarten, also einen Bogen nach oben -- je höher die Spannung wird, desto weiter werden die SOC-Abstände. Bei Berechnung des Energieinhalts bekomme ich entsprechend hier für die unteren 50% SOC rund 45% der Energiemenge, und 55% für die oberen 50%.
Also habe ich als nächstes einen eigenen SOC auf Basis der Energiezählung und der Hochrechnung auf 100% Kapazität berechnet. Das folgende Chart stellt die Abweichung des angezeigten SOC von diesem Energie-SOC während der Ladung dar:
Das Chart zeigt, dass der SOC bei der Ladung unterhalb der Kalibrierungsstufe insgesamt um bis zu 5% zu optimistisch ist, und auf den ersten 25% SOC recht schnell beginnt, von der tatsächlich geladenen Energiemenge abzuweichen. Erst ab 80% passt der SOC.
Das bedeutet dass hier der SOC auf den ersten 70-80% SOC eine um bis zu 5% höhere Ladung suggeriert als tatsächlich an Energie verfügbar ist.
Meine folgende Annahme, dass der SOC dann wohl coulombbasiert arbeitet, bestätigte sich aber auch nicht:
Die Abweichung ist hier zwar geringer, aber die Fehlercharakteristik ist identisch.
Von einer DC-Ladung habe ich noch keine Aufzeichnung über einen gleich großen SOC-Bereich, von dem was ich bisher habe geht die Tendenz dort aber in die gleiche Richtung.
FAHREN
Auslöser für die Untersuchung war die wahrgenommene Nichtlinearität beim Fahren. Das nächste Chart zeigt die gleiche Auswertung für den Fahrbetrieb, also angezeigter SOC vs. berechneter SOC der verfügbaren Energiemenge:
Das Chart zeigt, dass hier im Prinzip der gleiche Fehler besteht, jedoch mit dem Zusatztwist, dass der Fehler im Bereich 100%-50% zunächst sogar noch zunimmt, ab 50% abwärts dann zunächst langsam, und ab 30% SOC abwärts dann immer schneller kompensiert wird.
Das ist also genau der beobachtete Effekt, die psychologische Ursache können wir damit als widerlegt betrachten.
Interessanterweise gibt es einen alternativen SOC in SG 01 ("Motorelektronik"), der bei Bezug auf seine Coulomb-Hochrechnung nahezu linear verläuft. Nur hat dieser SOC leider nichts mit der Anzeige im Fahrzeug zu tun, und außerdem wäre ein reiner Coulomb-SOC ja ebenfalls kein brauchbarer SOC aus Nutzersicht (siehe Erläuterung oben).
UND NUN?
Wir können natürlich im OVMS einen eigenen energiebasierten SOC berechnen und bereitstellen, darüber denke ich mal noch etwas nach. Leider können wir die Anzeige im Fahrzeug nicht übersteuern, aber wir könnten den auf einem Custom-Dashboard anzeigen.
Für die allgemeine Praxis und für Nicht-OVMS-User ist hier zunächst einmal mitnehmbar, dass der SOC keine lineare Messgröße beim UpMiiGo ist, weder während der Ladung, noch beim Fahren.
Bei der Ladung kann man etwa aus einer SOC-Differenz nicht einfach auf die Energiedifferenz schließen, ohne diese Nichtlinearität zu berücksichtigen. Außerdem ist die SOC-Änderung beim Laden speziell im unteren SOC-Bereich mit Vorsicht zu genießen: die tatsächlich geladene Energie ist geringer.
Beim Fahren muss man im Hinterkopf behalten, dass der angezeigte Ladestand fast immer zu optimistisch ist, und im Bereich unter 30% dann deutlich schneller sinkt als vom vorherigen Verlauf erwartbar.
Im Anhang findet ihr meine Datenbasis und Auswertungen als OpenDocument-Spreadsheet (ich empfehle LibreOffice oder OpenOffice zur Bearbeitung). Würde mich freuen wenn jemand meine Ergebnisse überprüfen könnte, oder evtl. noch weitergehende Ideen dazu hat.
Ach ja: mein Mii ist ein 2020er, kann sein dass sich bei älteren Akkus und Modellen hier ein anderes Bild ergibt. Wer Daten beisteuern möchte: im OVMS-Manual steht wie man das Log aktiviert. Beim CSV-Download von meinem Server bekommt ihr automatisch die korrekte Kopfzeile dazu.