What Is Battery State of Charge? - MATLAB & Simulink

Battery State of Charge

What Is Battery State of Charge?

Battery state of charge (SOC) is a normalized quantity between 0 and 1 that indicates the charge level in the battery at the moment. An SOC of 1 means the battery is fully charged, while an SOC of 0 means it is completely discharged.

SOC for electric vehicles is analogous to the fuel gauge in conventional internal combustion engine vehicles, providing drivers with an indication of how much energy is left in the battery; a higher SOC means a longer driving range. Knowing the battery SOC enables drivers to plan their trips and charging stops more effectively. Battery SOC can be calculated as:

SOC(t1)=SOC(t0)+1Ctotalt0t1ηi(t)3600dt

where:

  • SOC(t1) is the battery SOC at time t1 in seconds.
  • SOC(t0) is the battery SOC at time t0 in seconds.
  • i(t) is the battery current in A, with negative sign when the battery is discharging.
  • η is the Coulombic efficiency factor without unit.
  • Ctotal is the battery total capacity in Ah. It is defined as the charge removed from the battery from fully charged state (SOC = 1) to fully discharged state (SOC = 0). The battery total capacity decreases as the battery degrades over time.

Importance of Accurate Estimation of Battery State of Charge

Battery management systems (BMSs) use the SOC estimate to inform the user of the expected usage until the next recharge, keep the battery within the safe operating window, implement control strategies, and ultimately improve battery life in many applications, including electric vehicles (EVs) and energy storage systems. For example, state of health (SOH) estimation requires SOC information to estimate battery SOH accurately. BMS uses estimated SOC for cell balancing algorithms.

Challenges in Accurately Estimating Battery State of Charge

Estimating SOC accurately is crucial for the effective management and operation of battery power systems. However, there are several challenges associated with it: 

  • Nonlinear discharge curves: Batteries often have nonlinear discharge characteristics, making it difficult to estimate SOC based solely on voltage measurements.
  • Current measurement errors: Accurate SOC estimation often relies on precise current measurements. Errors in current sensing can lead to cumulative errors in SOC estimation, especially in methods such as Coulomb counting.
  • Aging, degradation, and SOH dependency: SOC is often dependent on the battery’s state of health. Over time, batteries degrade, which affects their capacity and internal resistance. This degradation can lead to inaccuracies in SOC estimation if not properly accounted for.
  • Self-discharge: Batteries can lose charge over time even when not in use, which can lead to discrepancies in SOC estimation if not considered.
  • Dynamic load profiles: Fluctuating loads can complicate SOC estimation, as they can lead to rapid changes in battery voltage and current, making it difficult to track the true state of charge.
  • Battery model parameterization: Battery models are typical equivalent circuit models. Accurate SOC estimation requires accurate model fitting and tuning covariance if using a Kalman filter. The model parameterization can be time-consuming and challenging.

How to Calculate Battery State of Charge

Methods to estimate SOC range from simple current integration (Coulomb counting) and voltage monitoring to sophisticated model-based and data-driven methods, such as Kalman filters and neural networks.

Accurate battery models are vital to the development of algorithms for model-based SOC estimation in a battery management system. Traditional approaches to SOC estimation in a battery management system, such as open-circuit voltage (OCV) lookup and current integration (Coulomb counting), are easy to implement and reasonably accurate in some cases. However, the OCV-based approach requires OCV measurement, which needs to be preceded by an extended resting period. Coulomb counting suffers from issues of poor initialization and accumulation of current measurement noise. The extended Kalman filter (EKF) and unscented Kalman filter (UKF) approaches have been shown to provide accurate results for a reasonable computational effort in real-world BMS implementations.

Simscape Battery™, modeling software for designing and simulating battery and energy storage systems, provides several SOC estimators for BMS development and supports code generation:

Compared with the Kalman Filter SOC Estimator, the Adaptive Kalman Filter SOC Estimator has terminal resistance as an additional state. Both the Adaptive Kalman Filter SOC Estimator and the Kalman Filter SOC Estimator have the options to select EKF or UKF to develop an observer for estimating SOC. Such observers in a battery management system typically include a model of the nonlinear battery system, which uses the current and voltage measured by the BMS from the battery as inputs, as well as a recursive algorithm that calculates the internal states of the system (SOC among them) based on a two-step prediction and correction process.

The plot shows real and estimated battery state of charge tracking closely across the six-hour timeline.

Comparison of real and estimated SOC using EKF with built-in BMS blocks. (See Simscape Battery example.)

Estimating Battery State of Charge Using a Deep Learning Network

Instead of a Kalman filter, a battery management system can use a data-driven method such as a neural network to estimate SOC. This method does not require extensive information about the battery or its nonlinear behavior. Instead, the network is trained with current, voltage, and temperature data and SOC as a response. You can compress a neural network using projection, which exhibits faster forward passes when run on the CPU or deployed to BMS embedded hardware using library-free C or C++ code generation.

Diagram showing temperature, voltage, and current inputs into a neural network to estimate battery state of charge.

Using a neural network for SOC estimation in a battery management system. (See Deep Learning Toolbox™ example.)

Two plots showing true and predicted battery state of charge tracking closely across a four-hour timeline at temperatures of 10 and 25 degrees Celsius, respectively.

Comparison of real SOC in a battery management system and SOC estimated using a deep learning network at two different temperatures. (See MATLAB code.)


Examples and How To

Examples

Videos

Conference Papers: SAE World Congress

Customer Stories


See also: battery management system, Simscape Battery, battery modeling, battery systems, battery pack design

Simscape Battery

Design and simulate battery and energy storage systems