ED BMSdiag - a free battery diagnostics tool

ED BMSdiag - a free battery diagnostics tool

Beitragvon odyssey » Mi 16. Mär 2016, 22:05

EDIT: Auf Wunsch von spark-ed hier die bisherigen Ergebnisse der gesammelten Userdaten. Dabei wurden die - für eine Normtemperatur ermittelten - BMS-Daten grafisch aufbereitet. Die Statistik der Einzelzellwerte zeigt immer nur den realen Ladezustand, wenn das BMS eine Kapazitätsmessung durchführen konnte. Dabei hat die Temperatur zum Ladezeitpunkt einen deutlichen Einfluß.
Die genutzen BMS-Werte wurden für - wahrscheinlich 25°C (oder 23°C ?) - normiert. Dabei kann es immer zu Berechnungsfehlern kommen und so wurden nur plausible Datensätze visualisiert!


SmartED3_capacity_vs_milage.png
(Linearisierung y = -2,524E-05 * x + 51,548, R^2 = 0,288 (Vorsicht !), -> 394 tkm bis zur Grenze von 80% Restkapazität)
SmartED3_capacity_vs_daily_milage.png
(Es scheint ein Optimum der Tagesfahrleistung zu geben. Bei Werten < 22km / d steht der Akku zu lange und eine Passivierung der Elektroden / des Elektrolyts (SEI evolution) wird eine Rolle spielen.
Bei Werten > 45km / d greift die Zyklenalterung. Das Ladeverhalten wird dabei leider nicht effizient erfaßt - kleine ∆SOC sind zu bevorzugen!)
SmartED3_capacity_vs_age.png
(Der Kreisdurchmessser zeigt die relative Laufleistung in der Stichprobe Cmax@45°C = 54,7 Ah)

-------------------------------------------------------------

Hallo zusammen,

vielleicht bekommen wir ja mal eine breitere Datenbasis, um zu sehen wie es um unsere Traktionsbatterien bestellt ist. Dazu habe ich ein kleines Tool geschrieben:

ED BMSdiag ist ein kleines Spin-off des EDh2-Projektes (EDIT: welches wohl begraben wird oder als EDm daherkommt ;-) )

EDIT: Bild der Diagnose - zugunsten der bisherigen Datenerhebung - entfernt

Damit kann sich jeder selbst über die Zellspannungen und Zellkapazitäten informieren. Eigentlich sollte es jeder hinbekommen, der sich zutraut einen Arduino UNO mit einem CAN-Bus shield zu versehen und dann noch ein Kabel zu kaufen :mrgreen:.

Die Software findet Ihr hier: ED BMSdiag GitHub-Repo. Meine Tutorials über das Tool und die Protokoll-Analyse sind hier zu finden: ED BMSdiag Tutorial, CAN bus sniffing.

Ich möchte mich an dieser Stelle noch für die Unterstützung von smarted bedanken, der das Projekt letztes Jahr kurz begleitet hat. Zudem geht mein Dank an AlterAmi für die ausführlichen Messungen zur Batteriekapazität.

So - nun viel Spaß damit - happy coding...

Beste Grüße
odyssey
Zuletzt geändert von odyssey am Di 25. Okt 2016, 22:27, insgesamt 6-mal geändert.
Benutzeravatar
odyssey
 
Beiträge: 420
Registriert: Di 7. Jan 2014, 19:22

Anzeige

Re: ED BMSdiag - a free battery diagnostics tool

Beitragvon KiAr » Mo 28. Mär 2016, 19:51

Danke für das Tool. Leider schlägt das Kompilieren bei mir unter 1.6.8 fehl. Es wird die MCP_CAN.h nicht gefunden. Mit einer gefunden Library mit den passenden Dateien kommen nun andere Fehlermeldungen.
Kannst du noch mitteilen, welche Library du für den MCP benutzt?
Smart ForTwo ED3 - rot/silber, 3,7 kW Lader, Reku-Paddel, Ledersitze + SHZ, ...
Mennekes Ladekabel CEE blau 16A
KiAr
 
Beiträge: 15
Registriert: Do 4. Apr 2013, 22:01
Wohnort: Maifeld

Re: ED BMSdiag - a free battery diagnostics tool

Beitragvon odyssey » Mo 28. Mär 2016, 20:27

