site  contact  subhomenews

Coulometer error creep

May 04, 2020 — BarryK

I posted about installation and calibration of the coulometer, that displays battery state-of-charge (SoC):

I used the Amptron 15A LifePO4 mains-input battery charger to charge the battery to 100%, then set the coulometer to 100% and capacity 50AH.

There is however, a problem: a battery charge/discharge cycle is not 100% efficient, there is some loss as heat. The battery may be capable of supplying 50AH, however, it will require more than 50AH to charge it fully from empty.

Lead-acid technology battery are very inefficient, only about 70-80% efficient in the discharge/recharge cycle. LiFePO4 batteries are much more efficient, 90-92% round trip, see this document:

The problem is that the heat loss is going to mean the coulometer will read incorrectly, becoming more incorrect with each discharge/recharge cycle. This is what will happen if we start with a coulometer reading of 100%, discharge to a reading of 20% SoC, then charge back up to a reading of 100%, then down to a reading of 20%, and so on:


...this is showing the actual battery capacity (the values given are for illustration only). After some charge and discharge cycles, when the coulometer drops to reading 20%, the battery will actually have reached 0%.

This is bad news, however, the coulometer will self-correct every time the battery is charged to full. For example, I plugged in the Amptron mains-input LiFePO4 12V 15A charger, and plotted voltage, current and state-of-charge (latter as read by the coulometer):


The coulometer has reached a reading of 100% before the mains charger has finished charging. As you can see above, the coulometer is reading 100% at 29 minutes, and the charger keeps going and turned itself off at about 31.5 minutes.

Note, after about a minute, the charger turned back on momentarily, then did so again after about another minute. I didn't catch the voltage/current readings, it was a very short duration.

Reaching 100% reading on the coulometer before the charging completes is a correction mechanism, however, a problem is that this self-correction is only going to happen if the battery is charged to full, or nearly full.

We really need another mechanism for the coulometer to self-correct. I don't see how we can use the charging voltage, however, the coulometer could be set to read 0% if the battery voltage drops below a certain value. This web page is a good read, and has some information on discharge voltage:

...that link has a graph of battery voltage while discharging, though it must be recognized that this is dependent on the discharge current. The graph is reproduced here:


The Battery Management System (BMS) built-in to the battery will automatically disconnect the output if the voltage falls below a certain value -- from a bit of reading, this seems to be in the range of 2.5 to 2.8 volts per cell, which will be 10.0 to 11.2 volts for a 12 volt battery.

My Amptron 50AH battery has a BMS that turns the battery off at 10.0 volts.

The coulometer setup allows entry of a minimum voltage, below which the % charge will immediately drop to 0%. So, how about 11.2V?

OK, I have done that, have programmed 11.2V as the 0% limit in the coulometer. This will give an automatic correction when discharging the battery. The battery will be down at around 5% actual charge to trigger this.

Discharging a LifePO4 battery to 5% SoC will reduce the lifetime, but this should be a correction factor that is only triggered occasionally. Hopefully. Even if it is triggered often, I will still expect to get about 2,000 cycles, and even if I cycle the battery every day, it is going to last several years. 

One more point to make about coulometer setup: does a battery rated at "50AH" actually deliver 50AH? If not, then the capacity entry in the coulometer will have to be adjusted accordingly.

It should be noted that the "error creep" that I have reported in this post is a known problem, and it occurs on many devices, such as mobile phones and electric scooters. 

Tags: nomad