How to measure Open Circuit Voltage of a Battery in Charging and Discharging state

battery-chargingbattery-operated

I am working on a battery(Li-ion) operated device, in my attempt to get the SOC of the battery i have to acquire the battery OCV (open circuit voltage) first and have to interpolate it to the SOC table,

so my PMIC(power management IC) drivers solves this problem for me, it tries to estimate the OCV from Battery voltage, Battery resistance and Inow(current through battery)

OCV = Vbat - (Inow * rint)

my PMIC has a register for Inow which measures the voltage across the resistor kept in the discharge path of battery, as resistance is very low the voltage across it is treated as current to and from the battery, if its -ve battery is discharging and +ve if battery is charging, rint is 50ohm

but the problem i am facing is how to display SOC properly during switching between charging and discharging process, as you know as my OCV is dependent on current through battery, it jumps when i plug out my adapter, when i am in the process of charging and i observe 100% SOC, if i disable and display my SOC to user its less than the previous because the current now changed , so it makes me to disable the charging and measure actual OCV and then again enable charging which is not that reliable process

i want to know how actually the mobile phones handle the SOC update

Best Answer

You don't say what chemistry your battery is using. Different chemistries, lead, LiPo, NimH, have different behaviours in detail, but in general, the answer is, you cannot get an accurate SOC from the terminal voltage alone.

People are still doing PhDs on how to estimate SOC. I did some research into NimH for a commercial company recently and found that the history of the last hour charge/discharge affected the terminal voltage only SOC estimate at above the 20% level.

Your problem is not how to display the SOC, it's whether to 'fess up to the large uncertainties. The SOC will be essentially identical from one second to the next, even if you have switched from charge to discharge in that time, from pure physics reasoning alone. Your problem is the estimate you are getting from the IC changes under those conditions.

You have several choices.

1) Do more and better research on how to model SOC, and then implement the results of that. 'make it right'

2) Apply a low pass filter of several minutes to the results from your IC estimate, to disguise the step. 'hide it'

3) Figure out what the uncertainty in the estimate is, and then display your SOC as x% +/- y%. 'say what is'