Main Content

Battery Power Estimator

Calculate maximum charging and discharging power of battery pack over time horizon

Since R2024b

  • Battery Power Estimator block icon

Libraries:
Simscape / Battery / BMS / Estimators

Description

The Battery Power Estimator block calculates the maximum charging and discharging power capabilities of a battery pack across a specified time horizon. This block adheres to the sign convention where the current and power are positive values during the battery charging process.

Equations

To estimate the maximum charging and discharging power capabilities of a battery pack, the Battery Power Estimator block uses the hybrid pulse power characterization (HPPC) method [1].

Diagram of pulse test voltage, on the Y axis, versus time, on the X axis

To calculate the discharging and charging currents, the block uses these equations,

idischg,volt,n=V0(SOC,T)vminRdischgDtichg,volt,n=V0(SOC,T)vmaxRchgDt

where:

  • V0(SOC,T) is the open-circuit voltage.

  • vmin and vmax are the minimum and maximum cell voltages.

  • RdischgDt and RchgDt are the discharging and charging resistances over a pulse of Δt seconds.

  • idischg,volt,n and ichg,volt,n are the discharging and charging currents for the nth cell based on the voltage constraints.

For a constant current in, the state-of-charge (SOC) relationship is

SOCn(t+Δt)=SOCn(t)η Δt in 3600 Q,

where:

  • Q is the capacity in ampere-hour.

  • SOCn is the state of charge of the nth cell.

  • η is the efficiency factor, with η = 1 for discharging and η1 for charging.

Minimum and a maximum permissible values limit the state of charge for all cells in the pack such that

SOCminSOCn(t)SOCmax.

The block then computes the current limits based on the SOC:

idischg,SOC,n=3600Q(SOCnSOCmin)Δtichg,SOC,n=3600Q(SOCnSOCmax)ηΔt

To calculate the discharging and charging currents of the entire battery pack, the block uses these equations:

idischg=max(imin,maxnidischg,SOC,n,maxnidischg,volt,n)ichg=min(imax,minnichg,SOC,n,minnichg,volt,n)

Finally, the block calculates the charging and discharging power limits for a prediction horizon Δt:

Pmax,dischg=Npmax(NsPmin,n=1Nsidischg(V0(SOCn(t)idischgΔt3600 Q,T)idischgRdischgDt))Pmin,chg=Npmin(NsPmax,n=1Nsichg(V0(SOCn(t)ichgηΔt3600 Q,T)ichgRchgDt))

where Np is the number of parallel modules and Ns is the number of series modules.

Assumptions and Limitations

During the battery charging process, the current and power are positive values.

Ports

Input

expand all

State of charge of one or multiple cells, 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 CellTemperature input port.

Cell temperature, 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 CellSOC input port.

Output

expand all

Maximum power for discharging the battery over the prediction horizon.

Maximum power for charging the battery over the prediction horizon.

Parameters

expand all

To edit block parameters interactively, use the Property Inspector. From the Simulink® Toolstrip, on the Simulation tab, in the Prepare gallery, select Property Inspector.

Battery

Vector of the state-of-charge breakpoints that defines the points at which you specify lookup data. The entries of this vector must be in strictly ascending order. The block calculates the state-of-charge value with respect to the nominal battery capacity specified in the Cell capacity, AH (A*Hr) parameter. The SOC is the ratio of the available battery charge qbattery and the nominal battery capacity qnom(T,n). Make sure that, for each temperature value, an SOC of 1 represents the battery charge capacity for the corresponding element of the Cell capacity, AH (A*Hr) parameter when you model a fresh battery with a number of cycles N equal to 1 and δAH(n = 1, Tfade) equal to 0:

SOC=qbatteryqnom(T,n)forN=1andδAH(n,Tfade)=0,qnom(T,n)=AH.

Vector of temperature breakpoints that defines 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 CellTemperature input port.

Lookup data, in volt, for open-circuit voltages across the fundamental battery model at the specified SOC. 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.

Charging resistances over a pulse of Δt seconds. 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.

Discharging resistances over a pulse of Δt seconds. 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.

Cell capacity of the battery, in ampere-hour. The block calculates the state of charge by dividing the accumulated charge by this value. The block calculates the accumulated charge by integrating the battery current.

Number of series-connected modules inside the battery pack.

Number of parallel-connected modules inside the battery pack.

Ratio of the charging efficiency.

Limits

Minimum voltage of the battery cell, in volt. The value of this parameter must be less than the value of the Maximum cell voltage (V) parameter.

Maximum voltage of the battery cell, in volt. The value of this parameter must be greater than the value of the Minimum cell voltage (V) parameter.

Minimum state of charge of the battery cell. The value of this parameter must be less than the value of the Maximum state of charge, SOCmin(-) parameter.

Maximum state of charge of the battery cell. The value of this parameter must be greater than the value of the Minimum state of charge, SOCmax(-) parameter.

Minimum current of the battery pack, in ampere. The value of this parameter must be less than the value of the Maximum pack current (A) parameter. If you set this value to -inf, the block ignores this parameter.

Maximum current of the battery pack, in ampere. The value of this parameter must be greater than the value of the Minimum pack current (A) parameter. If you set this value to inf, the block ignores this parameter.

Minimum power of the battery cell, in watt. The value of this parameter must be less than the value of the Maximum cell power (W) parameter. If you set this value to -inf, the block ignores this parameter.

Maximum power of the battery cell, in watt. The value of this parameter must be greater than the value of the Minimum cell power (W) parameter. If you set this value to inf, the block ignores this parameter.

Time, in seconds, over which the block calculates the maximum charging and discharging power capabilities of the battery pack.

References

[1] Plett, Gregory L. Battery Management Systems. Volume II, Equivalent-Circuit Methods. Norwood, MA: Artech House, 2015.

Extended Capabilities

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

Version History

Introduced in R2024b