OBJECTIVE 1: What is coulomb counting
The SOC of a battery is defined as the ratio of its current capacity to the nominal capacity. The nominal capacity is given by the manufacturer and represents the maximum amount of charge that can be stored in the battery.
Coulomb Counting Method
The Coulomb counting method measures the discharging current of a battery and integrates the discharging current over time in order to estimate SOC. Coulomb counting method is done to estimate the (SOC (t), which is estimated from the discharging current, I(t) and previously estimated SOC values,SOC(t-1).
SOC(t)=SOC(t-1)+(I(t)/Qn)`Deltat`
But there are several factors that affect the accuracy of Coulomb counting method including temperature, battery history, discharge current, and cycle life
OBJECTIVE 2 : How BMS implements coulomb counting for SOC estimation
Battery state of charge knowledge is so critical that an uncontrolled charge could lead to the destruction of the battery, that’s why power management in embedded systems is so crucial.
Assuming that the initial value SOC is known, instantaneous SOC is generally evaluated by integrating the battery current over time, as shown in equation
SOC(t): State Of Charge
I(bat): battery current value
Q(rated): rated capacity (nominal capacity)
The coulomb counting method consists on exploiting the relation by quantifying the charge delivered by the battery through sensing its input and output current. However there are some inefficiencies when using this method; first
of all, the access to the initial SOC which is not guaranteed, secondly self discharge may distort the real SOC value after a long storage period and finally the reference capacity which must be updated in terms of aging battery degradation.
Enhanced coulomb counting method takes into account self-discharge losses and requires a recalibration at fully and empty stages in order to determine initial SOC and update the reference capacity to have a 100% maximum SOC value.
The flowchart given in Fig.3 explains the algorithm used to manage the battery monitoring by switching from a battery operating mode to another in accordance with the transitions conditions.
The estimation of the SOC of a Li-Ion battery in thismethod is based on monitoring both the voltage and the current. The operation mode of the battery is recognized
by the direction of current through the battery system.
Battery parameters detection is one of the most important issues in control and management of a battery management system. It includes cell voltage measurement, current detection and temperature detection. Estimation of SOC and other battery states imposes high requirements on cell voltage precision. In order to measure the voltage and the current
with which the battery is charged or discharged, a resistor is placed in series with the battery. The voltage value is obtained by a measure of the voltage across the battery, and a difference between the voltages at the two terminals of the resistor will derive the current value, knowing the value of the resistance. This resistance, which allows the current sensing in the battery gauge, should not be too high in order to avoid power dissipation during the charging at a constant current of 1A, but it should be still enough so that the analog/digital converter in the microcontroller can detect a voltage variation across it, which corresponds eventually to a 10 mA current, in order to detect the end of charging. In our case, a 10-bit converter is used to detect a voltage variation of 1mV. A 0.1 Ohms resistance would detect a current of 10mA (U = 1mV) and does not dissipate too much power while charging the maximum current value (P = 100mW). The external temperature is measured using a negative temperature coefficient resistor. The diagram presented includes different modules connection to the data acquisition system. The transmission of battery electrical parameters is ensured by a USB connection between the multimedia application (Smartphone, PC…) and the MCU (PIC18F).

The following figure shows the calligraph of the implemented coulomb counting algorith.