Main Content

Battery Coolant Control

Battery coolant control algorithm

Since R2022b

Libraries:
Simscape / Battery / BMS / Thermal Management

Description

The Battery Coolant Control block implements a battery coolant control algorithm.

Temperature is crucial in batteries because high temperatures significantly decrease the battery life. It is import to keep the temperature of each cell of the battery under control and activate heaters or coolers to keep the temperature within safe limits. If the temperature is too high, the battery management system (BMS) enables a cooling fan.

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 Battery Coolant Control block uses this equation to compute the flow temperature:

FlowTemperature=TambTcool

where Tamb is the ambient temperature and Tcool is the coolant temperature.

If the value at the FlowRateCommand output port is equal to 0, there is no flow in the battery. If this value is equal to 1, then the flow rate in the battery takes its highest possible value.

If you set the Control strategy parameter to ON-OFF control, the block uses this equation to calculate the flow rate command:

FlowRateCommand={1,ThottestTonFlowRateCommandold,Toff<Thottest<Ton0,Thottest<Toff

where

  • Thottest is the temperature of the hottest cell.

  • Ton is the switch-on temperature.

  • Toff is the switch-off temperature, which must be less than Ton.

  • FlowRateCommandold is the flow rate command at the previous time step.

If you set the Control strategy parameter to Step control, the block uses these equations to calculate the flow rate command:

f(ΔT)=c(Thottestmin(Tcoolest,TambTcool))FlowRateCommand=min(f(ΔT)mod(f(ΔT),step),1)

where

  • Tcoolest is the temperature of the coolest cell.

  • step is the flow rate step command. For example, if step = 0.2, the value at the FlowRateCommand output port is one of these values: [0,0.2,0.4,0.6,0.8,1].

  • c controls how aggressive the coolant strategy is. This value is a constant such that, if f(ΔT)≥ 1, the value at the FlowRateCommand output port is equal to 1. Otherwise, the block scales the flow rate command linearly to 0.

The step control strategy allows intermediate flow commands with the value you specify for the Flow rate step parameter. To compute the actual command, the block uses a function of the temperature gradient.

Examples

Ports

Input

expand all

Temperature of the battery cell, specified as a scalar for a single cell or a vector for multiple cells.

If you select the Specify CellTemperature input as [Min,Max] parameter, you must specify a minimum and a maximum value for this port, for example CellTemperature=[CellTemperatureMin,CellTemperatureMax]. (since R2025a)

Temperature of the ambient, specified as a scalar.

Temperature of the coolant, specified as a scalar.

Output

expand all

Flow rate command, returned as a scalar in the range [0, 1]. This output denotes the flow rate relative to the maximum and minimum flow rate values. A value of 0 corresponds to the minimum flow rate. A value of 1 corresponds to the maximum flow rate.

Temperature of the flow, returned as a positive or negative scalar. The total coolant inlet temperature is equal to the sum of this value and the value at the AmbientTemperature input port.

Parameters

expand all

Since R2025a

Option to specify the value at the CellTemperature input port as a vector of minimum and maximum values. If you clear this parameter, you must specify an individual value for the CellTemperature input port. The block then calculates the minimum and maximum values internally.

Control strategy for the calculation of the flow rate command.

Temperature at which the coolant pump switches on. The value of this parameter must be greater than or equal to the value of the Switch-off temperature parameter.

Dependencies

To enable this parameter, set Control strategy to ON-OFF control.

Temperature at which the coolant pump switches off.

Dependencies

To enable this parameter, set Control strategy to ON-OFF control.

Constant that controls how aggressive the coolant strategy is.

Dependencies

To enable this parameter, set Control strategy to Step control.

Step value used in the calculation of the flow rate command. The value of this parameter must be less than or equal to 1.

Dependencies

To enable this parameter, set Control strategy to Step control.

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.

Extended Capabilities

expand all

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

Version History

Introduced in R2022b

expand all