KiAr hat geschrieben:
Danke für das Tool. Leider schlägt das Kompilieren bei mir unter 1.6.8 fehl. Es wird die MCP_CAN.h nicht gefunden. Mit einer gefunden Library mit den passenden Dateien kommen nun andere Fehlermeldungen.
Kannst du noch mitteilen, welche Library du für den MCP benutzt?
Sorry, habe die MCP-Lib "geforkt" und nicht in den Library-Ordner gepackt. Du findest sie auch in meinem Github: https://github.com/MyLab-odyssey/MCP_CAN_lib

Viel Erfolg und ich bin gespannt auf Deine Ergebnisse...
Benutzeravatar
odyssey
 
Beiträge: 420
Registriert: Di 7. Jan 2014, 19:22

Re: ED BMSdiag - a free battery diagnostics tool

Beitragvon KiAr » Mo 28. Mär 2016, 20:47

Bekomme leider immer noch die Fehlermeldungen, dass in der MCP Library Funktionen fehlen

Code: Alles auswählen
Arduino: 1.6.8 (Mac OS X), Board: "Arduino/Genuino Uno"

/Users/user/Documents/Arduino/ED_BMSdiag/ED_BMSdiag.ino: In function 'void setup()':
ED_BMSdiag:125: error: 'MCP_STD' was not declared in this scope
   if(CAN0.begin(MCP_STD, CAN_500KBPS, MCP_16MHZ) == CAN_OK) DEBUG_UPDATE(F("MCP2515 Init Okay!!\r\n"));
                 ^
ED_BMSdiag:125: error: 'MCP_16MHZ' was not declared in this scope
   if(CAN0.begin(MCP_STD, CAN_500KBPS, MCP_16MHZ) == CAN_OK) DEBUG_UPDATE(F("MCP2515 Init Okay!!\r\n"));
                                       ^
/Users/user/Documents/Arduino/ED_BMSdiag/ED_BMSdiag.ino: In function 'void clearCAN_Filter()':
ED_BMSdiag:171: error: 'class MCP_CAN' has no member named 'setMode'
   CAN0.setMode(MCP_NORMAL);                     // Set operation mode to normal so the MCP2515 sends acks to received data.
        ^
ED_BMSdiag:171: error: 'MCP_NORMAL' was not declared in this scope
   CAN0.setMode(MCP_NORMAL);                     // Set operation mode to normal so the MCP2515 sends acks to received data.
                ^
/Users/user/Documents/Arduino/ED_BMSdiag/ED_BMSdiag.ino: In function 'void setCAN_Filter(long unsigned int)':
ED_BMSdiag:188: error: 'class MCP_CAN' has no member named 'setMode'
   CAN0.setMode(MCP_NORMAL);                     // Set operation mode to normal so the MCP2515 sends acks to received data.
        ^
ED_BMSdiag:188: error: 'MCP_NORMAL' was not declared in this scope
   CAN0.setMode(MCP_NORMAL);                     // Set operation mode to normal so the MCP2515 sends acks to received data.
                ^
/Users/user/Documents/Arduino/ED_BMSdiag/ED_BMSdiag.ino: In function 'unsigned int Get_RequestResponse()':
ED_BMSdiag:225: error: no matching function for call to 'MCP_CAN::readMsgBuf(long unsigned int*, unsigned char*, unsigned char [8])'
           CAN0.readMsgBuf(&rxID, &len, rxBuf);    // Read data: len = data length, buf = data byte(s)       
                                             ^
/Users/user/Documents/Arduino/ED_BMSdiag/ED_BMSdiag.ino:225:45: note: candidate is:
In file included from /Users/user/Documents/Arduino/ED_BMSdiag/ED_BMSdiag.ino:39:0:
/Users/user/Documents/Arduino/libraries/MCP_CAN_lib-master/mcp_can.h:102:11: note: byte MCP_CAN::readMsgBuf(byte*, byte*)
     INT8U readMsgBuf(INT8U *len, INT8U *buf);                       /* read buf                     */
           ^
/Users/user/Documents/Arduino/libraries/MCP_CAN_lib-master/mcp_can.h:102:11: note:   candidate expects 2 arguments, 3 provided
/Users/user/Documents/Arduino/ED_BMSdiag/ED_BMSdiag.ino: In function 'boolean Read_FC_Response(int)':
ED_BMSdiag:288: error: no matching function for call to 'MCP_CAN::readMsgBuf(long unsigned int*, unsigned char*, unsigned char [8])'
           CAN0.readMsgBuf(&rxID, &len, rxBuf);    // Read data: len = data length, buf = data byte(s)       
                                             ^
