- Explain Coulomb counting and how its error accumulates.
- Explain the OCV–SOC curve and OCV feedback.
- Compare model-based estimation, the Kalman Filter/EKF, and the observer concept.
- Justify why SOC can't be reliably calculated from terminal voltage alone.
- Explain how the SOC algorithm is calibrated in production.
BMS-08 — SOC Estimation
1. There’s No Sensor That Measures SOC Directly
SOC represents the lithium distribution inside a cell’s electrodes — its internal chemical state. No sensor observes that directly; the BMS has to estimate SOC from current, voltage, and temperature measurements. An accurate estimate is critical for the range indicator, protection limits, and energy management.
2. Coulomb Counting: Simple but Forgetful
You integrate current over time to compute the charge that’s passed:
SOC(t) = SOC(0) - (1/C_nominal) ∫ i(t) dt
Simple and direct, but error accumulates — the initial SOC error and current-sensor offset both grow over time. A constant +20 A offset produces a 20 Ah error in charge accounting over 1 hour (BMS-05); in our hypothetical 225 Ah pack, that alone is a ~8.9% deviation.
3. OCV Feedback Resets the Error
OCV, measured while a cell is resting (current ≈ 0), has a strong, repeatable relationship with SOC — this relationship is calibrated as the OCV-SOC curve. By catching rest periods and measuring OCV, the BMS can periodically zero out Coulomb counting’s accumulated error.
In NMC this curve is usually a steep, distinctive S-shape; in LFP there’s a very flat plateau across the middle SOC range (~20-80%) (see the diagram below).
4. Why You Can’t Just Look at Voltage
Under load, terminal voltage deviates from OCV due to the internal-resistance drop and polarization:
V_terminal = OCV(SOC) - I × R_internal (during discharge; the sign flips during charge)
With OCV(50%) = 3.7 V, R_internal = 2 mΩ, and a 200 A discharge current: V_terminal = 3.7 - 0.4 = 3.3 V. In other words, even though the cell is really at 50% SOC, only 3.3 V is read under load — feeding that value directly into the OCV-SOC curve gives the wrong SOC. The problem gets worse for flat-plateau chemistries like LFP: voltage already barely moves against SOC, so voltage alone can’t discriminate.
ASSUMPTION — The OCV and R_internal values in this example are representative; the real curve and resistance are determined through lab characterization specific to cell chemistry, temperature, and aging.
Because capacity and internal resistance change with temperature and aging, the SOC algorithm also uses temperature and SOH data to compensate for these effects (BMS-09).
5. Model + Observer: Combining Both
The model-based approach represents a cell with an equivalent circuit model (R-C networks); current/voltage/temperature measurements feed into the model, which estimates SOC and internal states (polarization voltages). An observer is a feedback structure that continuously corrects the model’s prediction against measurement. A Kalman Filter, and its EKF variant for nonlinear systems, statistically balances measurement noise against model error to produce an optimal estimate — combining Coulomb counting’s directness with OCV feedback so it both reduces accumulated error and stays accurate under dynamic load.
| Method | Advantage | Disadvantage |
|---|---|---|
| Coulomb counting | Simple | Error accumulates |
| OCV correction | Zeroes out error | Needs a rest period |
| Model + observer/KF/EKF | Robust, dynamic | Complex, needs calibration |
6. When Things Go Wrong
Typical things that corrupt SOC estimation: current sensor offset, voltage measurement error, an incorrect OCV-SOC table, and long stretches without a rest period (no chance for OCV correction). In these cases the BMS can lower SOC confidence and apply more conservative power limits (SOP).
7. How It’s Calibrated in Production
The OCV-SOC curve and model parameters (R-C values) are determined through cell characterization tests at different temperature/aging levels and loaded into the BMS software. HIL testing simulates different SOC/temperature scenarios to verify the algorithm’s accuracy (BMS-19, BMS-20).
8. How It Connects to Other Systems
SOC is the direct input to the SOP calculation (BMS-10), the target quantity for cell balancing (BMS-11), and the source of the range/percentage information shown to the driver (via BMS-15).
Interactive Tool
Use the SOC/Coulomb Counting Simulator below — enter a current and duration and watch how SOC changes, and how an offset accumulates error over time.
Summary
- SOC can’t be measured directly; it’s estimated.
- Coulomb counting is simple but accumulates error; OCV feedback zeroes it out but needs a rest period.
- Kalman/EKF fuses measurement and model for a robust estimate.
- The OCV-SOC table and model parameters are calibrated in production.
Sources
- Gregory L. Plett, Battery Management Systems, Volume I & II — SOC, EKF, observer.
Technical Diagrams
Interactive Calculator
SOC / Coulomb Counting Simülatörü
Başlangıç SOC, akım, süre ve akım sensörü offset'i girerek Coulomb counting ile SOC'nin nasıl değiştiğini ve offset'in birikin hatasını gözlemleyin (bkz. BMS-08).
Quiz
What does the Coulomb counting (current integration) method calculate?
Coulomb counting calculates the change in SOC by taking the time integral of current.
Why can't SOC be measured directly?
SOC isn't a directly measured signal; it's estimated from measurements via an algorithm.
What's Coulomb counting's most significant disadvantage?
Current sensor offset and initial error get integrated over time into a large SOC error.
When can OCV (open circuit voltage) be reliably measured?
OCV is measured while current is near zero and the cell is in electrochemical equilibrium.
Why can't SOC be reliably calculated from terminal voltage alone?
Terminal voltage deviates from OCV while current flows; in flat OCV–SOC regions, voltage can't distinguish SOC.
What does the EKF (Extended Kalman Filter) do in SOC estimation?
The EKF combines model knowledge with measurements, reducing accumulated error and staying accurate under dynamic load.
Glossary
| English Term | Definition |
|---|---|
| Open Circuit Voltage (OCV) | A cell's terminal voltage when no current is drawn (at equilibrium); shows a strong correlation with SOC. |
| State of Charge (SOC) | The ratio of a battery's currently available capacity to its full capacity; expressed as a percentage (%). |
| Coulomb Counting | An SOC estimation method that calculates charge passed by integrating current over time; error accumulates over time. |
| Kalman Filter | An algorithm that performs state estimation by statistically fusing measurement and model information; the EKF variant is used for nonlinear systems. |
| LFP (Lithium Iron Phosphate) | A Li-ion cell chemistry family using iron phosphate in the cathode; generally offers longer cycle life and better thermal stability. |
| Current Sensor Offset | The systematic deviation a current sensor shows at true zero current; turns into a large SOC error over time in Coulomb counting. |
| OCV–SOC Curve | A cell-specific, calibrated curve showing how open circuit voltage varies with state of charge. |
| EKF (Extended Kalman Filter) | The extended form of the Kalman Filter for nonlinear systems; fuses model and measurement in SOC estimation. |
| Observer | A feedback structure that continuously corrects a model's prediction against measurement; estimates states, like SOC, that can't be measured directly. |
| Equivalent Circuit Model | A model representing a cell with R-C networks; forms the basis of SOC/SOH estimation algorithms. |