Vorstellung Eigenentwicklung BMS für große 16s LFP Packs - Diskussion

Und welche Gründe sprechen dagegen?

Ich wünsche mir dort mehr Kapazität, weil der Verbrauch selbst im Sommer manchmal kaum über Nacht reicht und ich die Batterie etwas weniger stressen möchte. Künftig würde ich die Batterie gerne zwischen ~ 30 % und 85 % SoC betreiben.

Geht eine Zelle durch, setzt sie nicht nur die eigene Energie um ( -> 400 Grad) , sondern die der parallelen auch noch. Dann wirds heißer.

1 „Gefällt mir“

In der Beschreibung zu dem Ackmainiac Projekt heißt es:

“The ESP32 communicates with the JK-BMS using the RS485 port(GPS) which is in fact not RS485, it is 3.3V TTL so it can be directly connected to the ESP32. The ESP32 then sends the required CAN bus data to the inverter via a CAN bus transceiver.”

Mein BMS hat keinen zum JK kompatiblen “RS485” Anschluss. Das heißt eine direkte Verwendung eines solchen ESP32 Adapters mit meinem BMS wird nicht möglich sein.

Die konfigurierbare Steuerung des Inverters hat mein BMS schon eingebaut. Dafür ist also eigentlich gar keine extrene HW notwendig.

Hier steuert das BMS z.B. einen Deye SUN-12K-SG04LP3 ( 100% SOC Kalibration + Balancing )

Um die Statusdaten des BMS nach HA zu bekommen gibt es im Moment die Möglichkeit, sich mit einem zusätzlichen CAN-USB-Adapter an den CAN-Bus zu hängen:

Hast Du darüber hinaus noch Anforderungen?

Die zweite PV-Anlage, für die diese Batterieerweiterung vorgesehen ist, ist nicht in dem Haus in dem ich wohne. Die Verbindung von dort zu HA erfolgt erfolgt über VPN zwischen unserer - und der Fritzbox eines Bewohners. Die Möglichkeit zur Steuerung des Inverters von irgendwo auf der Welt über HA sieht so aus.

Müssen die Einstellungen zur Invertersteuerung über dein BMS direkt am Bildschirm deines BMS, per BLE-App oder ähnliches vorgenommen werden, oder sind auch Ferneinstellungen möglich? Wenn ja, wie? Ein Bezug auf eventuell bereits Kommuniziertes wäre schön.

Hinsichtlich der eigentlichen Batteriesteuerung (Begrenzungen) würde ich mir eine Veränderung der “start-balance-voltage” etwa zwischen 3400 und 3450 mV aus der Ferne wünschen. Sonst sollte aus der Ferne diesbezüglich nichts verstellbar sein.

Wenn ich deine Darstellung richtig verstehe, arbeitet dein Balancer in zwei Stufen, ab ~13:39 bis 13:50 und ab 13:50 bis ~ 13:59. Das ist so gewollt nehme ich an.

Gibt es bereits eine Anleitung in die ich mich mal reindenken könnte? Oder einige Bezüge hier im Thread die das Wesentliche einigermaßen zusammenfassen?

Ermöglicht deine Invertersteuerung auch eine Reduzierung des Stroms im unteren SoC Bereich, damit eine evtl. Abschaltung weniger hart stattfindet? Also ähnlich diesem Bild.

Meine Zellen für die Batterieerweiterung sollen Ende November eintreffen.

Ich hab gelesen die Leistungsanforderung von etwa 100 A Dauerstrom bringt dein BMS.

Welche, neben dem BMS erforderlichen Sachen, könntest du mit liefern und was sollte ich selbst besorgen. Balancerkabel etc..?

  • Senseleitungen an den Fets zur Fehlererkennung
  • Konfigurierbare Überstromabschaltung mit Zeitfenster
  • Kurzschlussstrombegrenzung & Abschaltung (abhängig von max. zulässigem Strom & Anstiegszeit also innerhalb der für die eFuse tolerierbaren Grenzen)
  • Enable Eingang
  • Fault Ausgang
  • PowerGood, Ready oder Heartbeat Ausgang
  • aktivierbarer Vorladewiderstand
  • RS485(Modbus) oder CAN für Konfiguration & Logging

