Main Content

SOH Estimator

State of health estimator

Since R2022b

Libraries:
Simscape / Battery / BMS / Estimators

Description

The SOH Estimator block implements an estimator that calculates the state of health (SOH) of a battery. The SOH reflects the condition of a battery relative to its ideal conditions. Health variations imply that the capacity and power of the battery fade over time.

This block supports single-precision and double-precision floating-point simulation.

Note

To enable single-precision floating-point simulation, the data type of all inputs and parameters must be single.

This diagram shows the structure of the block:

Equations

The terminal resistance R0 is an important indicator of the aging of a battery. You can estimate the terminal resistance by using the SOC Estimator (Adaptive Kalman Filter) block. The SOH Estimator block computes the SOH as a function of the terminal resistance R0:

SOH=REOLR0REOLR0,new

where REOL is the end-of-life resistance and R0,new is the terminal resistance when the battery is new.

Examples

Ports

Input

expand all

State of charge of the battery, specified as a scalar or vector of entries in the range [0, 1]. The size of this input port must be equal to the size of the Temperature and R0 input ports.

Temperature of a battery cell, specified as a scalar for a single cell or a vector for multiple cells. The size of this input port must be equal to the size of the SOC and R0 input ports.

Terminal resistance, specified as a scalar for a single cell or a vector for multiple cells. The size of this input port must be equal to the size of the SOC and Temperature input ports.

Output

expand all

State of health of the battery, returned as a scalar or vector of entries in the range [0, 1]. The size of this output port is equal to the size of the vectors at the input ports.

Parameters

expand all

Vector of SOC breakpoints defining the points at which you specify lookup data. This vector must be strictly ascending.

Vector of temperature breakpoints defining the points at which you specify lookup data. This vector must be strictly ascending and greater than 0 K. The physical unit of this parameter must be the same as the physical unit of the Temperature input port.

Terminal resistance when the battery cell is new, in ohm. The number of rows of this matrix is equal to the size of the Vector of state-of-charge values, SOC (-) parameter. The number of columns of this matrix is equal to the size of the Vector of temperatures, T parameter.

Terminal resistance when the battery is at the end of its life, in ohm. The number of rows of this matrix is equal to the size of the Vector of state-of-charge values, SOC (-) parameter. The number of columns of this matrix is equal to the size of the Vector of temperatures, T parameter.

Since R2025a

Option to choose the data type for the block algorithm, specified as one of these values:

  • Inherit: auto — You can simulate the block in both single and double precision. You must explicitly provide the inputs and parameters as either single or double.

  • double — The block algorithm casts all inputs and parameters to double data type.

  • single — The block algorithm casts all inputs and parameters to single data type.

  • <data type expression> — The block algorithm casts all inputs and parameters to the data type object you specify.

Click the Show data type assistant button to display the Data Type Assistant, which helps you set the data type attributes. For more information, see Specify Data Types Using Data Type Assistant and Control Data Types of Signals.

References

[1] Noura, Nassim, Loïc Boulon, and Samir Jemeï. “A Review of Battery State of Health Estimation Methods: Hybrid Electric Vehicle Challenges.” World Electric Vehicle Journal 11, no. 4 (October 16, 2020): 66. https://doi.org/10.3390/wevj11040066.

Extended Capabilities

expand all

C/C++ Code Generation
Generate C and C++ code using Simulink® Coder™.

Version History

Introduced in R2022b

expand all