Battery Capacity Testing

Mitsubishi i-MiEV Forum

Help Support Mitsubishi i-MiEV Forum:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.
You have to account the losses. Bear in mind that not everything that comes from the charger goes into the battery. There is about 15-25% loss in the AC to DC conversion which is not fixed and depends on many factors. You can make a guess but it won't be that accurate like reading data directly from the car. Maybe if you have a DC station nearby it could help. There is no conversion and almost no losses.

If you are not going to monitor the data live and almost everyday it is not worth to buy expensive ODB Dongle, but sometimes it can come handy once in a while with other vehicles.
 
FitzIon said:
My 2012 Ion has 88 cells at 3.7 volts each = 325 v. Is it possible to just drain the car to an (almost) empty battery, then hook it up to a public charging point and just look up in the charging app how much kWh was needed to obtain to get the battery at 100% again?

Hi Fitzion To supplement kirq4e comments, I would never drain the battery empty. This could be as damaging as storing the car with a fully charged battery. The lowest I have every gone is 8%. The next problem is that the kWh capacity isn't as important as the Ah. The kWh capacity varies quite a bit with the temperature while the Ah capacity is much less sensitive to temperature. A third problem is knowing the true SoC when starting to charge. To compute the 100% capacity you have to divide the Ah added by the change in the true SoC.

The cheapest way to go is a Vgate iCar Pro Bluetooth 4.0 @ $32 and the OBDZero app (my app). This will tell you the car's estimate of the battery capacity and there is a function for measuring the capacity.
Or
The OBDLink LX OBD2 Bluetooth @ $70 and the CaniOn app which also gives the car's estimate of the battery capacity.
 
JoeS said:
CZeroOwner, thank you for the posts. I have an old Android tablet which I've been using with CaniOn and OBDLink MX bluetooth adapter, but with that combination I couldn't get OBDZero to link up. I haven't tried my old STN1170 adapter. Which specific ELM adapters do you suggest?

Hi JoeS I've tested the OBDLink LX and it also works with OBDZero.
 
kirq4e said:
Now I've noticed that the capacity drops by 0.1 for every 400-500 km. From 34.5 to 29.2 in a year and 10k km. For now it works for me. Everything seems balanced if I don't go under 20% and the battery is not bellow 10 degrees Celsius. When it is colder and at low state of charge every high consumption or rapid acceleration can trigger the turtle light.

Hi kirq4e

This post may interest you.

https://myimiev.com/forum/viewtopic.php?p=46120#p46120

It is about the iMiev/iOn/CZero battery capacity measurement/computation built in to the BMU. It is fairly detailed but the simple message is that the BMU computes a capacity based on km driven and on the car's age. At the same time it measures the capacity when slow charging from less than 70% and up to 100%. If the measured capacity is greater than the computed capacity by more than 1 Ah the computed capacity is adjusted up by 1 Ah. The reverse is also true if the measured capacity is less then the computed capacity by more then 1 Ah. It is this computed capacity with corrections that the BMU uses to compute the SoC and the remaining range.

Note that both joloeber and iOnier have observed the same regular 0.1 Ah decrease in the capacity that you observe. Have you seen the same 1Ah corrections in the capacity?

Cheers
David
 
Hi there

I also observe a 0.1Ah drop about every 2 weeks, while I do use the car on a daily basis it’s only for short distances totalling about 20km per week. Looks like this drop is the BMS default degradation value based on time only. I haven’t seen any 1Ah jumps but then I mostly operate the car in 50-80% SoC. The few times I did let it run down to re-calculated capacity, the value didn’t change..
 
MickeyS70 said:
I also observe a 0.1Ah drop about every 2 weeks, while I do use the car on a daily basis it’s only for short distances totalling about 20km per week. Looks like this drop is the BMS default degradation value based on time only. I haven’t seen any 1Ah jumps but then I mostly operate the car in 50-80% SoC. The few times I did let it run down to re-calculated capacity, the value didn’t change..

Hi MickeyS70

Very interesting, You have probably written this in another post. However could please give the build date of the car and the odometer reading plus the average air temperature where you are.

Here are VIN decoders that give the exact date the car left the factory.
https://www.vindecoderz.com/EN/Citroen
https://www.vindecoderz.com/EN/Mitsubishi
https://www.vindecoderz.com/EN/Peugeot

