SoC Estimation Techniques

There are a number of SoC Estimation Techniques and this article will be just an initial introduction.

The State of Charge (SoC) of a battery cell is required to maintain it’s safe operation and lifetime during charge, discharge and storage. However, SoC cannot be measured directly and is estimated from other measurements and known parameters. This leads to errors in the estimated SoC and that means it is not possible to fully exploit the full capability of the cell.

+/-3% SoC error is common in large battery packs => 6% loss in usable capacity => ~$8.50/kWh of pack capacity when cells are at $100/kWh (+25% for pack costs). Can we afford to not use $850 of the cell capacity in a 100kWh electric vehicle?

This is rather simplistic as it assumes a loss of 3% at either end of the usable SoC window. In reality when operating at the top and bottom end of the cell SoC limits the BMS will use the cell voltage rather than estimated SoC.

There are a number of SoC measurement/estimation methods [2]:

  • Direct measurement
    • Open circuit voltage
    • Terminal voltage
    • Impedance
    • Impedance spectroscopy
    • 3rd electrode
  • Book-keeping estimation
  • Adaptive systems
    • BP neural network
    • RBF neural network
    • Support vector machine
    • Fuzzy neural network
    • Kalman filter
  • Hybrid methods
    • Coulomb counting and EMF combination
    • Coulomb counting and Kalman filter combination
    • Per-unit system and EKF combination

The two common forms of SoC tracking in battery management systems are voltage profiling and coulomb counting. Initially we will use these to show some of the basic principles.

Voltage Profiling

Using the Open Circuit Voltage curve as a reference it is possible to measure the voltage of a cell and hence lookup the SoC.

SoC from OCV lookup

However, as you can see the OCV is dependent on whether you have arrived at this rest point from a charging or discharging event. One option is to average these two curves and to ignore whether the cell has previously been charged or discharged.

LFP OCV curve and SoC Estimation

This is ok for a chemistry that shows only a small hysteresis. However, with Lithium Iron Phosphate (LFP) the hysteresis is more pronounced [4].

Also, with LFP the OCV curve is much flatter resulting in a larger possible error in SoC for any given voltage measurement.

The significant issue with Voltage Profiling is that this relies on the OCV curve and this is defined based on a cell that has been at rest for some time. Essentially because the chemical reactions in the cell take time to come to equilibrium, especially after a high current demand. Hence the BMS needs to identify and wait for the cell to come to rest. Or the BMS has to estimate the OCV from the internal resistance of the cell. This adds another level of errors.

Coulomb Counting

This is based on the measurement of the current and integration of that current over time. This technique gives a relative change in SoC and not an absolute SoC. Hence you need to know the starting SoC of the cell. One option is to fully charge the cell to a known voltage. Charging to maximum cell voltage and SoC can be used as a reset and known point. However, the accuracy of the current sensor and integration technique along with internal losses in the battery will limit the overall accuracy of the estimated Ah step.

HV Current Sensor

EV Current Sensors: The Basics

Battery current sensors perform DC current measurements. There are two main types of battery current sensors.

  1. Shunt sensor-based current measurement devices use resistive elements. Therefore, this type of current sensor is usually non-isolated, unless the signal conditioning circuit has isolation.
  2. Electromagnetic based sensor that measure the magnetic field of current. Therefore, by their nature, these types of current sensors are isolated. However, these sensors measure the current indirectly. Because of this, the accuracy could be less than the shunt sensors.

A current sensor that can work at very high currents and has accuracy at lower currents is difficult to engineer and costly. Also, cheaper current sensors tend to drift.

All of these SoC estimation techniques will be covered in more detail in further posts. However, the most commonly used adaptive method is the Kalman filter.

The Kalman filter was developed in 1960 and is an algorithm that is used in many dynamic systems to estimate the inner states. Using a model of the battery system the Kalman filter can provide an estimate of the unknown parameters such as SoC along with the errors in that estimation. Hence giving a clear picture as to the SoC at any point in time and more accurately coping with the dynamic behaviour of the battery.

