Pylontech hat 3 undokumentierte HW Leitungen auf der CAN Leitung wo sie Adressen und sonstwas kommunizieren. Riesen Murks, undokumentiert und funktioniert miserabel da vermutlich nachträglich aufgesetzt. Dabei würde alles per SW gehen. Blos das Protokoll ist bei SMA abgeguckt und wegen der Kompabilität macht man bis heute nix gescheites.
Knotenüberwachung ohne Remote Frame: CanOpen Heartbeat Gibts bei NMEA glaube ich auch ein Äquivalent. Bei einem vernünftigen Protokoll braucht man nicht alles neu zu erfinden. Blos die WR kennen das nicht weshalb das niemand nimmt. Die wo es haben verraten nicht wie es funktioniert weil sie eigene Batterien verkaufen wollen.
Also wenn du die Rohdaten hast, gern! Dann würd ich mal ne FFT draus machen.
Pylontech hat 3 undokumentierte HW Leitungen auf der CAN Leitung wo sie Adressen und sonstwas kommunizieren. Riesen Murks, undokumentiert und funktioniert miserabel da vermutlich nachträglich aufgesetzt. Dabei würde alles per SW gehen. Blos das Protokoll ist bei SMA abgeguckt und wegen der Kompabilität macht man bis heute nix gescheites.
Knotenüberwachung ohne Remote Frame: CanOpen Heartbeat Gibts bei NMEA glaube ich auch ein Äquivalent. Bei einem vernünftigen Protokoll braucht man nicht alles neu zu erfinden. Blos die WR kennen das nicht weshalb das niemand nimmt. Die wo es haben verraten nicht wie es funktioniert weil sie eigene Batterien verkaufen wollen.
Ich dachte an sich dass die Zusatzleitung zwischen dem Master und den Slaves besteht und vielleicht auf nem isolierten RS485 basiert. Die CAN verbindung dachte ich bisher nur zum WR. Bin da aber für bessere Lösungen durchaus offen. Das mit der Zusatzleitung wäre eben sehr ausfallsicher weil man nur sehr wenige Fehlerbilder hätte die keine Trennung des Akkus zur Folge hätten.
Des Weiteren hab ich mal mit der Messung der Zellspannungen rumüberlegt. Am günstigsten wäre ein Differenzverstärker mit Spannungsteilern. Hier besteht eben der Nachteil dass selbst bei recht genauen Widerstanden von 0.05% die common Mode Rejection nicht arg über 60 dB hinauskommt. Daher könnte man quasi "gechopped" messen, also die Zellspannung mal positiv und mal negativ auf den Differenzverstärker geben, womit sich der Offset durch die Common Mode sehr gut wegmitteln sollte. Um auch noch den Gain-Fehler zu kompensiern würd ich den Differenzverstärker auch auf die Referenzspannung des ADC schaltbar machen. Bisher steh ich mit dem Modell am Anfang, insbesondere die Noise bertrachtung wird auch nocht kommen. So sieht das zwischenzeitlich aus (asc file folgt):
Vielen dank! Da mach ich morgen mal ne FFT draus. Die 70kHz sind vermutlich stark WR-Abhängig, aber die Schaltfrequenz dürfte ja bei jedem um den dreh rum landen.
Das war jetzt durch die Verfügbaren 100ms Aufanhmedauer nur mit ner Auflösung von etwa 10 Hz, aber man kann schon erkennen, dass sich im Bereich zwischen 1 und 10 kHz der Untergrund auf 3-4 mA absenkt. D.h. hier könnte man mit einem A angelegtem Strom die impedanze mit etwa 50dB maximalem Rauschabstand bestimmen. In wieweit der Untergrund aus zacken beseht die im 50Hz Abstand stehen kann man leider noch nicht sagen, dafür bräuchte ich mind. 10s Datenaufnahme. Gleiches gilt für den Bereich zwischen den 50Hz vielfachen im Bereich unter 1 KHz, hier scheint das Stromspektrum auf 70mA hochzugehen, aber auch das könnte der geringen FFT Auflösung geschuldet sein.
Hier im Rahmen eines andere Projekts über einen preislich interessanten 4-Kanal Isolator gestolpert. Ist bis 10kV Surge spezifiziert und gibts in den Richtungs Varianten 2-2, 3-1 und 4-0. Silicon Labs macht die Texas Instruments Modelle als Second Source Plagiate bis 3kV Betrieb VDE zugelassen.
Die VDE Zulassungen bieten für diesen Zweck überhaupt eine gute Auswahl.
Der CY hat weder CAN noch Eth. Da Akkus auch bei HV räumlich nahe dem WR stehen, wird die Verbindung vermutlich immer CAN sein. Einige tun da auch noch seriell asynchron mit RS485 rum. Für die Visualisierung würde ich mir eher Modbus TCP wünschen.
Der Isolator scheint wirklich ganz attraktiv zu sein, gibts auf jeden Fall für unter nen Euro. Den CY8C61 würde ich evtl nur in den BMS Slaves in den Packs einsetzen. Von da sollte er nur mit dem BMS Master kommunizieren, dashalb dachte ich da an ein Master Slave Protokoll wie RS485.
Zwischen BMS Master und WR sollte dann schon ein Controller sein der Hardwareseitig CAN kann und zusätzlich entweder ein ESP für WLAN oder eine Ethernet Schnittstelle für die Telemetreidaten/Visialisierung (Da gibts aber sicher schon gewisse Standards oder?).Würde das so Sinn ergeben?
Ansonsten hab ich mir mal simulatorisch die Noise Performance der folgenden Differenzverstärkerschaltung angeschaut (asc im Anhang:
Ausgelegt ist das für nen MAX4477 als erste Stufe. Das ergibt dann ein solches Noise Spektrum (x2 wegen der Verstärkung der schaltung von 0.5 und x6 um auf peak to peak noise zu kommen):
Hier hätte man dann bei 1s Messdauer etwa 50µVpp Verstärkerrauschen für die Zellspannungs-Messung, wobei das Choppen das in der Realität noch verringern wird. Für die Impedanz-Messung wäre man bei 3-10µV/Hz^0.5 im Bereich zwischen 10 Hz und 30 KHz. Das ist schon relativ viel. Beim-Lock in mit entspechender Fensterfuktion muss man ca. 2s messen für 1Hz Bandbreite, wenn man da mit 1A ein Signal aufmoduliert wäre man dann entsprechend bei einer Zellwiderstandsauflösung von 3-10µOhm (Dauert dann aber eben pro Messpunkt 2s)
Mit einer AC-Gekoppelten Eingangsstufe könnte hier wesentlich mehr Auflösung erzielt werden. Da machen dann zwei unterschiedliche Stufen vermutlich Sinn. cmmr_zellspannung_ac_noise.zip (1,9 KB)
Hier siet das mit der Verstärker-Noise gleich ganz anders aus. Bei einer Anregung mit 1A bekommt man bei ner Mittelungzeit von 1/10s und der daraus resultierenden Bandbreite von 25Hz folgende bereits in Zellwiderstand umgerechnete Rauschpegel (peak to peak)
Im relevanten Bereich also stets unter 1µOhm. Man kann dann in 1s 10 Frequenzen anfahren und auf denen die Impedanz bestimmen. Daraus erfolgt dann die errechnung von R, L un C. Wichtig wäre noch zu wissen wie groß diese Werte bei typischen Akkuzellen in etwa sind, um den benötigten Frequenzbereich abschätzen zu können.
Noch was anderes: macht es Sinn, nen H2-Gassensor, also beispielsweise Pellistor o.Ä., zu Integrieren um Gasentwicklung im Modulgehäuse bestimmen zu können? Oder sind die Zellparameter schon so weit den Bach runter wenn da nennenswert Gas rauskommt dass man das eigentlich nicht braucht?
Zelltemperaturen einzeln nicht nur als Stack 1 oder 2 Stellen
Stack Ausdehnung mit Poti/Sensor zur Früherkennung von Schwangerschaften
Gassensor
Neben H2 entstehen auch immer andere leicht zu detektierende Gase, Methan, CO2, diverse anaerobe Gärer. Sie Sensoen kosten nicht allzu viel wenn man sie selbst auswertet. Kohlenmonoxyd hat glaube ich bauartbedingt eine begrenzte Lebensdauer von ein paar Jahren. Aber da kannst du dich ja noch mal einlesen. Sowohl vom Spektrum der Emissionen wie auch der Detektionsmöglichkeiten bevor ein zündfähiges Gemisch entsteht.
der LTC 6362 kostet ja auch ein paar Euronen (pro Zelle)
Ok dann behalte ich das mit dem Gassensor mal in Hinterkopf, wenn man keine Fehlarlarme will und auch nicht ständig Elektrochemische Zellen wechseln wird der Pellistor wohl die Beste Lösung sein, auch wenn da die nachweißgrenzen nicht extrem niedrig sind.
Ach ja Stack Ausdehnung ist natürlich auch noch ne Tolle sache, vielleicht über nen Induktiven Sensor o.Ä.
Welche Genauigkeit braucht man bei der Temperaturmessung denn so? Es soll ja auffallen dass eine Zelle Wärmer wird als die anderen. Wenn die Temperatursensoren alle 1°C streuen wird man 100mK ja nicht detektieren können.
der LTC 6362 kostet ja auch ein paar Euronen (pro Zelle)
Da würde ich vermutlich nen andere nehmen, der 6362 ist immer mein LTSpice Platzhalter. Diese Messeinrichtungen würde ich dann aber auf die Zellen Multiplexen (daher die Mosfet-Schalter an den Eingängen) So fallen die Kosten für ADC OPVs und vor allem für die Dünnschichtwiderstände nur einmal an. Als Mosfets könnte man DMP610DL-7 nehmen, die gibts in sehr großen Stückzahlen ab 2 cent. Dafür bräuchte man pro Zelle dann 4 plus zwei Zenerdioden, sechs Widersände und noch zwei N-Fets für den Level shift. Man landet dann pro Zelle irgendwo bei 15 Cent rum, was dann am Ende aber doch 2,40 für das ganze 16S Pack sind.
Ich hatte vor Längerem mal ein par kleiner Li-Ion Zellen vermessen und hier das Impedanzspektrum als Modell an die Daten angefittet. so sah das aus:
Tendenziell reicht wohl eine Auflösung von vollen Grad. Allerdings könnte man bei feineren Auflösungen vielleicht einiges mehr sehen was man sonst nicht sieht.
Diesbezüglich hatte ich mal ein Projekt, wo ich nach einem Referenzinstrument gesucht habe. Dabei bin ich auf das Greisinger GMH 3750 gestossen und habe mir eines gekauft. Es hat eine Auflösung von 0,01 Grad und man kriegt Genauigkeiten von 0,03 Grad hin. Ich habe damit Wasser gemessen. In einem Kreislauf mit mehreren cbm Wasser sieht man damit zum Beispiel, wenn man die Pumpendrehzahl am Frequenzumrichter im vielleicht um 10% verstellt, wie der Anstieg der Temperatur durch die ins Wasser eingetragene Pumpenleistung sich praktisch sekundenschnell in der Steigung äquivalent verändert.
Natürlich interessiert es als Bastler dann brennend, wie die das machen. Die Greisinger Schaltung - in meinem Fall für Pt100 - ist mehr als raffiniert, weil sie komplett differentiell arbeitet. Damit braucht sie weder teuere OPs noch irgendeinen Abgleich, noch nicht mal eine genaue Referenzquelle. Es kommt nur auf einen identischen TK der Widerstände im Spannungsteiler an der auch noch grottenschlecht sein kann solange er auf der anderen Hälfte genau gleich schlecht ist. Es ist ein LTC2436 der eigentlich für DMS in Waagen und anderen Consumgütern gedacht ist, weshalb es ihn um ein paar Cent zu kaufen gibt. Ich habe das bis zur SPI nachgebaut und die Software dahinter dann selbst geschrieben. Damit konnte ich dann exakt gleich wie Greisinger messen. Ich kann mir vorstellen, daß man mit der Auflösung und Aufzeichnung der Kurven einige elektrochemische Vorgänge in den Zellen zeitnah nachvollziehen kann, welche einem ansonsten verschlossen bleiben würden.
Moin,
ich hoffe das passt hierein, ansonsten einfach verschieben.
Ich habe die letzten 10 Jahre schon diverse BMS entwickelt, immer mit dem Ziel möglichst generische Komponenten zu verwenden und einen geringen Preis pro Zelle zu erreichen.
Das ist jetzt die letzte Iteration: https://openinverter.org/wiki/16-cell_BMS
Also
16 Kanäle pro Modul
1 Stromsensoreingang
2 Temperatursensoreingänge pro Modul
Positives Balancing möglich, also nachladen niedriger Zellen
18-Bit Sigma/Delta ADC
Nur eine Hardware, also kein separates "Meister" Modul
Moin,
ich hoffe das passt hierein, ansonsten einfach verschieben.
Ich habe die letzten 10 Jahre schon diverse BMS entwickelt, immer mit dem Ziel möglichst generische Komponenten zu verwenden und einen geringen Preis pro Zelle zu erreichen.
Das ist jetzt die letzte Iteration:
Hi johuebner,
danke für den Link, ist die Hardware bei dir offen? Hab keinen kompletten Schaltplan gefunden aber von dem was ich gesehen hab ich denke ich dass du nen Isolierten ADC den du immer wechselnd auf die Zellen schaltest. Abgefahrene Idee auf jeden Fall ! Wenn du nur eine Hardware hast, lassen sich dann mehrere Module Kaskadieren?
Natürlich interessiert es als Bastler dann brennend, wie die das machen. Die Greisinger Schaltung - in meinem Fall für Pt100 - ist mehr als raffiniert, weil sie komplett differentiell arbeitet. Damit braucht sie weder teuere OPs noch irgendeinen Abgleich, noch nicht mal eine genaue Referenzquelle.
Mit volldifferenziell meist du dass der PT100 in ner Halbbrücke gegen nen 1:1 Spannungsteiler verschaltet ist , korrekt (falls nicht kannst du nen Schaltplan zeigen?)
Cool wäre das schon mit dieser Form von Genauigkeit, aber um die zu halten braucht man ja auch PT100 in 1/10 DIN B, die sind schon auch nicht ganz günstig. auch der LTC2436 ist bei 3-4 Euro. Wobei man das natürlich dann multiplexen kann.
Hab einen halben Tag mit simuliern verbracht und hatte schonmal einen ersten Entwurf wie der Part für jede Zelle aussehen könnte. Repo ist leider noch nicht soweit daher erstmal als PDF zum reviewn. LiBMS_balancer_module-Cell_MUX.pdf (156,7 KB)
Kosten pro Zelle bewegen sich irgendwo bei um die 45 bis 50 cent
Tatsächlich hab ich noch einen Fresszettel vom Projekt gefunden. Peinlich einfach, aber funktioniert gut. Man braucht auch keinen teuren Pt100 weil der Rest zur Temperatur sowieso in Software gerechnet wird. Die absolute Kalibrierung mit Stützpunkten ist aber extrem aufwendig. Das sieht man auch bei Greisinger weil ein Kalibrierschein für 0,03 Grad absolute Genauigkeit mehr als das Teil selbst kostet. Wenn man aber nur Tendenzen beobachen möchte, tut es das Teil auch völlig unkalibriert.
Ah Witzig, sowas ahnliches musste ich letzt auch entwerfen (mit der Zusatzbedingung vom 1mK auflösung bei 1kHz Datenrate) und hab mir selbst so ziemlich das gleiche Konzept ausgedacht klar, wenn man ne Temperaturkalibrierung macht braucht man natürlich keine teuren PTCs. Der charme von genauen PT100(0) Elementen ist, dass man eben auch ohne Kalibrierung eine recht hohe Absolutgenauigkeit bekommt.
Für nen Akku ist das vermutlich aber trotzdem overpaste oder? Natürlich könnte man günstige SMD PTCs einsetzen und die einfach aufeinander kalibriern. Am ende interessiert ja gar nicht die Absoluttemperatur sondern die Abweichung unter den Elementen. Vielleicht kann man sogar den selben Strom durch alle fließen lassen, das spart dann sehr viele Kabel zum BMS