If you are using CaniOn could you send the btcan.db datebase saved on the phone/tablet. If you are using OBDZero any txt files saved would be great.

Cheers
David
 
Hi David

It left the factory in autumn of 2011 and was shipped to the UK where it spent about 8 years before it was exported to Ireland. I have it for a year now. It has about 36.5k km on the clock and an indicated 41.5Ah battery capacity. Temperature range is EV friendly here about 5deg in winter and 13deg in summer.

I will PM files requested.

Mickey
 
MickeyS70 said:
It left the factory in autumn of 2011 has about 36.5k km on the clock and an indicated 41.5Ah battery capacity. Temperature range is EV friendly here about 5deg in winter and 13deg in summer.

Hi Mickey

Our CZero was built in February 2011. It's driven 36.6k km and the battery capacity jumped from 38.3 to 39.3 Ah 3 days ago. The temperature here in Denmark is similar but I suspect you get more rain. Yes please send your data.

David
 
Slow Charging the i-MiEV, CZero and iOn

Every time our cars are slow charged from SoC less than SoC 24% to 100% the battery capacity is measure by the BMU. Here is a detailed description of the process based on a slow charge I recorded a month ago.

Capacity-Measurement-Post1.png

Slow Charge May 2023

To start with here are some definitions.
Cap1 is the capacity reported by CaniOn and EVBatMon. OBDZero reports it as the Battery Management Unit (BMU) capacity. Ah1 is the present charge in Ah in the battery corresponding to Cap1. OBDZero and EVBatMon reports this but not CaniOn. SoC1 is the State of Charge equal to 100 * Ah1/Cap1. SoC1 is reported by EVBatMon as SoC. It is reported by OBDZero as SoC1. CaniOn does not report it. Range is computed using Cap1, Ah1 and SoC1.

Cap2 is a second capacity computed by the BMU. It isn’t reported by CaniOn or EVBatMon. It is reported by OBDZero as just the battery capacity. SoC2 is the SoC reported by CaniOn but not EVBatMon. It is reported in OBDZero as SoC2. Ah2 is the present charge in the battery corresponding to Cap2. It can be computed by
Ah2 = SoC2 *Cap2/100. I have not found a PID containing Ah2 but I’m fairly sure that the BMU keeps an account of Ah2. In this case I have computed Ah2 based on the measured amps to the battery. This is called Coulomb counting.

Now the slow charge data
During the slow charge show in the graph above and before SoC1 reached 28 %, Ah1 and Ah2 increased by Coulomb counting by the BMU. The BMU computes SoC1 and SoC2 according to:
SoC1 = 100 * Ah1 / Cap1
SoC2 = 100 * Ah2 / Cap2
Cap1 was 38.3 Ah and Cap2 was 38 Ah.

On this day the charging pause that we often see at about SoC 30% began when SoC1 was 28%. Looking at other slow charges the pause can begin between 24% and 37%. It appears that the trigger is not the SoC but a battery voltage of about 339 V while charging.

Capacity-Measurement-Post2.png


During the pause shown here between 105 minutes and 120 minutes, charging stopped and the amps went from about 5 down to about -0.5. While the current was low, the BMU measured the open circuit voltage (Voc) and computed the true SoC of the battery. SoC1 is adjusted to the true SoC using a simple function such as:
SoC1 = a* Voc + b
The factors a and b are specific to the LEV50(N) cell but I don’t know what they are yet.
Cap1 didn’t change and Ah1 was updated according to:
Ah1 = SoC1 * Cap1/100
In this case SoC1 was 29.5 % when the pause ended and
Ah1 = 29.5 * 38.3 / 100 = 11.3 Ah
Studying other slow charges, SoC1 varied between 29 % and 32 % at the end of the pause.

Ah2 decreased by Coulomb counting but changed only slightly because the current from the battery was very small. Cap2 didn’t change and
SoC2 = 100 * Ah2 / Cap2

Other things like cell balancing may occur during the pause but I believe the primary purpose of the pause is to measure Voc and compute the true SoC of the battery.

After 15 minutes charging resumed and both Ah1 and Ah2 increased by Coulomb counting as before the pause. The BMU also computed the SoCs as before:
SoC1 = 100 * Ah1 / Cap1
SoC2 = 100 * Ah2 / Cap2