/Users/user/Documents/Arduino/ED_BMSdiag/ED_BMSdiag.ino:288:45: note: candidate is:
In file included from /Users/user/Documents/Arduino/ED_BMSdiag/ED_BMSdiag.ino:39:0:
/Users/user/Documents/Arduino/libraries/MCP_CAN_lib-master/mcp_can.h:102:11: note: byte MCP_CAN::readMsgBuf(byte*, byte*)
     INT8U readMsgBuf(INT8U *len, INT8U *buf);                       /* read buf                     */
           ^
/Users/user/Documents/Arduino/libraries/MCP_CAN_lib-master/mcp_can.h:102:11: note:   candidate expects 2 arguments, 3 provided
/Users/user/Documents/Arduino/ED_BMSdiag/ED_BMSdiag.ino: In function 'void ClearReadBuffer()':
ED_BMSdiag:347: error: no matching function for call to 'MCP_CAN::readMsgBuf(long unsigned int*, unsigned char*, unsigned char [8])'
       CAN0.readMsgBuf(&rxID, &len, rxBuf);
                                         ^
/Users/user/Documents/Arduino/ED_BMSdiag/ED_BMSdiag.ino:347:41: note: candidate is:
In file included from /Users/user/Documents/Arduino/ED_BMSdiag/ED_BMSdiag.ino:39:0:
/Users/user/Documents/Arduino/libraries/MCP_CAN_lib-master/mcp_can.h:102:11: note: byte MCP_CAN::readMsgBuf(byte*, byte*)
     INT8U readMsgBuf(INT8U *len, INT8U *buf);                       /* read buf                     */
           ^
/Users/user/Documents/Arduino/libraries/MCP_CAN_lib-master/mcp_can.h:102:11: note:   candidate expects 2 arguments, 3 provided
/Users/user/Documents/Arduino/ED_BMSdiag/ED_BMSdiag.ino: In function 'boolean ReadSOC()':
ED_BMSdiag:523: error: no matching function for call to 'MCP_CAN::readMsgBuf(long unsigned int*, unsigned char*, unsigned char [8])'
     CAN0.readMsgBuf(&rxID, &len, rxBuf);
                                       ^
/Users/user/Documents/Arduino/ED_BMSdiag/ED_BMSdiag.ino:523:39: note: candidate is:
In file included from /Users/user/Documents/Arduino/ED_BMSdiag/ED_BMSdiag.ino:39:0:
/Users/user/Documents/Arduino/libraries/MCP_CAN_lib-master/mcp_can.h:102:11: note: byte MCP_CAN::readMsgBuf(byte*, byte*)
     INT8U readMsgBuf(INT8U *len, INT8U *buf);                       /* read buf                     */
           ^
/Users/user/Documents/Arduino/libraries/MCP_CAN_lib-master/mcp_can.h:102:11: note:   candidate expects 2 arguments, 3 provided
/Users/user/Documents/Arduino/ED_BMSdiag/ED_BMSdiag.ino: In function 'boolean ReadHV()':
ED_BMSdiag:544: error: no matching function for call to 'MCP_CAN::readMsgBuf(long unsigned int*, unsigned char*, unsigned char [8])'
     CAN0.readMsgBuf(&rxID, &len, rxBuf);
                                       ^
/Users/user/Documents/Arduino/ED_BMSdiag/ED_BMSdiag.ino:544:39: note: candidate is:
In file included from /Users/user/Documents/Arduino/ED_BMSdiag/ED_BMSdiag.ino:39:0:
/Users/user/Documents/Arduino/libraries/MCP_CAN_lib-master/mcp_can.h:102:11: note: byte MCP_CAN::readMsgBuf(byte*, byte*)
     INT8U readMsgBuf(INT8U *len, INT8U *buf);                       /* read buf                     */
           ^
/Users/user/Documents/Arduino/libraries/MCP_CAN_lib-master/mcp_can.h:102:11: note:   candidate expects 2 arguments, 3 provided
exit status 1
'MCP_STD' was not declared in this scope

Dieser Bericht wäre detaillierter, wenn die Option
"Ausführliche Ausgabe während der Kompilierung"
in Datei -> Voreinstellungen aktiviert wäre.


