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

Ich möchte hier gerne mein selbst entwickeltes BMS vorstellen.

Beginnen möchte ich mit der Beantwortung einiger grundsätzlicher Fragen:
Warum habe ich mein eigenes BMS entwickelt?
Ich entwickle seit ~ 25 Jahren (auch beruflich) Elektronik.
Als ich vor ~ 3 Jahren meine ersten 16 280 Ah Zellen bekommen habe, konnte ich mich aus den verschiedensten Gründen mit den am Markt verfügbaren BMS-Optionen nicht anfreunden.
Da ich beruflich auch schon Kontakt zu BMS-Technik und 48 V Batterien hatte, war das Thema BMS und dessen interner Aufbau nichts wirkliches Neues für mich und ich habe losgelegt.
Dass mein BMS sich in einigen Eigenschaften vom Marktüblichen unterscheidet, wird hoffentlich weiter unten deutlich.
Warum könnte mein BMS für euch interessant sein?
Weil ihr auch bei Strömen << 1A gerne eine vernünftige Auflösung hättet.
Weil ihr eine vernünftige SOC-Schätzung haben möchtet, die euch z.B. auch nach 1 Woche ohne Rekalibrieren noch eine Schätzung mit +-1% Fehler liefert.
Weil ihr gerne die DC Widerstände eurer Zellen(verbinder) überwachen würdet.
Weil euch mit der Stromstärke varierende Spannunsgabfälle über nicht ideale Übergangswiderstände Ärger machen.
Weil ihr gerne die Selbstentladungsunterschiede eurer Zellen überwachen möchtet.
Weil ihr gerne eine Aggregation mehrere Packs zu einer virtuellen Batterie hättet.
Wenn es Interesse dazu gibt, würde ich gerne in einiger Zeit ein paar Muster verteilen, um ein breiteres praktisches Feedback zu bekommen.

10 „Gefällt mir“

Wie robust ist der Status Quo?
Die aktuelle HW betreibe ich mit nur minimalen Änderungen seit ~ 2 Jahren.
Mit inzwischen 6 Instanzen/Akkupacks habe ich in den letzten 2 Jahren zusammen ~ 8 Betriebsjahre Erfahrung gesammelt.
Nenneswerte Ausfälligkeiten gab es dabei keine.
Es sind aktuell jeweils 3 Packs in zwei getrennten Inselanlagen verbaut und die einzigen ungeplanten Downzeiten hat ein blockierender Rasenmäher mit folgender Überstromabschaltung verursacht.
Die SW ( auf einem ESP32 ) wird kontinuierlich erweitert.
Bei einem sicherheitkritischen Bauteil kann man argumentieren, dass das nicht unproblematisch ist.
Entschärft wird dies dadurch, dass alle "1st-Level-Sicherheitabschaltungen" bei Cell-OV/UV, Cell-OT/UT, OC, SC ... praktisch komplett in HW ( durch ein Analog Front End IC ) umgesetzt sind.
Solange man dieses nicht manuell vorsätzlich falsch konfiguiert, hat ein SW Update für den ESP32 praktich keinen Einfluß auf diese Sicherheitsfunktionen.
Das AFE-IC kann sogar mit einem Watch Dog Timer überwachen, ob der ESP32 regelmäßig kommuniziert, um zumindest zu plausibilisieren, dass 2nd-Level-Überwachungen auf dem ESP32 nicht z.B. durch ein Hängenbleiben des ESP32 außer Funktion gesetzt sind.
Ich könnte grundsätzlich die Konfiguration des AFE nach dem initialen Konfigurieren auch sperren, so das keine Änderungen mehr möglich sind, sehe für mich aber keine Notwendigkeit dafür.
Betonen möchte ich aber, dass mein BMS nicht ( weder was SW noch was HW betrifft ) gemäß eines SIL ( Savety Integrity Level ) entwickelt ist.
Mir ist aber auch kein kommerzielles "Konsumer-BMS" bekannt, bei dem dies der Fall wäre.
Als Trennschalter verwende ich einen MOSFET-Schalter.
Den habe ich empirisch für die Konfiguration der beiden System in denen das BMS im Moment betrieben wird auf Tauglichkeit getestet.
Eine rigorose Charakterisierung und damit eine Bestimmung/Überprüfung, welche maximale Abschaltstromhöhe, bei welcher Systeminduktivität mit welchem MOSFET-Typ und welcher MOSFET-Anzahl möglich ist, steht aber noch aus.
Mit welcher Motivation präsentiere ich es hier und jetzt?
Ich würde mich über konstruktive Kritik ( welche Schwächen werden im Vergleich zu Lösungen von z.B. JK, Seplos, Dali ... gesehen ) freuen.
Daran schließt sich dann die Frage an, ob andere Forumsteilnehmer bei dem hier präsentierten für sich einen Mehrwert gegenüber den im Markt etablierten Systemen sehen bzw. welche Anpassungen oder Ergänzungen dafür notwendig wären?
Da ganz klar ist, dass wenn man nur genug Leute fragt, man zwangsläufig am Ende die Spezifikation zu einer eierlegenden Wollmilchsau erhält, möchte ich aber folgendes voranschieben:
Mein BMS-HW ist in dem Sinne "schlicht/schlank", dass es keine bis jetzt ungenutzten HW-Features, keine Nice-2-Have HW-Funktionen ... gibt. Das ist volle Absicht.
Meine Überzeugung ist, dass Kosteneffizienz bei einem BMS heute eine essentielle Eigenschaft ist. Sicherheit/Robustheit darf davon selbstverständlich nicht beeinträchtig sein.
In Zeiten in denen man 15 kWh LFP für < 1000 € bekommt sind meines Erachtens BMS-Kosten von >> 100 € kaum zu rechtfertigen.
Den einzigen erheblichen Sicherheitsgewinn, den ich mir durch deutlich mehr Budget für die HW vorstellen könnte, wäre eine redundante Auslegung der HW wie in der Avionik. Das habe ich aber bei noch keinem kommerziellen "Konsumer-BMS" gesehen.
Bei der minimalistischen Auslegung meiner HW war das Ziel, ( zumindest in Stückzahlen ) keine dramatischen Mehrkosten zu einem typischen BMS aus China ( z.B. JK ) zu haben.
Ich denke, drei BMS zu je 100 €, mit denen man drei Packs getrennt überwacht, sind viel mehr Wert als ein 300 € BMS, bei dem man große Zellen direkt parallel betreibt, um Kosten zu sparen.
Deswegen wird es, was mich betrifft, immer auch eine solche "schlanke" Variante geben.
Ich habe mich im Moment völlig auf die Unterstützung von LFP Zellen konzentriert, weil für mich sehr unwahrscheinlich ist, dass andere Technologien wie LTO, Na-Ionen, LMFP auf absehbare Zeit in ESS-Anwendungen konkurrenzfähig zu LFP sein werden.
Im Moment wird nur 16s unterstützt. Die HW würde aber sehr wahrscheinlich bereits ab 4s laufen.
Darüberhinaus sehe ich das aber völlig pragmatisch, wenn man mir glaubhaft macht, dass es ausreichend viele Nutzer für eine andere Auslegungen gibt und diese mit überschaubarem Aufwand umsetzbar ist, passe ich mein BMS gerne an.
Sobald der MOSFET-Schalter voll charakterisiert ist, würde ich gerne anbieten, von der aktuellen HW-Revision einige Muster zuverteilen, um auch praktisches Feedback von anderen Nutzern mit anderen Nutzungszenarien und möglicherweise anderen Anforderungen/Erwartungen an das BMS einzusammeln.
Dieses Feedback könnte dann in einer neuen Revision konsolidiert werden, und das BMS wäre dann idealerweise auf einem Level, auf einen größeren Nutzerkreis losgelassen zu werden.

