Advice - mapping I3 data to the standard metrics
Hi Michael et al, I set my first goal to get all the metrics that are required for the standard dashboard to work on the I3. I've got some questions about the intended use of the metrics. Hope someone can give advice: I'm sorry this is a tome, I did work to shorten it. 1) How do I understand a "trip"? My car has a trip-meter that you can reset. It also by itself seems to have some heuristic for trips that it uses for the "ecodrive" stuff. There are some PIDS that return trip-related data but I must still figure out when they reset - whether it goes by the trip feature. But what does OVMS regard as a "trip"? For me: I would want it to work automatically - ie reset the trip stats each time the car goes to READY except perhaps if it has just been a few minutes since it was turned off. 2) About temperatures: The i3 has SO MANY temperature sensors, especially in the "electrical machine electronics" - how to map them to the standard metrics in OVMS? I guess you will say it's my call, but I'd like what I do to be consistent with other vehicles. There are the following standard metrics relating to temperature (you can see some I mapped already) a) Battery temps: These I took from a PID that returns a "coldest", "hottest" and mean for the pack as a whole : v.b.p.temp.avg 21.27°C v.b.p.temp.max 21.83°C v.b.p.temp.min 21.04°C v.b.p.temp.stddev v.b.p.temp.stddev.max v.b.temp 21.27°C A min, max, and mean doesn't give me enough to work out a standard deviation. And: what is a "maximum" stddev? Is that over time? And for v.b.temp I just used the avg temp from above. I could have used the max instead - any view? : b) v.e.temp: ("environmental temp") Found a value for outside / ambient temp : v.e.temp 21.5°C c) v.m.temp - motor temp: There are two temps for the "e-machine". These are inside the actual electric motor. I used the hotter of the two : v.m.temp 25.3968°C d) v.e.cabintemp: I haven't looked into the aircon system yet: e) v.i.temp: Inverter temp: There are 4 inverter temps: // Temperature converter phase U / Temperatur Umrichter Phase U 2020-12-16 17:59:10 SAST D (289275) v-bmwi3: From ECU EME, pid AE_TEMP_LE: got STAT_TEMP_UMRICHTER_PHASE_U_WERT=35.8020"°C" // Temperature converter phase V / Temperatur Umrichter Phase V 2020-12-16 17:59:10 SAST D (289275) v-bmwi3: From ECU EME, pid AE_TEMP_LE: got STAT_TEMP_UMRICHTER_PHASE_V_WERT=35.0532"°C" // Temperature converter phase W / Temperatur Umrichter Phase W 2020-12-16 17:59:10 SAST D (289275) v-bmwi3: From ECU EME, pid AE_TEMP_LE: got STAT_TEMP_UMRICHTER_PHASE_W_WERT=34.7568"°C" // Temperature inverter gate driver / Temperatur Inverter Gatedriver 2020-12-16 17:59:10 SAST D (289275) v-bmwi3: From ECU EME, pid AE_TEMP_LE: got STAT_TEMP_UMRICHTER_GT_WERT=45.5832"°C" I just took the highest. f) v.c.temp: charger temp: For v.c.temp there are also 4 measurements: // Temperature SLE-PowerFactorCorrection / Temperatur SLE-PowerFactorCorrection 2020-12-16 17:59:10 SAST D (289285) v-bmwi3: From ECU EME, pid AE_TEMP_LE: got STAT_TEMP_SLE_PFC_WERT=27.0972"°C" // Temperature SLE rectifier / Temperatur SLE-Gleichrichter 2020-12-16 17:59:10 SAST D (289285) v-bmwi3: From ECU EME, pid AE_TEMP_LE: got STAT_TEMP_SLE_GR_WERT=28.0488"°C" // Temperature SLE push-pull converter / Temperatur SLE-Gegentaktwandler 2020-12-16 17:59:10 SAST D (289285) v-bmwi3: From ECU EME, pid AE_TEMP_LE: got STAT_TEMP_SLE_GTW_WERT=27.5652"°C" // Temperature of the SLE board / Temperatur des SLE Boards 2020-12-16 17:59:10 SAST D (289285) v-bmwi3: From ECU EME, pid AE_TEMP_LE: got STAT_TEMP_SLE_BO_WERT=29.0004"°C" (SLE also called KLE elsewhere - Komfort Ladeelectronik I think it is) I took the hottest. My car also has DC charging but if I understand that rightly there isn't any high power electrical stuff onboard for that, contactors are closed to give the external - so nothing to get hot except the battery itself. Then I have some more temps - DC/DC converter used to supply the 12v systems (and to charge the 12 battery). I don't see any standard metrics for this subsystem? // Temperature of the DCDC board / Temperatur des DCDC Boards 2020-12-16 17:59:10 SAST D (289285) v-bmwi3: From ECU EME, pid AE_TEMP_LE: got STAT_TEMP_DCDC_BO_WERT=35.8488"°C" // Temperature DC / DC push-pull converter / Temperatur DC/DC-Gegentaktwandler 2020-12-16 17:59:10 SAST D (289285) v-bmwi3: From ECU EME, pid AE_TEMP_LE: got STAT_TEMP_DCDC_GTW_WERT=32.0892"°C" // Temperature DC / DC buck converter / Temperatur DC/DC-Tiefsetzer 2020-12-16 17:59:10 SAST D (289285) v-bmwi3: From ECU EME, pid AE_TEMP_LE: got STAT_TEMP_DCDC_TS_WERT=59.9976"°C" // Temperature of the DCDC board / Temperatur des DCDC Boards 2020-12-16 17:59:10 SAST D (289285) v-bmwi3: From ECU EME, pid AE_TEMP_LE: got STAT_TEMP_DCDC_GR_WERT=31.6524"°C" - "ELUP power output stage". Dunno what "ELUP" is and didn't find it in the technical training info I have. // Temperature on the power board - measuring point ELUP power output stage / Temperatur auf dem Powerbord - // Messstelle ELUP Leistungsendstufe 2020-12-16 17:59:10 SAST D (289285) v-bmwi3: From ECU EME, pid AE_TEMP_LE: got STAT_TEMP_ELUP_LE_WERT=30.0768"°C" - And 2 processor temps: // Temperature processor MC0 / Temperatur Prozessor MC0 2020-12-16 17:59:10 SAST D (289285) v-bmwi3: From ECU EME, pid AE_TEMP_LE: got STAT_TEMP_PROZESSOR_MC0_WERT=39.9048"°C" // Temperature processor MC2 / Temperatur Prozessor MC2 2020-12-16 17:59:10 SAST D (289285) v-bmwi3: From ECU EME, pid AE_TEMP_LE: got STAT_TEMP_PROZESSOR_MC2_WERT=39.9048"°C" 3) What to do about "range". So I found a pid that returns a "range" - but it always be the range in so-called "Comfort" mode. The car instrument display actually shows range according to the mode the car is in. I normally drive in "Eco-pro". There's another PID that gives a figure for each of the 4 modes my car has got. How do other vehicles handle this? I'd like to show users all the ranges, and then put the range in the current mode into the standard metric v.b.range.est And I don't think I understand exactly the difference between "est", "ideal", and "full". My best guess for how to make them work: "est" is the figure the car gives up - either that "comfort mode" number or the number for the current mode "ideal": my best idea for how to get this is the WLTP range for the car's battery capacity scaled by the SOH% and the SOC% to come up with some sort of theoretically "possible" figure? "full": not sure - My idea would be to take the "est" figure from the car and scale it up to a range if the battery was full. Thanks, Steve
Steve, Am 17.12.20 um 13:40 schrieb Steve Davies:
Hi Michael et al,
I set my first goal to get all the metrics that are required for the standard dashboard to work on the I3. I've got some questions about the intended use of the metrics. Hope someone can give advice:
I'm sorry this is a tome, I did work to shorten it.
1) How do I understand a "trip"?
My car has a trip-meter that you can reset. It also by itself seems to have some heuristic for trips that it uses for the "ecodrive" stuff. There are some PIDS that return trip-related data but I must still figure out when they reset - whether it goes by the trip feature. But what does OVMS regard as a "trip"?
What you want it to be, what makes the most sense for your users. If your car has multiple trip odometers you can read, choose the most appropriate or make if configurable which one to use. If not, implement your own.
For me: I would want it to work automatically - ie reset the trip stats each time the car goes to READY except perhaps if it has just been a few minutes since it was turned off.
2) About temperatures: The i3 has SO MANY temperature sensors, especially in the "electrical machine electronics" - how to map them to the standard metrics in OVMS?
Map only those to the standards which match their meaning. Map others to custom metrics.
I guess you will say it's my call, but I'd like what I do to be consistent with other vehicles.
There are the following standard metrics relating to temperature (you can see some I mapped already)
a) Battery temps: These I took from a PID that returns a "coldest", "hottest" and mean for the pack as a whole :
v.b.p.temp.avg 21.27°C v.b.p.temp.max 21.83°C v.b.p.temp.min 21.04°C v.b.p.temp.stddev v.b.p.temp.stddev.max
v.b.temp 21.27°C
A min, max, and mean doesn't give me enough to work out a standard deviation. And: what is a "maximum" stddev? Is that over time?
These are for the overall cell values. See the comments in main/metrics_standard.h, also at https://docs.openvehicles.com/en/latest/userguide/metrics.html
And for v.b.temp I just used the avg temp from above. I could have used the max instead - any view? :
If you don't have a separate battery temperature (outside the cells), that's reasonable.
b) v.e.temp: ("environmental temp") Found a value for outside / ambient temp :
v.e.temp 21.5°C
c) v.m.temp - motor temp: There are two temps for the "e-machine". These are inside the actual electric motor. I used the hotter of the two :
v.m.temp 25.3968°C
d) v.e.cabintemp: I haven't looked into the aircon system yet:
e) v.i.temp: Inverter temp:
There are 4 inverter temps:
// Temperature converter phase U / Temperatur Umrichter Phase U 2020-12-16 17:59:10 SAST D (289275) v-bmwi3: From ECU EME, pid AE_TEMP_LE: got STAT_TEMP_UMRICHTER_PHASE_U_WERT=35.8020"°C" // Temperature converter phase V / Temperatur Umrichter Phase V 2020-12-16 17:59:10 SAST D (289275) v-bmwi3: From ECU EME, pid AE_TEMP_LE: got STAT_TEMP_UMRICHTER_PHASE_V_WERT=35.0532"°C" // Temperature converter phase W / Temperatur Umrichter Phase W 2020-12-16 17:59:10 SAST D (289275) v-bmwi3: From ECU EME, pid AE_TEMP_LE: got STAT_TEMP_UMRICHTER_PHASE_W_WERT=34.7568"°C" // Temperature inverter gate driver / Temperatur Inverter Gatedriver 2020-12-16 17:59:10 SAST D (289275) v-bmwi3: From ECU EME, pid AE_TEMP_LE: got STAT_TEMP_UMRICHTER_GT_WERT=45.5832"°C"
I just took the highest.
As above, whatever makes the most sense technically. On the Twizy, which uses a SEVCON Gen4, I've used the short-term average overall internal temperature instead of the highest one, as the highest is an ultra short term estimation (simulation) of some internal transistor temperature. The last of your temperatures sounds similar to that, so may be a bad choice. Then again, for some motor sports enthusiast, all these values may be of interest, so why not just provide them in custom metrics.
f) v.c.temp: charger temp:
For v.c.temp there are also 4 measurements:
// Temperature SLE-PowerFactorCorrection / Temperatur SLE-PowerFactorCorrection 2020-12-16 17:59:10 SAST D (289285) v-bmwi3: From ECU EME, pid AE_TEMP_LE: got STAT_TEMP_SLE_PFC_WERT=27.0972"°C" // Temperature SLE rectifier / Temperatur SLE-Gleichrichter 2020-12-16 17:59:10 SAST D (289285) v-bmwi3: From ECU EME, pid AE_TEMP_LE: got STAT_TEMP_SLE_GR_WERT=28.0488"°C" // Temperature SLE push-pull converter / Temperatur SLE-Gegentaktwandler 2020-12-16 17:59:10 SAST D (289285) v-bmwi3: From ECU EME, pid AE_TEMP_LE: got STAT_TEMP_SLE_GTW_WERT=27.5652"°C" // Temperature of the SLE board / Temperatur des SLE Boards 2020-12-16 17:59:10 SAST D (289285) v-bmwi3: From ECU EME, pid AE_TEMP_LE: got STAT_TEMP_SLE_BO_WERT=29.0004"°C"
(SLE also called KLE elsewhere - Komfort Ladeelectronik I think it is)
I took the hottest.
Same as above.
My car also has DC charging but if I understand that rightly there isn't any high power electrical stuff onboard for that, contactors are closed to give the external - so nothing to get hot except the battery itself.
Then I have some more temps -
DC/DC converter used to supply the 12v systems (and to charge the 12 battery).
I don't see any standard metrics for this subsystem?
// Temperature of the DCDC board / Temperatur des DCDC Boards 2020-12-16 17:59:10 SAST D (289285) v-bmwi3: From ECU EME, pid AE_TEMP_LE: got STAT_TEMP_DCDC_BO_WERT=35.8488"°C" // Temperature DC / DC push-pull converter / Temperatur DC/DC-Gegentaktwandler 2020-12-16 17:59:10 SAST D (289285) v-bmwi3: From ECU EME, pid AE_TEMP_LE: got STAT_TEMP_DCDC_GTW_WERT=32.0892"°C" // Temperature DC / DC buck converter / Temperatur DC/DC-Tiefsetzer 2020-12-16 17:59:10 SAST D (289285) v-bmwi3: From ECU EME, pid AE_TEMP_LE: got STAT_TEMP_DCDC_TS_WERT=59.9976"°C" // Temperature of the DCDC board / Temperatur des DCDC Boards 2020-12-16 17:59:10 SAST D (289285) v-bmwi3: From ECU EME, pid AE_TEMP_LE: got STAT_TEMP_DCDC_GR_WERT=31.6524"°C"
No standard metrics, but that's a candidate. But again, only one temperature (the most relevant for the user) will be standard.
- "ELUP power output stage". Dunno what "ELUP" is and didn't find it in the technical training info I have.
// Temperature on the power board - measuring point ELUP power output stage / Temperatur auf dem Powerbord - // Messstelle ELUP Leistungsendstufe 2020-12-16 17:59:10 SAST D (289285) v-bmwi3: From ECU EME, pid AE_TEMP_LE: got STAT_TEMP_ELUP_LE_WERT=30.0768"°C"
- And 2 processor temps:
// Temperature processor MC0 / Temperatur Prozessor MC0 2020-12-16 17:59:10 SAST D (289285) v-bmwi3: From ECU EME, pid AE_TEMP_LE: got STAT_TEMP_PROZESSOR_MC0_WERT=39.9048"°C" // Temperature processor MC2 / Temperatur Prozessor MC2 2020-12-16 17:59:10 SAST D (289285) v-bmwi3: From ECU EME, pid AE_TEMP_LE: got STAT_TEMP_PROZESSOR_MC2_WERT=39.9048"°C"
See above: custom metrics.
3) What to do about "range".
So I found a pid that returns a "range" - but it always be the range in so-called "Comfort" mode. The car instrument display actually shows range according to the mode the car is in. I normally drive in "Eco-pro".
There's another PID that gives a figure for each of the 4 modes my car has got.
How do other vehicles handle this?
I'd like to show users all the ranges, and then put the range in the current mode into the standard metric v.b.range.est
And I don't think I understand exactly the difference between "est", "ideal", and "full".
My best guess for how to make them work:
"est" is the figure the car gives up - either that "comfort mode" number or the number for the current mode "ideal": my best idea for how to get this is the WLTP range for the car's battery capacity scaled by the SOH% and the SOC% to come up with some sort of theoretically "possible" figure? "full": not sure - My idea would be to take the "est" figure from the car and scale it up to a range if the battery was full.
Estimated range = car figure for current driving mode & conditions, or your own calculation if the car delivers no/poor/undependable figures Ideal range = either the best range the car calculates, or your own calculation for the best case driving conditions if the car delivers no/poor/undependable figures Full range = Ideal range at 100% SOC & current conditions Don't use the WLTP figures if they are totally unrealistic. Try to create additional, dependable value for the user.
Thanks, Steve
Regard, Michael
_______________________________________________ OvmsDev mailing list OvmsDev@lists.openvehicles.com http://lists.openvehicles.com/mailman/listinfo/ovmsdev
-- Michael Balzer * Helkenberger Weg 9 * D-58256 Ennepetal Fon 02333 / 833 5735 * Handy 0176 / 206 989 26
// Temperature of the DCDC board / Temperatur des DCDC Boards 2020-12-16 17:59:10 SAST D (289285) v-bmwi3: From ECU EME, pid AE_TEMP_LE: got STAT_TEMP_DCDC_GR_WERT=31.6524"°C"
No standard metrics, but that's a candidate. But again, only one temperature (the most relevant for the user) will be standard.
I'd like to second that: the VW e-Up also has a DC/DC-temperature. I propose the new standard metric v.e.dcdctemp and would add it in a pull request if nobody objects. sharkcow
You propose "v.e." probably due to the "v.e.charging12v" and ".aux12v" flags? I think these are misplaced in "v.e." (as some others). We should probably rename them mid to long term. "e" has been used (also by me) as a pool for stuff that didn't fit elsewhere, but we probably should try to clean this up so its "environment" again (meaning any kind of environmental influence or control). The DC converter doesn't really fit there. I would rather place the DC converter metrics in the charger namespace, e.g. "v.c.12v.temp", as the DC converter often is a part / subsystem of the charger, and it's main purpose normally is charging and assisting the 12V battery. Another option could be the 12V battery namespace, e.g. "v.b.12v.c.temp", but the DC converter isn't a subordinate of the battery. In all cases I'd like to keep the "12v" tag associated here, so all 12v related metrics can be queried by a simple "me li 12v" and subscribed to with a single topic pattern. Opinions? Regards, Michael Am 19.12.20 um 15:37 schrieb sharkcow:
// Temperature of the DCDC board / Temperatur des DCDC Boards 2020-12-16 17:59:10 SAST D (289285) v-bmwi3: From ECU EME, pid AE_TEMP_LE: got STAT_TEMP_DCDC_GR_WERT=31.6524"°C"
No standard metrics, but that's a candidate. But again, only one temperature (the most relevant for the user) will be standard.
I'd like to second that: the VW e-Up also has a DC/DC-temperature. I propose the new standard metric
v.e.dcdctemp
and would add it in a pull request if nobody objects.
sharkcow _______________________________________________ OvmsDev mailing list OvmsDev@lists.openvehicles.com http://lists.openvehicles.com/mailman/listinfo/ovmsdev
-- Michael Balzer * Helkenberger Weg 9 * D-58256 Ennepetal Fon 02333 / 833 5735 * Handy 0176 / 206 989 26
Thanks for the input. As discussed earlier, I would also like to add standard metrics for the maintenance interval range and time. For these, Mark also proposed "e"-submetrics. So should I use v.service.range/days instead of v.e.service.range/days? Or something else? sharkcow Am 19.12.20 um 18:13 schrieb Michael Balzer:
You propose "v.e." probably due to the "v.e.charging12v" and ".aux12v" flags? I think these are misplaced in "v.e." (as some others). We should probably rename them mid to long term.
"e" has been used (also by me) as a pool for stuff that didn't fit elsewhere, but we probably should try to clean this up so its "environment" again (meaning any kind of environmental influence or control). The DC converter doesn't really fit there.
I would rather place the DC converter metrics in the charger namespace, e.g. "v.c.12v.temp", as the DC converter often is a part / subsystem of the charger, and it's main purpose normally is charging and assisting the 12V battery.
Another option could be the 12V battery namespace, e.g. "v.b.12v.c.temp", but the DC converter isn't a subordinate of the battery.
In all cases I'd like to keep the "12v" tag associated here, so all 12v related metrics can be queried by a simple "me li 12v" and subscribed to with a single topic pattern.
Opinions?
Regards, Michael
Am 19.12.20 um 15:37 schrieb sharkcow:
// Temperature of the DCDC board / Temperatur des DCDC Boards 2020-12-16 17:59:10 SAST D (289285) v-bmwi3: From ECU EME, pid AE_TEMP_LE: got STAT_TEMP_DCDC_GR_WERT=31.6524"°C"
No standard metrics, but that's a candidate. But again, only one temperature (the most relevant for the user) will be standard.
I'd like to second that: the VW e-Up also has a DC/DC-temperature. I propose the new standard metric
v.e.dcdctemp
and would add it in a pull request if nobody objects.
sharkcow _______________________________________________ OvmsDev mailing list OvmsDev@lists.openvehicles.com http://lists.openvehicles.com/mailman/listinfo/ovmsdev
_______________________________________________ OvmsDev mailing list OvmsDev@lists.openvehicles.com http://lists.openvehicles.com/mailman/listinfo/ovmsdev
participants (3)
-
Michael Balzer -
sharkcow -
Steve Davies