Hallo zusammen, ich möchte ein Akkupack aus Li Ion Akkus für ca. 100V zusammenstellen. Natürlich möchte ich auch die einzelnen Zellenspannungen messen. Da kommt nun das Problem, wo ich Hilfe benötige. Hier im Forum wurde das Problem schon angerissen aber nicht wirklich gelöst. Mir schwebt ein STM32F3 zur Messung vor. Der hat 3 ADC mit jeweils ca. 15 Kanälen - also mehr als genug. Mit 12 Bit habe ich eine Auflösung von 4096 Schritten also bei 100V => 0,025V pro Schritt. Das find ich ein wenig zu ungenau. Also was kann man tun? Meine Lösungsideen: 1: Die Zellenspannungen über einen Multiplexer z.B. ADG406 einzeln an einen ADC Kanal (galvanisch getrennt) führen und messen. Problem: ich habe keine Multiplexer für 100V gefunden...? Ok, diskret mit FET aufbauen - aber Neuland für mich... 2: ADC mit höherer Auflösung z.B. 24Bit. Ist das beherrschbar? 3: Es gibt in der Bucht aus China ein BMS mit Bluetoth, welches die einzelnen Zellenspannungen misst. Hat jemand solch ein Ding in Funktion, wie sieht die schaltungstechnische Umsetzung aus? Gruß aus der Nacht
> Ist das beherrschbar?
Kauf dir ein vierstelliges Multimeter.
Das hat dann in positiver Richtung sogar etwas mehr als 13 bit!
Man vermisst Grundstücke ja auch nicht mit der Mikrometerschraube.
Axel H. schrieb: > Hallo zusammen, > > ich möchte ein Akkupack aus Li Ion Akkus für ca. 100V zusammenstellen. > Natürlich möchte ich auch die einzelnen Zellenspannungen messen. Da > kommt nun das Problem, wo ich Hilfe benötige. Hier im Forum wurde das > Problem schon angerissen aber nicht wirklich gelöst. Doch klar wurde das gelöst. Der Fragesteller wollte nur schlauer sein als die Profis. Für sowas gibts fertige Lösungen: https://www.analog.com/media/en/technical-documentation/data-sheets/ltc6813-1.pdf fchk
Frank K. schrieb: > Für sowas gibts fertige Lösungen: > > https://www.analog.com/media/en/technical-documentation/data-sheets/ltc6813-1.pdf > > fchk Hallo Frank vielen Dank für den Link. Den IC kannte ich noch nicht. Vom Blockschaltbild arbeitet der auch mit Multiplexer. Sehr interessant. Das ganze soll auf Standartbauteile aufbauen, die überall bestellbar sind. Klar ist der fertige IC einfach einzusetzen, aber ist halt nicht mein Lösungsansatz. Werde den Multiplex Ansatz weiter verfolgen, alternativ 16Bit ADC.
Axel H. schrieb: > Frank K. schrieb: >> Für sowas gibts fertige Lösungen: >> >> > https://www.analog.com/media/en/technical-documentation/data-sheets/ltc6813-1.pdf >> >> fchk > > Hallo Frank > > vielen Dank für den Link. Den IC kannte ich noch nicht. Vom > Blockschaltbild arbeitet der auch mit Multiplexer. Sehr interessant. > > Das ganze soll auf Standartbauteile aufbauen, die überall bestellbar > sind. > ... Im Gegensatz zu Maxim sind AD Bauteile nahezu immer und überall verfügbar. Ich wünsche dir viel Erfolg, einen hinreichend genauen ADC/Multiplexer mit 100V Spannungsfestigkeit und oder Isolation zum MuC selber und diskret zu bauen. Wobei ein 100V Pack aber mindestens einem 24S entspricht.
Axel H. schrieb: > alternativ 16Bit ADC 1. Auflösung != Genauigkeit. Überlege dir vorher was du wie genau brauchst 2. Ein genauer ADC macht noch keine genaue Messung. Denk daran dass auch der Rest (Widerstandsteiler) die Genauigkeit braucht. 3. Bedenke Dinge wie Temperaturdrift und Thermospannungen.
Axel H. schrieb: > Standartbauteile Ach, bitte nicht. > Das ganze soll auf Standartbauteile aufbauen, die überall bestellbar > sind. Dann wirds halt groß, umständlich, teuer und ungenau. Willst du die Operationsverstärker letztlich auch aus handgeschnitzten "Standard-Transistoren" zusammenfrickeln. Axel H. schrieb: > eine Auflösung von 4096 Schritten also bei 100V => 0,025V pro Schritt. > Das find ich ein wenig zu ungenau. Also was kann man tun? Weil auf diesem Signal Rauschen drauf ist, kann man mehrere Messungen mitteln und durch Oversampling noch ein (paar) Bit(s) gewinnen. Das haben einige STM32 schon in ihre ADC-Automaten eingebaut Und genauer wirds dann sowieso nicht, wenn man sich mal ehrlich in die Augen guckt und die Sache nicht bis auf 6 Nachkommastellen schönsäuft. Denn da spielen noch einige Effekte rein, die mehr als 25mV Abweichung bringen werden. Allein das mit den Widerstandstoleranzen und Übergangswiderständen und den Leckströmen und irgendwelchen Störeinkopplungen wird interessant werden. > 2: ADC mit höherer Auflösung z.B. 24Bit. Ist das beherrschbar? Da kommen bei einen Anfängerdesign auch nicht mehr als reale 14 Bits raus...
:
Bearbeitet durch Moderator
Axel H. schrieb: > vielen Dank für den Link. Den IC kannte ich noch nicht. Vom > Blockschaltbild arbeitet der auch mit Multiplexer. Sehr interessant. > > Das ganze soll auf Standartbauteile aufbauen, die überall bestellbar > sind. > Klar ist der fertige IC einfach einzusetzen, aber ist halt nicht mein > Lösungsansatz. Aha. Du meinst also auch, schlauer zu sein als die Profis, die extra spezielle Halbleiterprozesse entwickeln, um Spannungen bis 100V in den Griff zu bekommen. Das haben auch die Leute vor Dir gedacht, und niemand von denen hat eine brauchbare Lösung hervorgebracht. Die Leute meinten auch, dabei etwas zu lernen, aber gelernt haben sie nur, mit Fehlschlägen klarzukommen. fchk
Hallo Roland meine Suche bei den einschlägigen großen Far... und Mou... brachte keine Ergebnisse für ltc6813. In der Bucht dümpelt einer rum, kommt dann von der Insel. Naja, leicht beschaffbar ist anders Richtig und natürlich hast Du Recht, 100V entsprechen mindestens 24S ! Hier habe ich ungenau geschrieben. Der erste Versuch soll mit weniger Zellen sein aber mit dem Potential nach oben. Ja die Schwierigkeiten mit dem MUX sind mir klar. Galv Trennung des ADC mit DC-DC wandler machbar. Nur der MUX bereitet mir Sorgen. Als Kandidaten sind HC4067 oder MOS4051 die Richtung. Aber dann immer nur für 3 Zellen, da sonst die Spannung zu groß wird und der heilige Rauch sichtbar. Puh Schwierig
Lothar M. schrieb: >> Standartbauteile > Ach, bitte nicht. So versteht der TO das eher nicht. Er denkt jetzt lediglich, er soll Spezialbauteile verwenden. Mann muss schon deutlicher werden; er soll als Standartbauteile Wiederstände und Komperatoren nutzen. Mein Faforit bleibt aber der Verguss der Schaltung, wobei man den Epoxi Block am Ende mit feinem Schmiergel auf Hochglanz bringt. DAS sieht echt unschlagbar aus, wurde hier sogar schon mehrfach so verzapft, wenn es auch meiner Meinung nicht so reperaturfreundlich ist...
Udo S. schrieb: > Axel H. schrieb: >> alternativ 16Bit ADC > > 1. Auflösung != Genauigkeit. Überlege dir vorher was du wie genau > brauchst > 2. Ein genauer ADC macht noch keine genaue Messung. Denk daran dass auch > der Rest (Widerstandsteiler) die Genauigkeit braucht. > 3. Bedenke Dinge wie Temperaturdrift und Thermospannungen. Ja alles absolut richtig. Wie es sich abzeichnet gibt es 3 Wege. 1: MUX mit den Problemen der Spannungsfestigkeit 2: normaler ADC über Wiederstandteiler mit den von Udo aufgezeigten Problemen 3: fertige Lösung (Frank LTC6813) mit dem Problem der Beschaffbarkeit
Lothar M. schrieb: > Axel H. schrieb: >> Standartbauteile > Ach, bitte nicht. > >> Das ganze soll auf Standartbauteile aufbauen, die überall bestellbar >> sind. > Dann wirds halt groß, umständlich, teuer und ungenau. Willst du die > Operationsverstärker letztlich auch aus handgeschnitzten > "Standard-Transistoren" zusammenfrickeln. > Das geht in die falsche Richtung. > Axel H. schrieb: >> eine Auflösung von 4096 Schritten also bei 100V => 0,025V pro Schritt. >> Das find ich ein wenig zu ungenau. Also was kann man tun? > Weil auf diesem Signal Rauschen drauf ist, kann man mehrere Messungen > mitteln und durch Oversampling noch ein (paar) Bit(s) gewinnen. Das > haben einige STM32 schon in ihre ADC-Automaten eingebaut > > Und genauer wirds dann sowieso nicht, wenn man sich mal ehrlich in die > Augen guckt und die Sache nicht bis auf 6 Nachkommastellen schönsäuft. > Denn da spielen noch einige Effekte rein, die mehr als 25mV Abweichung > bringen werden. Allein das mit den Widerstandstoleranzen und > Übergangswiderständen und den Leckströmen und irgendwelchen > Störeinkopplungen wird interessant werden. > Hmm, ist auch was dran >> 2: ADC mit höherer Auflösung z.B. 24Bit. Ist das beherrschbar? > Da kommen bei einen Anfängerdesign auch nicht mehr als reale 14 Bits > raus... Sehe ich genau so- unbrauchbare Lösung für mich.
100V bei 16 Zellen? Für 15 Zellen gibt es analoge Frontends wie Sand am Meer. Wenn du wirklich 100V zusammenstöpseln willst, gibt's den LTC6806.
Frank K. schrieb: > Axel H. schrieb: > >> vielen Dank für den Link. Den IC kannte ich noch nicht. Vom >> Blockschaltbild arbeitet der auch mit Multiplexer. Sehr interessant. >> >> Das ganze soll auf Standartbauteile aufbauen, die überall bestellbar >> sind. >> Klar ist der fertige IC einfach einzusetzen, aber ist halt nicht mein >> Lösungsansatz. > > Aha. Du meinst also auch, schlauer zu sein als die Profis, die extra > spezielle Halbleiterprozesse entwickeln, um Spannungen bis 100V in den > Griff zu bekommen. Das haben auch die Leute vor Dir gedacht, und niemand > von denen hat eine brauchbare Lösung hervorgebracht. Die Leute meinten > auch, dabei etwas zu lernen, aber gelernt haben sie nur, mit > Fehlschlägen klarzukommen. > > fchk und wenn Sie das gelernt haben, ist das schon sehr viel. Frank, ich wäge Vor-und Nachteile der Lösungen für mein Vorhaben ab. Natürlich habe ich einen anderen Fokus als z.B. ein Automobilhersteller, der in Serie AKKUS produzieren muss. Der kann sich solch gefrickel nicht leisten. Da zählt schneller, billiger, höher, weiter.....
Karsten B. schrieb: > 100V bei 16 Zellen? Für 15 Zellen gibt es analoge Frontends wie Sand am > Meer. Wenn du wirklich 100V zusammenstöpseln willst, gibt's den LTC6806. Ok ich bin flexibel.2 mal 50V machen auch 100V. Wie heißen die IC für 15S ? Die LTC Typen sind sehr schwer beschaffbar.
Frank K. schrieb: > Für sowas gibts fertige Lösungen: > > https://www.analog.com/media/en/technical-documentation/data-sheets/ltc6813-1.pdf > > fchk Ja, (solche ICs gibt es auch von anderen Herstellern) und diese ICs liefern weit mehr als nur recht genaue Zellspannungen (gegenüber so einer "groben Schätz Schaltung"). Sie bieten auch Möglichkeiten Fehler zu detektieren zB Abriss einer Messleitung usw, oder Zellen zu Balancen. Eine überlastete Lion Zelle neigt zum thermischen Event. Bei einer einzelnen Zelle ist das schon sehr unangenehm, aber Du scheinst grössere Kapazität/Leistung anzustreben. Dann bist Du auch für deren sicheren Betrieb verantwortlich.
Axel H. schrieb: > Das find ich ein wenig zu ungenau Das ist aber dein persönliches Empfinden. Für nur eine LiIon Ladezustandsüberwachung reichen 0.05V. Die Frage ist eher, ob du eine so gut aufgebaute Schaltung und kluges Programm (sleep während Messung) überhaupt hinbekommst um auf 12 bit genau zu messen, oder nicht doch nur 8 bit schaffst. Zudem belasten Spannungsteiler den Akku, und wenn der A/D Wandler 10k Eingangswiderstand will, fliessen ca. 200uA, in Summe also 5mA. Axel H. schrieb: > Das ganze soll auf Standartbauteile aufbauen, die überall bestellbar > sind. Aha. Da bei 100V kaum noch ICs existieren, möchtest du es also auf einfachen Transistoren und Widerständen basieren lassen. Nicht ernsthaft. Es gibt noch die Variante, pro Zelle einen aus dieser Zelle versorgen kleinen uC zu betreiben, und ihn seinen Analogwandlerwert per kapazitiv gekoppelter Datenleitung zur Auswertung senden zu lassen. Wenn der uC meist im sleep nur uA verbraucht, und die Zellspannung nicht gleich durch Belastungspeaks um mehr als 0.5V ändert, kann zumindest der obere uC die Daten zum einen weiter unten durchreichen.
Axel H. schrieb: > Karsten B. schrieb: >> 100V bei 16 Zellen? Für 15 Zellen gibt es analoge Frontends wie Sand am >> Meer. Wenn du wirklich 100V zusammenstöpseln willst, gibt's den LTC6806. > > Ok ich bin flexibel.2 mal 50V machen auch 100V. Wie heißen die IC für > 15S ? > > Die LTC Typen sind sehr schwer beschaffbar. BQ76940 z.B.
Karsten B. schrieb: > Axel H. schrieb: >> Karsten B. schrieb: >>> 100V bei 16 Zellen? Für 15 Zellen gibt es analoge Frontends wie Sand am >>> Meer. Wenn du wirklich 100V zusammenstöpseln willst, gibt's den LTC6806. >> >> Ok ich bin flexibel.2 mal 50V machen auch 100V. Wie heißen die IC für >> 15S ? >> >> Die LTC Typen sind sehr schwer beschaffbar. > BQ76940 z.B. Jaaa sehr schick, da gibt es auch ein Evaluationsboard relativ erschwinglich. Ich glaube, das kann mich überzeugen.
@Axel H: >> Klar ist der fertige IC einfach einzusetzen, aber ist halt nicht mein Lösungsansatz. Für deinen "Lösungsansatz" gibt es einen Fachbegriff bei den Anti-Pattern: "Das quadratische Rad neu erfinden". https://de.wikipedia.org/wiki/Anti-Pattern#Das_quadratische_Rad_neu_erfinden Viel Spass dabei. Du willst auch garantiert keinen Balancer für deinen Akkupack bauen. Dafür gibt's nämlich auch fertige ICs. Die messen nebenher die Zellspannungen...
Von Infinion gibt es dafuer die TLE9012, MD8710.
Axel H. schrieb: > Das ganze soll auf Standartbauteile aufbauen, die überall bestellbar > sind. Man könnte für jede Zelle einen MC (ATtiny25) vorsehen. Der MC mißt seine eigene VCC und macht die PWM für den Balancer. Der oberste MC bekommt die Befehle über einen Optokoppler vom Master. Die Daten werden reihum weiter gereicht über nen Transistor zur Potentialverschiebung. Der unterste MC sendet alle Ergebnisse direkt zum Master. Ist der Optokoppler länger aus, gehen alle in Power-Down und wachen mit dem Pin-Change-Interrupt wieder auf. Der Rest ist nur noch Programmierarbeit. Man kann auch noch nen Bootloader programmieren, um die Firmware zu updaten. Jeder MC decremeniert die Adresse und sendet das Paket an den nächsten. Empfängt er die Adresse 0, führt er den Befehl aus und fügt seinen ADC-Wert in das Paket ein. So muß der Master nur Pakete mit aufsteigenden Adressen senden, um alle auszulesen.
Ich habe für die Zellmessungen/Balancer im Reva (16S) die Akkus jeweils in 4er-Gruppen unterteilt. Da hängt dann eine Platine mit AVR-10Bit-ADC (per Oversampling auf 12Bit aufgepoppt) dran. Muss man halt mit Optokopplern die Kommunikation machen.
Framulestigo schrieb: > Ich habe für die Zellmessungen/Balancer im Reva (16S) die Akkus jeweils > in 4er-Gruppen unterteilt. Klingt ziemlich aufwendig. Wie verschiebt man denn die 4 Meßspannungen und die 4 Signale zu den Balancertransistoren? Framulestigo schrieb: > per Oversampling auf 12Bit aufgepoppt Daß der AVR-ADC auf 12Bit monoton ist, glaubst aber auch nur Du.
Wer so was heute noch diskret realisiert, dem ist nicht mehr zu helfen. Ein gutes Beispiel ist der ehemalige Hersteller von eBike-Motoren BionX aus Canada. Die hatten auch versucht mit einem Grab an diskreten Mosfets einen Eingangsmultiplexer zu bauen. Mit dem Erfolg, dass das so unzuverlässig wurde dass damit der Untergang der Firma eingeleitet wurde. Nachdem die Probleme mit den Akkus so groß wurden, dass die großen Hersteller von eBikes auf andere Anbieter umgestiegen sind, war die Abwärtsspirale nicht mehr aufzuhalten. Zur Ehrenrettung sei noch erwähnt das BionX Pioniere auf ihrem Gebiet waren und zur Zeit der Entwicklung dieser BMS-Platinen die Auswahl an ICs für diese Aufgabe noch sehr klein war.
temp schrieb: > Wer so was heute noch diskret realisiert, dem ist nicht mehr zu helfen. Naja, es geht wohl mehr um das Basteln ansich (der Weg ist das Ziel). Wobei der Schaltungsaufwand mit einem MC je Zelle sehr gering ist. Irgendwelche genauen Spannungsteiler, Multiplexer, Levelshifter, DCDC-Wandler usw. entfallen. So ein ATtiny eignet sich mit VCC=1,8..5,5V auch ideal für die Speisung aus der Zelle selber (2,5..4,3V).
Wäre mal interessant, wie das bei Auto-Akkus gemacht wird. Bei den 400V im Tesla kann ich mir nur eine separate Überwachung pro Zelle vorstellen mit einer potentialfreien Kopplung zum Batterie-Management-System.
Peter D. schrieb: > Daß der AVR-ADC auf 12Bit monoton ist, glaubst aber auch nur Du. Interessiert mich im Traktionsbereich eigentlich nicht. Ich kalibriere die Eingänge auf die Nominalgrenzen (2,7..4,2V) und parametriere (wohlwissend um die 3-fache Lebensdauer bei 80%-Zyklen) die Sache auf 3,0..3,85V. Was sich zwischen den Grenzen an Messfehlern einschleicht, kommt nicht annähernd an die Größenordnung 100mV heran und ist in der Praxis für mich völlig wurscht. Die 2 Bit Oversampling sind nicht dazu da, die Genauigkeit zu steigern. Sie lösen nur die Werte höher auf. Ansonsten dauert es z.B. beim Laden ewig (>15min), bis sich etwas in der Anzeige bewegt. Peter D. schrieb: > Klingt ziemlich aufwendig. > Wie verschiebt man denn die 4 Meßspannungen und die 4 Signale zu den > Balancertransistoren? Differentielles Messen und die Ansteuerung eines P-CH hast Du doch wohl drauf.
Framulestigo schrieb: > Die 2 Bit Oversampling sind nicht dazu da, die Genauigkeit zu steigern. Ich sprach aber von Monotonie, d.h. daß sich die Subbits auch wirklich in die richtige Richtung ändern. Atmel gibt im Differenzmode typisch INL = 2 LSB an, d.h. nur 8 Bit sind monoton. Bei 12 Bit sind also die unteren 4 Bit Lottozahlen. Framulestigo schrieb: > Differentielles Messen und die Ansteuerung eines P-CH hast Du doch wohl > drauf. Dann mußt Du aber die Spannungen runterteilen, d.h. Du brauchst Spannungsteiler mit hohem Gleichlauf. Der P-FET braucht nen extra Treibertransistor, das geht ja noch.
Peter D. schrieb: > Ich sprach aber von Monotonie, d.h. daß sich die Subbits auch wirklich > in die richtige Richtung ändern. Atmel gibt im Differenzmode typisch INL > = 2 LSB an, d.h. nur 8 Bit sind monoton. Bei 12 Bit sind also die > unteren 4 Bit Lottozahlen. Miss doch einfach 64 mal und schiebe die Summe um 4 Stellen nach rechts. Im Regelfall wackelt da bis auf die letzte Stelle gar nix. Beim Laden geht der Wert kontinuierlich hoch. Mehr will man gar nicht wissen. Peter D. schrieb: > Dann mußt Du aber die Spannungen runterteilen, d.h. Du brauchst > Spannungsteiler mit hohem Gleichlauf. Auch wieder ganz praktisch: Nimm 1%-Widerstände in den Teilern, kalibriere mit einem Labornetzteil und ein paar niederohmigen Widerständen als Quelle ungefähr auf die beiden Grenzwerte (Speichere die gemessene Spannung am Eingang zusammen mit dem ADC-Wert und bilde mit den beiden Wertepaaren eine Geradengleichung. Wozu sonst haben die Controller ein EEPROM?). Danach variiere die Spannungen an den Eingängen, so dass sich tatsächlich messbarer Eingangswert zu Anzeigewert um mehr als 100mV verschiebt. Ich bekomme mehr als 30mV Fehlmessung mit nem AVR und Oversampling an vier Zellen nicht hin. Schon gar nicht, wenn die Zellen im Gleichlauf sind (alle in etwa den gleichen Pegel haben) - Sorry :)
man kann pro zelle einen kleinen uc für ein paar cent verwenden. Ich jedoch benutze das balancersignal um die zellspannung in wechselspannung zu wandeln und dann kapazitiv auszukoppeln. Wenn man es geschickt macht, kommt man mit 1 io pro zelle plus einen gemeinsamen Analogeingang aus. Die zusätzlichen io für up und down sind nur für aktives Banalcing.
:
Bearbeitet durch User
Axel H. schrieb: > Ja alles absolut richtig. > Wie es sich abzeichnet gibt es 3 Wege. Es gibt noch einen. Für jede Zelle ein kleiner uC, der von selbiger versorgt wird und seine Meßergebnisse per Optokopper seriell versendet. Damit umgeht man das Problem der hohen Spannung und sehr hohen Genauigkeitsanforderung. Denn 3V auf 10mV genau messen sind gerade mal 9 Bit, bei 100V sind es 14 Bit. Und ich meine Genauigkeit, nicht nur Auflösung. Siehe Auflösung und Genauigkeit Der uC muss ja nicht dauernd messen, sondern nur ab und an und sonst im Sleep Mode Strom sparen. GGf. packt man noch einen 2. Optokoppler in die Gegenrichtung rein, zum Aufwecken.
Anbei mal ne Prinzipschaltung für die Idee mit MC. Die Messung erfolgt reziprok, d.h. die interne Referenz (1,1V) wird mit V_Batt als Referenz gemessen. Für die Kalibration mißt man die jeweilige Zellenspannung und schickt einen Kalibrationsbefehl, der den Wert im EEPROM speichert. Oder man baut die Schaltung als 4-poligen Modul auf und baut sich einen Kalibrierer. Dann kann man auch einen defekten Modul leicht wechseln. Als Datenbus kann man meinen 124-Bus nehmen. Beitrag "mehrere MC seriell über Datenbus verbinden (1Draht)"
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.