Capacity-Measurement-Post3.png


At 379 minutes shown in the graph above SoC1 was 89%. Both Ah2 and Cap2 were updated. Cap2
decreased from 38 Ah to 37 Ah and Ah2 was set equal to Ah2
Then SoC2 was updated according to the new values for Ah2 and Cap2.
SoC2 = 100 *Ah2 / Cap2
In this case SoC2, the light blue line, increased from 88 to 92.5%
At the same time, there were no changes in Cap1, SoC1 or Ah1.

This update always occurs when SoC1 is 89% during a slow charge. However, the changes in SoC2 and Cap2 are often too small to see.

After that, Ah1 and Ah2 were equal and both increased by Coulomb counting. SoC1 and SoC2 were computed by the BMU according to:
SoC1 = 100 * Ah1 / Cap1
SoC2 = 100 * Ah2 / Cap2

Capacity-Measurement-Post4.png


When SoC2 reached 100% at 461 minutes, it stopped increasing but Ah2 continued to increase due to Coulomb counting. Ah1 also increased by Coulomb counting and Ah1 and Ah2 were still equal. SoC1 also continued to increase beyond 100% according to
SoC1 = 100 * Ah1/Cap1.

Capacity-Measurement-Post5.png


When balancing of the cells finished at 461 minutes, charging stopped. However the capacity measurement wasn’t complete. All PIDs continued to flow on the CAN network for another 15 minutes. Ah2 decreased due to Coulomb counting but only slightly because the current from the battery was very small. During this time the BMU was busy completing the measurement. Among other things, Cap2 increased slowly from 37 to 39 Ah in order to match Ah2. I don’t know why Cap2 didn’t change immediately to Ah2 but instead increased slowly over 15 minutes. The change in Cap2 occurred before data stopped but my app didn’t record this change until 558 minutes, when I turned the car on and full data transmission resumed. By this time Ah2 and SoC2 had also been updated and
SoC2 = 100 * Ah2 / Cap2

During the period from 476 minutes and 558 minutes there were only 4 PIDs transmitted on the network at 1 minute intervals. These didn’t contain data related to the charging process. The reason for the 82 minute gap was that full data transmission stopped at 6 o’clock in the morning. It took me 82 minutes to wake up, drink a cup of tea and then go out to the car and turn it on. When I turned on the car, all PIDs became available on the CAN network again.

Capacity-Measurement-Post6.png


This graph shows Ah1, SoC1 and Cap1 over the same period as the previous graph. During the 15 min after charging at 461 minutes and until data transmission stopped at 476 minutes the current was about -0.5 amps, the BMU measured the Voc and computed SoC1 according to:
SoC1 = c*Voc + d
Like a and b above c and d are specific to the LEV50(N) cell and I don’t know what they are yet.
Cap1 doesn’t change and Ah1 is computed from SoC1 and Cap1.
Ah1 = SoC1 *Cap1 /100

When full data transmission restarted at 558 minutes, both Cap1 and Ah1 had been updated. Cap1 increased from 38.3 Ah to 39.3 Ah, a 1 Ah hop.

How the new capacity was computed
I believe the measured capacity was computed based on SoC1 and Ah2 at the end of the pause at 100% shown above and Ah1 and SoC1 at the end of the 30% pause shown in the second graph from the top. This next equation is the simplest way to compute the capacity:

Capacity = 100 * (Ah2_100 – Ah1_30) / ( SoC1_100 – SoC1_30)
Capacity = 100 * (39.1 – 11.3) / (99.5 - 29.5) = 39.7 Ah

The reason Ah2_100 was used rather than Ah1_100 is that Ah1_100 was updated with the measurement of Voc. On the other hand Ah2_100 wasn’t updated and Ah2 _100 minus Ah1_30 was the actual number of Ah added between the SoC 30% and 100%. At the same time SoC1_100 – SoC1_30 was the true change in the SoC between 30% and 100%. Dividing the true change in the Ah with the true change in the SoC and multiplying by 100 gives 39.7 Ah, the measured capacity. This is greater than 39.3 Ah, Cap1 after being updated. I believe the BMU limits increases in the capacity to 1 Ah. Therefore Cap1 only increased from 38.3 to 39.3. This limit prevents possible errors in the measurement from causing wild changes in the capacity.