2 „Gefällt mir“

Jetzt zu den Details:
Die HW ist recht unspektakulär:

( Bild der Steuerplatine )
Das AFE-IC ( Analog Front End, BQ76952 von TI ) übernimmt alle Messungen und auch die "1st-Level-Sicherheitabschaltungen" bei Cell-OV/UV, Cell-OT/UT, OC, SC ...
Praktisch alles, was das BMS vom Marktüblichen unterscheidet, ist in SW auf einem ESP32 implementiert, der auch BT, WLAN ( RFU ), CAN und USB Schnittstellen bietet.
Die Schnittstellen sind nicht galvanisch getrennt.
In einem "produktiven" System sollte man ohne externe galvanische Trennung an USB nur einen Laptop anschließen
Die CAN-Schnittstelle ist für den "produktiven" Einsatz gedacht und sollte, weil das BMS im Pluspfad trennt, bei einem vernünftigen Systemaufbau durch die weite Common-Festigkeit von +-42 V ausreichend Robustheit gewährleisten.
Das passive Balancing mit bis zu 180 mA bei insgesamt maximal 4 W Verlustleistung wird auf HW-Ebene auch durch das AFE-IC gesteuert, damit die Zellspannungsmessungen nicht durch Balancingaktivität gestört werden.
Warum "nur" 180 mA bei meinem BMS auch bei 280 Ah Zellen völlig ausreichen, wird hoffentlich weiter unten klar.
Auf der Steuerplatine "M1" ist ansonsten im Grunde nur noch ein Hilfsspannungsnetzteil, dass 5 V bzw. 3.3 V erzeugt.
Das AFE-IC kann 4 externe Temperatursensoren anbinden, eine Erweiterungplatine mit weiteren 14 Temperatursensoren wartet als Muster auf Inbetriebnahme.
-> Option für Einzelzelltemperaturüberwachung
Diese Zusatzplatine würde auch optional ein großes 48V Relais/Schütz treiben können, sowie ein Heizpad.

( Steuerplatine im Pack verbaut, die meisten Kabel aber noch nicht gesteckt )
Die Steuerplatine muss in ummittelbarer Nähe zum Shunt verbaut werden und sitzt bei mir typischerweise direkt darüber.

2 „Gefällt mir“

Das BMS ist bzgl. Stromtragfähigkeit modular aufgebaut.
Der high-side MOSFET-Schalter "H" und der low side Shunt "L" sind zur Zeit auf jeweils eigener Platine und können damit je nach Bedarf gewählt werden.
Die selbe Steuerplatine könnte also grundsätzlich Batterien mit Dauerströmen von 10 A bis > 1000 A verwalten.
Die Shuntwiderstände kann man fast beliebig wählen.

