Lifepo - Überwachungsmethoden und Elektronik

Abgetrennt aus dem Faden mechanischer Aufbau. Sorry für kleine Übersschneidung.

Ja, bei uns ist es ziemlich hügelig und mein Moped war öfters mal kaputt. Ich kenne den Einfluss der Steigung aus leidlicher Erfahrung. Die Spannung von langen M4 Gewindestangen kann ich aber durch Anzupfen gleichmäßiger zueinander einstellen. Bei M10 braucht das eine wesentlich höhere Spannung und Länge.

Mein Aufbau des Gehäuses mit Leimholz-, OSB- und Dreischichtplatten war zu Beginn noch alles andere als definiert, das musste sich erst einmal setzen.

Die Zellen habe ich auch nicht mit 3kN als Zielwert verpresst, sondern nur auf Vorspannung mit mit den Fingerspitzen an der Nuss angelegt. Die Endspannung haben sie sich dann selbst geschaffen.
Das war die ersten Zyklen noch stark abhängig vom SOC und hat sich inzwischen eingependelt, da verändert sich nicht mehr viel.

Datenblatt. Z.B. wird für die LF280K die “Expansion Force” mit BOL <= 3kN und EOL <=50kN genannt
Dort wird auch erwähnt, dass bei 50kN interne Defekte erkannt wurden und die Zelle bei >100kN undicht wurde.

Einmal weil jedes Brett andere Eigenschaften hat, bei einfachem Leimholz ist das extrem.
Dazu kommt, dass bei schwankender Luftfeuchtigkeit und Temperatur sich mehrere “gleich” aufgebaute Packs noch weniger vergleichbar verhalten.
Ich mag es einfach nicht, wenn ich zu viele undefinierte und dazu noch variable Einflüsse in meinen Messreihen habe. Das macht nur Wahnsinnig und führt zu nichts.

Das was ich mit allen Messergebnissen mache:
Ich lerne wie sich ein System in verschiedenen Zuständen verhält,
kann es hierfür auch im Grenzbereich betreiben und dadurch Fenster definieren, welche ich für die Überwachung verwende. Die vier Sensoren des JK-BMS sind zwar nett, ein Ereignis in einer einzelnen Zelle bekomme ich damit aber nicht mit:
Den magischen Rauch riechen zu können ist zwar immer aufschlussreich, aber ohne ausreichende Messdaten nicht sonderlich hilfreich.

Kenne ich jedoch das Verhalten, kann ich Grenzwerte sehr eng setzen. Für Meldungen, wie auch zur Abschaltung. Die Meldungen sind für mich dann z.B. ein Hinweis auf unerwartetes, bzw. unbekanntes Verhalten, welches ich im Nachgang anhand der gespeicherten Messwerte auswerten kann.

Bisher hatte ich die Logdaten immer in SQL-Datenbanken, oder als XML-Dateien welche ich über Scripte auswerte. Mit der Zeit entsteht dabei eine hübsche Sammlung an Analysewerkzeugen, welche ich im Hintergrund oder bei Bedarf gezielt ausführe.
Das Energieprojekt (PV, Akku, Wärmepumpe, Heizung, Verbraucher) habe ich jedoch mit Homeassistant und Influx aufgesetzt, wegen zu vielen anderen und meist wichtigeren Projekten noch nicht an der automatisierten Auswertung arbeiten können.
Durch die guten Visualisierungsmöglichkeiten war der Bedarf dazu aber auch noch nicht akut, daher beschränken sich meine Scripte bisher nur auf die Steuerung, um Unzulänglichkeiten in der Software der einzelnen Komponenten zu umgehen, bzw. deren Verhalten an meine Gegebenheiten anzupassen.

Wie schon geschrieben, ist das insgesamt ein schönes Hobby, welches noch vergleichsweise günstig ist und ausnahmsweise auch einen direkten Nutzen bringt.
Dazu kommt, dass mir ein intensives Interesse an Zusammenhängen und Details wohl bereits in die Wiege gelegt wurde. Also liegt es nahe, an allen Enden noch etwas für Außenstehende auf den ersten Blick unnötiges gleich mit umzusetzen.

Die Temperaturmessung (Aufzeichnung) als Beispiel:
DS18B20 sind günstig und an einem IO , die verwende ich im ganzen Haus.
In Verbindung mit einem ESP32 und ESPhome sind die fix an einem Versuchsaufbau angebracht und die Messwerte in Homeassistant verfügbar.
Von Aliexpress habe ich mir günstig eine Platine (KC868-A16) mit jeweils 16 über Optokoppler getrennten Ein- und Ausgängen geholt. Wenn das timing keine besondere Rolle spielt, habe ich damit innerhalb kurzer Zeit einen Logger für verschiedenste Anwendungsfälle erstellt und muss nicht tagelang mit Notizblock und Messgeräten vor der Anlage stehen, um auf einen sporadischen Fehler zu warten.