Aktuell würde ich diese gerne am 16S-Akku als Ersatz für den MCCB und die Schmelzsicherung mit Nennstrom ~150A einsetzen (vielleicht etwas grenzwertig als zweite Sicherheitseinrichtung)
und eine kleinere Variante für schaltbare Lasten mit ~50A.

Sehr gerne, da ich selbst Python und MQTT verwende.
Code ist noch immer die beste Dokumentation, habe ich einmal von einem Softwareentwickler gelernt. :wink:

Im Moment können Einstellungen nur über meine WebGUI ( über BLE ) oder die Serielle-/USB Schnittstelle vorgenommen werden. Die Serielle-/USB Schnittstelle ist aber eher eine “Entwicklungsschnittstelle”, die ich perspektivisch nicht mehr allgemein zugänglich machen möchte. Zukünftig soll es die Möglichkeit geben, Einstellungen auch über CAN vorzunehmen. Das wird sehr wahrscheinlich dann auch mit einem Python-Script gewrappt, so dass man das relativ einfach in HA einbinden können sollte.

Da mein BMS im Moment keine native LAN Schnittstelle hat, müßte man für einen richtigen Remote-Zugriff dann einen CAN-Ethernet Adapter verwenden.

Das ist zwar grundsätzlich kein Problem, ich bin mir aber sicher dass Du dafür bei meinem BMS keine Verwendung mehr haben wirst. Da mein BMS die Spannungsabfälle über ohmsche Widerstände kompensiert und Balancing-Entscheidungen auf Basis kompensierte Spannungen ( also quasi rein elektrochemischer Zellspannung ) vornimmt, gibt es, so lange wir von LFP-Zellen reden, keinen Grund die Default-Einstellungen zu verändern.

Dass die Zellspannungen wie in Deinem Screenshot hier vor 17:30 so auseinanderlaufen, wirst Du bei meinem BMS nicht mehr in der Form erleben.

In dem Pack zu dem folgenden Screenshots sind die Verbinder-/Übergangswiderstände extrem inkonsistent ( ~ 0.6 mOhm bis fast 1.8 mOhm ) trotzdem bleiben die Zellspannungen auch bei den kurzen Spikes bis ~ 27 A praktisch eine Linie. Die je nach Pack angepaßte Reserve beim Balancingstart basierend auf unkompensierten Zellspannungen, ist hier schlicht nicht notwendig.

( Bitte nicht am SOC-Sprung von 174 % auf 100% irritieren lassen. Das war das erste Volladen für den Pack. Dementsprechend sind die Zellen hier auch noch ziemlich aus der Balance, Zelle 2 fehlen ~ 0.5 Ah )

Die beiden Stufen haben nur indirekt mit dem Balancing selber zu tuen. Dass BMS erlaubt zunächst deutlich mehr als 3.42 V ( zumal die gezeigten Spannungen auch kompensierte sind und die Terminalspannungen also noch deutlich höher liegen ), damit der Pack ziemlich schnell komplett vollgeladen werden kann, reduziert dann aber die Spannung nach der 100% SOC Detektion, da man wegen des Relaxierungsverhalten der Zellen oft mindestens 30 min eine Balancingspannung halten muss und ich dabei die Zellen nicht unnötig stressen und nicht unnötig über den “nominalen” 100% SOC-Wert hinaus laden möchte.

Im Moment ist ein stückweise lineares Derating des dem WR gemeldeten erlaubten Entladestroms u.a. in Abhängigkeit der Zellspannung bereits eingebaut.

In meiner Testanlage schaltet der Deye allerdings typischerweise selber aufgrund seines am eigenen Display eingestellten “Min SOC-Wertes” ab. Nutzt Du das bewußt nicht?

Für 100 A Dauerstrom könnte ich Dir im Moment Muster dieser Variante anbieten

Die Balancer Kabel könntest Du ( vorzugsweis in 75 cm Länge ) von mir einseitig mit Steckern für das BMS bekommen. Kabelschuhe müßtest Du dann an der anderen Seite selber montieren.

Für den CAN-Anschluss ebenso einseitig von mir für das BMS konfektioniert. Wenn Du einen Deye verwendest, könnte ich die andere Seite auch direkt mit RJ45 bereitstellen.

Alle Leistungskabel müßtest Du selber erstellen ( BMS-seitig mit M6 Kabelschuhen, bei 100 A reicht ein Anschluss pro Kontakt )

Wenn Du mir deine Email-Adresse per PM schickst, kann ich Dir schon mal eine pdf-Installationsanleitung und eine Beschreibung zur Web-GUI schicken.

Verstehst Du darunter FETs bei denen der Source-Kontakt eines Teils der Zellen getrennt herausgeführt ist, so dass man darüber den Strom im FET messen kann?

Die typische Fehlererkennung für die FETs bei einem BMS ist eigentlich, dass wenn die FETs logisch abgeschaltet sind, aber trotzdem ein Strom fließt, die nächste Sicherungsebene ( also Pyrofuse oder fernbedienbarer MCB ) aktiviert wird. Bei meinem BMS übernimmt das das BMS-IC von TI sogar komplett intern, so dass das praktisch komplett in HW abläuft.

Bei den anderen Punkte, würde ich behaupten, dass mein BMS das praktisch alles kann.

Prinzipiell meinte ich dieses, jedoch zusätzlich mit der Möglichkeit die Stromverteilung zwischen den Fets unter Last zur Fehlererkennung (intern) bewerten zu können.
Nochmals darüber nachgedacht, was nützt diese Funktion ohne nachgeschaltete Trenneinrichtung?
Und mit macht sie noch weniger Sinn.

Daran habe ich vorhin auch schon gedacht, dass ein "halbes" BMS für meine Wünsche eigentlich ausreichend wäre.
Lässt das von dir verwendete BMS-IC denn einen Betrieb ohne Einzelzellen zu? Falls ja, hört sich das ggf. nach einer Lösung an.

Du meinst die Einstellung im “System Work Mode 2” Menu? An diesem Deye 12k war zu der Zeit die Abschaltung bei 51,2 V vorgesehen. Mit den JK-BMS ist das mit dem SoC so eine Sache und zusätzlich weicht bei diesem Inverter m.E. die intern gemessene Batteriespannung um etwa 600 mV von der meiner Messgeräte - und von der ursprünglich nicht kalibrierten Spannungsmessung des JK-BMS ab. Siehe Bilder der beiden Vergleichsmessungen an meinen zwei Deye 12 k Inverter.

Das wäre gut, Danke.

Ich denke auch, dass es gute Gründe gibt, warum man so etwas bei BMS/ E-fuse-Designs praktisch kaum findet. Am ehesten fällt mir da noch das Pylontech BMS ein, dass für jeden FET eine zusätzlich elektrisch auslösbare Mini-Schmelzsicherung hat ( zumindest bei den älteren Designs von denen es Photos im Internet gibt ), damit man durchlegierte FETs abtrennen kann. Mir ist da aber ein zusätzlicher externer MCB lieber.

Mit einer zusätzlichen Pyrofuse könnte ich auch gut leben, wenn man da günstig und unproblematisch rankäme, was aber wohl völlig illusorisch ist.

Ja, ich kann UVP und OVP grundsätzlich deaktivieren oder im Zweifelsfall auch einfach mit einem Zellemulator ( Widerstandsteiler ) arbeiten.

Umgekehrt kann ich auch den MOSFET-Schalter weglassen und habe dann einen “Smart-Shunt”.

Wenn man im “Lithium Mode” arbeitet, sollte es diese Einstellung geben:

Bei den gezeigten Settings schaltet der Deye den AC Ausgang ( im off-grid Betrieb ) dann bei Unterschreiten von 1 % SOC ab. Allerdings belastet er den Akku danach weiter mit seinen ~ 70 W Leerlaufverbrauch, so dass das BMS dann einige Zeit später doch wegen UV trennt.

Wenn man stattdessen aber höhere Abschaltwerte im Deye verwendet, kann man die Tiefe der Akkuentladung recht genau justieren.

Erfolgt Deine Messung denn an den Anschlussklemmen des Deye oder mißt Du da implizit den Spannungsabfall über die Verkabelung?

Davon abgesehen ist der Versuch, bei LFP die Entladetiefe über die Spannung zu regeln natürlich eher “unglücklich”. Sobald man eine verläßliche SOC-Schätzung hat, macht man das natürlich nicht mehr.

Versehentlich doppelt gepostet. Nun gelöscht.

Was meinst du damit?
Für BEV sind diese gebraucht und als Nachbau für teilweise weniger als den Preis meines MCCB erhältlich. Als problematisch sehe ich nur die Beschaffung von Datenblättern.