( Stromshunt-Leiterkarte )
Für Dauerströme bis ~ 100 A ist 400 uOhm ein guter Kompromiss zwischen Verlustleistung und Messgenauigkeit.
Die Platine wird vorzugsweise direkt auf einer 280 Ah Zelle verschraubt. Das ist aber kein Muss.

( Stromshunt-Leiterkarte verschraubt auf Zelle )
Bei der aktuellen MOSFET-Schalter-HW, die direkt auf 280 Ah Zellen paßt, komme ich doppelseitig bestückt bis auf ~ 500 uOhm @ 25°C runter.

( Leiterkarte MOSFET-Schalter )

( MOSFET-Schalter verschraubt auf Zelle )
Ohne besondere Kühlung sollten dauerhaft also auch nicht mehr als ~ 100 A fließen.
Das läßt sich aber durch mehr parallele FETs und/oder bessere Kühlung praktisch beliebig skalieren.
Der MOSFET-Schalter bietet außerdem Precharge für bis zu ~ 30000 uF und ist temperaturüberwacht.
Die Eigenleistungsaufnahme liegt
ohne CAN-HW mit ausgeschaltetem Funk bei ~ 150 mW
mit CAN-HW mit ausgeschaltetem Funk bei ~ 200 mW
mit CAN-HW und aktiver BT Verbindung bei ~ 300 mW
mit aktiver CAN-Verbingung und aktiver BT Verbindung bei ~ 400 mW

3 „Gefällt mir“

Zu den Besonderheiten der SW hier eine stichpunktartige Zusammenfassung:
Zell(verbinder)widerstandsschätzung ( typischerweise auf Basis des Strom-Ripple eines angeschlossenen Wechselrichters z.B. 100 Hz bei einem 1ph WR ):
-> Überwachung der Zellverbinder
-> grundsätzlich könnte man die Auswertlogik auch erweitern, um z.B. R_IONIC aus längeren Lastsprüngen zu schätzen.
Hier Beispiele von zwei Packs :

( DC-Zell(verbinder)-Widerstände Pack A )

( DC-Zell(verbinder)-Widerstände Pack D )
Gemessen wird hier jeweils die Summe aus DC-Zellinnenwiderstand, zwei Kontaktübergängen und einem Zellverbinder ( bis auf Zelle 1 )
In den Messungen zu Zellen 5 und 13 erkennt man die ~ 50 cm langen Kabelverbindungen zwischen Zelle 4 und 5 bzw. Zelle 12 und 13.
In den Messungen zu Zellen 9 erkennt man die ~ 30 cm langen Kabelverbindungen zwischen Zelle 8 und 9.
Pack "A" besteht aus "refurbished" Zelle mit etwas "abgenutzten" Polen. Insbesondere einer der Kontakte zu Zelle 8 zeigt eine deutliche Auffälligkeit.
Pack "D1" besteht aus frischen Zellen von 2023. Auch ohne den Einsatz von Pasten erreicht man hier anständige Widerstände von ~ 350 - 450 uOhm.

1 „Gefällt mir“

Synchronisierte Strom- und Spannungsmessungen ( in Kombination mit den Widerstandschätzungen ):
-> Auswertung z.B. Balancing basierend auf korrigierten ( elektrochemischen ) Zellspannungen, die nur noch minimal durch Spannungsabfälle über DC-Widerstände verfälscht sind
-> kein Fehlbalancing wegen Spannungsabfällen über unterschiedliche Widerstände
-> unterschiedliche Zellverbinder, wie hier kurze Kabel zwischen 4er Gruppen von Zellen, sind damit völlig problemlos in der Handhabung
In meinen Packs, würden über die Unterschiede von ~ 700 uOhm bereits bei 20 A Ladestrom ~ 14 mV erhöhte Zellspannungen auftreten, die ansonsten zu einem fälschlichen verfrühten Einsetzen des Balancing führen würden.
-> kaum "Rauschen" in den angezeigten Zellspannungen bei Stromripple.
Genaues Coulomb-Counting/ SOC-Schätzung inbesondere bei geringen (Ent-)ladeströmen:
-> angezeigte Stromauflösung bei 400 uOhm Shunt von 10 mA, interne Detektionsschwelle ~ 2 mA.
Selbst die Eigenstromaufnahme des BMS ist im Coulomb-Counting sichtbar!
-> bei den bisherigen Testläufen ( zum Teil mehrere Monate ohne SOC-Rekalibierung, keine großen Temperaturschwankungen der Elektronik, Ströme je BMS praktisch nie über 40A, fast immer < 10 A ) lagen die Abweichung typischerweise bei < 0.1% der gemessenen Ladungsmenge, also z.B. bei 2000Ah Gesamtladungsmenge ein Fehler von 2 Ah.
-> Vorbereitet dafür, durch Steuerung des WR einen definierten SOC-Bereich zu nutzen.

Dieser Screenshot ist kurz vor Ende eines der längsten Test zur SOC-Genauigkeit, die ich durchgeführt habe, aufgenommen.
Der Pack wurde fast 348 Tage ohne SOC-Rekalibierung genutzt. Dabei wurden > 14000 Ah (ent-/ge-)laden.
Zu dem Zeitpunkt als die ersten Zellen ( also die mit der geringsten Selbstentladung ) 3.42 V bei nur noch ~ 240 mA Restladestrom ereicht haben, schätzt das BMS den Füllstand der Batterie mit ~ -6.6 Ah ein. Es geht also fälscherlicherweise davon aus, dass noch 6.6 Ah in die Batterie reinpassen.
Eine Selbstentladungskompensation war hier ürigens noch nicht implementiert/aktiv, so dass die Tatsache, dass einigen Zellen noch deutlich Ladung fehlt, für die Beurteilung der Genauigkeit der SOC-Schätzung keine Relevanz hat.
"T_cell_max" bitte ignorieren, der Sensor war nicht an einer Zelle montiert.

