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:
where:
is the battery SOC at time in seconds. is the battery SOC at time in seconds. is the battery current in A, with negative sign when the battery is discharging. is the Coulombic efficiency factor without unit. 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:
- SOC Estimator (Coulomb Counting): State of charge estimator with Coulomb counting
- SOC Estimator (Coulomb Counting, Variable Capacity): State of charge estimator with Coulomb counting and variable capacity
- SOC Estimator (Kalman Filter): State of charge estimator with Kalman filter
- SOC Estimator (Kalman Filter, Variable Capacity): State of charge estimator with Kalman filter and variable capacity
- SOC Estimator (Adaptive Kalman Filter): State of charge and terminal resistance estimator with adaptive Kalman filter
- SOC Estimator (Adaptive Kalman Filter, Variable Capacity): State of charge and terminal resistance estimator with adaptive Kalman filter and variable capacity
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.
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.
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