Habe bisher noch nichts Arduino gemacht. Vielleicht fehlt da sonst noch was.
Smart ForTwo ED3 - rot/silber, 3,7 kW Lader, Reku-Paddel, Ledersitze + SHZ, ...
Mennekes Ladekabel CEE blau 16A
KiAr
 
Beiträge: 15
Registriert: Do 4. Apr 2013, 22:01
Wohnort: Maifeld

Re: ED BMSdiag - a free battery diagnostics tool

Beitragvon odyssey » Mo 28. Mär 2016, 21:35

Hi KiAr,

Danke für die Rückmeldung - nochmal sorry! Arbeite nun schon so lange mit der Lib - hab' vergessen, daß ich für die Filter v1.5 nutze. Ist nicht im Master, sondern im Sub-Dev.: https://github.com/MyLab-odyssey/MCP_CAN_lib/tree/Sub-Development
Zudem habe ich die MCP-CAN nun auch in meinen Library-Ordner integriert, damit nicht noch mehr darüber stolpern...

Du bist wohl der Erste - bitte melde Dich wenn es nicht klappt!

Beste Grüße
odyssey
Benutzeravatar
odyssey
 
Beiträge: 420
Registriert: Di 7. Jan 2014, 19:22

Re: ED BMSdiag - a free battery diagnostics tool

Beitragvon KiAr » Mo 28. Mär 2016, 22:39

Das sieht schon besser aus. Kompilieren funktioniert nun. Die Konsole antwortet auch nach dem Hochladen.
Ich hoffe ich komme dann morgen mal dazu die Daten auszulesen.
Smart ForTwo ED3 - rot/silber, 3,7 kW Lader, Reku-Paddel, Ledersitze + SHZ, ...
Mennekes Ladekabel CEE blau 16A
KiAr
 
Beiträge: 15
Registriert: Do 4. Apr 2013, 22:01
Wohnort: Maifeld

Re: ED BMSdiag - a free battery diagnostics tool

Beitragvon odyssey » Mo 28. Mär 2016, 22:46

Freue mich schon auf ein weiteres Feedback! - Viel Erfolg!
EDIT: Noch ein Tipp zum Ablauf:
1. Fahrzeug entriegeln.
2. Arduino per USB an den Laptop, dann Terminal / Monitor starten.
3. Warten bis die "P"-Leuchte am Wahlhebel aus ist -> CAN-Bus inaktiv.
4. Mit OBD verbinden.
5. Fahrzeug nochmals entriegeln - CAN-Bus für ca. 1 Minute aktiv, oder Fahrzeug "Zündung" auf Pos. 1.
6. Abfrage starten...

Habe meinem ED BMSdiag ein schönes Gehäuse spendiert - kannst ja mal Deine "Hardware" posten:
ED_BMSdiag_case_open.JPG
ED_BMSdiag_case#1.JPG
ED_BMSdiag_case#2.JPG
Benutzeravatar
odyssey
 
Beiträge: 420
Registriert: Di 7. Jan 2014, 19:22

Re: ED BMSdiag - a free battery diagnostics tool

Beitragvon AlterAmi » Di 29. Mär 2016, 12:50

Will haben!

Das ist das erste smart-ED Zubehoer das wirklich interessant ist!

:danke:
AlterAmi
 
Beiträge: 250
Registriert: Di 20. Aug 2013, 17:35
Wohnort: Boston

Re: ED BMSdiag - a free battery diagnostics tool

Beitragvon Spüli » Di 29. Mär 2016, 12:58

Moin!
Die beite Datenbasis sollte zu schaffen sein. Entlang der A2 gibt es ja doch den einen oder anderen Smart ED. Wenn wir dann noch die verschiedenen Nutzungen hinterlegen lässt sich tatsächlich etwas mit den Messwerten anfangen.

Sicher ist auch der Verlauf der Werte interessant wenn man im Alltag unterwegs ist oder dann doch mal auf einer längeren Strecke. Vielleicht fährt Ralph ja noch mal nach Budapest, da mußte der Akku dann auch mal so richtig auf Touren kommen. :mrgreen:
Gruß Ingo
Benutzeravatar
Spüli
 
Beiträge: 2057
Registriert: Sa 22. Dez 2012, 16:23
Wohnort: Gifhorn