2 „Gefällt mir“

Schätzung des Unterschiedes in der Selbstentladung der Zellen ( auf Basis einer Statistik der Balancingaktivität der einzelen Zellen )
-> Überwachung der Zellen
-> möglicherweise Frühwarnung vor Dendritenbildung
-> "open-loop" Balancing zur "Korrekur" unterschiedlicher Selbstentladung, so dass auch nach Wochen ohne Top-Balancing ( z.B. im Winter ) das Auseinanderlaufen der Zellen stark reduziert wird und kein aktiver Balancer benötigt wird.
-> Im nächsten Schritt könnte man dies noch weiter verfeinern, indem man zusätzlich die Unterschiede in der Coulomb-Effizienz der Zellen schätzt.

Dieses Beispiel zeigt die Balancing-Statistik eines Packs nach ~ 11 Monaten.
Auffällig ist, dass alle Zellen bis auf Zelle 3 eine erhebliche und fast identische Balancer-Aktivität zeigen.
Dies kommt daher, dass Zelle 3 eine erhöhte Selbstentladung von ~ 2.4 mA aufweist. Allen anderen Zellen muss dieser Strom zusätzlich entnommen werden, um einen gleichmäßigen Füllstand zu erhalten.
Erkennbar ist auch, dass für alle anderen Zellen eine "Selbstentladung-Emulation" von ~ 2mA aktiv ist.

1 „Gefällt mir“

Aggregation mehrere Batterien:
-> Ein BMS kann zum Master ernannt werden und aggregiert dann die Daten aller anderen Batterien am selben CAN-Bus.
-> Das Master BMS gibt die aggregierten Daten über den selben CAN-Bus zusätzlich gemäß "Pylontech" Protokoll aus. ( Bis jetzt aber in der Praxis nur an Victron Venus getestet )
Dabei kann der (Ent-)Ladestrom so geregelt werden, dass das Limit keiner Batterie verletzt wird.
Derating der (Ent-)Ladeströme für hohe/niedrige Temperaturen und bei niedrigem/hohem SOC ist ebenso eingebaut
-> Am Master-BMS kann via BT oder USB auf die aggregierten Daten oder auch die Daten aller Einzelbatterien zugegriffen werden.
-> Bei der HW Entwicklung war Kosteneffizienz ein wichtiges Kriterium, damit es kaum noch Argumente gibt große Zellen ( > 100 Ah ) unüberwacht parallel zu betreiben
-> Konzeptionell sollte das Aggregierung von 16 Packs möglich sein, praktisch getestet ist es aber erst bis 3 Packs.
In diesem Screenshot ist zu sehen, dass drei 280 Ah Packs ( hier konservativ mit je 270 Ah angenommen ) zu einem virtuellen Pack zusammengefaßt sind.

1 „Gefällt mir“

SW-Updates:
SW Updates können via USB erfolgen. Ein Update über Funk habe ich im Moment bewußt ausgeschlossen.
Grundsätzlich kann ein SW Update bei "aktiver" Batterie erfolgen.
Während des Upates kann die Batterie online bleiben und das Coulomb Counting sowie die Uhrzeit werden rekonstruiert.
Alle wesentlichen Konfigurationsparameter und ebenso Kalibrationsdaten sind natürlich persistent

GUI über BT im Chrome Browser:

  • Wenn auf einem BMS Aggregieren aktiv ist, können in der GUI entweder die Daten zur virtuelle Batterie oder die der einzelnen Packs angezeigt werden.
  • Das Verändern von kritischen Einstellungen über BT is erst nach "Authentifizierung" via Passwort möglich.
  • perspektivisch wäre es vermutlich eleganter die GUI (auch) über WLAN laufen zu lassen
    Beispiele von Screenshot der GUI sind oben bereits gezeigt.
1 „Gefällt mir“

über lan wäre besser

ich hasse diese ganze wireless geschichte

nur probleme

ich habe derzeit das diy bms von stuart pittaway das hat aber andere "probleme" zb wlan und die akku trennung kann nur über ein teures relais gelöst werden, was bei 4 packs ordentlich ins geld geht.

ich habe derzeit 2 packs es kommen bald 2 weitere dazu also 4 gesamt

jeder hat ein jk bms aber zusätzlich möchte ich ein zweites bms verbauen

kann man bei deinem bms auch nur einen shunt einsetzen zb an der sammelschiene oder braucht es das 4x und addiert dann die ströme?

das balancing klingt sehr interessant. funktioniert das auch zuverlässig woher weiß dein bms wieviel mA es den anderen zellen entnehmen soll, vielleicht hab ich das beim lesen übersehen.

Wow!! Ich verneige mich ! Doppelt.

Bitte gebt nimbus die Chance, in diesem faden weiterzuschreiben, ich mache einen getrennten faden für die Diskussion auf Dann bleibt das ganze leichter lesbar.

Hier : Vorstellung Eigenentwicklung BMS für große 16s LFP Packs - Diskussion - Balancierung - Grundlagen, Methoden, Messungen, Di - Akkudoktor Forum

1 „Gefällt mir“

Ich möchte hier Beispiele zur Coulomb Counter Genauigkeit sammeln:
Coulomb Counter Fehler ( + <=> Batterie in Wirklichkeit leerer als geschätzt, - <=> Batterie in Wirklichkeit voller als geschätzt

Pack "C1": +1.311 Ah nach ~ 90 Tagen und ~ 950 Ah Ladungstransfer

  • keine aktive Selbstentladungsangleichung

Pack "D1": ( +2.195 Ah - 5.184 Ah ) = -2.989 Ah nach ~ 90 Tagen und ~ 900 Ah Ladungstransfer

  • Die Ladung die den Zellen zur Selbstentladungsangleichung entnommen wurde, hier ~ 5.184 Ah ( 2.4 mA * 24h * 90 ), ist im Moment nicht im Coulomb Counter berücksichtigt und muss zur Beurteilung der CC-Genauigkeit subtrahiert werden

Pack "A": ( -0.820 Ah - 0.648 Ah ) = - 1.468 Ah nach ~ 90 Tagen und ~ 930 Ah Ladungstransfer

  • Die Ladung die den Zellen zur Selbstentladungsangleichung entnommen wurde, hier ~ 0.648 Ah ( 0.3 mA * 24h * 90 ), ist im Moment nicht im Coulomb Counter berücksichtigt und muss zur Beurteilung der CC-Genauigkeit subtrahiert werden

Wegen des in den Sommermonaten sehr geringen Ladungstransfers taugen diese Messungen vorwiegend zur Beurteilung des "kalendarischen" Fehlers, also eines Offset-Fehlers, und weniger zur Beurteilung des "zyklischen" Fehlern, also Nichtlinearitäten.

1 „Gefällt mir“

Nicht schlecht! Ich hatte mal die Idee eines Ultra-Primitiv Balancers: Jede Zelle bekäme einen regelbaren parallel-Widerstand, z.B. ein kräftiger MOSFET. Sobald die Zellspannung eine gewünschte Obergrenze erreichen würde, sagen wir mal 3,5V, würde der MOSFET öffnen, so dass der Ladestrom hauptsächlich nur noch durch den MOSFET fließen würde.

Oder alternativ: Kräftige 3,5V Zenerdioden parallel zu den Zellen. Ich weiß, das ist primitiv und wahrscheinlich auch naiv, aber sicherlich besser als nichts oder?

So hat man das in der Steinzeit der LiIon und LiFePO mit Einzelzellen BMS tatsächlich gemacht.

Ich hatte in den vergangenen Wochen bereits angekündigt, dass ich bei meinem BMS das Thema "Zuverlässigkeit des MOSFET-Schalters" noch im Detail betrachten wollte.
Damit habe ich jetzt begonnen und möchte hier erste Ergebnisse präsentieren.
Da auch losgelöst von meinem BMS immer mal wieder Zweifel an der Zuverlässigkeit von MOSFET-Schaltern geäußert werden, hoffe ich hiermit auch allgemein etwas zum Verständnis dessen, was im Detail beim Abschalten hoher Ströme passiert und wo dabei konkret die Probleme bestehen, beizutragen.
Um eine Chance zu haben, die folgenden Oszilloskopkurven zuordnen zu können, möchte ich zunächst ein vereinfachtes Ersatzschaltbild eines Batteriesystems zeigen:

Dabei ist als erstes wichtig, dass als härtester Abschaltfall für ein solches BMS typischerweise ein harter Kurzschluss im Lastkreis ( also z.B. im WR ) angenommen wird.
Warum das so ist, möchte ich hier und jetzt nicht im Detail ausführen, um den Rahmen nicht zu sprengen.
Die drei Bauteile links C2, R5 und L4 repräsentieren einen 16s 280 Ah Pack.
R8 stellt die Last, also hier im Beispiel z.B. einen WR mit ~ 2.5 kW Leistungsaufnahme dar.
L5 und R7 sind die Verkabelung zwischen BMS und Last
Die Bauteile in der Mitte stellen einen high-side MOSFET-Schalter stark vereinfacht dar.
Dabei ist nur der für den Discharge-Fall relevante FET gezeigt. ( Praktisch liegt natürlich in der Regel eine Parallelschaltung von ~ 10 - 20 FETs vor )
Mein aktueller Testaufbau weicht hiervon insofern noch etwas ab, als dass ich nicht an einem LFP-Pack, sondern an einer Packemulation mit low ESR Elkos ( ~ 11 mF, 1.8 mOhm) arbeite.
Dadurch ist die Induktivität im Batteriekreis im Moment deutlich kleiner als 1u.
Als Last verwende ich eine elektronische Pulslast, um mit sehr genau definierten und wiederholbaren Strompulsen testen zu können.
Mit meinem aktuellen Equipment kann ich Strompulse bis nominal ~ 300 A erzeugen. Die Induktivität im Lastkreis liegt im Moment bei ~ 1 uH.

Das folgende Bild ist mit einem 14p MOSFET-Schalter entstanden.

Die Kurven C (grün), H (pink) sind unterschiedliche Strommessmethoden ( Shunt vs Stromzangen ) des Stromes im Lastkreis, also durch L5 bzw. R7
Das starke Überschwingen auf ~ 410 A liegt daran, dass ich die Regelschleife der elektronischen Last nicht weiter optimiert habe. ( Ist hier aber nicht wirklich störend. )
Die Kurve F (grau) ist der Strom durch R6 bzw. L6 ( also der Ableitstrom der (Überspannung-)Schutzdioden U3 und U4.
Die Kurve G (hellblau) ist die Gate-Source-Spannung (Vg) des Discharge-FETs M1
Die Kurve E (lila) ist die Batteriespannung (V_bat).
Die Kurve B (rot) ist die Ausgangsspannung des BMS (V_pack).
Die Kurve D (ocker) ist die Eingangsspannung der elektronischen Last (V_load).
Der wesentliche Teil des Abschaltvorgangs findet zwischen den Zweitpunkten t1 und t5 statt.
Bei t1 ist die Kurzschlusstrom-Abschaltschwelle des BMS ( hier zu Testzwecken ~ 153 A ) erreicht. (siehe Laststrom, pink/grün)
Bis t2 also ~12 us dauert die interne Verarbeitung im BMS und die FETs werden nun entladen. (siehe V_gs, hellblau)
Erst bei t3, also weitere 13 us später ist die Gate-Source Spannung soweit abgesunken, dass die FETs den aktuellen Laststrom von hier ~ 320 A nicht mehr durchleiten können.
Die Induktivität im Lastkreis zieht nun die Ausgangsspannung des BMS (V_pack, rot) "langsam" runter.
Bei t4 durchschreitet die Ausgangsspannung des BMS (V_pack, rot) die Nulllinie.
Um diesen Zeitpunkt ist die Belastung für die FETs am größten, weil durch die hohe Spannung ( hier ~ 60 V) und den hohen Strom ( hier ~ 150 A ) eine hohe Verlustleistugn ( hier ~ 9 kW ) entsteht.
Es dauert noch etwas länger ( etwa bis t5 ) bis der Strom durch den FET nahezu null ist.
Dass dies bei t5 fast erfüllt ist, kann man indirekt daraus ableiten, dass fast der ganze Laststrom (pink) nun von der Schutzdiode (U4) (grau) getragen wird.
Wichtig, weil bei es bei einem realen Pack mit viel höherer Induktiviät im Batteriekreis viel dramatischer wird, ist der Spannungsanstieg der Batteriespannung V_bat (lila) rund um den Zweitpunkt t4 durch die hohe Stromabfallgeschwindigkeit. ( siehe Bild weiter unten )
Bei einem realen Pack und höheren Strömen kommt es hier zu einer massiven Überspannung bis ~130 V, die zunächst von der Diode U3 und im worst-case dann auch durch Avalanche-Breakdown des FETs abgeführt wird.

Da das gezeigte Beispiel nun doch ziemlich zivilisiert aussieht, stellt sich natürlich die Frage, wo denn eigentlich das Problem ist?
Zum einen ist das worst-case Setup deutlich herausfordernder: Die Induktivität im Batteriekreis sollte man bis mindestens 2 uH annehmen, die Induktivität im Lastkreis bis 5 uH ( <=> ~ 4-5 m induktionsarme Verkabelung ). Also etwas so:

Bei einem extrem harten Kurzschluss wird der Abschaltstrom bei ~ 1000 A liegen.
( Die > 5000A, die andere Leute als Kurzschlusstrom für einen solchen LFP Pack aufgezeigt haben, können hier nicht entstehen, weil der MOSFET-Schalter zu schnell abschaltet.
Das ist auch einer der ganz wesentlichen Vorteile eines Halbleiterschalters gegenüber einem elektromechanischen Schalter oder einer Sicherung)
Bei 1000A wird die kurzeitige Verlustleistung in den FETs im bereich 50 - 100 kW liegen.
Moderne FETs, die eigentlich für das Schalten innerhalb von 10 - 100 ns in Schaltnetzteilen optimiert sind,
reagieren auf solche hohen Verlustleistung über ausgedehnte Zeitskalen sehr empfindlich und fallen im Zweifelsfall mit Kurzschluss aus.
Deswegen findet sich in den Datenblättern ein SOA (safe operating area )-Diagramm.
Ein FET, von denen in einem typischen BMS 10 - 20 Stück parallel verbaut sind, kann bei 100V ~100A also ~10kW für 10 us ab, wenn er zuvor nicht wärmer als 25 degC war.
Weil die Stromaufteilung während des Abschaltens in der Parallelschaltung nicht ideal gleichmäßig ist und die FETs im wost-case bereits > 100degC vor dem Abschaltvorgang haben, benötigt man zudem eine deutliche Reserve gegen die theoretische Summe.
Viel weniger als 20 FETs mit jeweils 100A also zusammen 2000A dürften es für das worst-case Setup von oben also nicht sein.
Den eigentlichen Abschaltvorgang deutlich schneller ( z.B. ~ 1 us ) ablaufen zu lassen, ist nur eine scheinbare Lösung, weil die induktiven Spikes dann noch viel intensiver werden, als dass bei ~ 10 - 20 us sowieso schon der Fall sein wird. Der Aufwand, den man dann in Überspannungsschutz ( Dioden und/oder Snubber Kondensatoren ) stecken müßte, steckt man besser in mehr parallele FETs, weil man davon auch im Normalbetrieb noch einen Vorteil ( geringere Verlustleistung ) hat.
Wenn 20 FETs zusammen theoretisch ( 100V * 2000 A * 10 us = 2 J ) beim Abschalten aufnehmen können, aber in den Induktivitäten bis zu 1/2 * (2uH + 7uH) * (1000A)^2 = 3.5 J gespeichert sind, ist sowieso klar, dass der größte Teil der Energie in die Schutzdioden umgeleitet werden muss.
Solche Dioden haben den Vorteil deutlich robuster gegenüber solchen Verlustleistungimpulsen zu sein, können also pro Halbleiterfläche ( und damit grob Bauteilkosten ) deutlich mehr Energie aufnehmen.
Dass das Abschalten in Form und Zeitskala so erfolgt, wie oben gezeigt, ist nichts, was sich natürlich ergibt, sondern muss durch Schaltungsdimensionieren "erzwungen" werden.
Mit der aktuellen Messreihe habe ich meinen MOSFET-Schalter soweit optimiert ( unter anderem auch durch ein paar zusätzliche Bauteile ) dass ich durch Dimensionierung der Bauteile
die Phasen t2->t3, t3->t4 und t4->t5 weitestgehend unabhängig optimieren kann. Dies ist wichtig, damit ich zukünftig auch bei Verwendung anderer FET-Typen mit leicht anderen Eigenschaften das Verhalten bei einem bestehenden Layout durch Umdimensionieren von passiven Bauteilen justieren kann.
Tests mit Strömen in der Größenordnung 1000A werden mit der nächsten Revision und einem erweiteren Test-Setup folgen.
Ich plane auch einen bewußt unterdimenionierten Schalter ( nur wenige FETs bestückt ) bis zur Zerstörung zu testen, um praktisches Feedback zur Reserve zu erhalten.

Ich möchte jetzt noch einige Erkenntisse aus den bisherigen Tests zusammenfassen:
1.) Ich bin von der Genauigkeit der Überstromschwellen erstaunt.
Im Moment kann ich die Stufen 25 A, 51 A, 101 A, 152 A, 203 A und 253 A testen.
Bei 51 A erhalte ich bei Pulsen mit nominal 51 A praktisch kaum ein Auslösen, bei 52 A praktisch immer.
Bei 152 A erhalte ich bei Pulsen mit nominal 154 A praktisch kaum ein Auslösen, bei 156 A praktisch immer.
Bei 253 A erhalte ich bei Pulsen mit nominal 258 A praktisch kaum ein Auslösen, bei 260 A praktisch immer.
Da die absolute Genauigkeit meiner Strommessung bei solch schnellen Pulsen einen Fehler von mindestens 1 % hat, sind die Abweichung grob im Bereich der Messtoleranzen.
2.) Der maximale Strompuls bei einem harten Kurzschluss an einem 16 280Ah LFP Pack wird kaum durch die nominale Dauerstromtragfähigkeit des BMS beeinflußt.
Ein 100 A BMS müßte hier streng genommen also eigentlich die gleiche Robustheit gegenüber einem solchen Fall haben, wie ein 200A BMS.
Offensichtlicherweise ist das aber nicht realistisch.
Wenn man jeweils mehrere 280 Ah Zellen parallel schaltet und daraus einen 16s Pack aufbaut, steigt die Höhe des Strompulses bei einem harten Kurzschluss im Vergleich zum 1p Fall im worst-case deutlich an.
Es wird hier früher oder später ein Punkt erreicht, an dem wohl auch ein typisches 200A BMS an seine Grenzen kommen wird.
3.) Das Abschalten von nominalen Lastströmen ( ~ 200 A) ist für einen solchen MOSFET-Schalter ein völlig harmloses Szenario.
Im Gegensatz zu einem mechanischen Schalter könnte ein MOSFET-Schalter solche Abschaltvorgänge in praktsich beliebiger Anzahl leisten.
Allerdings inbesondere für den Fall der Abschaltung von Ladeströmen könnte es sein, dass angeschlossen Geräte, wie WR oder Laderegler, mit dem dann lastseitigen Überspannungspuls Probleme bekommen, so dass ich so etwas nicht ohne Not provozieren würde.
4.) Die batterieseitige Induktivität ist tendenziell problematischer als die Induktivität im Lastkreis, weil es deutlich aufwändiger ist, den Überspannungspuls, der dabei batterieseitig entsteht, unschädlich zu machen, als den Unterspannungspuls, der lastseitig entsteht.
Bei der Abschaltung von Ladeströmen tauchen die Pulse zwar jeweils auf den anderen Seite auf, die Tatsache, dass die angenommene maximale Höhe der Strompulse für den Ladefall aber um mindestens den Faktor 2 geringer ist, sorgt dafür, dass dieser Fall in der Regel unproblematischer ist.
-> Ein BMS sollte also immer möglichst induktionsarm an den Pack angebunden werden, also mit möglichst kurzen Kabeln, die eine möglichst kleine Fläche zwischen Plus und Minus aufspannen.
Darüberhinaus sollte natürlich auch die lastseitige Verkabelung so induktionsarm wie möglich erfolgen, also Plus- und Minus-Leitung immer nahe beieinander führen.