Zeeshan Ahmad Khan et al [6] compare the different methods using a single cell that is discharged over a typical vehicle test cycle. The results indicated that the extended Kalman filter (EKF) and sliding mode observer (SMO) were the best choices because of their estimation accuracy and computation time.

The complete table summarising the different techniques is interesting as it shows that balance between accuracy and computational overhead.

comparison of SoC estimation techniques


  1. Ng, K.S.; Moo, C.-S.; Chen, Y.-P.; Hsieh, Y.-C. Enhanced coulomb counting method for estimating state-of-charge and state-of-health of lithium-ion batteries. Appl. Energy 2009, 86, 1506–1511
  2. Wen-Yeau Chang, The State of Charge Estimating Methods for Battery: A Review, ISRN Applied Mathematics, Volume 2013, Article ID 953792
  3. Analog Devices, A Closer Look at State of Charge (SOC) and State of Health (SOH) Estimation Techniques for Batteries, Technical Article
  4. Ko, Y.; Choi, W. A New SOC Estimation for LFP-Batteries: Application in a 10 Ah-Cell (“HW 38120 L/S”), as a Hysteresis Case Study. Electronics 2021, 10, 705
  5. F. Baronti, W. Zamboni, R. Roncella, R. Saletti, and G. Spagnuolo, Open-Circuit Voltage Measurement of Lithium-Iron-Phosphate Batteries,
  6. Zeeshan Ahmad Khan, Prashant Shrivastava, Syed Muhammad Amrr, Saad Mekhilef, Abdullah A. Algethami, Mehdi Seyedmahmoudian and Alex Stojcevski, A Comparative Study on Different Online State of Charge Estimation Algorithms for Lithium-Ion Batteries, Sustainability, MDPI

8 thoughts on “SoC Estimation Techniques”

  1. Hi. Thanks for your good website.

    I would like to know how much voltage difference between cells is allowable in a module?

    I mean, what’s the voltage threshold for triggering cell balancing in Li-ion battery?

  2. Hello Nigel,
    could you explain me how 6% loss correspond to ~$8.50/kWh of pack capacity?
    I espect to be $6/kWh if the cell are at $100/kWh
    Also the +25% for pack costs, i espect to be 6%.


  3. Hi Ferruccio,

    Thanks for the comment. Cell costs making up 80% of the total pack cost is a very good number for an automotive pack. For the 100kWh total pack this would equate to $2500 for the case, cooling system, BMS, sensors, contactors, fuses, busbars, vent, connectors etc. That would be tough to achieve at 6% as that would be $600 and probably would not cover the contactors and fuses.

    I wrote this some time ago, but my thought was $100/kWh for cells +25% gives $125/kWh at pack level. Usable energy is 85 to 95% depending on manufacturer and hence we see a cost for the usable energy up to $147/kWh and hence 6% of this is $8.8/kWh. My ~$8.5/kWh was me doing this in my head as a calculation. Sorry, should have explained it earlier in the post.

    Hope that helps, best regards, Nigel

  4. Hello Niegel,
    thanks for your reply.
    Assuming worst case 85% of usable energy i calculate a cost/kwh of $143,75/kWh ( $125/kWh + 15%) instead of $147/Kwh.
    Why you consider 6% if the error could be +/-3% of SoC. I espect that the worst case is -3%


  5. Hello Nigel,

    Thanks for the nice article!
    Working here for an EV BMS system, and the customer has assigned the SOC estimatin with an ASIL level.
    Do you have any thoughts on that? What do you think for using such estimates for a safety relevant application?
    My guts’ feeling says this is not that reliable information, no matter of the filtering method used…

    Best Regards,

    • Hello Georgi,

      I think the initial question for me is whether they want to apply this across the SOC range or if this is in terms of upper and lower limits?

      That way you could break the problem down.

      Best regards, Nigel

Leave a Comment