Re: ED BMSdiag - a free battery diagnostics tool

Beitragvon KiAr » Sa 2. Apr 2016, 13:43

Hab die Daten jetzt mal ausgelesen.
EZ ist 12/2012
Gefahren bin ich bisher 52.000km

Code: Alles auswählen
---------------------------------------
--- ED Battery Management Diagnostics ---
-----------------------------------------
Connect to OBD port - Waiting for CAN-Bus
..........CONNECTED
Press a key to start query...
-----------------------------------------
Read Voltages...OK
Read Capacity...OK
Read ADCref. ...OK
Read HV state...OK
-----------------------------------------
SOC     : 100.0 %,  HV: 389.5 V
-----------------------------------------
CV mean : 4164 mV, ∆ = 26 mV
CV min  : 4140 mV
CV max  : 4166 mV
-----------------------------------------
CAP mean: 19253 As/10, 53.5 Ah
CAP min : 19634 As/10, 54.5 Ah
CAP max : 19861 As/10, 55.2 Ah
Last measurement: 213 day(s)
-----------------------------------------
HV contactor state ON
HV contactor cycles left: 295447
           of max cycles: 300000
-----------------------------------------
Meas. quality         : 0.762
Meas. quality combined: 0.094
-----------------------------------------
# ;mV  ;As/10
01;4164;19210
02;4166;19253
03;4163;18953
04;4167;19297
05;4165;19038
06;4166;19167
07;4166;19038
08;4165;19297
09;4165;19080
10;4166;19080
11;4165;18953
12;4166;19167
13;4164;18910
14;4166;18910
15;4166;19080
16;4166;19253
17;4165;19253
18;4166;19167
19;4164;19210
20;4167;19167
21;4165;18953
22;4166;18995
23;4163;19167
24;4165;19253
25;4164;19080
26;4166;19297
27;4166;19253
28;4165;19253
29;4164;19080
30;4166;19167
31;4166;19167
32;4164;19167
33;4163;19038
34;4165;19080
35;4163;19123
36;4166;19080
37;4162;19123
38;4167;19123
39;4160;18995
40;4167;18995
41;4164;19080
42;4165;18995
43;4164;19167
44;4165;18995
45;4162;19038
46;4165;19080
47;4164;19080
48;4167;19167
49;4166;18953
50;4166;18910
51;4164;18785
52;4166;18910
53;4164;18995
54;4166;19167
55;4164;18910
56;4166;19080
57;4164;19167
58;4166;19080
59;4165;18953
60;4166;19167
61;4162;18868
62;4166;18910
63;4164;19038
64;4166;18995
65;4164;18995
66;4166;18868
67;4166;18702
68;4166;18995
69;4165;19167
70;4166;19167
71;4166;18995
72;4165;18910
73;4165;19080
74;4166;19167
75;4140;18910
76;4165;18995
77;4164;19123
78;4166;19080
79;4166;19123
80;4166;18868
81;4164;18868
82;4166;19123
83;4164;18785
84;4166;18995
85;4166;18910
86;4165;18743
87;4164;18910
88;4166;18995
89;4165;18995
90;4166;19080
91;4165;18743
92;4166;19038
93;4164;18868
-----------------------------------------
Individual Cell Statistics:
-----------------------------------------
CV mean : 4165 mV, ∆ = 27 mV, σ = 2.87 mV
CV min  : 4140 mV
CV max  : 4167 mV
-----------------------------------------
CAP mean: 19049 As/10, 52.9 Ah
CAP min : 18702 As/10, 52.0 Ah
CAP max : 19297 As/10, 53.6 Ah
-----------------------------------------


Bisher hab ich die Platine noch nackt im Einsatz. Ich hatte aber vor regelmäßig die Daten auszulesen. Werde mich dann demnächst um ein Gehäuse kümmern.
Smart ForTwo ED3 - rot/silber, 3,7 kW Lader, Reku-Paddel, Ledersitze + SHZ, ...
Mennekes Ladekabel CEE blau 16A
KiAr
 
Beiträge: 15
Registriert: Do 4. Apr 2013, 22:01
Wohnort: Maifeld

Anzeige

Nächste

Zurück zu fortwo ed - Batterie, Reichweite

 
  • Ähnliche Themen
    Antworten
    Zugriffe
    Letzter Beitrag
  • Ähnliche Artikel im Blog

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast