Contents
  1. Voltage Method
  2. Coulomb Counting Method
  3. Kalman Filter Method
← All posts

SOC: The Three Methods for Estimating Battery Charge

State of Charge represents the current charge level of a battery. There are three main estimation methods: voltage-based, Coulomb counting, and Kalman filter. Each has different accuracy and complexity trade-offs.

State of Charge (SOC) is the current charge level of a battery expressed as a percentage of its maximum capacity. A fully charged battery is at 100% SOC, a fully discharged one at 0%. The BMS needs an accurate SOC estimate at all times to manage charging, discharging, and power delivery safely.

SOC cannot be measured directly. It must be estimated from measurable quantities. There are three main methods.

Voltage Method

The voltage method estimates SOC from the open-circuit voltage (OCV) of the cell. A battery’s voltage follows a known curve relative to its charge state. A higher voltage generally indicates higher SOC.

This method is simple and requires no additional computation. The limitation is that the OCV-SOC curve is affected by temperature, ageing, and the recent current history of the cell. It also requires the battery to be at rest (no current flowing) for an accurate reading, which is rarely the case during operation.

Coulomb Counting Method

Coulomb counting integrates current over time to track how much charge has entered or left the battery:

SOC(t) = SOC(t₀) + ∫ I(t) dt / Q_max

Where I(t) is the measured current and Q_max is the maximum capacity.

This method is accurate over short periods and works during active charging and discharging. The problem is error accumulation: small measurement errors in current integrate over time and cause the SOC estimate to drift. Without periodic recalibration, the estimate becomes unreliable over long operation periods.

Kalman Filter Method

The Kalman filter is a recursive algorithm that combines a model of the battery’s behaviour with real-time measurements to produce an optimal SOC estimate. It treats SOC as a hidden state and uses the measured voltage and current as observations to continuously correct the estimate.

Unlike pure Coulomb counting, the Kalman filter accounts for measurement noise and model uncertainty. It corrects for drift automatically rather than letting errors accumulate. This makes it the most accurate of the three methods and the standard approach in modern BMS implementations, at the cost of higher computational complexity.

← All posts