Ich bin bis jetzt davon ausgegangen, dass die wegen der enthaltenen Treibladung nicht so ohne weiteres frei verkauft werden. Da lag ich wohl falsch. Zumindest als Ersatzteil für den Automobilbereich findet man da insbesondere bei ebay und Konsorten viele Angebote.

Bei den großen Elektronikdistributoren kann ich aber nach wie vor keine Pyrofuses finden.

Ich frage mich allerdings ein wenig, von wem ich wohl Besuch bekommen werde, wenn ich mir jetzt mal eine ganze Auswahl an Pyrofuses bestellen würde.

1 „Gefällt mir“

Gemessen habe ich direkt an den Batterieterminals, aber auch unmittelbar am Anderson Stecker. Die Werte waren jeweils gleich. Heute nochmal eine Messung mit zwei einfachen Messgeräten am Deye Batterieanschluss.

Mit deinem BMS werde ich dann festellen können welches meiner Messgeräte am genauestens ist.

Der Deye den ich hier im Moment nutze war bei alle meinen Vergleichsmessungen ( mit 6.5 Digit DMM ) immer auf ~ 50 mV genau. Möglicherweise ist das aber einfach Zufall und nicht Ergebnis einer allgemein guten Factory-Calibration.

Wenn ich die von meinem BMS angezeigte Spannung mit einer Messung am Referenzpunkt ( Plus- und Minuspol vom Batteriestack ) vergleiche, liege ich typischerweise bei besser ±20 mV Abweichung.

Die Spannung am WR weicht bei hohen Strömen aber natürlich erheblich davon ab.

Danke. Ich werde zwei meiner Messgeräte nächste Woche mit Firmen-Messgeräten vergleichen. Dann werde ich die beiden Deye nochmal unter vergleichbaren Bedingungen durch Messung am Batterieanschluss vergleichen.

Anfangs hatte ich beim zweiten WR, für den ich nun die Batterieerweiterung machen werde, den Eindruck, als ob der Deye Schwierigkeiten hat, wenn die vom BMS übermittelte Spannungsdaten niedriger waren als die im Deye selbst ermittelten Spannungen. Darum habe ich die BMS Voltage mit der Deye Voltage kalibriert. Aus der Erinnerung wurde es dann besser.

Ich gehe bei der Betrachtung meiner Zellspannungen nun immer davon aus, dass diese eigentlich ~ 20 mV niedriger sind als angezeigt.

Wäre Dein BMS diesbezüglich kalibierbar? Oder wäre es eher schädlich?

So etwas finde ich ganz ehrlich ziemlich gruselig. Bei einem BMS die Spannungsmessung bewußt flasch zu kalibrieren, um Probleme bei anderen Komponenten zu beheben, würde ich nur kurzzeitig zur Bestätigung der Analyse akzeptieren.

Beim BMS IC von TI ist die Zellspannungsmessung vom Hersteller kalibriert. Da würde man eher “verschlimmbessern”. Deswegen habe ich im Moment keine weitere Spannungskalibrierung mehr vorgesehen. Wenn würde ich auch nur die Werte, die über CAN dem WR gemeldet werden, anpassen und keinesfalls die intern verwendeten Werte.

Ein WR muss bei den hohen Strömen bei 48 V Batterien mit erheblichen Spannungsunterschieden zwischen BMS Messung und eigener Messung umgehen können. Der Deye hat ja z.B. auch einen Parameter für den Batteriewiderstand.

Wie äußerst sich denn

ganz konkret? Wirft der einen Fehler? Ist der maximale Ladestrom niedriger als erwartet?

1 „Gefällt mir“

Meinem WR (Sungrow HV-BYD) sind meine Spannungs- und Strommessungen schnurzegal (solange innerhalb der Limits). Wunder mich nur, daß das bei LV Systemen anders wäre. Übrigens nochmals Chapeau vor deiner Expertise !

Das ist zu lange her, weiß ich nicht mehr. Vermutungen will ich keine anstellen. Fehlermeldungen am Deye gab es aber keine.

Nächste Woche bin ich wieder vor Ort und kann das JK-BMS wieder um 500 mV zurückstellen und beobachten ob “Schwierigkeiten” auftreten.

Bezüglich meiner Messgeräte verlasse ich mich auf das Metex.

Der Akku-Widerstand (EVE-Zellen 304 Ah) im Deye hat noch die Werkseinstellung von 25 mOhm.