The problem
Lithium-ion cells age quickly above about 40–45 °C, and Indian ambient temperatures regularly reach the upper 30s and 40s. Two-wheeler and small-vehicle packs are often air cooled, so designers need a quick way to estimate how hot cells get for a given duty cycle and airflow before any prototype exists. A lumped thermal model answers that in minutes and shows where the hottest cell will be.
Objectives
- Model cell heat generation from current, internal resistance and entropic heat.
- Build a lumped-capacitance thermal network for the pack modules and the cooling air.
- Predict cell temperature rise over IDC, MIDC and a hill-climb duty cycle at hot ambient.
- Size the fan airflow needed to keep the hottest cell below a target temperature.
- Report temperature spread across the pack and its sensitivity to airflow and ambient.
What you need
Tools and toolboxes
- MATLAB — Parameter scripts, drive-cycle processing, parameter sweeps with sim() and plotting.
- Simulink — Top-level model, current profile generation and signal logging.
- Simscape — Foundation thermal library: Thermal Mass, Conductive and Convective Heat Transfer, Controlled Heat Flow Rate Source and temperature sensors. The same network can be written with basic Simulink integrators if Simscape is not licensed.
Software
- MATLAB R2023b or later
- Simulink
- Simscape
- Excel/CSV for drive-cycle data
Extra parts and data
- Published cell datasheet (capacity, internal resistance, mass, specific heat if given) — The heat-generation and thermal-mass parameters must come from a real cell rather than guesses.
Key concepts
- Lumped-capacitance model
- Each cell or module is treated as one temperature with a heat capacity m·cp. It is valid when internal conduction is fast compared with surface cooling, which is checked with the Biot number.
- Cell heat generation
- Q = I²·R + I·T·dU/dT, where the first term is ohmic (irreversible) heat and the second is reversible entropic heat. At high C-rates the ohmic term dominates.
- Convective cooling
- Q = h·A·(T_cell − T_air), where h depends on air velocity. Forced air gives h of roughly 10–50 W/m²K in typical pack ducts, much higher than natural convection.
- Air temperature rise along the flow
- Air heats up as it passes each module, ΔT_air = Q / (ṁ·cp), so downstream cells see warmer air and run hotter. This is the main cause of temperature spread in a series-flow air-cooled pack.
Step-by-step guide
- 1
Define the pack and requirements
Choose an example pack, such as a 48 V, 30 Ah scooter pack built as 13S10P from 3 Ah 18650 cells, grouped into four modules along the airflow path. Write the requirement: hottest cell below 45 °C and spread below 5 °C at 40 °C ambient over a defined duty cycle. Collect cell mass, specific heat (about 900–1100 J/kgK is a common estimate for cylindrical cells), internal resistance versus temperature and entropic coefficient from a datasheet or literature, and record every source in a parameter script.
Checkpoint: A parameter .m file and a one-page requirements table with ambient, duty cycle and temperature limits.
- 2
Generate the current profile
Use a simple longitudinal vehicle model, or the output of an earlier drive-cycle project, to turn IDC and MIDC speed traces into pack power and then pack current, I = P / V_pack. Add a sustained hill-climb case, for example 6 per cent grade at 30 km/h for five minutes. Store each profile as a timeseries and feed it to the thermal model through a From Workspace block so cycles can be swapped by script.
Checkpoint: Current profiles whose peak and RMS values are plausible for the example vehicle, for example RMS of a few tens of amps for the scooter.
- 3
Model cell heat generation
Build a heat-generation subsystem computing Q = I_cell²·R(T) + I_cell·T·dU/dT, where I_cell is pack current divided by the number of parallel cells. Use a 1-D Lookup Table for R against temperature so hot cells generate slightly less ohmic heat. Multiply by the number of cells per module and drive a Controlled Heat Flow Rate Source. Test the subsystem alone with a constant 1C current and check the heat value by hand.
Checkpoint: Heat per cell at 1C matches the hand calculation I²·R within one per cent.
- 4
Build the module thermal network
Represent each module with a Thermal Mass block (total cell mass times cp), a Convective Heat Transfer block to its local air node and a Conductive Heat Transfer block to the neighbouring module through the holder. Start with h from a correlation for flow across a tube bank or a stated assumed value, and compute the wetted area from cell geometry. Use a variable-step solver such as ode23t, which suits stiff Simscape networks, with a relative tolerance of 1e-4.
Checkpoint: With zero current and the pack starting at 40 °C, all module temperatures stay at 40 °C; starting at 50 °C they decay exponentially towards ambient.
- 5
Model the cooling air path
Model air as a chain of nodes, one per module. Each node's outlet temperature is T_out = T_in + Q_module / (ṁ·cp_air), computed with Simulink blocks from the heat flow measured at each convective block, and passed as the air temperature for the next module. Make mass flow ṁ a parameter linked to fan volume flow. Include a natural-convection case with a much lower h for the fan-off condition.
Checkpoint: Total air temperature rise across the pack equals total heat divided by ṁ·cp in a steady-state test, within a few per cent.
- 6
Verify against an analytic case
Apply a constant heat load to a single module and compare the simulated temperature with the first-order analytic solution T(t) = T_amb + (Q/hA)·(1 − e^(−t/τ)), where τ = m·cp/(h·A). Check the Biot number Bi = h·L/k is below about 0.1 for the lumped assumption, and note in the report if it is not. Log signals with the Simulation Data Inspector and overlay the analytic curve.
Checkpoint: Simulated and analytic curves agree within 0.5 °C over the whole transient.
- 7
Run the drive-cycle cases
Simulate repeated IDC and MIDC cycles and the hill-climb case at 30, 35 and 40 °C ambient with the fan on and off. Script the runs with a Simulink.SimulationInput array and sim(), collecting the hottest module temperature, the spread and the time to reach a limit. Plot temperature traces for each module to show the downstream modules running hotter. Keep the solver settings identical across runs so differences come from the cases, not numerics.
Checkpoint: A table of peak temperature and spread for every case, with the last module in the airflow consistently the hottest.
- 8
Size the fan airflow
Sweep fan volume flow over a range, for example 5 to 40 m³/h, for the worst case (hill climb at 40 °C ambient) and plot hottest-cell temperature against flow. Find the minimum flow that meets the 45 °C target and estimate the fan power from an assumed pressure drop and efficiency. Discuss diminishing returns: beyond some flow, the cell's internal resistance to heat and the ambient limit dominate.
Checkpoint: A curve of peak temperature against airflow with the chosen operating point marked and justified.
- 9
Sensitivity analysis and report
Vary h, cell resistance and specific heat by ±20 per cent and report which parameter moves peak temperature most. Write the report with the network diagram, parameter table and sources, analytic verification, drive-cycle results and the fan sizing. State the limitations clearly: lumped modules hide the temperature gradient inside each cell, and h is assumed rather than measured. Include the parameter script and run scripts as an appendix so the results can be reproduced.
Checkpoint: A tornado-style sensitivity chart and a report whose conclusions reference the requirement table.
Testing & validation
- Zero-load and cool-down tests behave as expected.
- Single-module transient matches the analytic first-order solution.
- Air energy balance closes in steady state.
- Peak temperature and spread reported for each drive cycle, ambient and fan condition.
- Sensitivity of peak temperature to the uncertain parameters.
Expected results
A reusable Simscape thermal model of an air-cooled pack that predicts per-module temperatures over Indian drive cycles, with a justified fan airflow and a sensitivity study of the uncertain inputs.
Take it further
- Couple the thermal model to an equivalent-circuit electrical model so resistance and heat update together.
- Add a fan control law that switches airflow on temperature thresholds and compare fan energy.
- Model parallel (U-type) air flow and compare spread with series flow.
- Validate against a temperature log from a real pack if one is available.
Viva and review questions
Why is the last module in the airflow the hottest?
The air absorbs heat from each module it passes, so by the last module it is warmer and the temperature difference driving convection is smaller.
When is the lumped-capacitance assumption valid?
When the Biot number h·L/k is small, roughly below 0.1, meaning heat conducts through the cell much faster than it leaves the surface, so the cell is close to one temperature.
What is the entropic heat term and when does it matter?
It is I·T·dU/dT, the reversible heat from the change in cell entropy. It can be comparable to ohmic heat at low C-rates but is usually small at high currents.
Why did you use ode23t rather than ode45?
Thermal networks with small and large thermal masses are stiff, and ode23t handles stiff Simscape systems efficiently where ode45 would take very small steps.
Learn it at DIYguru
These DIYguru courses and programmes teach what this project needs.