1 „Gefällt mir“

Um den Einfluß der Induktivität im Batteriekreis zu veranschaulichen hier noch eine Oszilloskopaufnahme mit ~ 1 uH ( je ~1m Kabel für Plus und Minus ) zwischen der Batterieemulation und dem BMS.

In der lila Kurve erkennt man zwei "Hügel" ( der erste bis etwa 74V ), die mit den besonders steilen Phasen in der Stromkurve ( pink/grün) korrelieren.
Zu dem ersten Hügel erkennt man in der grauen Stromkurve einen kleinen negativen Puls der angibt, dass die batterieseitige Überspannungsschutz-Diode U3 beginnt zu leiten.

Es gibt einige Updates zum MOSFET-Schalter meines BMS:

Von der Variante für die Montage direkt auf den 280Ah-Zellen habe ich Muster des MOSFET-Schalters mit optimiertem Abschalt-Timing bestückt:

Meine elektronische Pulslast hat ein HW-Update bekommen und kann nun bei bis zu 60 V Strompulse bis ~ 1200 A erzeugen, also eine Pulsleistung von > 70 kW.
Damit habe ich in den letzten Tagen den optimierten MOSFET-Schalter getestet.

Das folgende Bild ist mit einem 18p bestückten MOSFET-Schalter entstanden.
Die Abschaltschwelle war dabei im BMS auf ~ 512 A konfiguriert, also ein Wert wie man ihn für ein BMS der 150 A - 200 A Klasse verwenden würde.
Die batterieseitige und lastseitige Induktivität war dabei jeweils ~ 1.5 uH. ( Tests mit mehr Induktivität werden noch folgen )
Es wurde mit einer Batteriemulation aus 48 low-ESR Elkos gearbeitet.