After 476 minutes, the measurement was complete. From then on, Ah1 and Ah2 were equal and they decreased by Coulomb counting. SoC1 and SoC2 were computed according to:
SoC1 = 100 * Ah1 / Cap1
SoC2 = 100 * Ah2 / Cap2

I don’t know why this process is so complicated. If the only objective was to measure the capacity then it could be much simpler. One secondary objective could be to have a SoC, in this case SoC2, that doesn’t exceed 100%. This then would be the SoC displayed on the left hand side of the instrument panel.

David
 
CZeroOwner said:
Slow Charging the i-MiEV, CZero and iOn
David, this is very intriguing!
I do the majority of my charging at public charging stations, so should I hang around a bit longer even once the charging symbol goes out to let the BMS calculate the capacity?

Like others in this thread, I see a 0.1 Ah decrease every couple of weeks, but only saw an increase after doing a dealer calibration.
I frequently see the capacity as reported in OBDZero as 1 Ah or higher than what is reported by the BMS, but strangely enough the BMS never updates the capacity in response.
 
miggols99 said:
I do the majority of my charging at public charging stations, so should I hang around a bit longer even once the charging symbol goes out to let the BMS calculate the capacity?

Like others in this thread, I see a 0.1 Ah decrease every couple of weeks, but only saw an increase after doing a dealer calibration.
I frequently see the capacity as reported in OBDZero as 1 Ah or higher than what is reported by the BMS, but strangely enough the BMS never updates the capacity in response.

Hi miggols
Yes I would wait 20 minutes if I had started charging at less than SoC 24%. That way I would be sure that a measurement was in progress. On the other hand the BMU sometimes pauses charging at SoC 70% but I don't know if it does a complete measurement in that the case. Maybe I will add something to OBDZero that indicates that the measurement is in progress and when it is complete.

Have you seen my post on the 0.1 Ah changes in capacity?

https://myimiev.com/forum/viewtopic.php?p=46120#p46120

I have an update on this subject that I will post soon

Cheers
David
 
MickeyS70 said:
Hi David
Took me a while to find it: nuggetgalore used 60Ah batteries with the original BMU, ended up taking them out again:
https://forums.aeva.asn.au/viewtopic.php?t=5515&start=500
Mickey

Hi Mickey

I downloaded nuggetgalore's post from the Australia site and I have redone the graph in the post showing discharge curves for the LEV50 and his replacement 60 Ah NMC cell.

nuggetgalore-Cellreplacemnet2.png


The discharging rate of the NMC cell is C 0.45. C 0.45 for the LEV50 would be 22.5 amps. For the two cell types to be chemically equivalent the red line should be between the green 10 amp and the blue 50 amp lines. It isn’t. nugget believed that the replacement failed because of this large difference. In particular he suggested that this difference meant that the usable Ah between 10 % SoC and 100% for the NMC cell is no greater than the LEV50. I believe that he was right that the difference in the discharge curves is a factor but I don’t agree that it is a capacity problem. I believe it is a measurement problem.

Note that the voltage of the NMC cell at 10% is 3.3 volts which is between LEV50 10 amp at 3.5 volts and LEV50 50 amp at 3,4 volts as one would expect if the cells were equivalent. The same is true at the other end of the scale at 4.1 volts, LEV50’s 100% There is in very little difference in the SoCs of the two cells. Doing a bit of math I found that between SoC 10% and 4.1 volts 88% of the cells capacity in Ah is available for both cell types. This means 44 Ah for the LEV50 and 52.8 Ah for the 60Ah NMC cell, a 20% improvement.

