Defekter NTC misst immer falsch, idR ziemlich krass. Batterie aus.
Defekte Spannungsmessung misst daneben: entweder kalte Lötstelle oder Bauteilwert verändert. Läßt sich über Vergleich mit zweiter Messung rausfinden, oder Summe einzelspannungen = Spannung am WR +/- Leitungsverlust.
Defekte Strommessung: Vergleichen Summenstrom WR und Summe gemeldete Einzelströme.
BMS tot: Batterie aus
Risikoabwägung: Erhöht ein zweites Modul die Sicherheit, oder ist das Risiko eines fatalen Defekts (Kurzschluss durch losen Draht oder los gewordene Platine, Fehlfunktion) größer?
Das funzt bei meinem Sungrow WR zumindest nicht. Wie es für mich aussieht, verwendet der ungeschaut Spannungs- und Stromwerte, die ihm die Batterie (CAN-Anbindung) schickt 1:1.
Das ist allerdings ein guter Punkt, mein BMS zu verbessern. Der WR “testet” die meine Batterie in der Startup-Phase erst mit ca. 100mA und dann mit 200mA bevor er die Batterie aufschaltet und verwendet. Das könnte ich dazu verwenden, um zu Prüfen ob mein Shunt auch noch wirklich misst und wäre das nicht so, die Batterie trennen.
Das wollen wir alle und haben dazu folgende Parameter:
Systemspannung der Batterie (oder eines Packs)
Einzel-Zellspannung
Batterietemperatur
Einzel-Zelltemperatur
BMS interne Temperatur (oder die des FETs)
Stromfluß
Optional:
DC Kurzschluß (Precharging)
Drucksensoren (EEV üblich)
Und dann gibt es eben noch einen “Meßwert” - den SoC
All diese Messungen sind mehr oder weniger heikel weshalb:
Man in manchen Fällen eine Plausibiltätsprüfung vorsehen solllte/kann
Alle Meßwerte eine gewisse Ungenauigkeit haben und diese gerade beim
SoC auch sehr groß sein kann.
Nun wenn Akku leer greift in letzter Konsequenz die untere Zellspannungsgrenze und es wird abgeschalten. Davor schon schrittweise Reduktion des erlauben Entladestroms und KORREKTUR des SOC ! Darin sehe ich kein großes Problem aber ein schlechtes BMS.
Welcher NTC ? Die Temperaturüberwachung der FETs ? Einer der NTCs zur Zell- oder Packtemperatur-Messung ? Ich glaube aber auch daß ein ADC Wandler bei “defektem” NTC eher einen unplausiblen Wert ausgibt und nicht konstant den zuletzt gemessenen ….
Interessant wäre beim Victron Smart Shunt, ob dieser die Selbstentladung der Zellen berücksichtigt (so wie @nimbus4 das macht).
Ich finde die Frage, ob ein vernünftige SOC-Schätzung zu den Kernfunktionen eines BMS gehört nicht zielführend. Das Vorhandensein einer vernünftige SOC-Schätzung führt in keinem realistischen Fall dazu, das irgendwelche Schutz- und Überwachungsfunktionen des BMS beinträchtigt werden.
Auch die Übertragung eines SOC Wertes an z.B. einen WR verursacht selber keinerlei Beeinträchtigung irgendwelcher Schutzfunktionen. Selbst wenn das BMS dem WR z.B die aktuell maximal erlaubte Ladespannung und den Ladestrom vorgibt darf das, wenn man “vernünftige” Entwickler unterstellt, zu keinerlei Beinträchtigugnn führen. Ein WR, der eine angeforderte Ladespannung vom BMS akzeptiert, muss schon aus Eigenschutz eine Plausibilisierung der angeforderten Spannung durchführen. Wenn der WR ohne Nutzung der Kommunikation eine einstellbare maximale Ladespannung für die Batterie hat, wäre es geradezu wahnsinnig, diesen Parameter nicht zur Validierung/Begrenzung einer z.B. über CAN vom BMS angeforderten Ladespannung zu nutzen. Es gibt also keinen vernünftigen Grund, warum eine Kommunikation des BMS mit z.B. einem WR irgendwelche Schutzfunktionen aushelben sollte.
Wo ich mit mir noch diskutieren lassen würde, wäre folgendes: Wenn die Kommunikationschnittstelle nicht hinreichend robust ist, und ein schwerer HW-Defekt z.B. im WR über die Kommunikationschnittstelle auch das BMS zerstören könnte, würde das die Robustheit des Systems schwächen. Die Robustheit der Schnittstelle ( im Zweifelsfall galvanische Trennung ) kriegt man technisch aber ohne größe Probleme in den Griff
Der Laderegler weiß aber typischerweise weder welche Temperatur die Batterie hat, noch wie gealtert das SEI ist und der Ladestrom deswegen angepaßt werden sollte. Diese Werte kennt aber wenn, dann gerade das BMS. Es wäre also geradezu fahrlässige diese Werte nicht auf vernünftige Art und Weise zu nutzen.
Bei einem EV und DC-Schnellader ist es im übrigen auch genau so. Die Elektronik in einer DC Ladesäule ist praktisch identisch zu einem HV-Batterie-WR
Das finde ich vom WR Hersteller absolut fahrlässig. Das Versagen/Problem liegt hier aber nicht im Kern in der Kommunikation zwischen BMS und WR, sondern im Unvermögen des WR-Herstellers.
Alle modernen BMS für ESS Anwendungen dürften für High-Level Funktionen einen Mikrocontroller nutzen.
Wenn man dem Hersteller nicht zutraut, dass er ein paar Zusatzberechnungn mit auf einem solchen Mikrocontroller ausführt, ohne dadurch andere Sicherheitsfunktionen zu beeinträchtigen, sollte man vermutlich einen anderen wählen.
Für das Coulomb-Counting interessieren eigentlich nur quasi-DC bzw. Frequenzen im sub-Hz Bereich. Es ist im Kern ja schlicht eine Integration des Stroms. Das heißt man kann bereits analog kräftig tiefpassfiltern. Ein sonderlich schneller Wandler wird hier nicht benötigt.
Dass das Abtastheorem ( Nyquist ) berücksichtig wird, unterstelle ich schlicht.
Die Herausforderungen sind Offset-Spannungen/Drift und Nicht-Linearitäten
Schon der Name sagt, dass es sich nicht um den ausschließlichen Schutz handelt.
Grade im wohl hochentwickeltesten Fall, im Auto, erfüllt das BMS viele Aufgaben rund um die Batterie und wird selbstverständlich als Quelle für Spannung, Strom, SOC, SOH, Temperaturen hergenommen. Es loggt auch die Ladevorgänge und bestimmt die maximal möglichen Ladeströme für die verschiedenen Lader. Es steuert auch die Batterieheizung/Kühlung.
ich sehe daher absolut keinen Grund das BMS nicht als Quelle für alle Batterieparameter herzunehmen.
Die wichtigsten Sicherheitsparameter sind eh Spannungen und Temperaturen der einzelnen Zellen. Diese kennt nur das BMS. Es gibt also per se keine doppelte Sicherheit, es sei denn sie ist im BMS eingebaut.
Das ist imho die falsche Frage. Als Sicherheitsbeeintrachtigung genügt, wenn die Uberwachungsfunktionen “genutzt” werden: falsch ( zu niedriger) SOC führt zur Uberladung, die vom BMS bei OVP gestoppt werden muss.
(“BMS ist kein Betriebsschalter”)
Jede BMS Abschaltung hat als “Störfall” zu gelten, dessen Ursache nachhaltig beseitigt werden muss.
Ind dem Zusammenhang: die einen haben technische Bedenken, dass die Mosfets sicher trennen können, die anderen lassen munter und sorglos jeden Steuerungsfehler durch das BMS ausbügeln (durch Abschaltung) , ohne die Ursache zu beheben.
Das ist aber nicht zwingend, wird nirgendwo angesprochen , und ist auch imho vollkommen die faksche Sichtweise. Gerade wenn der wandler eigenen Grenzwerte hat und beachtet: warum dann die vom BMS holen???
Im Grundsatz bezieht sich meine Kritik auch darauf, dass die ganze Datenverbinderei idR , nach Sicherheitsmasstäben als “ungetestet” gilt. (@nimbus4 und Tom mögen mir verzeihen, ihr spielt schon in einer höheren Liga)
Eine Änderung machen und ausprobieren ob sie funktioniert ist kein “Sicherheitstest”.
Sicherheitstest ist (mindestens) das einzelne Ausprobieren jeder einzelnen Funktion , dem Handbuch und geschriebenen Pflichtenheft folgend, mit Dokumentation des Tests.
Ein BMS, das eine zu hohe Zellspannung feststellt setzt den SoC üblicherweise sofort auf 100%, daher sehe ich diese Gefahr nur sehr bedingt
Ein BMS, das eine zu niedrige Zellspannung … auf 0%
Es steht dem Laderegler frei, unabhängig vom SoC bei erkannter Über/Unterschreitung der Batteriespannung tätig zu werden.
Das sehe ich eigentlich auch so, hat aber nicht wirklich mit SoC zu tun.
Weil der Wandler lediglich Gesamtspannung und Stromfluß und Umgebungstemperatur kennt ?
Ungetestet mag bei manchen Systemen die Auswirkung einzelner Fehlerzustände sein. Ich habe eine funktionierende Datenverbindung zum WR sogar als Voraussetzung, daß meine Batterie überhaupt aufschaltet. Und nicht nur regelt der WR nach SoC,SoH,Batterietemperatur die Ent/Ladeleistung, sondern regelt das BMS in meinem Fall auch aktiv den WR. D.h. wenn beispielsweise der WR nicht von sich aus eine Zwangsladung startet, macht das das BMS durch Umschalten auf Forced-Charge-Mode. Geht halt nur mit “Daten-Verbinderei” !
Andere Szenarien:
BMS möchte OCV feststellen und regelt aus diesem Grund den WR über längere Zeit auf 0.
BMS möchte Delta-V messen und kontrollierte Lade/Entladeströme vorgeben.
…
Für mich ist Batterie+WR als Gesamtsystem zu sehen, das als solches Gesamtsystem sicher sein muß. Dazu gehört auch eine “Zweiwege-Kommunikation” und nicht nur eine Batterie und ein unabhängiger Laderegler, der nur Spannung und Stromfluß kennt.
edit: Und bevor mein BMS kontrolliert abschaltet, regelt es erst Ent/Ladeleistung des WR auf 0 um wenn möglich stromlos abschalten zu können
Deine Versuche, den SOC als zuverlässigen Messwert zu retten, sind ehrenhaft. Ändern aber nichts daran, dass die Langzeitstabilität nicht im Rahmen des Notwendigen gegeben ist, somit durch häufiges Synchronisieren erzwungen werden muss.
Wenn du dir z.b. die Langzeitgenauigkeit von Spannungsnormalen oder Widerstandsnormalen anschaust, siehhst du ein paar Zehnerpotenzen Unterschied.
Das reicht ja, um eine angemessene Unterspannungsabschaltung zu machen.
Ich sagte schon, dass ich dir eine sehr umfangreiche Fehlerbetrachtung und -behandlung unterstelle.
Meine systemischen Bedenken bleiben die gleichen, wenn du sie mit deinen anderen Methoden voll abgedeckt hast: prima.
Wenn der WR/Laderegler keine Daten vom BMS erhält hat er Spannung und Strom als einzige Regelkriterien. Diese nimmt ihm ja niemand wenn dem WR noch ZUSÄTZLICH weitere Daten zur Verfügung gestellt werden.
Das Gesamtsystem wird dadurch nur noch sicherer nein ?
Du bist mit deinem HV System schon ein Sonderfall.
Was man mit den Zellspannungen macht? Im grunde genommen nimmt man mit der hochsten Zellspannung ab 3,38 V den strom zurück. Das ersetzt sogar das runterregeln nach der Packspannung…. die namlich davon abhängt, wie gross die Differenz der höchsten zu niedrigsten Zelle ist. Ebenso muss man unter 3,20 V den strom begrenzen und Temperatur abhängig.
Und das nicht in der Form eines BMS sondern mit einer Schaltung auf Zellebene ? Wie willst du das sinnvoll machen ? Strom zurücknehmen, Tiefentladung verhindern, auf Temperatur reagieren.
Abgesehen vom Aufwand auch ziemlich verlustträchtig.
In erster Linie für Sicherheit sorgen und im worst case die Batterie trennen.
Dazu werden alle 96 Zellspannungen etwa alle 3 Sekunden ausgelesen, die Temperaturen nur etwa alle 30 Sekunden da gemultiplexed über 3 ADC Eingänge. Können die Zellspannungen nicht ausgelesen werden oder differiert die Summenspannung zur Gesamtspannung wird abgeschalten.
Im Moment habe ich nach oben und nach unten nur jeweils 3 Grenzwerte (das werden vlt. mehr) ab denen die Ent/Ladeleistung reduziert, auf 0 gesetzt oder getrennt wird. Eine Reduktion der Ent/Ladeleistung erfolgt auch wenn diffMV zwischen niedrigster und höchster Zelle einen Schwellwert überschreitet (60mV im Moment).
Zusätzlich arbeite ich gerade daran, über JsonLogic eine flexiblere Regelung zu ermöglichen, die aber auch über die Aufgaben eines typischen BMS hinaus gehen können. (e.g: Global Scan auslösen, WR shutdown/aktivieren, Zwangsladung aktiv veranlassen,…). Das könnte natürlich auch in HomeAssistant o.Ä. gemacht werden. Beispiele wären, die Batterie im Sommer bewusst nur bis zu 90% zu laden und den ReservedSOC im Winter anzuheben oder ein Top-Balancing automatisiert zu starten (wenn nötig vom Grid)…. Der ermittelte SoC spielt da also durchaus auch eine Rolle.
Alle Betriebsdaten werden über MQTT zur Aufzeichnung/Auswertung publiziert.
Edit: Die vier verbauten JK-BMS sind keine BMS mehr, sondern deren Fkt. auf Messen der Zellspannungen und das Balanzieren nach Vorgaben reduziert.