Hi!
Für ein kommendes Projekt möchte ich ein Batteriemanagement System für
einen Lithium Akku bauen. Dazu habe ich noch ein paar Fragen.
Der Akku wird vorraussichtlich ein 24S6P aus 18650er Zellen.
1. Frage zur "Architektur":
Meine erste Überlegung war es, Module für jeweils 8 Zellen zu bauen,
bestehend aus einem Analog Multiplexer mit 8 Kanälen, 16Bit AD-Wandler,
L etc.. Diese messen nur die Zellspannung und steuern die
Lastwiderstände.
Diese Module werden dann über UART/SPI/etc. mit einem "Master Modul"
verbunden, dass den Strom misst, SOC Bestimmung übernimmt, usw..
Hier im Chat meinte aber jemand, dass das nicht so sinnvoll ist und man
lieber einen Controller pro Zelle nehmen sollte.
Das hätte folgende Vorteile:
- Einfache Stromversorgung
- beliebig skalierbar
- integrierte Referenz und ADC
- Lastwiderstände einfacher schaltbar
Allerdings sehe ich dabei folgende Nachteile:
- Kommunikation recht kompliziert, viele Optokoppler nötig (mindestens
zwei pro Controller)
Was meint ihr? Was macht mehr Sinn?
2. Frage zur Dimensionierung der Lastwiderstände:
Falls während dem Laden eine Zelle die Ladeschlussspannung erreicht muss
dringend verhindert werden, dass diese weiter geladen wird. Dazu werden
üblicherweise Lastwiderstände paralell zu den Zellen geschaltet, und mit
Transistoren gesteuert.
Dimensionierung: Die Widerstände müssen ja nicht den kompletten
Ladestrom verheizen können, da das Verheizen der Ladeleistung nur im
letzten Stadium der CC/CV Ladung nötig werden könnte.
Mit welchen Leistungen kann man da rechnen? Reichen 0,25W?
Man weiss ja sowohl den aktuellen Ladestrom als auch welchen Strom die
Widerstände aufnehmen können. Könnte man das Batteriepack vom Ladegerät
trennen wenn deutlich wird, dass die Ladeleistung nicht verheizt werden
kann und dadurch die Zellenspannung zu hoch wird?
3. Was passiert wenn nur ein Teil der maximalen Leistung im Widerstand
verheizt werden muss? Kann man die verheizte Leistung einfach per PWM
einstellen? Gibt das nicht eventuell Probleme mit der Regelung der
Schaltregler im Ladegerät?
Wie bestimme ich das Tastverhältnis der PWM? So:?
(AktuellerLadestrom)/(MaximalerStromImWiderstand)=Tastverhältnis
Oder muss man das irgendwie regeln? Überschwinger in der Spannung wären
uncool.
Danke schonmal im Vorraus fürs durchlesen und euren Input!
Grüße!
René Z. schrieb:> Ich schlage dir jetzt mal den LTC6804 vor. Der taugt!
Danke für deine Antwort!
Beschaffbarkeit ist aber eher suboptimal. Möchte ausserdem mal so ein
Teil von grund auf entwickeln. Natürlich lernt man mit dem IC auch was,
aber ich denke andersherum ist der Lerneffekt größer...
Grüße!
Mike Litoris schrieb:> Beschaffbarkeit ist aber eher suboptimal. Möchte ausserdem mal so ein> Teil von grund auf entwickeln. Natürlich lernt man mit dem IC auch was,> aber ich denke andersherum ist der Lerneffekt größer...
Baust du den µC auch aus Einzeltransistoren auf weil da der Lerneffekt
größer ist?
Den fast gleichen LTC6802 gibts bei Farnell bzw. im HBE-Shop.
Zugegebenermaßen ist der nicht ganz preiswert. Allerdings etwas
ähnliches aus Einzelteilen zusammen zu bauen wird wohl auch nicht
weniger kosten. Auf alle Fälle nicht, wenn man auf ähnliche Genauigkeit
und Ruheströme kommen will. Zum Lernen gibt es bei diesem Chip auch
genügend, dass weiß ich aus eigener Erfahrung.
Eine andere Alternative ist ein fertiges China-Board:
https://bmsbattery.com/80-smart-BMS
Da ist ein OZ890 drauf, den man in der freien Wildbahn wohl auch nicht
bekommt. Dieser Chip ist ähnlich wie der LTC6802(4), hat aber einen
Controller mit an Board, so dass er auch ohne µC arbeiten kann. Man kann
ihn aber über I2C auch so benutzen wie die Linear-Chips. Das hat auch
genügend Potential um was dabei zu lernen.
Mike Litoris schrieb:> Das hätte folgende Vorteile:> - Einfache Stromversorgung> - beliebig skalierbar> - integrierte Referenz und ADC> - Lastwiderstände einfacher schaltbar>> Allerdings sehe ich dabei folgende Nachteile:> - Kommunikation recht kompliziert, viele Optokoppler nötig (mindestens> zwei pro Controller)
Die Variante mit mehreren Controllern macht aber bei so kleinen Akkus
kaum Sinn. Bei den großen LiFePo4 Zellen (>=40Ah) sieht das schon anders
aus. Optokoppler sind überhaupt nicht nötig in dieser Variante. Da
reicht ein simpler Transistor in Basisschaltung um vom TX des einen
Controllers ein Leveshifting zum RX des drüberliegenden zu machen. Am
oberen Ende der Kette ist dann ein Optokoppler sinnvoll. Der ideale
Controller dafür dürfte aktuell der ATTiny841 sein, weil er anders als
die anderen Tinys eine vollwertige UART an Board hat. Kostet bei Farnell
knapp 90Cent. Alles in allem dürfte das Ganze 12mal aufgebaut auch auf
die Kosten für den LTC680x kommen. Dabei gibt es aber noch zu bedenken,
dass jedes dieser Module kalibriert werden muss, da die interne Referenz
sicher Spannungs- und Temperaturstabiel genug ist, aber die absolute
Höhe der Referenzspannung zu sehr streut.
Frederik schrieb:> Wie kann ich dir in PVT kontaktieren ?
PVT?
bianchifan schrieb:> 100V ?? Im Ernst??
Ja. Ist kein Fahrzeug für Lutscher.
temp schrieb:> Baust du den µC auch aus Einzeltransistoren auf weil da der Lerneffekt> größer ist?
Nein, man muss nicht alles wissen. BMS interessiert mich aber, von daher
wäre das schon interessant.
temp schrieb:> en fast gleichen LTC6802 gibts bei Farnell bzw. im HBE-Shop.
OKok, ich schaus mir nochmal an...
Hat jemand auf die anderen Fragen bzgl. den Lastwiderständen eine
Antwort?
Mike Litoris schrieb:> Hat jemand auf die anderen Fragen bzgl. den Lastwiderständen eine> Antwort?
Ich kenne es so, dass man ein aktives Ballancing während des
Ladevorgangs macht, d.h. dass bereits während des Ladens ein Teil des
Stromes an gewissen Zellen vorbeigeleitet wird. Damit braucht es
kleinere Widerstände.
Naja, und man muß eben aufhören, wenn die erste Zelle die
Ladeschlußspannung erreicht. Aber nach mehreren Ladezyklen sollte sich
das Niveau der Zellen einander angleichen.
Allerdings kenne ich es nur aus den Weiten des Internets und habe es
bisher nicht praktisch umgesetzt.
Ich würde nicht den LTC68XX nehmen... Die Dinger sind so dermassen
empfindlich und zickig was die Kommunikation angeht. Ich habe bisher
noch nie einen IC gesehen, der so viele Probleme macht. Die interne ESD
Schutzschaltung ist ein Witz. (Und nein ich habe die Dinger nicht bei
niedriger Luftfeuchtigkeit über einen Teppich gezogen, sondern immer
schön auf ESD Matte/Boden mit ESD Armband gearbeitet).
Ich würde eher den bq76PL536a verwenden. (Habe aber selbst noch nicht
damit gearbeitet)
Steffen R. schrieb:> Ich kenne es so, dass man ein aktives Ballancing während des> Ladevorgangs macht, d.h. dass bereits während des Ladens ein Teil des> Stromes an gewissen Zellen vorbeigeleitet wird. Damit braucht es> kleinere Widerstände.
Nein, meines Wissens nach nicht Stand der Technik. Tesla und sämtliche
ebikes machen das nicht.
Ist einfach zu aufwändig. Ich behaupte mal, man braucht mindestens zwei
MOSFETs pro Zelle?!?! Ein MOSFET zum entfernen der Zelle aus dem Strang
und ein MOSFET zum schließen der Lücke. Von den Verlusten brauchen wir
garnicht zu sprechen.
Andere Lösungen, wie z.B. mithilfe von Induktivitäten die Ladung von
einer Zelle zur anderen zu schieben sind viel zu kompliziert.
Beide Lösungen sind mmna ihr Geld nicht wert. Weder der gesparte Strom
noch die größeren Lastwiderstände sind teuer.
Steffen R. schrieb:> Naja, und man muß eben aufhören, wenn die erste Zelle die> Ladeschlußspannung erreicht. Aber nach mehreren Ladezyklen sollte sich> das Niveau der Zellen einander angleichen.
Genau DAS will man ja verhindern. Deswegen verbrät das BMS die Energie
für eine Zelle, sobald diese voll ist und nichts mehr aufnehmen kann.
Schmi B. schrieb:> Ich würde nicht den LTC68XX nehmen... Die Dinger sind so dermassen> empfindlich und zickig was die Kommunikation angeht. Ich habe bisher> noch nie einen IC gesehen, der so viele Probleme macht. Die interne ESD> Schutzschaltung ist ein Witz. (Und nein ich habe die Dinger nicht bei> niedriger Luftfeuchtigkeit über einen Teppich gezogen, sondern immer> schön auf ESD Matte/Boden mit ESD Armband gearbeitet).
Okay, DAS sind die Infos die ich brauche. Empfindlich klingt nicht so
als ob ich das in der Hobbywerkstatt in einem selbstgebauten Bike haben
möchte :-(
Hat jemand ähnliche Erfahrungen?
Mike Litoris schrieb:> Nein, meines Wissens nach nicht Stand der Technik. Tesla und sämtliche> ebikes machen das nicht.
OK.
> Ist einfach zu aufwändig. Ich behaupte mal, man braucht mindestens zwei> MOSFETs pro Zelle?!?! Ein MOSFET zum entfernen der Zelle aus dem Strang> und ein MOSFET zum schließen der Lücke. Von den Verlusten brauchen wir> garnicht zu sprechen.
Der Trick ist ja gerade, dass die Zelle nicht komplett vom Netz genommen
wird. Die unbalancierte Zelle ist bekannt und erhält während des
Ladevorgang ein klein wenig weniger Energie als die anderen Zellen.
Wegen der geringen Strömen wird nur eine kleine Last benötigt.
Da das Balancing bei jedem Ladevorgang und nicht erst am Ende
stattfindet, sind die Zellen eigentlich immer recht gut ausbalanciert.
(Nach ein paar ersten Ladezyklen.)
Nun gut. Wenn es da mittlerweile wieder etwas besseres gibt, werd ich
hier mal weiter mitlesen.
Steffen R. schrieb:> Mike Litoris schrieb:>> Nein, meines Wissens nach nicht Stand der Technik. Tesla und sämtliche>> ebikes machen das nicht.>> OK.
Wird allerdings im Modellbaubereich gemacht. Funktioniert auch mit recht
einfachen "dummen" Balancern, obwohl die heute in den meisten
Ladegeräten integriert sind.
> Der Trick ist ja gerade, dass die Zelle nicht komplett vom Netzgenommen> wird. Die unbalancierte Zelle ist bekannt und erhält während des> Ladevorgang ein klein wenig weniger Energie als die anderen Zellen.> Wegen der geringen Strömen wird nur eine kleine Last benötigt.
Richtig.
Und eigentlich ist das Balancieren gerade beim Laden nötig.
Lithiumzellen mögen keine Überladung. Wie kann das beim Laden verhindert
werden ohne Balancing?
Habe mir gerade auch IC's besorgt, aber würde ich das selbst bauen
wollen, so würde ich pro Zelle einen Tiny10 nehmen. Das ist dann (fast,
abgesehen vom Nerzteil) beliebig skalierbar. Der T10 kostet paar Cent,
die Programmierung ist die gleich, Updates kann man erstmal an einer
Zelle probieren.
Mir fallen da keine Nachteil ein.
mir fallen da viele Nachteile ein
MultiCPU Systeme sind sehr schwer zu beherrschen.
Fängt beim Programmieren an geht über Debuggen, Fehlererkennen und
Reaktion bis zum Fehlerreport.
Und die Ausfallhäufigkeit steigt eh mit der Komplexität.
Ist zwar machbar (hab auch schon solche Systeme in Serie gebracht)
der Aufwand ist aber sehr viel größer als bei einem SingelCPU System
Volle schrieb:> Fängt beim Programmieren an geht über Debuggen, Fehlererkennen und> Reaktion bis zum Fehlerreport.> Und die Ausfallhäufigkeit steigt eh mit der Komplexität.
Das ist nicht so schlimm, eigentlich reichen hier 3 OPVs, eine
Referenzspannungsquelle, zwei Optokoppler und etwas Hühnerfutter pro
Zelle. Dann gehts auch ganz ohne µC
Mit µC wird es etwas übersichtlicher und der Abgleich geht schneller.
Mike Litoris schrieb:> und zickig was die Kommunikation angeht
Was heisst zickig, das hört sich so an als ob das von der Tagesform
abhängig ist wie eine Frau. Wenn man sich ans Datenblatt hält geht das
perfekt. Von denen die ich verbaut habe habe ich auch hoch keinen
zerstört. ESD mässig ist in dem chip alles drin was nötig ist. Ist im
Datenblatt gut beschrieben. Wenn die kaputt gehen, machst du was falsch.
Tiny10 würde ich nicht verwenden. Schon allein weil die keine
vernünftige UART haben. Unterschätz auch nicht die Zeit bei der
Entwicklung. 24 Kontroller neu zu Programmieren ist auch nicht mal eben
so gemacht. 24 mal kalibrieren auch nicht.
Der bq76PL536a ist sicher eine Alternative, kann aber nur 6 Zellen und
in der Summe kostet es das gleiche.
Volle schrieb:> Ist zwar machbar (hab auch schon solche Systeme in Serie gebracht)> der Aufwand ist aber sehr viel größer als bei einem SingelCPU System
Dann hast du nicht richtig gelesen was ich geschrieben habe.
Du programmierst doch nur für eine Zelle. Außer dem Netzteil haben die
einzelnen Schächte doch gar nichts miteinander zu tun.
Außerdem ist das "Nerzteil" ein Netzteil. Das Handy kreiert da völlig
neue Wörter. :-)
temp schrieb:> 24 Kontroller neu zu Programmieren
Das hatte ich überlesen.
Aber gut, ich dachte sogar an jeweils eine Platine pro Schacht, wenn man
denn, wie ich ursprünglich dachte, einzelne Zellen versorgt.
So hier auch noch mein Senf. Der LTC6804 ist sehr zu empfehlen. Das
gefriemel mit Einzelzell-BMS ist wie häufig geschrieben wurde sehr
unschön. Das lässt sich nicht auf den ersten Blick erdiskutieren sondern
ist abgeleitet aus Erfahrung und Vergleich. Wenn du es gern selbst
ausprobieren möchtest: Nur zu. Dabei lernst du auf jeden Fall was
Frustrationstolleranz bedeutet^^
Bezüglich balancing kann ich nur bestätigen, dass "aktives balancing"
mit wie auch immer geartetem Ladungstransfer zwischen den Zellen zu
aufwendig ist für den Nutzen den es verspricht. Ein intelligentes BMS
benötigt für das selbe Ergebnis sowas nicht. Das "clampen" der
Ladeschlussspannung ist das einfachste/dümmste das du machen kannst. Du
hast wärend des Ladevorgangs so viel Zeit zur Verfügung, die du beim
simplen clamping Algorithmus verschenkst. Das Ziel ist eine gewisse
Differenzladungsmenge auszubalancieren. Das kannst du entweder in kurzer
Zeit am Ende der Ladung machen und viel Strom verbraten oder zu bist
schlau und lässt dir viel Zeit dafür und brauchst nur wenig Strom zu
bleeden.
Der LTC6804 kann ohne externe MOSFET zum Balancen eingesetzt werden.
Wenn du dich schlau anstellst reicht das für viele dutzend Amperstunden
Kapazität völlig aus. In den meisten Fällen rechnest du für den
Widerstand einfach nach den Maximalwerten. Für internes balancen sind
50mA als gesund anzunehmen. Bei 4,2V Ladeschluss sind 100Ohm eine gute
Wahl. Ein 0805 SMD Krümel wird sich gegen Ladeschluss dabei vielleicht
etwas quälen aber es gibt auch 250mW 0805er oder du nimmst gleich 1206.
Thor
Alex S. schrieb:> Das kannst du entweder in kurzer> Zeit am Ende der Ladung machen und viel Strom verbraten oder zu bist> schlau und lässt dir viel Zeit dafür und brauchst nur wenig Strom zu> bleeden.
Das Balancing erst am Ende zu machen widerspricht der Forderung, den
Akku möglichst nicht voll zu laden. Insofern sehe ich nur das Balancing
während des Ladens als sinnvoll an.
wird in der Praxis aber nicht gemacht
Balancing beeinflusst meist die Zellspannungsmessung
und erhöht die Temperatur der Elektronik was auch die Temperturmessung
der Zellen stören kann, wenn sie nicht weit weg ist.
Durch die Messabweichung benötigt man einen größeren Abstand zur
tatsächlichen maximalen Spannung -> weniger Ladung
Die SOC Berechnung parallel zum Laden und Balancing ist auch nicht
einfach.