# Battery Pack DC Fast Charging

This example shows how to model an automotive battery pack for DC fast charging tasks. The battery pack consists of several battery modules, which are combinations of cells in series and parallel. Each battery cell is modeled using the **Battery (Table-Based)** Simscape Electrical block. In this example, the initial temperature and the state of charge are the same for all cells. The cell capacity varies according to the manufacturing tolerances or uncertainties. Three battery modules, two similar and one differing from the other two, are connected in series to simulate a battery pack. The results in this example assume an initial ambient temperature equal to zero degree Celsius. The Controls subsystem defines the logic to determine the battery pack charging time and current.

### Model Overview

The example models a battery pack connected to an auxiliary power load from a chiller, a cooler, or other EV accessories. The Controls subsystem defines how much current the charger can feed into the battery pack based on the measurements of the cell state of charge, temperatures, and the maximum cell C-rate at a given temperature. The Controlled_Current_Source block in the BEV DC charging port subsystem models the battery charger. The logic defined in the Controls subsystem determines the value of the current. A resistor models the HV cable and it is used to connect the charging port to the battery pack. The battery pack comprises three series-connected battery modules, with a total of 130 battery cells.

### Battery Cell Overview

The battery cell is modeled using the equivalent circuit method. The equivalent circuit parameters used for each cell can be found in the reference [1]. To characterize a lithium-ion cell, this example uses a 2-RC model with default parameter values. You can use the **Cell Ahr rating variation** parameter, defined in the **Battery Module** custom component, to introduce cell-to-cell variations in the cell the capacity. No cell capacity fade or charge leakage is considered in this example.

### Battery Module Overview

To use this module to create a unique battery module, first specify the number of series and parallel-connected cells. Then specify the cell type for all individual cells by choosing one of these options for **Choose cell type** parameter of the **Battery Module** block:

`Pouch`

`Can`

`Compact cylindrical`

`Regular cylindrical`

This example uses pouch-type cells. Module A and Module B, each consist of 20 series-connected and two parallel-connected cells. Module C consists of 25 series-connected and two parallel-connected cells.

The two output ports, **SOC** and **Temp**, provide information regarding the state of charge and the temperature of each cell in the module. The thermal port, **Amb** is used to define the ambient temperature in the simulation. The electrical ports, **pos** and **neg**, define the electrical positive and negative terminals, respectively. The two input ports, **FlwR** and **FlwT**, define the battery coolant flow rate control and inlet temperature into the module.

The figure below shows examples of battery cells in `Pouch`

and `Can`

configurations.

The figure below shows examples of battery cells in `Compact cylindrical`

and `Regular cylindrical`

configurations.

These are the parameters in the battery module:

**Vector of temperatures, T**- Temperatures at which the cell or module data for temperature-varying properties are tabulated, specified as a vector.**Single cell Ahr rating, baseline**- Cell capacity at the temperatures defined in the**Vector of temperatures, T**parameter, specified as a vector.**Vector of state of charge values, SOC**- Range of values between 0 and 1 at which the cell electrical parameters are defined, specified as a vector.**Vector of coolant flowrates, L**- Coolant mass flow rate values at which a lookup table for cell cooling is defined. This parameter needs to cover multiple points in the flow range of interest. This parameter defines the size of the**Effective rate of coolant heat transfer**parameter and is specified as a vector.

**No load voltage, V0**- Cell open-circuit potential values at different**Vector of state of charge values, SOC**and**Vector of temperatures, T**points, specified as a matrix.**Terminal resistance, R0**- Cell ohmic resistance values at different**Vector of state of charge values, SOC**and**Vector of temperatures, T**points, specified as a matrix.**Polarization resistance**- Polarization resistance values at different**Vector of state of charge values, SOC**and**Vector of temperatures, T**points, specified as a matrix.**Time constant**- Time constant at different**Vector of state of charge values, SOC**and**Vector of temperatures, T**points, specified as a matrix.

**Cell thermal mass**- Thermal mass of a single cell, specified as a scalar.**Cell thermal conductivity**- Cell through-plane conductivity for pouch and can cells, or the radial conductivity for cylindrical cells, specified as a scalar.**Heat transfer coefficient to ambient**- Heat transfer coefficient value, specified as a scalar.

**Number of series connected cells Ns**- Number of strings in series, specified as an integer.**Number of parallel connected cells Np**- Number of parallel-cells in a string, specified as an integer.**Choose cell type**- Type of cell, specified as either`Pouch`

,`Can`

,`Compact cylindrical`

, or`Regular cylindrical`

.**Cell height**- Cell height, specified as a scalar.**Cell width**- Cell width for`Pouch`

and`Can`

cells, specified as a scalar.**Cell thickness**- Cell thickness for`Pouch`

or`Can`

cells, specified as a scalar.**Cell diameter**- Cell diameter for`Compact cylindrical`

or`Regular cylindrical`

, specified as a scalar.**Number of cylindrical cells in a straight line**- Number of cylindrical cells arranged in a straight line for packaging, specified as an integer.**Accessory total resistance**- Resistance that combines all inline resistance in a module, specified as a scalar. This resistance is the sum of cell tab, busbar, cable and/or weld resistances, specified as a scalar.**Cell balancing**- Cell balancing method, specified as either`none`

or`passive`

. In this example, this parameter is set to`none`

.

