Mittwoch, 16. November 2011

Einzelzellenüberwachung

Neben dem Entlade- und Ladeaufbau, denke ich auf einem einfachen Aufbau für die Messung der einzelnen Zellspannungen mit dem Arduino herum.
Der Arduino Duemilanove hat nur eine begrenzte Anzahl von Analogen Eingängen zur Spannungsmessung (6), was für unsere 45 Zellen nicht ausreicht.
Somit habe ich ein paar Multiplexer (CD4051) bestellt, die das Problem lösen sollen.

Über drei digitale Ausgänge des Arduino schalte ich bis zu acht Multiplexer und kann so an nur einem einzelnen analogen Eingang des Arduino bis zu 64 analoge Signale messen.
Dabei wird nur ein Wert zur Zeit gemessen, aber da der 4051 sehr schnell schaltet, wird dies keine größeren Verzögerungen mit sich bringen.
Für unsere Unterspannungsmessungen ausreichend, denke ich.

Mit Franz haben wir schon einmal diskutiert, was wichtig für die Überwachung ist.
Nicht die ständige Anzeige aller Zellen, sondern die Zelle mit der aktuell niedrigsten Spannung muss betrachtet werden und ggf. muss eine Überwachung eingreifen, sollte sich der Ladezustand dem kritischen Bereich nähern.
Die Kür ist neben der Anzeige, eine aktive Drosselung des "Gaspedals", durch die Zuschaltung eines Widerstands zum Fahrpoti.

Im Versuch mit einer einzelnen Zelle ist alles kein Problem, aber im Fahrzeug sind die Zellen in Reihe geschaltet und somit können diese nicht auf einen Massepunkt gebrahct werden.

Offene Frage: Wie bekomme ich eine übersichtliche galvanische Trennung der Eingänge zueinander hin?



Mal sehen, was Franz darüber in seinem Blog stehen hat ... ;)