The problem, I believe, lays in the iMiev BMU’s measurement of the capacity of the NMC cell. As part of the measurement the BMU must determine the true SoC of the cell based on the open circuit voltage. In the iMiev the BMU does this measurement at 100 % and around 30% SoC. I don’t think the 100% measurement is a problem. At 4.1 volts the SoC% of the NMC cell is about 98%. Redefining this as 100% is no big deal. The problem is the SoC when the BMU pauses charging to measure the true SoC. The real trigger for this pause is a battery voltage of 339 volts or 3.85 volts per cell. The curves above are discharge curves. To do this right we should have charging curves but we can still see the problem. On a discharge curve 3.85 volts is about SoC 55% for the LEV50 but about SoC 80% for the NMC cell. Judging by the change in SoC between charging and discharging for the LEV50 cell the NMC would have a SoC of maybe 85% minus 25% or 55% at 3.85 volts when charging. The formula the BMU uses assumes that the true SoC at about 3.85 volts is about 30% as it is with the LEV50 cell. To compute the capacity of the LEV50 cell the BMU divides the measured change in the Ah by the preprogramed change in the SoC of 100% - 30% or 70%.

Capacity = 100* (Ah_100 – Ah_30) / (SoC_100 – SoC_30)

The BMU assumes that the NMC cell has SOC of 30% at 3.85 volts and not the true SoC of about 55% and starts adding Ah up from there:

36.9 Ah = 100 * (0.98 * 60 – 0.55 * 60) / (100 -30)

The iMiev BMU would measure the capacity of a new 60 Ah cell to about 37 Ah.

I have recorded many charging curves for the LEV50 in my car. If we could get a charging curve for the NMC replacement cell we could do a more accurate analysis of the problem.

Cheers
David
 
Hi David

Very impressed by your detailed analysis, unfortunately that means that the BMU is indeed ‘hardwired’ to the OEM cells (LEV50/LEV50N) and if one wants to replace/upgrade them (with a different battery chemistry) a BMU hack is inevitable…

Mickey
 
MickeyS70 said:
Unfortunately that means that the BMU is indeed ‘hardwired’ to the OEM cells (LEV50/LEV50N) and if one wants to replace/upgrade them (with a different battery chemistry) a BMU hack is inevitable…
Mickey

Hi Mickey

Yes and no. A 60 Ah will probably need a hack. Nuggetgalore saw a fast drop in capacity of the NMC pack which he attributed to cell deterioration. I believe the BMU was just doing it's job reporting the capacity of 37 Ah based on its programming. So for a useful measurement from the BMU of a 60 Ah NMC pack a hack would be necessary.

For a 96 Ah NMC the BMU would do this measurement of the capacity (If we are lucky):

59 Ah = 100 * (0.98 * 96 – 0.55 * 96) / (100 -30)

And it would keep reporting 59 Ah for the life of the NMC pack. That's not too bad.

Cheers
David
 
Hi David

You really got me convinced that this will work but then I remembered that 60Ah is the max capacity the BMU will accept and chances are it won’t use anything higher even just for calculating it…

However it should be at lot easier to achieve this particular hack (someone managed already?) compared to adaptions required for a different battery chemistry.

Mickey
 
MickeyS70 said:
You really got me convinced that this will work but then I remembered that 60Ah is the max capacity the BMU will accept and chances are it won’t use anything higher even just for calculating it…

Hi Mickey

The BMU doesn't have to use the 96Ah in its calculations. The formula I showed above is a way to compute what the BMU will measure as the capacity. It isn't what the BMU sees. When BMU measures the 94 Ah MNC cell at 3.85 volts, it believes that the true SoC is 30% so it computes 30% of it saved capacity value (Cap1). If that is 60 It will compute the Ah as 0.3 * 60 or 18Ah. However the BMU will still have to pump 41.3 Ah into the battery to raise the voltage from 3.85 to 4.1. So it believes that the Ah at 100% is 18 + 41.3 or 59.3 Ah. Then the BMU computes the capacity as:

59 = 100 * (59.3 -18)/(100-30)

Cap1 may in that case drop 1 to 59 and the next measurement will be:

59 = 100 * (59 - 17.7)/(100-30)

I wrote that the capacity would stay at 59 for the life of the cell but that's not true. If the 96Ah cell drops to 90 Ah it will only take 38.7 Ah at raise the voltage from 3.85 to 4.1. If Cap1 is still 59 the BMU will measure the capacity to:

55.3 = 100 * (56.4 - 17.7)/(100-30)

And the BMU should step Cap1 from 59 to 58 and so on until Cap 1 is 55.

For this reason you're right a hack will also be necessary for the 96 Ah battery.

All of this is of course theory. It has to be tested in practice. There are a number of things the BMU may not accept.

Cheers
David
 
Back
Top