Coulomb Counting, Equivalent Circuit Modeling, and Extended Kalman Filter State-of-Charge Calculation

Hardware & Systems Takeaway

Measuring battery terminal voltage alone gives an inaccurate estimation of remaining capacity. An automotive Battery Management System (BMS) couples real-time Coulomb counting with an Extended Kalman Filter over a Thevenin equivalent circuit to estimate State-of-Charge within 1% accuracy.

Empirical Architecture Comparison: Voltage-Look-Up vs. Coulomb Counting vs. EKF SoC Estimation

MethodologyOpen-Circuit Voltage (OCV) LookupPure Coulomb Counting (Current Integration)Extended Kalman Filter (EKF) Dual-State
Operating RequirementRequires battery to rest unloaded for 30+ minutesContinuous current measurement (Shunt resistor)Real-time terminal voltage and current sampling under load
Error DriftSevere error under load due to internal impedance dropError accumulates indefinitely due to current sensor bias driftZero long-term drift; filter continuously corrects bias errors
Accuracy± 15% - 25% under dynamic load± 8% - 12% after 2 hours of cycling± 0.8% - 1.5% across full temperature and load profile
Compute RequirementLook-up table; zero computeSimple addition; minimal computeMatrix inversion and state prediction on microcontroller

1. Why Battery State-of-Charge (SoC) Cannot Be Directly Measured

In electric vehicles, drones, and mobile robots, running out of battery unexpectedly leads to catastrophic crashes or stranding. However, unlike fluid volume in a fuel tank, chemical State-of-Charge (SoC) is an internal state that cannot be measured directly with physical probes. Terminal voltage under load $V_{\text{term}}$ drops significantly due to internal ohmic resistance $R_0$ and electrochemical polarization, rendering simple voltage-to-percent look-up tables inaccurate during acceleration.

2. The Second-Order Thevenin Equivalent Circuit Model

To track battery dynamics in real time, the BMS models the Lithium-Ion cell as an Equivalent Circuit Model (ECM): $$V_{\text{term}}(t) = V_{\text{OCV}}(\text{SoC}) - I(t) R_0 - V_{RC,1}(t) - V_{RC,2}(t)$$ where:
  • $V_{\text{OCV}}(\text{SoC})$ is the non-linear Open Circuit Voltage function.
  • $R_0$ represents the instantaneous ohmic internal resistance of the electrolytes and current collectors.
  • $R_1, C_1$ model fast charge-transfer polarization kinetics (milliseconds).
  • $R_2, C_2$ model slow solid-state diffusion polarization kinetics (seconds to minutes).

3. Formulating the Extended Kalman Filter for SoC Tracking

The state vector is defined as $\mathbf{x}_k = [\text{SoC}_k, V_{RC,1,k}, V_{RC,2,k}]^T$. The state transition equation integrates Coulomb counting: $$\text{SoC}_{k} = \text{SoC}_{k-1} - \frac{\eta \cdot I_k \cdot \Delta t}{Q_n}$$ where $\eta$ is Coulombic efficiency and $Q_n$ is nominal battery capacity in Ampere-seconds. The observation model computes expected terminal voltage and calculates the Jacobian $H_k = \left[ \frac{d V_{\text{OCV}}}{d \text{SoC}}, -1, -1 \right]$. The Kalman gain $K_k$ dynamically adjusts the SoC estimate based on the discrepancy between modeled terminal voltage and physical ADC voltage readings.

4. Active Balancing and Thermal Runaway Prevention

Beyond SoC calculation, the BMS monitors individual cell voltages in multi-cell series packs (e.g., 12S4P lithium-polymer configurations). Passive balancing shunts excess energy from high-voltage cells through power resistors, while active bidirectional flyback converters shuttle charge from high cells to weak cells, extending battery pack cycle life by 35% while mitigating thermal runaway risks.