12 Kommentare:

  1. Das sieht ja schon gut aus........


    Meine Versuche gehen derzeit in Richtung
    "daisychain" also eine Reihenschaltung
    ohne galv.Trennung zwischen den Zellen
    .....und das mit der "Daisychain"
    macht einen guten Eindruck fürs Erste.

    Das klappt sowohl mit dem seriellen
    Weiterleiten der Daten als auch
    mit einer Kette aus Transistoren.

    Ich will eine Kette aus ATtiny24V
    aufbauen und die seriellen Daten
    per Software-UART und je einem
    open-Collektor-Transistor von
    unten nach oben durchreichen.
    unten kommt ein Startbefehl rein,
    und der String wird von Station zu
    Station um ein Byte länger.
    So geht im Idealfall nur ein Draht
    von Messmodul zu Messmodul und zwei
    Isolatoren (optokoppler oder ADUM 5241
    oder dergleichen) können reichen

    Den Spannungssprung von Zelle zu Zelle
    kann man ohne "galv.Trennung" überwinden.

    Der zeitliche Abstand zwischen den Messungen ist das größte Problem, aber vielleicht sollte man darüber nachdenken, einfach nur den Status
    ok oder nicht ok abzufragen.

    ebenso erst mal messen, und dann gemütlich auslesen. Auf eine Sekunde hin oder her kommts
    beim Übertragen nicht an, aber die Messung
    muss möglichst gleichzeitig bei allen Zellen
    erfolgen sonst verfälscht jede Stromschwankung das Ergebnis.So bräuchte man halt zwei Befehle,
    einen nur zum Einlesen und einen zum Abholen der Messwerte

    Die "galv.Trennung" ist das große Problem,
    aber ein Optokoppler zu jeder Zelle ist
    zwar möglich, aber nicht die ideale Lösung.

    Ich kann momentan einfach zu wenig Zeit
    abzweigen, da endlich weiterzumachen.

    In der Franzbox ist die ganze Auswertung
    ja schon drin, das lässt sich problemlos
    anpassen. Da sende ich derzeit nur ein Byte
    mit der Zellennummer und erwarte dann als
    Antwort den Messwert als ein Byte.
    (das ist genau genug, meine ich!)

    Die Platine ist mittlerweile neu aufgelöst,
    aber noch nicht in der Fertigung, ich hätte
    da sehr gerne noch einen Max232 draufgepackt,
    aber es ist eng geworden......

    AntwortenLöschen
  2. Mit dem Multiplexer wollte ich die Werte durchlaufen. Der schaltet mit 16ns, was bei 45 Zellen nicht einmal ein Millisekunde wäre.
    Und als ich bei Dir von den AdUM laß, dachte ich, das könnte klappen ...

    AntwortenLöschen
  3. Der ADUM kann nur digitale Signale
    weiterleiten. Die Dinger haben gleich
    einen DC-DC-Wandler drin, aber da kommen
    ca 5,5V hinten raus, das ist ein
    unpraktischer Wert.... zu niedrig um
    5,0V draus zu machen, und der Wirkungsgrad
    ist schlecht.(wird warm)
    ein oder zwei sind kein Problem, aber
    50 oder so das ist nichts..........

    ich werde wohl zehnergruppen per Daisychain
    als Versuch testen....mal sehen......

    AntwortenLöschen
  4. Habe mir jetzt den von dir ausgesuchten Multiplexer nicht genauer angesehen. Bei gemeinsamer Masse könntest du das aber auch mit Spannungsteilern lösen. Ob das dann aber übersichtlich wird?

    Hast du dir schon mal den LTC6802-2 angesehen?

    Der scheint mir für deinen Zweck passender zu sein.
    Methods vom Endless-Sphere-Forum setzt den erfolgreich ein. Vlt ist das eine interessante Lektüre.

    AntwortenLöschen
  5. Beim Drüberlesen ist mir aufgefallen, dass das mit den Spannungsteilern etwas kurz geschossen war.

    Was ich eigentlich schreiben wollte:

    Du könntest die Spannung jeder Batterie zur Masse messen. Dazu müsstest du mit Spannungsteilern die Spannungen in den 5V-Bereich bringen. Da du dann die Spannung von n Batterien misst, subtrahierst du in deinem Programm einfach jeweils die n-1'te Spannung. So erhälst du die Spannung jeder Batterie. Die Auflösung wird dann natürlich nicht besonders toll sein.

    Mit den LTC6802 ist das deutlich eleganter, 4 davon und du bist fertig.

    AntwortenLöschen
  6. @ Guy:
    das geht mit vier Zellen ganz gut,aber nicht
    mit 45 Zellen........
    (ein Atmega48 je vier Zellen hab ich schon
    erfolgreich getestet, da hat man dann sogar
    die Balancer per PWM geregelt...und Anbindung
    per serieller Schnittstelle) aber die vielen
    Spannungsteiler belasten die Zellen ungleich.
    Das ist also auch nicht das Wahre.
    Auch wenige mA Unterschied wirken auf Dauer!
    Der LTC6802 oder 6803 in den verschiedenen
    Ausführungen ist schon das Eleganteste, aber
    das Ding soll recht empfindlich sein,
    und ich persönlich habs noch nicht auf die
    Reihe gebracht den korrekt anzusteuern.

    Sehr interessant ist übrigens der LTC6801,
    der kann zwar nur überwachen und Gut bzw
    Schlecht ausgeben, aber der ist gut per Jumper konfigurierbar und braucht keinen Steuerrechner

    AntwortenLöschen
  7. Hallo,

    melde Dich doch bitte mal bei mir: christianamendt@gmx.de
    Ich hab ein System entwickelt/gebaut, mit dem kannst Du bis zu 108Zellen überwachen und aufzeichnen. Gut ablesbares 2,1TFT Farb-Display, modular erweiterbar, dezentraler Aufbau. Kontaktlose Strommessung bis 600Ampere, 2x Kontakttemperatur, 1x Infrarottemperatur und, wenn es ein muss mit GPS.

    Gruß,
    Christian

    AntwortenLöschen
  8. @Franz:
    Mit der unterschiedlichen Belastung hast du natürlich recht, das hatte ich nicht bedacht.

    Darf ich fragen woran du beim LTC6802 gescheitert bist?

    Die Diskussion im Endless-Sphere Forum kennst du dann vermutlich auch. Ich hatte den eigentlich für ein zukünftiges Projekt fest eingeplant, in Verbindung mit einem Arduino. Wenn das aber nun nicht ganz so einfach funktioniert wie Methods das beschrieben hat, muss ich mich wohl noch weiter umschauen. Ein Tiny je Parallelblock ist mir jedenfalls zu aufwändig.

    AntwortenLöschen
  9. @ Guy:
    Ich bin nicht am LTC6802 gescheitert,
    sondern ich hab mich einfach noch nicht
    intensiv genug damit beschäftigt.
    Die ganze Auswertung war mir bisher
    etwas zu kompliziert, bzw ich habe noch zu
    wenig mit SPI gearbeitet.
    Hinzu kamen einige "Schauergeschichten"
    über die Empfindlichkeit des 6802.
    Durchbrennen, "einfrieren von Messwerten"
    und so weiter........
    (die aber wohl nich wirklich begründet
    sind, bzw auf Handhabungsfehler rauslaufen)
    Da arbeitet man halt mal mit höheren Spannungen und muss entsprechend aufpassen!
    Aber in der Summe seiner Eigenschaften
    scheint der LTC6802 bzw sein Nachfolger
    LTC6803 in den verschiedenen Varianten
    momentan der geeignetste Chip für so ein Projekt zu sein.Insbesondere die
    Möglichkeit, externe Transistoren anzuschliessen und die Temperaturmessung
    machen den hochinteressant.
    Das Protokoll ist auf den ersten Blick recht unübersichtlich, aber wenn man sich da mal richtig reindenkt wirds schon logisch.
    Auch der Preis relativiert sich, viele
    kleine Schaltungen läppern sich auch
    schnell mal zusammen........

    Versuch mal, so einen anzusprechen, der Rest
    ist dann nicht mehr kompliziert, und vergiss beim Design halt nicht, dass der oberste
    Chip auf ca 150V hängt........

    Das klappt dann schon.Umschauen nach alternativen ist immer gut, aber alles was ich bisher gefunden habe ist noch viel komplizierter oder hat andere Nachteile!

    Ich hab halt rein Interessenhalber auch
    mal alle (???) anderen Möglichkeiten durchgespielt(auch als Programmierübung etc......)
    bin aber noch nicht zu einem wirklich guten anderen Ergebnis gekommen.
    Das ist letztlich der Grund, warum es für die Franzbox noch kein BMS gibt.
    In der neuen Version sind jedenfalls schon mal die SPI-Leitungen reserviert, und das wollte ich demnächst noch mal intensiv in Angriff nehmen. Dass Michael nun auch in dieser Richtung
    nach Lösungen sucht kam etwas überraschend.

    mfG
    Franz

    AntwortenLöschen
  10. Danke für den Tipp, den Nachfolger hatte ich noch gar nicht auf dem Schirm.

    Das einzige, was mich noch vom "Spielen" abhält, ist das Gehäuse, SSOP ist mehr als unhandlich. Und das offizielle Demo Board ist zurzeit nicht ganz in meinem Studentenspielbudget, in ein paar Monaten vlt.

    AntwortenLöschen
  11. Das unhandlichste was ich bisher hatte
    war der S-8209B von Seiko.
    Da ist ein Komplettes BMS mit überspannung
    unterspannung und Balancerausgang
    auf 2 x 2 mm mit acht "Pins" im 0,5mm
    Raster komprimiert!!!
    Sehr interessant! aber halt keine
    Messwertabfrage.
    Das Problem bei diesem wohl für
    Handyakkus oder MP3-Player gedachten IC
    ist, dass man da mindestens eine Rolle
    abnehmen muss (5000) und dass man
    die Parameter zwar nach Wunsch bestellen
    kann, aber die sind dann halt so!
    Ich habe ein paar Muster bekommen, und
    es sogar geschafft ein IC auf den
    Leiterbahnen eines alten RAM-Bausteins zu
    kontaktieren, und das Ding funktioniert
    auch prima! (Da stammt die Daisychain
    Idee her, die schalten das auch einfach
    der Reihe nach durch...gute Idee!)
    Die gäbs auch in etwas größer mit
    echten Pins. Sollte man zumindest
    kennen! Z.B. für Modellbau etc......
    Ist nur kaum zu bekommen!
    (das war das erste Projekt in meinem Blog)

    AntwortenLöschen
  12. Anbei noch das nicht ganz vollständige Handbuch:
    http://epo-bike.de/Handbuch.pdf
    christian@epo-bike.de
    Gruß,
    Christian

    AntwortenLöschen

Vielen Dank.