Was loggst du über die IO`s? Steh grad aufm Schlauch. Die 1-Wire Sensoren lassen sich doch daran nicht anschließen.

Das ist eine nette Platine für viele Steuer- und Regelungsaufgaben aber neben den 16 DIGITALEN (über PCF8574/I2C) und 4 analogen Eingängen sehe ich keine Perspektive diese im Batteriemanagement (Zellspannungsüberwachung, Strommessung, Temperaturüberwachung) zu verwenden.

Ich habe solche NTCs angeschafft

Diese werden sequentiell über Analogmultiplexer jeweils 3 gleichzeitig über 3 16-Bit ADC's ausgewertet. Samplingrate pro Sensor nur im Sekundenbereich aber für Temperaturmessung ausreichend. Der ADC Chip ist ein ADS131B26 mit 24 Bit ADC's für Spannungs- und Strommessung vorrangig zum AUfbau von BMS Systemen..

Gelöscht.

Beispiel: der Trockner spinnt, pumpt nicht immer ab.
Kleine Koppelrelais an die Eingänge gehängt, mit dem Trocker verbunden und schon ist das Logging des Trockners in Homeassistant verfügbar. Sensoren s.u.

Darauf verrichtet ein stink normaler ESP32 seinen Dienst. Die Platine hat I2C und mehrere IO auf Stifteisten. Mehr lässt sich noch an anderer Stelle abgreifen.

Also:
Ein IO-Pin für die 16 St. 1-Wire Sensoren, der RS485 für die Kommunikation mit den BMS, Ausgänge für Lastabwurf, Lüfter und Kühlwasserpumpe.

Falls ich noch eine Strommessung als Ersatz für die verhunzte Hardware des BMS brauche, lässt sich über Software-UART sicherlich noch ein SmartShunt von Victron dran häkeln.

1 „Gefällt mir“

Titel des Fadens ok?

1 „Gefällt mir“

Läuft stabil mit 16 Sensoren? Hast du die Sensoren Daisy Chained oder sternförmig (falls ja, hast du ne smarte Idee die Kabel zusammenzuführen? :wink: )?

Bei mir hat sich bisher eine Lochrasterplatine mit dreipoligen Steckverbindern als zentraler "Sternpunkt" bewährt. Jeder Sensor hat etwas über 1m Anschlussleitung und den Vcc schließe ich immer mit an.Je nach "charge" streut die Temperatur stärker, oder sie sind auf andere Art seltsam. Unter anderem, dass eben die mögliche Anzahl der Bauteile am Bus schwankt.Von den “Dallas” DS18B20 sind vermutlich mehr Kopien als Originale auf dem Markt. Das ist dann gefühlt das, was bei der Produktion der Originale an Ausschuss in den Container gekippt wurde. Und dort die Besten noch aussortiert wurden.

Meist stellen diese Eigenarten aber kein größeres Problem dar.Auch, wenn z.B nur 12 statt 16 Sensoren gemeinsam stabil funktionieren und gerade kein Oszi, oder Lust zur Fehlersuche vorhanden ist.Denn das muss nicht alles an den selben IO angeschlossen sein, im Gegenteil:Wenn du z.B. bei zwei Bussen a 8 Teilnehmer die Sensoren jeweils abwechselnd anbringst, hast du bei Ausfall eines Busses zumindest noch das Logging von jeder zweiten Zelle.

Meine Leitungen verlege ich nach Möglichkeit als Kabelbaum, dann ist alles strukturiert und die Positionen vorgegeben.Beim Akku habe ich die Zellen mit 1,5mm² H07V-K am BMS angeschlossen. Warum? Das habe ich auf der Rolle und es lässt sich schön gebündelt verlegen.

Ich habe heute etwas mit Plotly in Home assistant gespielt - denn gesammelte Daten bringen keinen Nutzen ohne Auswertung.
Hintergrund ist die Frage “welche Position an der Zelle ist für den Temperatursensor die geeignetste?”

Hier ein Plot von heute, die Temperatursensoren[T] sind an der Zelle auf der Oberseite zwischen POL und Überdruckventil, an der Seite je 1x auf 7 und 14cm Höhe.

Dann den Strom [I] durch die Zelle und zuletzt noch die Zellspannungen [U]

Zoom auf 11:00 bis 14:00

…~11:20 bis 12:30, ein Datenpunkt alle 5min.
Edit: Da die Beschriftung der X-Achse fehlt: 4 Datenpunkte pro Abschnitt

Mein Fazit: ich wähle die Position nach bester Kabelführung.
Für das Identifizieren von einzelnen zu heiß werdenden Zellen ist mir das an jeder Position hinreichend Träge. Oben habe ich etwas mehr Information, welche ich mit nutzen könnte.

Ich hatte ein paar Jahre lang einen Keysight N6705C Power Analyzer auf dem Schreibtisch.
Ein geniales Teil in Verbindung mit der brauchbaren, aber doch etwas einfachen Software

  • als Logger.

Das Prinzip habe ich hier auch, bin eben in der Samplingrate eingeschränkt und die Auflösung und Genauigkeit hängt von den messenden Knoten ab.
=> Für meinen Anwendungsfall hier aber mehr als ausreichend

Den Plots fehlt (fast) nur noch eine sinnvolle Möglichkeit um die Skalierung der einzelnen Y-Achsen definiert zu ändern. Dann wäre ich damit soweit zufrieden.
Alternativ stelle ich stelle mich nur blöd an, kommt vor.

2 „Gefällt mir“

Sind das extra selektierte Sensoren oder passen die aus einer Lieferung bzw. Charge so gut zusammen?

Die letzten von Reichelt liegen 0,4 bis 0,7K neben meiner Referenz. Zumindest habe ich das so grob am Schreibtisch kalibriert. Heute Morgen nach der Nachtruhe am Akku lagen sie max 0,3 K auseinander.
Ich habe aber auch DS18B20 mit angepresstem Röhrchen, die liegen teilweise 1,5° auseinander.

Wie sehr sie letztendlich streuen werde ich sehen, das braucht ja nur einmalig ausgemessen und als
Korrekturfaktor verrechnet werden.

In Esphome sieht das z.B. so bei mir aus:

  • platform: dallas_temp
    address: 0x...
    name: T1
    update_interval: 10s
    filters:
    • offset: 0.4

Fertig bin ich damit noch nicht, denn ich werde das 3D gedruckte Sensorgehäuse erst noch anpassen - das Einkleben des Sensors hat noch Optimierungsbedarf.

1 „Gefällt mir“