<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
Mark,<br>
<br>
two questions…<br>
<br>
<br>
a) Can we agree on a slightly different naming scheme?<br>
<br>
I suggest adding an indicator for the cell level semantics to the
"soc.min" and "soc.max" names, e.g.<br>
<br>
<tt>v.b.cell.soc.min</tt><tt><br>
</tt><tt>
v.b.cell.soc.max</tt><br>
<br>
…or abbreviated…<br>
<br>
<tt>v.b.c.soc.min</tt><tt><br>
</tt><tt>
v.b.c.soc.max</tt><br>
<br>
That way we can add further cell related metrics (e.g. ".cnt",
".soc.stddev") in a consistent name space.<br>
<br>
<br>
b) What is the technical definition of the "soc.min" metric?<br>
<br>
Normally I would expect "soc.min" to be identical to the overall
pack SOC -- the Roadster certainly doesn't allow cells to be
discharged below 0% SOC?<br>
<br>
What are typical values for "min" and "max" in reference to the
overall SOC and voltage?<br>
<br>
I mean, if that's really a normalized cell voltage level, we
shouldn't name it "soc".<br>
<br>
<br>
Regards,<br>
Michael<br>
<br>
<br>
<div class="moz-cite-prefix">Am 24.05.2018 um 04:20 schrieb Mark
Webb-Johnson:<br>
</div>
<blockquote type="cite"
cite="mid:14DBCC0C-DEF1-44E1-9A00-4EDC7CD9A93C@openvehicles.com">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
Michael,
<div class=""><br class="">
</div>
<div class="">Thanks for the explanation. That makes good sense.</div>
<div class=""><br class="">
</div>
<div class="">Given that at least three vehicles support SOC MIN
and MAX, I’ve gone ahead and made standard metrics for those. I
haven’t modified all the vehicle modules to store them, but
think that can be done for at least Roadster, Kia Soul and Twizy
(and maybe Nissan Leaf). Can the maintainers of those modules
set appropriately? Should be very simple.</div>
<div class=""><br class="">
</div>
<div class="">I’ve also created a generic textual v.b.health
metric that can be used to record a textual indication of
vehicle health (perhaps the calculations behind v.b.soh). Very
vehicle specific.</div>
<div class=""><br class="">
</div>
<div class="">I’ve then modified the Tesla Roadster module to
store v.b.soc.min and v.b.soc.max, and to calculate v.b.soh
(based on %cac remaining x %soc inbalance). Maybe tune it later,
but I think it should give a pretty good rough indication of
health. That is all in an edge release ready to go out tonight.</div>
<div class=""><br class="">
</div>
<div class="">Regards, Mark.<br class="">
<div><br class="">
<blockquote type="cite" class="">
<div class="">On 24 May 2018, at 12:12 AM, Michael Balzer
<<a href="mailto:dexter@expeedo.de" class=""
moz-do-not-send="true">dexter@expeedo.de</a>> wrote:</div>
<br class="Apple-interchange-newline">
<div class="">
<meta http-equiv="Content-Type" content="text/html;
charset=utf-8" class="">
<div text="#000000" bgcolor="#FFFFFF" class=""> Mark,<br
class="">
<br class="">
I introduced this originally, it's meant to be (1), the
overall indication of battery health.<br class="">
<br class="">
As the wikipedia article says, there is no general
industry definition on how to calculate this.<br
class="">
<br class="">
On the Twizy, the SOH is given by the BMS, while the CAC
is calculated by the OVMS by monitoring the charge
process and counting coulombs. The BMS SOH is the
(normally invisible) limit for the usable capacity, as
the Twizy always shows a range of 0-100% SOC regardless
of the SOH. It's also the base for any warranty
replacement of the battery (if it's rented you'll get a
new one when SOH is below 75%).<br class="">
<br class="">
The BMS is proprietary and without any available
documentation, it's a complete mystery how it calculates
the SOH.<br class="">
<br class="">
While the capacity would normally be the major factor in
a SOH, the Twizy BMS (LG Chem) has actually other ideas
on this. For example it's been at 100% for the first
three years, then at 99% for another two years, while my
CAC value showed the actual degradation (long term
linear with cycles). It's then begun to drop rapidly
over a short period of time and is now close to my CAC
level. My cells are still pretty good balanced under
load as well as open circuit, the balance also degraded
more or less linearly. There are also no obvious
temperature indications that could explain the SOH
curve.<br class="">
<br class="">
<br class="">
Generally I recommend to use this for the value the car
provides, if any.<br class="">
<br class="">
If the car doesn't provide an SOH, any calculation that
fits…<br class="">
<br class="">
<blockquote type="cite" class="">
<ol class="MailOutline">
<li class="">An overall indication of battery
health? 100% being perfect, and 0% a brick?</li>
</ol>
</blockquote>
<br class="">
…will do.<br class="">
<br class="">
<br class="">
<blockquote type="cite" class="">
<div class="">Kia Soul seems to be closest to the
implementation I was thinking of. Find out the
difference between SOC LIM MIN and LIM MAX, and use
that as an indication of imbalance in the pack. But
Nissan Leaf seems to be more like (CAC/160)*100
(where 160 is the CAC for a brand new vehicle).</div>
<div class=""><br class="">
</div>
<div class="">Or should we just add SOC_MIN and
SOC_MAX if these are used in many cars? Or an
imbalance percentage?</div>
<div class=""><br class="">
</div>
<div class="">Or should we combine the both (so
CAC/160*100 gives us percentage capacity loss, and
SOCMAX-SOCMIN/SOCMAX*100 gives us imbalance of the
pack, then we perhaps multiply the two together to
give an overall indication of health)?</div>
</blockquote>
<br class="">
If breaking down SOC into the peak min and max cell
values I suggest also adding the average and peak
standard deviation, plus either the average cell SOC or
the number of cells to derive that.<br class="">
<br class="">
Interior resistance of cells would be another option for
standard metrics of cell health, but seems to be rarely
available (and needs a reference).<br class="">
<br class="">
I've got the cell module voltages and temperatures on
the Twizy. I record their peak values and deviations
under load and calculate the standard deviation. This
monitoring shows only a minor difference against the
values I recorded five years ago. I'm pretty sure if I
also had the internal resistance, that would give a much
clearer image.<br class="">
<br class="">
Regards,<br class="">
Michael<br class="">
<br class="">
<br class="">
<div class="moz-cite-prefix">Am 23.05.2018 um 16:42
schrieb Mark Webb-Johnson:<br class="">
</div>
<blockquote type="cite"
cite="mid:AB7F1501-2FBD-4944-82FC-65C086F87A5B@webb-johnson.net"
class="">
<meta http-equiv="Content-Type" content="text/html;
charset=utf-8" class="">
<div class=""><br class="">
</div>
What is MS_V_BAT_SOH used for?
<div class=""><br class="">
</div>
<div class="">For Tesla Roadster, as well as SOC, we
have SOC LIM MIN and SOC LIM MAX. I want to make
those available.</div>
<div class=""><br class="">
</div>
<div class="">
<ul class="MailOutline">
<li class="">Kia Soul seems to use:<br class="">
<br class="">
StdMetrics.ms_v_bat_soh->SetValue( 110 - (
m_b_cell_det_max->AsFloat(0) +
m_b_cell_det_min->AsFloat(0)) / 2 );<br
class="">
<br class="">
</li>
<li class="">Nissan Leaf uses:<br class="">
<br class="">
StandardMetrics.ms_v_bat_soh->SetValue(ah /
newCarAh * 100);<br class="">
<br class="">
</li>
<li class="">Twizy uses:<br class="">
<br class="">
CAN_BYTE(5) on ID 0x424</li>
</ul>
</div>
<div class=""><br class="">
</div>
<div class="">Which is it?</div>
<div class=""><br class="">
</div>
<div class="">
<ol class="MailOutline">
<li class="">An overall indication of battery
health? 100% being perfect, and 0% a brick?</li>
<li class="">Or battery capacity (100% being a new
car, and 50% being one who’s range is only half
that of a new car)?</li>
</ol>
</div>
<div class=""><br class="">
</div>
<div class="">The definition here seems to lean
towards #2 (capacity related), but seems arguable:</div>
<div class=""><br class="">
</div>
<blockquote style="margin: 0 0 0 40px; border: none;
padding: 0px;" class="">
<div class=""><a
href="https://en.wikipedia.org/wiki/State_of_health"
class="" moz-do-not-send="true">https://en.wikipedia.org/wiki/State_of_health</a></div>
<div class=""><br class="">
</div>
<div class=""><b class="">State of health</b> (SoH)
is a figure of merit of the condition of
a battery (or a cell, or a battery pack), compared
to its ideal conditions. The units of SoH are
percent points (100% = the battery's conditions
match the battery's specifications).<br class="">
<br class="">
Typically, a battery's SoH will be 100% at the
time of manufacture and will decrease over time
and use. However, a battery's performance at the
time of manufacture may not meet its
specifications, in which case its initial SoH will
be less than 100%.</div>
<div class=""><br class="">
</div>
<div class="">As SoH does not correspond to a
particular physical quality, there is no consensus
in the industry on how SoH should be determined.
The designer of a battery management system may
use any of the following parameters (singly or
in combination) to derive an arbitrary value for
the SoH.<br class="">
<br class="">
<div class="">
<ul class="MailOutline">
<li class="">Internal resistance / impedance /
conductance</li>
<li class="">Capacity</li>
<li class="">Voltage[2]</li>
<li class="">Self-discharge</li>
<li class="">Ability to accept a charge</li>
<li class="">Number of charge–discharge cycles</li>
</ul>
</div>
<div class=""><br class="">
</div>
In addition, the designer of the battery
management system defines an arbitrary weight for
each of the parameter's contribution to the SoH
value. The definition of how SoH is evaluated can
be a trade secret.</div>
</blockquote>
<div class=""><br class="">
</div>
<div class="">Kia Soul seems to be closest to the
implementation I was thinking of. Find out the
difference between SOC LIM MIN and LIM MAX, and use
that as an indication of imbalance in the pack. But
Nissan Leaf seems to be more like (CAC/160)*100
(where 160 is the CAC for a brand new vehicle).</div>
<div class=""><br class="">
</div>
<div class="">Or should we just add SOC_MIN and
SOC_MAX if these are used in many cars? Or an
imbalance percentage?</div>
<div class=""><br class="">
</div>
<div class="">Or should we combine the both (so
CAC/160*100 gives us percentage capacity loss, and
SOCMAX-SOCMIN/SOCMAX*100 gives us imbalance of the
pack, then we perhaps multiply the two together to
give an overall indication of health)?</div>
<div class=""><br class="">
</div>
<div class="">Thoughts?</div>
<div class=""><br class="">
</div>
<div class="">Regards, Mark</div>
<div class=""><br class="">
</div>
<!--'"--><br class="">
<fieldset class="mimeAttachmentHeader"></fieldset>
<br class="">
<pre class="" wrap="">_______________________________________________
OvmsDev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:OvmsDev@lists.openvehicles.com" moz-do-not-send="true">OvmsDev@lists.openvehicles.com</a>
<a class="moz-txt-link-freetext" href="http://lists.openvehicles.com/mailman/listinfo/ovmsdev" moz-do-not-send="true">http://lists.openvehicles.com/mailman/listinfo/ovmsdev</a>
</pre>
</blockquote>
<br class="">
<pre class="moz-signature" cols="160">--
Michael Balzer * Helkenberger Weg 9 * D-58256 Ennepetal
Fon 02333 / 833 5735 * Handy 0176 / 206 989 26
</pre>
</div>
_______________________________________________<br
class="">
OvmsDev mailing list<br class="">
<a href="mailto:OvmsDev@lists.openvehicles.com" class=""
moz-do-not-send="true">OvmsDev@lists.openvehicles.com</a><br
class="">
<a class="moz-txt-link-freetext" href="http://lists.openvehicles.com/mailman/listinfo/ovmsdev">http://lists.openvehicles.com/mailman/listinfo/ovmsdev</a><br
class="">
</div>
</blockquote>
</div>
<br class="">
</div>
<!--'"--><br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<pre wrap="">_______________________________________________
OvmsDev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:OvmsDev@lists.openvehicles.com">OvmsDev@lists.openvehicles.com</a>
<a class="moz-txt-link-freetext" href="http://lists.openvehicles.com/mailman/listinfo/ovmsdev">http://lists.openvehicles.com/mailman/listinfo/ovmsdev</a>
</pre>
</blockquote>
<br>
<pre class="moz-signature" cols="160">--
Michael Balzer * Helkenberger Weg 9 * D-58256 Ennepetal
Fon 02333 / 833 5735 * Handy 0176 / 206 989 26
</pre>
</body>
</html>