Hi.
Ich arbeite gerade (mal wieder) intensiv am Balancer-Modul und der Einzelzell-Überwachung. Diesbezüglich und zur genaueren Erläuterung des Problems möchte ich hier mal eben einen Dialog zwischen Matthias und mir wiedergeben.
Matthias fragte:
Nochmal zum mitschreiben.
Was genau muss bei den einzelnen Blöcken nochmal überwacht werden? Das die Spannung bei jedem einzelnen nicht zu hoch wird?Falls ja, hast dus schon mal mit einer Zener-Diode probiert?
Meine Antwort darauf:
Das sie nicht zu hoch und nicht zu niedrig wird, ausserdem müssen die Zellen gegeneinander „ge-balanced“ werden (Stichwort: BMS, Balancer). Dh., unterm Strich braucht man eine permanente Anzeige der Spannungen der einzelnen Zellen.
Zener-Diode ist ein möglicher Weg, um eine Überspannung hardwaremässig bzw. analog zu verhindern, das reicht hier aber nicht bzw. die Überwachung und Steuerung soll digital, d.h. über Mikrocontroller erfolgen. Soweit so gut, das Problem an dem ich knabbere dreht sich nur darum, wie man die Einzelzell-Überwachung am besten technisch realisieren kann. Normalerweise liest man Spannungen am Arduino-ADC über einen Spannungsteiler ein. Das geht auch bei mehreren Zellen, über mehrere Spannungsteiler.
Allerdings hast Du hier dann das Problem, das alle messungen sich auf den gemeinsamen GND des Arduino beziehen, d.h., Du misst entlang der Zellen 3.2V, 6.4V, 9.6V, usw. und ermittelst dann durch Subtraktion den Einzelzellwert. Damit wird die Messung entlang der Zellen aber immer ungenauer; bei der untersten Zelle bildest Du eine Spannung von 3.3V mit einer Auflösung von 10Bit=1024 ab, bei der obersten (von vier) zellen sind es schon 12.8V, geteilt durch 1024. Bei einer Anwendung wie Pedelec (36V) oder Elektroauto (72V oder gar 96V) werden es dann noch mehr bzw. wird die Ungenauigkeit noch größer.
Und was aus meiner Sicht noch schlimmer ist: Die unterste Zelle „sieht“ nur ihren Spannungsteiler bzw. verballert Strom darüber. Die nächste zelle verbrät Strom über sowohl ihren als auch über den Spannungsteiler der untersten zelle. Die nächste zelle sieht sowohl ihren, als auch die beiden darunterliegenden Spannungsteiler, usw. Auch wenn das zunächst jeweils nur wenige Millivolt sind, summiert sich das doch über die zeit rasch auf, was bei einer Akuanwendung eh unerwünscht bzw. fatal ist, aber am schlimmsten dabei ist, dass Du die zellen dann sehr ungleichmässig bzw. unterschiedlich entlädst und damit erst recht und gezielt aus dem Gleichgewicht bringst bzw. sie „de-balanced“. Bei allen Lithium-Akkus ist das balancen aber sozusagen kriegsentscheidend: Wenn die Zellen zu stark auseinander „driften“ besteht nicht nur die Möglichkeit, daass der Akku zerstört wird, sondern er kann sogar explodieren. Und hier gehts nicht nur um kleine handy-Akkus, sondern zB. um fette Solarspeicher für Haus-Photovoltiok-Analage, mit einem zig-fach höheren Energiegehalt, das ist dann wahrlich kein Spass mehr, wenn so ein teil hochgeht sondern eher ne Art Hiroshima-Bombe.
Der eleganteste Weg, um die Messung zu machen, wäre differentiell zu messen, also zwischen den jeweiligen zellen, so wie mit nem Multimeter von Hand, und stets nur 3.2V. Das macht man mit Op-Amp und Comparator, aber es ist halt technisch anspruchsvoll und übersteigt meinen elektrotechnischen Horizont um etliche Kilometer. Ich hatte aber dennoch eine Chance darin gesehen, das mit nem ADC, wie zB. dem MCP3208 machen zu können und habs ausprobiert. Es ging dann zwar, die einzelnen 3.2V-Werte zu messen, aber ab der zweiten Zelle überstieg die Zellspannung mit 6.4V die zulässige Höchstgrenze des ADCs von 5.5V. Um das festzustellen hab ich drei Stück von den Dingern durchgebraten > > die genaue Beschreibung dieses Ansatzes findest Du hier: > Akku Einzelzellenüberwachung mit MCP3208 differentiell ? - Mikrocontroller.net
Und hier: > https://discourse.test.opensourceecology.de/t/solarbox-powerbank-prototyp-v-01/560/1
Hier nochmal der Schaltplan von dem differential-Ansatz (auch wenn der so nich funktioniert hat, aber zum besseren Verständniss):
Mein aktueller Ansatz besteht nun darin, die jeweilige Messleitung bzw. die Spannungsteiler-Widerstände nun doch nicht differentiell, sondern gegen einen gemeinsamen GND zu messen und sie dafür aber elektronisch an- und abschaltbar zu machen, so dass über sie nicht permanent Strom verbraten wird, sondern nur für einen kurzen Sekundenbruchteil während der messung einer jeweiligen zelle. Sieht so aus, als könnte das funktionieren, zumindest hab ich gestern damit zum ersten mal eine zelle bzw. deren messung gzeielt an und ab geschaltet und ausserdem zum ersten mal einen Balance-Vorgang durchgeführt. ich evaluiere das derzeit noch, aber es könnte so gehen.
Ich werde weiter dazu berichten …
Gruss, Oliver