SOC:
The state of charge (SOC) of a cell denotes the capacity that is currently available as a function of the rated capacity. The value of the SOC varies between 0% and 100%. If the SOC is 100%, then the cell is said to be fully charged, whereas a SOC of 0% indicates that the cell is completely discharged. In practical applications, the SOC is not allowed to go beyond 50% and therefore the cell is recharged when the SOC reaches 50%. Similarly, as a cell starts aging, the maximum SOC starts decreasing. This means that for an aged cell, a 100% SOC would be equivalent to a 75%–80% SOC of a new cell.
Classification of SOC estimating mathematical methods:
SOC can be estimated by the below methods,
| Categories |
Mathematical methods |
| Direct measurement |
(i) Open circuit voltage method
(ii) Terminal voltage method
(iii) Impedance method
(iv) Impedance spectroscopy method
|
|
Book-keeping estimation
|
(i) Coulomb counting method
(ii) Modified Coulomb counting method
|
| Adaptive systems |
(i) BP neural network
(ii) RBF neural network
(iii) Support vector machine
(iv) Fuzzy neural network
(v) Kalman filter
|
| Hybrid methods |
(i) Coulomb counting and EMF combination
(ii) Coulomb counting and Kalman filter method combination
(iii) Per-unit system and EKF combination
|
In this particular assignment we are looking forward for the 'Coulumb counting method.
Coulomb counting:
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 is calculated by the following equation:
`SOC(t) = SOC (t+1) + (I(t))/Q_n*Deltat` ------------1
The coulomb counting method consists on exploiting the relation (1) 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 `Q_(rated)` 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% maximal SOC value.
The flowchart below 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 flowchart of coulomb counting method
Charge Mode:
The typical charge procedure of a Li-ion battery consists of constant-current constant voltage (CC-CV) process.
The Coulomb counter is expressed as
which represents the quantity of charge accumulated during an operating period equal to `tau`.
Thus, the variation of the state of charge gained in this same operating period is,

By accumulating the previous state of charge indication and the obtained one, we can have the instantaneous value of SOC is expressed as
`SOC(t+tau) = SOC(t)+DeltaSOC(t+tau)`
The value of DOD is updated in every charging operation in order to get it back in every switching to discharging mode.
`SOC(t) + DOD(t) = 100%`
Discharge mode:
When the current `I_(bat)` is negative, then the battery is in the discharging mode. In this mode, the Coulomb counter is presented by`Q_(lost)`
which represents the amount of charges losses in the operating period `tau` as expressed in
`Q_(lost) (t+tau) = Q_(lost) (t)+DeltaQ`
The value of DOD is calculated as
`DOD (t+tau)=DOD(t)+DeltaDOD(t+tau)`
where, `DeltaDOD(t+tau) = (Q_(lost)(t+tau))/Q_(lost)*100`
Self-Discharge Mode:
At the battery storage periods, considering that Li-ion batteries reach 5% rate of self-discharge per month, the amount of charge losses per hour is calculated; this amount is designed by the constant, `q_((per )/(hour))`
Then, the quantity of charge dissipated in this phase `Q_(oc)` is calculated by,
`Q_(oc) (h+1) = Q_(oc) (h) +q_((per)/(hour))`
representing the cumulative losses during the storage hours.
where `'h'`is the hour of storage.
This value will be added to the amount of charge lost `Q_(lost)` during discharge mode and subtracted from the amount of charge accumulated `Q`gained in charge mode. This compensation of self-discharging loss is made at each open circuit period and before switching to another operating battery's mode.
`Q_(lost)=Q_(lost)+Q_(oc)`
`Q_(t)=Q_(t)-Q_(oc)`
Implemention in BMS:
The adopted coulomb counting algorithm for SOC estimation was implemented on hardware platform. Monitoring functions include the measurement of the battery voltage. 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 10mA current, in order to detect the end of charging.
The external temperature is measured using a negative temperature coefficient resistor `R_(NTC).` The diagram below includes different modules connection to the data acquistion system.
The transmission of battery electrical parameters is ensured by a USB connection between the multimedia application (Smartphone, PC...) and the MCU (PIC18F).
The basic circuit developed
The monitoring algorithm is then implemented with embedded C language on the MCU using MPLABRX IDE. The diagram below includes a callgraph generated by the MPLABRX software. It lists the function used in monitoring the state of charge of the battery.
The callgraph of the implemented coulomb counting algorithm
Reference: