Durch den Open Source BMS Thread motiviert möchte ich mal eine weitere BMS Variante vorstellen.
Ich nenne es Flying ADC BMS, da ein 1-Kanal ADC quasi schwimmend gelagert hinter einem diskret aufgebauten Multiplexer sitzt.
https://openinverter.org/wiki/16-cell_BMS
Das dürfte ungefähr mein 10. BMS Design sein, also viele "Lessons learned" aus den Vorprojekten.
Großes Augenmerk habe ich deswegen auf 0 Standby-Verbrauch gelegt sowie auf symmetrische Belastung der Zellen. Nicht, dass das BMS mehr Schaden als Nutzen anrichtet, wie in so manchem E-Scooter BMS...
Das Projekt ist so halb Open Source. Die Software ist GPL v3 und hier gehostet: https://github.com/jsphuebner/FlyingAdcBms . Die Hardware habe ich erstmal nicht veröffentlicht, da ich einen kleinen Shop betreibe und es relativ schnell Trittbrettfahrer auf den Plan ruft, wenn man quasi nur bei JLCPCB auf Bestellen klicken muss...
Das Design vereint High Level (Master) und Lowlevel (Zellmessung) auf einer Platine. Wenn man eh nur 16 Zellen hat, langt eine Platine. Wenn es mehr werden, kann man theoretisch beliebig kaskadieren (momentan sind 8 Platinen insgesamt möglich). Es gibt eine Enable-Kette und das erste Modul in der Kette ist immer Master.
Es gibt lediglich CAN Kommunikation, keine Relais-Ausgänge oder ähnliches. Es wird fast die gesamte übliche Palette an Werten geliefert, also Stromlimits für Laden und Entladen, SoC, SoH, Min/Max/Avg/Delta. Innenwiderstand fehlt noch.
Die Zellspannungen werden mit einem MCP3421 gemessen, der bis zu 18 Bit auflösen kann (dann aber seeehr langsam ist - also 14 Bit).
Da dieser mit einen DC/DC Wandler galvanisch getrennt ist, ergab sich quasi im Vorbeigehen ein ganz nettes Feature: der Strom des DC/DC-Wandlers kann in die gerade eingemuxte Zelle geleitet werden. So muss man z.B. nicht 95 Zellen entladen, weil eine 20 mV zu tief ist.
Das Balancing, ist so wie bei BEV OEMs äußerst minimalistisch ausgelegt. Gute Zellen driften einfach kaum auseinander. Eine schwache Zelle kann mit ca. 50 mA nachgeladen werden und eine zu hohe mit ca. 100 mA entladen werden. Wohlgemerkt nacheinander, weil ja von 16 immer nur eine verbunden ist.
Im ausgeschalteten Zustand ist das BMS Verpolungssicher bis 200V, da ja zunächst mal keine Spannung an den FETs vorbeikommt. Beim Einschalten unternehme ich den Versuch, Überspannung und Verpolung rechtzeitig zu erkennen, bevor was in Rauch aufgeht, aber da stehen destruktive Tests noch aus.
Anbei noch der Schaltplan. Verbesserungsvorschläge immer willkommen, auch an der Software
schematic.pdf (221,8 KB)