Die Kurve C (grün) ist der Strom im Lastkreis, also durch L5 bzw. R7
Das Oszi zeigt hier die 20fach verstärkte Spannung über einen ~135 uOhm Shunt.
Die Messung wurde bei geringeren Strömen mit einer Stromzange, die bei ~ 700 A in Sättigung geht, kalibriert und kann auch über die Skala von H (pink) 1 V = 1 A abgelesen werden.

Die Kurve F (grau) ist der Strom durch R6 bzw. L6 ( also der kombinierte Ableitstrom der (Überspannung-)Schutzdioden U3 und U4. 1V <=> 1 A
Die Kurve G (hellblau) ist die Gate-Source-Spannung (Vg) der Discharge-FETs M1
Die Kurve E (lila) ist die Batteriespannung (V_bat).
Die Kurve B (rot) ist die Ausgangsspannung des BMS (V_pack).

(hier zum besseren Verständnis der Beschreibung erneut eingefügt: )

Der Lastseitige Strom steigt in ~ 70 us von ~ 40 A auf ~ 1050 A. Die Spannung am BMS ( Kurve E (lila) und Kurve B (rot) ) bricht dabei wegen der batterieseitigen Induktivität um ~ 26 V ein

Vom Erreichen der Stromabschaltschwelle ( ~ 512 A ) dauert es ~ 25 us bis die Entladung des Gates der Discharge-FETs M1 beginnt.
Bis zum Erreichen des Miller-Plateaus der FETs dauert es < 5 us. Im Anschluss beginnen die FETs zu sperren.
Der Bereich, in dem die FETs von leitend zu sperrend wechseln, ist mit den Zeit-Markern abgegrenzt und dauert ~ 10 us

Wegen der Induktivitäten kann der Strom im Batterie- und Lastkreis nicht so abrupt stoppen.
Dies erkennt man daran, dass
a) die batterieseitige Spannung, Kurve E (lila), nur durch U5 begrenzt kurzzeitig auf fast 85 V hochschnellt. Dadurch klingt der Stromfluss im Batteriekreis in ~ 50 us ab.
b) die lastseitige Spannung fällt auf bis zu ~ - 10 V da der Strom nun durch U6 getragen wird. Wegen der viel geringeren Spannung dauert es ~ 600 us bis der lastseitige Strom abgeklungen ist.
c) Die durch die unterschiedliche Abklingrate zunehmende Differenz der Ströme durch U5 und U6 sieht man in Kurve F (grau)
Wegen leichtem Skalierungsfehler und beginnender Sättigung der Stromzange treffen sich Kurve C (grün) und Kurve F (grau) nicht wie eigentlich erwartet an einem Punkt um dann deckungsgleich abzuklingen, sondern konvergieren nur langsam.

Die Optimierungen zur älteren HW-Revision sind abgesehen von den nun viel höheren Testströmen ( ~1000 A vs ~320 A ) subtil aber wichtig.
Die Zeitspanne für die die Gatespannung, Kurve G (hellblau), im Übergangsbereich ( <= 10 V, >= 1 V ) liegt, hat sich von etwa 40 us auf 20 us halbiert und sieht nun genauso aus, wie ich sie haben wollte.
Das Sperren der FETs wird dadurch "härter" und minimiert die Belastung der FETs. Mit der älteren HW-Revision hätten die FETs wegen suboptimalem Verlauf der Gatespannung bei so hohen Strömen viel länger noch einen Teil des Stroms getragen und damit die FETs unnötig belastet.

Von solchen Abschalttests habe ich nicht nur einige wenige, sondern > 1000 durchgeführt.

Mit diesem Verhalten bin ich nun sehr zufrieden und werde mit dieser Dimensionierung in den nächsten Wochen nun die Variante mit integriertem Shunt und bis zu 24p FETs zur abgesetzten Montage bestücken und testen.