Skip to main content
emobility.academy
M.TechBattery modellingAdvanced About 9 weeksMATLAB & Simulink

Cycle and Calendar Ageing Model for EV Battery Life Prediction

Build a semi-empirical cycle and calendar ageing model for an example Li-ion cell from public degradation data, fit its parameters with Curve Fitting Toolbox, and use it in Simulink to predict capacity fade for different drive patterns, charging habits and climates.

Tools: MATLAB · Simulink · Curve Fitting Toolbox

Cycle and Calendar Ageing Model for EV Battery Life Prediction: Students assembling a lithium-ion battery pack in a DIYguru workshop
Representative photo from DIYguru's EV lab, not of this specific project.

The problem

Battery life is a key concern for EV buyers, fleets and warranties, and it depends on temperature, SOC, depth of discharge and charge throughput. Semi-empirical ageing models are widely used in pack design and fleet planning because they are simple and can be fitted to test data, but their limits must be understood.

Objectives

  • Prepare capacity-fade data from a public ageing dataset.
  • Fit calendar ageing as a function of time, temperature and SOC.
  • Fit cycle ageing as a function of charge throughput, temperature, C-rate and depth of discharge.
  • Combine both in a Simulink model driven by usage profiles, with rainflow cycle counting.
  • Predict life under several usage scenarios and quantify uncertainty.

What you need

Tools and toolboxes

  • MATLAB — Data preparation, model functions, scenario scripts and uncertainty analysis.
  • Curve Fitting Toolbox — Non-linear fits of the calendar and cycle ageing equations with confidence intervals; lsqcurvefit in Optimization Toolbox is an alternative.
  • Simulink — A usage model that integrates ageing over SOC, temperature and current profiles across months and years.
  • Signal Processing Toolbox (optional) — The rainflow function for counting cycles and depth of discharge in irregular SOC profiles.

Software

  • MATLAB R2023b or later
  • Simulink
  • Ageing dataset files
  • Temperature data for the chosen climates

Extra parts and data

  • Public battery ageing dataset with calendar and cycle tests at several temperatures — The model parameters must be fitted to measured capacity fade; CALCE or NASA PCoE ageing data, or other published datasets, may be used.

Key concepts

Calendar ageing
Capacity loss during storage, often modelled as Q_loss = A·exp(−Ea/(R·T))·f(SOC)·t^z, with z close to 0.5 for diffusion-limited growth of the SEI layer.
Cycle ageing
Capacity loss with use, often modelled as a function of charge throughput Ah, temperature, C-rate and depth of discharge, for example B·exp(−Ea/(R·T))·Ah^z.
Arrhenius dependence
Reaction rates rise exponentially with temperature, so ageing speeds up in hot climates. The activation energy Ea is fitted from tests at several temperatures.
Rainflow counting
A method that breaks an irregular SOC history into equivalent cycles with their depths, so each can be aged according to its depth of discharge.

