Verify and Validate

This guide describes how a battery model can be verified and validated using the experiment templates that are provided with the library. This is primarily an overview of the experiments that are most useful for evaluating different aspects of the battery models.

Once a battery model has been configured and parametrized, it is important to verify that this has been applied correctly, that it behaves as intended. And before the model can be trusted for making predictions, it is important to validate the model, by comparing it to measurements from an actual battery.

The modular structure of the battery pack models, allow a hierarchical approach to verifying the models. This allows the core battery model for a single cell, to be separately tested before it is tested as part of a whole pack of cells. Since the core model only deals with the electrical dynamics, this also allows verifying these dynamics in isolation, before coupling them with the thermal dynamics. A similar approach is recommended on pack level, to e.g. start with a fixed temperature, and add dynamics in steps.

Re-usable battery experiments (templates)

The library comes with a number of re-usable template experiments for battery models. Several of these correspond to common lab tests that are typically performed with battery cells and packs. These are useful both for verifying the models and for correlating them with measurements from corresponding lab tests.

General information about re-usable experiment templates is found in the Electrification.Information.UsersGuide.BasicConcepts.ExperimentModels.

Experiments (templates and examples) for verifying battery packs are found here:

The corresponding experiments for core models (single cell) are found here:

Furthermore, some of the example core models for specific cells also come with pre-configured verification experiments. e.g. Electrification.Batteries.Core.Examples.NCA.Experiments

For more information about a specific experiment, please refer to the separate documentation for that template model.

Open circuit

This is the simplest possible experiment, where the battery terminals are floating (perfectly isolated from each other). This can be useful as a first sanity check, to verify that the model can be simulated in isolation. It can also be used for evaluating open circuit voltage for a specific steady state condition, or evaluating self-discharge for a very long simulation time.

Use cases:

  • Sanity check
  • Verify open circuit voltage
  • Verify self-discharge


  • Electrification.Batteries.Core.Experiments.Templates.OpenCircuit
  • Electrification.Batteries.Experiments.Verification.Templates.OpenCircuit

Static discharge

The StaticDischarge experiment is the most common one, and used for characterizing a battery with a constant load current, over the whole state of charge range. This can be used for verifying the voltage characteristics and accumulated outputs (e.g. nominal energy). This is typically evaluated for different load currents and temperatures, and often provided in datasheets for battery cells.

With this experiment, it is also possible to evaluate the continuous power (or current) capability, i.e. the maximum possible steady state power or current. The battery models provide these outputs at each state covered during the simulation.

This experiment is useful for verifying the nominal output of the battery. This corresponds to the accumulated charge and energy, as well as average voltage, when battery is discharged with a specific nominal current. The accumulated outputs are calculated with the nominal block, and evaluated as the final accumulated values at the end of the experiment. Note that the accumulated output energy is the product of accumulated charge and average output voltage:
accumulated energy = accumulated charge x average voltage

Note that there exist different definitions of "nominal voltage". Here, this is defined as the average voltage under for a nominal discharge current.

Use cases:

  • Verify voltage characteristics for a constant discharge current.
  • Verify accumulated capacity or energy for a specific load current.
  • Verify static discharge characteristics at specific temperatures.
  • Verify static power capability for the full state of charge range.


  • Electrification.Batteries.Core.Experiments.Templates.StaticDischarge
  • Electrification.Batteries.Experiments.Verification.Templates.StaticDischarge

Single current pulse

Batteries are commonly characterized in the lab with an HPPC (Hybrid Pulse Power Characterization) test, for determining dynamic power capability and parametrizing the impedance of models, over the full range of operation. These lab tests are very long due to slow discharge sections and resting time between pulses. This makes it more practical to focus on a single pulse section when verifying the model.

The SinglePulse experiment can be used for evaluating the dynamic response of the model for a single discharge or charge pulse. The experiment is simulated for a specific initial SoC and temperature, and is repeated to cover a range of states.

The experiment is especially useful for verifying the impedance dynamics. The experiment is of little use for a model with purely resistive impedance. Note that the maximum power experiment is more useful for verifying the actual dynamic power capability.

This pulse experiment is also useful for replicating a section from an HPPC test, for validating the dynamic response of the model compared to lab measurements. An example of this is found here:

Use cases:

  • Verify impedance parametrization
  • Validate dynamic response compared to HPPC test lab data


  • Electrification.Batteries.Core.Experiments.Templates.SinglePulse
  • Electrification.Batteries.Experiments.Verification.Templates.SinglePulse

Maximum power

The MaximumPower experiment can be used for evaluating the pulse power capability of a battery model. This is the maximum power or current that a battery can deliver (or receive) for a limited duration without exceeding specified or theoretical voltage limits. This is also referred to as dynamic power capability, as opposed to continuous power capability.

In this experiment, the minimum allowed voltage is applied across the terminals of the battery, which results in the maximum possible discharge current. If this is changed to the maximum allowed voltage, the result is instead the maximum possible charging current. The current will typically be highest from the start, to then drop off and converge to the continuous power limit. The experiment can be used even if no minimum voltage has been specified, in which case a lower bound for the voltage is applied, corresponding to the theoretical maximum discharge power.

The experiment is simulated from a specific initial SoC and temperature, and is run multiple times to evaluate the power capability for a range of states.

Use cases:

  • Verify maximum dynamic power capability


  • Electrification.Batteries.Core.Experiments.Templates.MaximumPower
  • Electrification.Batteries.Experiments.Verification.Templates.MaximumPower

Recorded load cycle

Validation of a battery model typically involves comparing simulation results with measurements, for a more dynamic load than in the systematic tests used for parametrizing the model. This is done by discharging/charging the battery model according to a recorded time series current (or power). This can be done either directly or with additional protection against exceeding the limits of the battery.

Whe correlating to measurements for a battery that is not at 100 % SoC at the start, it can be difficult to know what SoC corresponds to the state of the real battery. In this case, it is typically better to initialize the SoC of the model indirectly, to have the same initial voltage as the measurements (these options are found in the Initialization parameter tab of the model).

Some different approaches are demonstrated in the following experiments with battery packs:

  • Electrification.Batteries.Experiments.Verification.TimeSeries
  • Electrification.Batteries.Experiments.Verification.CurrentCycle
  • Electrification.Batteries.Experiments.Control.LimitedTimeSeries
  • Electrification.Examples.Rimac.Experiments.ModuleTest

Some corresponding experiments for a single cell:

  • Electrification.Batteries.Core.Experiments.CurrentCycle
  • Electrification.Batteries.Core.Examples.NCA.Experiments.PulseTransient
  • Electrification.Examples.Rimac.Experiments.CellTest

For more information, please refer to the documentation of each specific experiment, as well as the template that it extends from.

Frequency response (impedence spectroscopy)

Electric impedance spectroscopy (EIS) is a common lab test, used for characterizing the "small-signal" AC impedance of a battery cell, over a range of frequencies (typically from 10 kiloHertz to 10 milliHertz.

A dynamic experiment can be used for verifying the impedance spectra of the model. An example of this is provided in the linked experiment template. This corresponds to a Galvanostatic experiment, where an AC current is applied to the battery, and the voltage response is measured. Note that further post-processing is needed to generate the impedance spectra from the dynamic simulation results.

Use cases:

  • Verify the impedance spectra of a cell


  • Electrification.Batteries.Core.Experiments.Templates.FrequencySweep