About:2D Thermal

2D Discretised Thermal Model for Cylindrical Cells - assess and design against cell hotspots and thermal gradients


Overview


About:2D Thermal is a discretised thermal model of a cylindrical cell, designed to accurately capture the temperature field within the main domains. The models are parameterised against test data and provide the cell temperature evolution over time as a function of heat generation rate, the boundary conditions applied to each cell face, and the external (sink) temperature.

Key features

  • Compatible with any cylindrical battery model

Key applications

  • Cell comparison and selection
  • Determination of cooling system requirements
  • Estimation of cell hotspots
  • Estimation of cell thermal thermal gradients in high-rate applications such as fast charge

Technical Description


About:2D Thermal solves a two-dimensional heat equation for the temperature field of a cell, assuming axisymmetric heat transfer, internal heat generation, and cooling. Cooling is expressed using a user-defined lumped heat transfer coefficient on the different external faces of the cell. Local thermal heterogeneity of the cell is included, allowing the user to investigate the impact on heat transfer due to different axial and radial thermal conductivities.

Mathematical Specification

The 2D Thermal model is based around the primary constituents of a cylindrical cell, namely:

  • Jelly-roll - The spirally wound electrode stack (anode, separator, cathode) that forms the core electrochemical structure of the cell.
  • Can/Base - The cylindrical metal housing that encloses and protects the jelly roll while providing structural integrity.
  • Cap - The top closure assembly that seals the can and typically integrates the electrical terminals and safety components.

Equations

The subscript \(m\) is used to specify a domain, where:

\[ \begin{equation} m \in \mathrm{\{jroll, can, cap\}}. \label{mass_spec} \end{equation} \]

Assuming the structures inside the cell are perfectly cylindrical / annular, the cell geometries can be derived as:

\[ V_m = \begin{cases} \pi (R_{\text{cell}} - t_{\text{can}})^2 \, h_{\text{jroll}}, & \text{if } m = \text{jroll} \\[6pt] \pi R_{\text{cell}}^2 \, t_{\text{can}} + \pi (2 R_{\text{cell}} t_{\text{can}} - t_{\text{can}}^2) \, h_{\text{jroll}}, & \text{if } m = \text{can} \\[6pt] \pi R_{\text{cell}}^2 \, h_{\text{cap}}, & \text{if } m = \text{cap} \label{subgeoms} \end{cases} \]

The total cell heat source is divided into the three domains according to domain proportion \((f_m)\), and then applied uniformly:

\[ \begin{equation} Q_{v,m} = Q_{cell} \frac{f_m}{V_m} \label{heatsource} \end{equation} \]

Specific heat in each domain is linearly proportionally to temperature, which can be disabled by setting \(\frac{\partial {C_{p,m}}}{\partial T} = 0\):

\[ \begin{equation} C_{p,m} = C_{p,m,ref} + \frac{\partial C_{p,m}}{\partial T} \left( T - T_{ref} \right) \label{specheat} \end{equation} \]

Discretisation

The separate domains are discretised further to form the nodal network model, as shown below. Some key points to note about the discretisation method:

  1. The battery core is represented as a cylindrical node, whilst surrounding nodes are concentric annuli. This arrangement is axially stacked into layers.
  2. The jelly roll domain is uniformly split into nodes of equal axial and radial thickness.
  3. The outermost node, surrounding the jelly roll, has a radial thickness (\(t_{r}\)) equivalent to the can thickness. This radial arrangement is consistent through the three distinct domains, even in layers consisting only of a single domain. This facilitates consistent heat transfer pathways between layers.
  4. The lowermost node layer (base), below the jelly roll, has an axial thickness (\(t_{z}\)) equivalent to the can thickness.
  5. The uppermost node layer, above the jelly roll, has has an axial thickness (\(t_{z}\)) equivalent to the cap height.
  6. The non-uniform nodes surrounding the jelly roll are only one node thick. All derivations used here assume an arbitrary number of nodes, with the assumption that the outer can and cap layers are always modelled as a single node thickness. Increasing \(N_r\) or \(N_z\) adds additional nodes to the jelly roll domain only. Eqs \ref{no_cannodes} & \ref{no_axnodes} must always be satisfied.

The following two equations define axioms used in the discretisation of the model, which must be satisfied for any size of nodal network.

\(N_{r}\) : Total number of radial nodes.

There is a single outer layer of radial can nodes \((N_{r\mathrm{,can}}=1)\), therefore:

\[ \begin{equation} N_{r\mathrm{,jroll}} = N_r-1 \label{no_cannodes} \end{equation} \]

\(N_{z}\) : Total number of axial node layers.

There is a single lower layer of axial can nodes \((N_{z\mathrm{,can}}=1)\), and a single upper layer of axial cap nodes \((N_{\mathrm{z, cap}}=1)\). Therefore:

\[ \begin{equation} N_{z\mathrm{, jroll}} = N_z - 2 \label{no_axnodes} \end{equation} \]

Coordinate System