**Effective rate of coolant heat transfer from each cell**- Estimate of the thermal resistance (W/K) of heat transfer from battery cells to coolant, specified as a 3-D matrix of scalar values. The 3-D matrix size depends on the**Vector of temperatures, T**,**Vector of coolant flowrates, L**and**NsxNp**parameters. The**NsxNp**parameter is the total number of cells in the module. The battery cooling is represented as a lookup table or 3-D matrix of size [T,L,Ns*Np] and the values are calculated using detailed 3-D methods such as computational fluid dynamics. The values of the matrix depend on the actual hardware design of the cooling system or cold plates in the module. The performance of the cold plate is controlled using input values**FlwR**and**FlwT**.**External heat**- External heat input to each cell in a module due to a hot component placed near the module, specified as a vector.

**Vector of initial cell temperature**- Cell initial temperature, specified as a vector.**Vector of initial cell state of charge**- Cell initial state of charge, specified as a vector.**Cell Ahr rating variation**- Cell-to-cell variations in cell capacity at all**Vector of temperatures, T**points for each cell, specified as a vector of scalar values. If you set this array to 1, all cell capacity is the same. The array values for a cell are multiplied with the value specified in the**Single cell Ahr rating, baseline**parameter to calculate the actual capacity or the Ahr rating of the cell.

To define the battery coolant flow rate and temperature, specify these inputs:

**FlwR**- Value between 0 and 1, specified as a scalar. The**FlwR**input value is used to dynamically choose the right value of the flow rate during the simulations. The value of the**FlwR**input defines the actual flow rate in the module. In the**Vector of coolant flowrates L**parameter,**FlwR**equal to 0 means no flow, while**FlwR**equal to 1 means highest flow rate value.**FlwT**- Positive or negative value that, when summed to the ambient temperature, equals the coolant inlet temperature. A value of +15 for the**FlwT**input and 273.15 K at the**Amb**port makes the coolant inlet temperature equal to 273.15 + 15 = 288.15K. A value of -15 for the**FlwT**input and 273.15 K at the**Amb**makes the coolant inlet temperature equal to 273.15 - 15 = 258.15 K

### Build the Battery Pack

In this example, a battery pack is created by connecting three battery modules in series. A resistance models the cable connection between individual modules. A DC current source models the charger current and it is connected to the battery pack using a cable modeled as a resistance. A power load across the battery terminals models the power consumption due to the chiller or the heater for coolant circuit. The **Effective rate of coolant heat transfer from each cell** parameter models the battery coolant heat transfer rate. In this example, all the cells of a module have the same heat removal rate (W/K), but this value differs from module to module. In absence of detailed data, you can define the heat removal rate value to be the same for all cells at all temperatures and flow rates. The figure below shows the 3-D array lookup table, Qij, where i = 1:size(T) and j = 1:size(L), defines the heat removal rate in W/K for each cell where the temperature value equals *i* and coolant flow rate equals *j*. The values are linearly interpolated between the numbers you specify in the **Vector of coolant flowrates, L** and **Vector of temperatures T** parameters. The cooling system implementation and parameters, like Qij, are defined in the figure below.

### Define the Battery Control

To enable fast charging, a cold battery pack is heated up to allow the passage of larger currents. The DC current profile subsystem estimates the DC current as a function of the minimum cell temperature in the battery pack. The coolant inlet temperature is constant at 288.15 K and defined by setting **FlwT** to a constant input value of 15 and the **Amb** port to 273.15 K. If the temperature gradient between the cells is greater than five degrees Celsius, the Flow Control subsystem reduces the coolant flow rate.

### Simulation Results

This example uses the parameters defined in the `BatteryDCFastChargingInitialization.m`

file. The cell parameters are the same in all the modules. An external heat source is added to the module C to model the hot components around it. The ambient temperature is set to zero degrees Celsius, the model determines a suitable DC current profile, and the pack charge percentage changes. The initial condition of the pack is equal to 20% of the state of charge. The charge time available is equal to 15 minutes. Three cases are considered:

Case 1 - The vehicle is parked in the parking area for a long time. The initial cell temperature is the same as the ambient temperature. The battery is heated during charging, with the initial battery state of charge equal to 20%.

Case 2 - The vehicle is driven and immediately charged. The initial battery cell temperature is equal to 285 K. The battery is heated during charging, with the initial battery state of charge equal to 20%. The

`cellInitialTemp`

workspace variable, defined in the`BatteryDCFastChargingInitialization.m`

file, is changed to a value equal to the value of the**Amb**port plus 15.Case 3 - The vehicle is driven and immediately charged. The initial battery cell temperature is 285 K. The battery is not heated during charging (no auxillary power consumption), with the initial battery state of charge equal to 20%. The

`cellInitialTemp`

workspace variable, defined in the`BatteryDCFastChargingInitialization.m file`

, is changed to a value equal to the value of the**Amb**port plus 15 and`auxLoad`

is set to a low value equal to 1e-4. The coolant flow rate**FlwR**is set to zero by turning off the coolant flow inside the Controls/Flow_Control subsystem, setting**NoFlow**to 0.

This figure shows the results from the simulation of the three cases:

In the first case, the battery takes time to heat up. Because the battery temperature is low, the amount of current that it can safely accept from the charger is also low. The battery pack net state of charge rises from 20% to about 42% during the 15 minutes of the charging process.

In the second case, the battery initial temperature is higher, so the control module can put more current into the battery pack. The temperature of the battery further rises due to the heat. This enables the control module to put more charging current into the battery pack. As a result, the battery pack net state of charge rises from 20% to about 66% in 15 minutes of charging time.

The third case represents the best case scenario. The cooling or heating system is not used, so there is no auxillary power load, which leads to the battery getting charged up to 80%. About 60% (80% - 20%) of the net charge is recovered after 15 minutes of charging time.

### References

T. Huria, M. Ceraolo, J. Gazzarri,R. Jackey. "High Fidelity Electrical Model with Thermal Dependence for Characterization and Simulation of High Power Lithium Battery Cells", IEEE International Electric Vehicle Conference, March 2012