Step-by-step guide

  1. 1

    Select and prepare data

    Choose a public dataset with calendar ageing at several temperatures and SOCs and cycle ageing at several temperatures, C-rates and depths of discharge for one cell type. Extract capacity check measurements against time or throughput, normalise to initial capacity and remove outliers with a stated rule. Hold out one temperature or condition for validation. Record the cell chemistry and test protocol for each condition.

    Checkpoint: A clean table of relative capacity against time or throughput per condition, and a named held-out condition.

  2. 2

    Fit calendar ageing

    Fit Q_loss = A·exp(−Ea/(R·T))·exp(b·SOC)·t^z to the calendar data using Curve Fitting Toolbox's fit with a custom equation, or lsqcurvefit, with sensible initial guesses and bounds. Report parameter values with 95 per cent confidence intervals and plot fitted against measured fade for each condition. Fit all conditions together rather than one at a time, so the activation energy and SOC term are shared across temperatures. Check the residuals for patterns against time that suggest a wrong exponent.

    Checkpoint: Calendar fits with residuals within the measurement scatter and parameter confidence intervals reported.

  3. 3

    Fit cycle ageing

    Subtract the calendar contribution expected during each cycle test, then fit the remaining fade to a cycle model of the form B(C-rate, DoD)·exp(−Ea/(R·T))·Ah^z. Choose the simplest functional form that fits all conditions and report goodness of fit. Check that the fitted exponent and activation energy are physically reasonable. Compare at least two candidate model forms and select between them using a stated criterion, such as validation error or an information criterion.

    Checkpoint: Cycle fits for all conditions with RMS error reported and physically plausible parameters.

  4. 4

    Validate on held-out data

    Predict the held-out condition with the fitted model and compare with measured fade. Report the error at the end of the test and over time. If the error is large, try a different SOC or DoD dependence and explain the choice, keeping the held-out data truly unseen during model selection. If several conditions are available, repeat the hold-out for each in turn and report the average error, which gives a fairer picture of generalisation.

    Checkpoint: Held-out prediction error at the end of test reported, with a plot of predicted against measured fade.

  5. 5

    Implement the incremental model

    Because ageing depends on history, implement the model incrementally: use the time-derivative form dQ/dt = z·k(T, SOC)·t^(z−1), or the equivalent-time method, so changing conditions are handled. Implement calendar and cycle parts in MATLAB Function blocks in Simulink, with time measured in hours and integration at a coarse step such as one hour. Test with a step change in temperature to confirm the model continues smoothly from the aged state.

    Checkpoint: With constant conditions, the incremental model reproduces the closed-form fit exactly.

  6. 6

    Build usage profiles

    Create daily usage profiles: an example commuter (one drive and overnight charge to 100 per cent), a fleet scooter (several charges per day), and a private car charged to 80 per cent. Generate hourly SOC, temperature (from climate data for two Indian cities) and current statistics. Use rainflow counting on SOC to get cycle depths for the cycle model. Document the climate data source.

    Checkpoint: Profiles for each scenario with daily throughput, average SOC and temperature, and rainflow cycle histograms.

  7. 7

    Predict life

    Run each scenario for several years of simulated time with the incremental model, and record capacity against time and the time to reach 80 per cent of initial capacity. Separate calendar and cycle contributions. Compare scenarios and climates, and explain the results in terms of temperature, average SOC and throughput. Present results as a table and as fade curves, and check that throughput over the predicted life stays within the range covered by the test data.

    Checkpoint: Capacity-fade curves for all scenarios with time to 80 per cent and calendar versus cycle shares.

  8. 8

    Quantify uncertainty

    Sample model parameters from their fitted confidence intervals (assuming a multivariate normal from the fit covariance) and run a Monte Carlo for each scenario. Report the median and an interval for time to 80 per cent. Discuss the uncertainty from extrapolating beyond the test conditions, especially temperature and time. Show how the uncertainty band widens with simulated time, which makes the effect of extrapolation on predictions visible.

    Checkpoint: Uncertainty bands on capacity fade and a table of median and interval for life in each scenario.

  9. 9

    Report

    Document data, model forms, fits, held-out validation, incremental implementation, scenarios, life predictions and uncertainty. State the limits: one cell type, no knee point or lithium plating model, and extrapolation beyond tested conditions. Avoid presenting predictions as warranty figures; they are model results under stated assumptions. Include the fitted parameters, their covariance, the scenario definitions and all scripts so the predictions can be reproduced and updated with new data.

    Checkpoint: A report with fitted models, validation and scenario predictions with uncertainty.

Testing & validation

  • Fits within measurement scatter for all fitted conditions.
  • Held-out condition predicted within a stated error.
  • Incremental model reproduces closed-form results under constant conditions.
  • Monte Carlo results stable with more samples.

Expected results

A fitted and validated semi-empirical cycle and calendar ageing model in Simulink with life predictions and uncertainty bands for several usage scenarios and Indian climates.

Research angle for your M.Tech thesis

Research questions: how well do semi-empirical models fitted at constant laboratory conditions predict ageing under realistic, varying Indian usage and climate, and which model form generalises best to held-out conditions? Baselines: calendar-only, throughput-only and combined models. Metrics: held-out prediction error, parameter uncertainty and life prediction intervals. A careful study across public datasets, with model selection on held-out conditions and honest uncertainty, or a comparison against a physics-based SEI model, would be suitable for a conference or journal paper.

Take it further

  • Add resistance growth and its effect on power capability.
  • Couple with a pack thermal model so temperature comes from usage.
  • Optimise charging habits (target SOC, timing) for life.
  • Fit a knee-point model for late-life acceleration of fade.

Viva and review questions

Why do calendar and cycle ageing need separate terms?

Cells lose capacity both when stored and when used, with different dependencies: calendar ageing on time, temperature and SOC, cycle ageing on throughput, depth of discharge and C-rate.

Why implement the model incrementally?

Conditions change over time, and a closed-form equation for constant conditions cannot be applied directly. The incremental form accumulates damage based on present conditions and ageing state.

Why is the time exponent near 0.5?

It is consistent with growth of the solid electrolyte interphase limited by diffusion, which slows over time.

What is the biggest risk in your predictions?

Extrapolating beyond tested conditions and durations, and missing late-life mechanisms such as lithium plating that can cause a knee in the fade curve.

Learn it at DIYguru

These DIYguru courses and programmes teach what this project needs.

Related EV projects

All 100 MATLAB & Simulink EV projects