Nodal positions \((r_{i},z_{j})\) are defined at their geometric centre. These are required as several nodal properties are location-dependant, such as annulus volume, outer and inner radial areas. Additionally, these are used to form the temperature vs position output quantity.

These coordinates can be mapped to the node index \((i, j)\) by mathematical expressions, assuming that the previously defined domain structure and discretisation is retained. Where \(i=1\) at the battery core nodes, \(i=N_r\) at the circumference nodes, \(j=1\) at the base nodes, and \(j=N_z\) at the cap nodes.

Radial Coordinates, \(r_i\)

The distribution of nodes in the radial direction is shown in the Figure below. The central (core) node is cylindrical, surrounded by concentric annuli. Thus, the model has rotational symmetry around the cell centre \(z\) axis. This figure also lists the radial node centre coordinates as a function of visualisable geometric properties. The outer (can) node coordinate is easily determined from the can thickness.

In the jelly roll domain, the nodes are uniformly distributed, with each having the same thickness, including the core node. The uniform jelly roll nodes are surrounded by a single outer node of thickness \(t_{\text{can}}\), representing the outer can. As shown in the above Figure, this radial arrangement is consistent throughout the thickness of the cell, even where the can is not modelled (E.G, the cap domain).

Each annular node has a node centre at the annulus radial midpoint. The central core node has a node centre at it’s centre point. The core node centre sets the the radial datum (\(r = 0\)) for the coordinate system.

\[ \begin{equation} r_{i\mathrm{, jroll}} = (i-1)t_{r\mathrm{, jroll}} \label{rad_jroll} \end{equation} \]

Due to uniform annular node distribution in the jelly roll with cylindrical core node :

\[ \begin{equation} t_{r\mathrm{, jroll}} = \frac {R_{\mathrm{jroll}}}{N_{r\mathrm{, jroll}} - 0.5} = \frac{R_{\mathrm{cell}}-t_{\mathrm{can}}}{N_r-1.5} \label{t_jrollnodes} \end{equation} \]

The full mathematical description of radial node thicknesses and centres are summarised in Eq \ref{t_full} and \ref{r_full}.

\[ \begin{equation} t_{r, i} = \begin{cases} \frac{R_{\mathrm{cell}}-t_{\mathrm{can}}}{N_r-1.5}&\text{if } 1 \le i < N_r \\ t_{\mathrm{can}} &\text{if } i = N_r \text{ (outer can node)} \end{cases} \label{t_full} \end{equation} \]
\[ \begin{equation} r_{i} = \begin{cases} \frac{(i-1)(R_{\mathrm{cell}}-t_{\mathrm{can}})}{N_r - 1.5} &\text{if } 1 \le i < N_r \\ R_{\mathrm{cell}} - \frac{t_{\mathrm{can}}}{2} &\text{if } i = N_r \text{ (outer can node)} \end{cases} \label{r_full} \end{equation} \]

Axial Coordinates, \(z_j\)

The distribution of node layers in the axial direction is shown in the Figure below. In the jelly roll domain, the nodes are uniformly distributed, with each having the same thickness. The uniform jelly roll nodes are surrounded by a single base node layer of thickness \(t_{\mathrm{can}}\), and a single top node layer of thickness \(h_{\mathrm{cap}}\).

Each node has an axial node centre at the mid-thickness. The bottom of the cell sets the axial datum (\(z = 0\)) position for the coordinate system.

Note - derivations used here assume an arbitrary number of axial nodes layers, with the assumption that the top and base layers are always modelled as a single node thick. This satisfies Eq \ref{no_axnodes}. Increasing \(N_z\) adds additional axial node layers to the jelly roll domain only.

The mathematical expression of the base and cap axial node centre coordinates (\(z_1\) and \(z_{N_{z}}\)) are simply derived from the cell geometry, and shown in \ref{ax_pos}.

Looking at the internal (jelly roll) nodes in isolation, their node centre axial position from the beginning of the jelly roll is:

\[ \begin{equation} z_{j_{\mathrm{jroll}}} = (j_{\mathrm{jroll}}-0.5)t_{z\mathrm{{, jroll}}} \label{ax_pos} \end{equation} \]

Where \(j_{\mathrm{jroll}}\) is the axial index of the node, beginning at the bottom of the jelly roll domain (rather than the base of the cell), and \(t_{z\mathrm{, jroll}}\) is the axial node thickness in the jelly roll domain. \(t_{z\mathrm{, jroll}}\) is determined for uniform node distribution in the jelly roll domain as:

\[ \begin{equation} t_{z\mathrm{, jroll}} = \frac{h_{\mathrm{jroll}}}{N_{z\mathrm{, jroll}}} = \frac{h_{jroll}}{N_z-2} \label{t_ax} \end{equation} \]

Substituting Eq \ref{ax_pos} into Eq \ref{t_ax} and modifying the index system \(j\) to account for the base can node, results in:

