Zur Info, dieser Faden wurde abgetrennt aus dem Faden JK BMS in Reihe schalten", da ab hier die realisierung diskutiert und beschrieben wird.
@Thomas, du kanns den Text dieser Post - auch diese Bemerkung und die Überschrift - nach deinen Wünschen editieren und ändern. Carolus
Kurzer update ...
Die meisten Teile wurden jetzt schon geliefert und ich habe das erste der vier JK jetzt HV-fähig gemacht und bin gerade dabei das UART Protokoll auf dem ESP32 zu implementieren. Daß ich damit nicht der Erste bin macht es nicht wirklich schwieriger
Für den BMS Schutz habe ich ein eigenes Board entwickelt, das gerade in Fertigung ist. Damit erfolgt (soll erfolgen) die Kommunikation mit dem WR über CAN und Modbus sowie mit den vier JK-BMS über eine auf beiden Seiten isolierte RS485. JK-seitig erfolgt eine Zwangssteuerung der Senderichtung bei aktivem Sendesignal (so wird das auch der JK-RS485 Adapter machen - auf der 3-D Darstellung links oben). Das Board überwacht über einen eigenen 2mOhm Shunt den Stromfluß und steuert Precharge und main contactor. Fällt die Verbindung (spi) mit dem ADC-Wandler aus oder meldet dieser eine Stromüberschreitung wird der contactor hardwaremässig abgeschaltet um auch bei einem "Abschmieren" des ESP32 eine Abschaltung zu erzwingen. Die Versorgung des Boards erfolgt über 24VDC. Über die Isolationsbarriere bezieht der ADC ~8V und ein weiterer Schaltregler 5VDC für eine optionale Temperaturauswertung (Stecker links unten). Der im Bild gezeigte linke (blaue) DC:DC Wandler wird nicht bestückt, der rechte 3W 24V:5V versorgt die isolierte RS485 zu den BMS Boards.
Als contactor habe ich einen China-Nachbau eines EV200AAANA und für das precharging den kleinen SEV30ADXL vorgesehen wobei jedes der vier 24S (3-x23, 1x24) Packs noch zusätzlich über RS309-MD 50A abgesichert ist.
Wenn ich endlich die Batterien bekomme werde ich mich an die Konstruktion eines Rahmens/Gehäuses machen und bis dahin die vorhande Software auf den ESP32 portieren bzw. die Platine bestücken und reflowen
Ich werde euch gerne weiter berichten !
Ich wünsche euch allen ein Glückliches Neues Jahr und viel Sonnenschein !
Noch mal für mich zur besseren Übersicht: Du baust einen HV Akku mit 3x16s bzw. 3x54 Volt um damit deinen galvanisch nicht von Netz getrennten WR direkt zu versorgen welcher mindestens 150Volt haben möchte. Ist das ein Hybrid oder sind die 150V am MPPT Eingang?
Hierzu nimmst du 3 JK-BMS (welche?) die aber normalerweise für 16s spezifiziert wurden. Weil die BMS den Batteriestrom nicht abschalten dürfen oder können, machst du eine übergeordnete Steuerung mit Schütz dafür.
Von den bei JK vorhandenen galvanisch isolierten RS485 Schnittstellen nimmst du an, daß sie nicht nur die 50 Volt sondern die maximale Netzspannung isolieren können weshalb du diese zusammenschaltest.
4x24S mit JK-BD6A24S10P an einem Sungrow SH10RT Hybridwechselrichter.
Die "ausgeräumten" JK's dienen nurmehr zur Zellmessung und dem Balanzieren, sind also keine klassischen BMS mehr und nurmehr insoweit sicherheitsrelevant, daß sie UV und OV Zellzustände an die Steuerung korrekt weiterleiten.
Bei JK ist die GPS Schnittstelle eine TTL-Schnittstelle (im JK intern mit einem ADUM1201 isoliert aber mit GND auf jeweils BAT-) an die ich eine galvanisch isolierte RS485 anschließe und mit dem JK Modbus V1.0 Protokoll kommuniziere.
Auf der Steuerungsseite ist die RS485 zusätzlich galvanisch isoliert (sitzt im HV Bereich). Die Steuerungsplatine überwacht die angeschlossenen JK-Balancer (keine BMS Funktion mehr), Batteriespannung und -strom und den Status des Sungrow (über Modbus). Über diese Modbus Schnittstelle kann auch das Ladeverhalten und die Betriebsart des Sungrow gesteuert werden um tarifabhängige Lade/Entladevorgänge steuern zu können. Über die CAN-Schnittstelle wird dem WR eine BYD-HVS Batterie simuliert - auch hier kann natürlich das Verhalten des WR beeinflusst werden (SOH, SOC).
Die Abschaltung bei Fehlerzuständen erfolgt über ein HV-Relais. Das Precharging wird über ein kleineres Relais mit precharge Spannungsüberwachung gesteuert. Jedes der vier 24S Module ist zusätzlich mit jeweils einer 50A Sicherung abgesichert - die Zelltemperaturen werden einzeln über ein Multiplexerboard überwacht, die Temp-Sensoren der JK's werden nicht verwendet.
Um auch zwischen den vier Stacks balanzieren zu können "teilen" sich die JKs jeweils eine Zelle mit dem nächsthöheren Stack. 3x23S + 24S also nur 93S statt 96S.
Ok, der ADUM hat VDE bis 560 Volt. Könnte also gut gehen. Mit so einer hüschen Platine (Kicad?) hätte ich mich dann aber trotzdem nicht noch zu einem undokumentierten JK zum Messen der Spannungen eingelassen.
Ob das mit dem Teilen einer Zelle der nächsten Gruppe funktioniert, bin ich mir noch nicht so sicher. Die Balancer dürfen ja nicht gegeneinander arbeiten.
Der Adum1201 im JK ist eigentlich irrelevant. Am TTL-port ist auf einem eigenen PCB noch ein Adum1201 und der MAX485 - auf dem Hauptboard dann wieder ein MAX485 und ein Adum1201. Daher ist die RS485 Leitung an beiden (allen 5) Seiten potentialfrei. Der Adum1201 ist natürlich nicht ideal (schon alleine die Bauform) aber hier habe ich ein bisschen den Sparstift angesetzt (und die ISO7762 nur für den ADC verwendet).
KiCad ja und die boards von elecrow.com - wie schon geschrieben ist die JK-Lösung eine "Notlösung", da meine eigenen Balancer boards (12S 3A active balancing mit trafos) nicht fertig gelötet sind (8 boards + 8 controller + 96 balancer) und ich die aufgesteckten Controller-boards auch von STM32F103 (+ESP8266) auf ESP32 ändern möchte. Ursprünglich wollte ich auch charge und discharge balancing machen aber @nimbus4 meinte das wäre gar nicht notwendig (wenn ich ihn richtig verstanden habe).
Wenn das Balanzieren der JK's aber einwandfrei funktionieren sollte bin ich dazu vielleicht zu faul .... und ich denke Zellspannung messen und ein bisschen Balanzieren werden die JK's schon schaffen. Und sollten alle Stricke reissen kann ich über die isolierte RS485 auch mit meinen eigenen Balancer boards kommunizieren.
Die höchste Zelle eines Packs wird als unterste Zelle des nächsten Packs verdrahtet. So habe ich es in einer JK-Dokumentation gelesen und bei meinen eigenen Balancer boards (Basis LTC681X + 2xLTC3300) wird das genauso gemacht (auch von einer 6er bank zur nächsten siehe LTC3300). Inwieweit ich die Parameter der JKs vielleicht dynamisch anpassen muß, wenn die vier packs zu sehr auseinanderlaufen wird die Praxis zeigen.
edit: Sie arbeiten ja nicht "gegeneinander" wenn sie sich eine Zelle teilen. Hat das untere Pack ein niedrigeres Spannungsniveau wird die Zelle vom nächsten Pack geladen oder umgekehrt. Dadurch werden die einzelnen Packs harmonisiert - so der Plan
Ich vermute, Du beziehst Dich auf diese Beschreibung aus einer PM:
"Beim passiven Balancing hat man praktisch keine Freiheitsgrade. Deswegen ist das Multi-Pack-Balancing ( im wesentlichen völlig egal ob parallele oder serielle Packs ) denkbar trivial:
Jedes Pack-BMS sorgt dafür, dass alle lokalen Zellen einen gleichen SOC haben.
Die Ladespannung wird solange größer 3.4 V gehalten bis alle Packs 100% SOC für alle Zellen melden.
Die Packs, die zuerst 100% SOC erreicht haben, entnehmen gegen Ende einfach für eine gewisse Zeit allen Zellen gleichmäßig Ladung. Es darf also nicht zu einem unabhängigen Beenden des Balancing ( z.B. wenn das Delta < 10 mV ) liegt kommen.
Bei seriellen Packs ( insbesondere wenn kein MOSFET-Schalter sondern ein Relais benutzt wird ) würde ich so etwas aber nicht ohne Regelung der Ladespannung durch das BMS machen, weil man ansonsten immer wieder Zwangstrennungen der ganzen Batterie wegen OV in einem einzelnen Packs haben dürfte.
Bei seriellen Packs müßte man im Vergleich zu parallelen Packs außerdem entweder sicherstellen, dass das BMS in jedem Pack eine sehr ähnliche Stromaufnahme hat oder die Unterschiede kompensieren, weil dies ansonsten schnell eine größere Imbalance erzeugen könnte, als die unterschiedliche Selbstentladung der Zellen."
Das bezog sich auf passives Balancing und ist auf das aktive Cell2Cell-Balancing des JK nicht 1:1 anwendbar.
Mit den zwischen den BMS geteilten Zellen sollte der Ausgleich zwischen den Packs zumindest "statisch" völlig automatisch funktionieren.
Die geteilten Zellen sollten dabei natürlich zwei unabhängige Zellanschlüsse für die beiden BMS bekommen.
Sorry dann habe ich mich missverständlich ausgedrückt.
Ich bezog mich darauf, daß (aktives) Balancing nicht so entscheidend für den Gesamtwirkungsgrad wäre und das aufwändige Charge & Discharge Balancing das ich geplant hatte den Aufwand nicht wirklich Wert wäre. So hatte ich es verstanden ?! Daß bei mehreren Stacks in irgendeiner Weise ein Ladungsaustausch zwischen den einzelnen packs stattfinden muß ODER das BMS 'packweise' ins Balancing eingreift ("Regelung der Ladespannung") wenn das nicht möglich ist war für mich klar und das habe ich auch nicht angezweifelt. Sorry wenn ich hier falsch verstanden wurde.
Zu versuchen durch Balancing den Kapazitätsunterschied von Zellen ausgleichen zu wollen, also auch die Zelle mit größter Kapazität vollständig entladen zu wollen, macht meines Erachtens unter Berücksichtigung der Kosten für Zellen vs. Leistungselektronik keinen Sinn mehr.
Dann geht es letztendlich beim Balancing praktisch nur noch um den Ausgleich der unterschiedlichen Selbstentladung.
In meinem "schlechtesten" Pack ( 280 Ah Zellen ) benötigen die Zellen im Jahr ~ 20 Ah Ladungsausgleich. Da habe ich mit meinem passiven Balancing fast 2 Zehnerpotenzen Reserve. Wieso sollte ich einen aktiven Balancer haben wollen? Das sind im Moment pro Tag ~ 3 Wh, die in Wärme ungesetzt werden, also eine effektive zusätzliche Verlustleistung von 125 mW. Da wird mancher aktive Balancer mehr Standbyverbrauch haben."
Um es mal provokant zu formulieren:
Ich gehe davon aus, dass bei den meisten aktiven Balancern durch Fehlbalancing ( also unnötiges Hin- und Herladen ) und den Standby-Verbrauch des Balancers mehr Energie verbraucht wird als ein passiver Balancer zum Ausgleich der Selbstentladungsunterschiede benötigt.
Bei mehreren Packs in Serie mit unabhängigen BMS ist im Zweifelfall der Unterschied der Stromaufnahme der BMS-Baugruppen die größte Imbalance-Ursache und garnicht die Selbstentladungsunterschiede.
Hmm, also der 24S JK-Modul braucht etwa 0.5W, ob sich eines von den anderen signifikant unterscheiden wird ? Mir ist auch unklar warum das gleiche Problem nicht auch bei einem passiv balanzierenden BMS bestehen sollte - auch die Ruhestromaufnahme muß sich in keiner Weise unterscheiden ?
Mein eigener geplanter Balancer wäre überhaupt nur bei Aktivität vom Pack versorgt worden (buck-disabled). Für die sleep-phase hätte ich den uP zentral versorgt.
Aber ich will jetzt nicht unbedingt eine Lanze für aktives Balancing brechen - solange alle Zellen einigermassen gleichen SOH haben bringt das vermutlich auch sehr wenig Mehrwert (verglichen mit dem Aufwand). Aber sobald sich schwarze Schafe zeigen, müsste das charge balancing doch einen besseren Gesamtwirkungsgrad und raschere Ladevorgänge, das discharge balancing eine bessere Ausnutzung der Kapazität ermöglichen.
Andere Frage ... das 23+23+23+24 liegt mir irgendwie im Magen. Einerseits weil mehr als 3% Kapazität nicht genutzt werden, andererseits ist das softwareseitig mit den geteilten Zellen (überlappenden Packs) etwas mühsam
Was haltet ihr von der Idee auf der Basis von einem MP2641 jeweils oberste und unterste Zellen zweier Packs ganz unabhängig von den JK's zu balancieren ? Ruhestromaufnahme lt. Hersteller < 30uA.
edit: Die Beurteilung des SOH dieser einzelnen Zellen (3x2) müsste dann natürlich relativiert werden (aber ein ähnliches Problem bestünde bei drei Zellen ja auch bei überlappenden packs).
Das klassiche Problem ist, dass sehr viele BMS die Entscheidung über Balancing auf Basis der gemessenen "Roh-Zellspannung" treffen. Spannungsabfälle über Zellinnen- oder Verbinderwiderstände werden nicht korrigiert. Dazu bräuchte man in der Regel eine synchrone Strom- und Zellspannungsmessung.
Auch Anormalitäten im Spannungsverlauf bei Annäherung an 100% SOC ( Memory-Effekt und ähnliches ) werden in der Regel nicht berücksichtigt.
Das hat bei meinen Refurbished -Packs am Anfang für ziemliche Probleme gesorgt.
Dies ist natürlich grundsätzlich völlig unabhängig von passiv oder aktiv. Da aktive Balancer typischerweise viel stärker sind, ist die bewegte Ladungsmenge durch Fehlbalancing aber größer.
Du hast völlig recht, dass das grundsätzlich sowohl für BMS mit aktivem als auch mit passivem Balancer gilt.
Dazu aber noch folgendes:
500 mW ist nicht wirklich wenig. Wenn man ein 16s BMS mit einem TI BMS IC mit passivem Balancer auf niedrige Leistungsaufnahme optimiert liegt man bei < 10 mW. Stromschlucker sind eigentlich nur "potente" MCUs mit Funkanbindung ( insbesondere WLAN, Bluetooth ist beim ESP32 leider auch ziemlich stromhungrig ) und Bus-Schnittstellen wie CAN, die lange Busse treiben können, ... .
Bei seriellen Packs braucht man letzteres eigentlich nur an einem Pack.
Wenn man die Leistung dafür z.B. aus dem ersten Pack entnimmt, würde man damit schon eine massive Imbalance erzeugen.
Das JK dürfte beim kontinuierlichen Umschalten seines diskret aufgebauten Multiplexers, der sowohl für die Zellspannungsmessung als auch das Balancing verwendet wird, und durch den Ruhestrom aller beteiligten Komponenten schon einen nicht unerheblichen Stromverbrauch haben.
Schwarze Schafe heißt dann deutlich erhöhte ( bzw. sich erhöhende ) Selbstentladung. Meines Erachtens kann so etwas nur durch beginnende Dendritenbildung verursacht werden und wäre bei mir dann der Zeitpunkt an dem die betreffende Zelle ausgetauscht wird.
Deswegen zähle ich bei mir die mAh Balancing-Leistung pro Zelle, so dass ich auf einen Blick sehe wie der Status der Zellen ist:
Dass Zelle 16 hier nicht ~ 0 Ah Balancing-Bedarf zeigt, liegt übrigens vorwiegend an dem anfangs noch nicht vorhandenem Spezial-Handling für Memory-Effekt.
Bei diesem Pack liegt der "echte" Balancing Bedarf innerhalb von ~ 2 Jahren also bei ~ (9.5 - 5 ) Ah = 4.5 Ah.
Das Fehlbalancing ist hier also mehr als das "echte".
(Pack "A" ist ein Pack aus refurbished Zellen )
Nein das ist eine ganze Menge - bei meinem Design mit dem LTC681X und dem STM32F103 wäre das auch wesentlich weniger gewesen, die hätten beide ohnehin die längste Zeit geschlafen ... Ich benötige auch die ständige Bluetooth Verbindung nicht und muß mir erst ansehen, wie man ein schlafendes JK wieder aufwecken kann (hoffentlich reicht Modbus Kommunikation wäre zu schön gewesen). Im Moment lebe ich halt mit den 2W der vier Module - zumindest die Kommunikation scheint mal gut zu funktionieren.
Was ich meinte ist, daß alle vier wohl in etwa die gleiche Stromaufnahme haben werden (war auf "Unterschied der Stromaufnahme der BMS-Baugruppen" bezogen).
Das kann ich nicht ganz unterschreiben - bei meinem Design kommunizieren alle Pack-Module auf die gleiche Weise und auch bei Implementierungen wie isoSPI wird ein unteres Modul wirklich nur marginal mehr Strom verbrauchen (daisy chaining) als die darüber liegenden. Aber klar, es könnte auch so sein.
Ich bin auch in keiner Weise mit JK verheiratet - ist im Moment einfach mal eine rasche Lösung für mich. So viel Spaß hat das Auslöten der FET's auch nicht gemacht
Die 23-23-23-24 Problematik werde ich mit drei MP2641 zu lösen versuchen auch wenn das keine wirklich schöne Lösung ist.
Meiner Erfahrung nach ist eine Spanne von +-10% Stromaufnahme bei einem größeren Fertigungslos von solcher Elektronik nicht unüblich. 500 mW sind bei 50 V 10 mA. Das wären dann +- 1 mA. Das wäre bezogen auf die Differenz der Selbstentladung in meinen Packs erheblich.
Konkrete Erfahrungen mit JK habe ich aber keine.
Bei 10 Baugruppen von meinem BMS, die ich vermessen habe, habe ich ( bei aktiviertem BT ) eine Schwankungen von ~ +-5 % was einer Spanne von ~300 uA entspricht. Eine aktive CAN-Verbindung ( mit 2x 120 Ohm ) verbraucht bei mir schnell mehr Strom als der ganze Rest.
Ja auch der LTC6820 (isoSPI) ist recht hungrig. Ich denke die eleganteste Lösung ist ohnehin, das BMS oder den Balancer nicht vom Stack zu versorgen
Dann spart man sich auch den >50V Volt Buck-converter. Ich habe mich auch schon gefragt, wie BYD und andere das machen. Wenn eine Batterie wo viele Monate auf Lager liegt ... und da ist es ja nicht mit EINEM Schalter getan, es muß ja jedes Pack von der Batterie getrennt werden.
edit: Ich vermute mit einem Buck-Converter aus dem ganzen Stack und einzelnen isolierten DC:DC Wandlern zu den packs was auch die recht umfangreiche Grundplatine mit dem großen Trafo erklären würde ?
Anständige BMS ICs bieten dafür eigentlich einen "Deep-Sleep-Modus" mit ~ 10 uA Stromaufnahme. Aufwachen erfolgt dann typischerweise wenn ein Ladegerät angeschlossen wird und das BMS ICs aktiviert dann auch die restlichen Schaltungsteile des BMS wie SMPS, MCU, externe Schnittstellen... .
So etwas habe ich bei mir allerdings nicht durchimplementiert, weil ich da bis jetzt keinen konkreten Bedarf für gesehen habe.
Wenn man von mehreren 100 V auf ~ 5 V runter will, ist eigentlich ein Flyback die klassische Wahl, der könnte sogar mehrere unabhängig galvanisch getrennte Ausgänge haben.
Bei > ~ 120 Vdc, < ~ 370 Vdc sind die Chancen sogar ganz gut, dass man einfach ein Netzteil, das eigentlich für 90 - 263 Vac gedacht ist, verwenden kann
An alle, ihr macht hier eine so gute Diskussion zur Realisierung.... Da passt der Titel des fadens kaum noch.
Ich biete euch an, den faden an passender Stelle zu teilen, am besten mit einer ersten Post von Thomas, dann kann er auch den Titel des neuen Fadens selber ändern.
Eure Meinung, Vorschläge, Wünsche?
Du hast völlig recht, dass die letzten Posts eher wenig mit JK zu tuen haben und eher zum Thema "Überlegungen zur Auslegung/Entwicklung eines HV-BMS" passen. Meinerseits kann das gerne ausgelagert werden.