\[ \begin{equation} z_{j} = (j-1.5)\frac{h_{jroll}}{N_z-2} + t_{\mathrm{can}} \label{pos_ax} \end{equation} \]

The full mathematical description of axial node thicknesses and centres are summarised in Eq \ref{t_axial_full} and \ref{z_axial_full}.

\[ \begin{equation} t_{z,j} = \begin{cases} t_{\mathrm{can}} &\text{if } j=1 \text{ (base can node)} \\ \frac{h_{jroll}}{N_z-2}&\text{if } 1 < j < N_z \\ h_{\mathrm{cap}} &\text{if } j = N_z \text{ (cap node)} \end{cases} \label{t_axial_full} \end{equation} \]
\[ \begin{equation} z_{j} = \begin{cases} \frac{t_{\mathrm{can}}}{2} &\text{if } j=1 \text{ (base can node)} \\ \frac{(j-1.5)h_{jroll}}{N_z-2} + t_{can} &\text{if } 1 < j < N_z \\ h_{\mathrm{cell}} - \frac{h_{\mathrm{cap}}}{2} &\text{if } j = N_z \text{ (cap node)} \end{cases} \label{z_axial_full} \end{equation} \]

Node Description

Surface Areas

Outer Radial Face Surface Area

General case \(\left( 1 \le i < N_r \right)\), \(\left( 1 \le j < N_z \right)\):

\[ \begin{equation} A_{r,\mathrm{out},ij} = 2\pi r_{\mathrm{out},i}\cdotp t_{z,j} = 2\pi \left( r_{i} + \frac{t_{r,i}}{2} \right) \cdotp t_{z,j} \label{rad_surfarea_outer} \end{equation} \]

Inner Radial Face Surface Area

General case, annular node \(\left( 1 < i < N_r \right)\), \(\left( 1 \le j < N_z \right)\):

\[ \begin{equation} A_{r,\mathrm{in},ij} = 2\pi r_{\mathrm{in},i}\cdotp t_{z,j} = 2\pi \left( r_{i} - \frac{t_{r,i}}{2} \right) \cdotp t_{z,j} \label{rad_surfarea_inner} \end{equation} \]

Special case, core node \(\left( i =1 \right)\), \(\left( 1 \le j < N_z \right)\):

\[ \begin{equation} \left.A_{r,\mathrm{in},ij}\right|_{i=1} = 0 \label{core_area} \end{equation} \]

Axial Face Surface Area

General case, annular node \(\left( 1 < i < N_r \right)\), \(\left( 1 \le j < N_z \right)\):

\[ \begin{equation} A_{z,i} = \pi \left( \left(r_i + {\frac{t_{r,i}}{2}} \right)^2 - \left(r_i - {\frac{t_{r,i}}{2}} \right)^2 \right) = 2\pi r_i \cdot t_{r,i} \label{axial_area} \end{equation} \]

Special case, core node \(\left( i =1 \right)\), \(\left( 1 \le j < N_z \right)\):

\[ \begin{equation} \left.A_{z,i}\right|_{i=1} = \pi r_{\mathrm{out},i}^2 = \frac{\pi t_{r,i}^2}{4} \label{core_axial_area} \end{equation} \]

Summary

Node surface area equations can be summarised as:

\[ \begin{equation} A_{r,\mathrm{out},ij} = 2\pi \left( r_{i} + \frac{t_{r,i}}{2} \right) \cdotp t_{z,j} \label{area_summary1} \end{equation} \]
\[ A_{r,\mathrm{in},ij} = \begin{cases} 0, & \text{if } i = 1 \text{ (core)} \\[6pt] 2\pi \left( r_i - \frac{t_{r,i}}{2} \right) t_{z,j}, & \text{if } 1 < i < N_r \end{cases} \label{area_summary2} \]
\[ A_{z,i} = \begin{cases} \dfrac{\pi t_{r,i}^2}{4}, & \text{if } i = 1 \text{ (core)} \\[6pt] 2\pi r_i\, t_{r,i}, & \text{if } 1 < i < N_r \end{cases} \label{area_summary3} \]

Other Evaluated Quantities

Volume:

\[ \begin{equation} V_{ij} = A_{z,i}t_{z,j} \label{eqn_vol} \end{equation} \]

Mass:

\[ \begin{equation} m_{ij} = V_{ij} \rho_{ij} \label{eqn_mass} \end{equation} \]

Heat generation [W]:

\[ \begin{equation} Q_{ij} = Q_{v,ij} V_{ij} \label{eqn_qgen} \end{equation} \]

Simulink/Simscape Models

The About:2D Thermal Simscape implementation requires the following to be installed and licensed:

  • MATLAB (R2021b or later)
  • Simulink
  • Simscape

The implementation comprises Simulink blocks provided in AE_therm_models_cyl.slx, which can be embedded in an application. Further documentation is provided internal to each block. See example_model.slx for an illustration of the coupling of a provided Simulink block to a user-defined model, including specification of operating conditions.

Version History


Version Release Date Comments
1.0 24 Nov 2025 First release