This document provides some guidance on parametrization of a core battery model. The core model captures the main electrochemical dynamics of the cells in a pack, and is typically parametrized with data for a single cell.

A battery pack is typically parametrized indirectly by selecting a specific core model, and specifying the number of cells in the pack. This is explained more in the separate guide: Configure a battery model. One exception to this is the Electrification.Batteries.Examples.Nominal pack model, which is parametrized as a whole pack, without considering the individual cells.

Nominal data

In some cases, only the most basic data is available for the battery cell, like the nominal voltage, capacity and output power. Maybe only a rough model for a battery cell is sufficient, e.g. in early stages of system development, before a specific cell chemistry has even been selected. For these cases, the Electrification.Batteries.Core.Examples.Nominal core model can be used to parametrize an idealized cell model, based on limited nominal data. This model can capture changes in state of charge (SoC) and voltage drop under load, but operates according to the ideal nominal parameters at any SoC or temperature. For more information, please refer to the documentation of that model. Compared to the Nominal pack model, the main difference is that this is parametrized for a single cell, and only includes the electrical dynamics.

A specific cell chemistry

If the chemistry for the cell is known, in addition to the nominal parameters, it is possible to obtain an a more dynamic model than the Nominal one, by using an existing model of a similar cell as an approximation. The model is re-scaled to match the energy content and power capability of the new cell, while maintaining the characteristics of the existing model.

For more information, please refer to the separate guide: Resize a battery model.

Discharge curves from a datasheet

Cell datasheets often include discharge voltage curves for different loads and operating conditions. Such curves from static discharge experiments is a common way to characterize a cell. In addition to the nominal parameters, these curves provide information about the voltage characteristics and internal resistance, over a range of states and operating conditions.

It can be a bit challenging to make use of this data however, since they represent the result of several combined dynamics. But if some assumptions are made, a model can be parametrized that approximates the voltage of the cell as a function of state of charge and load current. This can be useful, when it is not necessary to capture voltage transients associated with dynamic load changes.

The Electrification.Batteries.Core.Templates.Characteristic model template can be used to parametrize a core battery model directly from such discharge curves. For more information, please refer to the documentation of that template model. The following model is a pre-parametrized example based on this template: Electrification.Batteries.Core.Examples.NCA.Characteristic

Detailed lab data

To parametrize a more detailed configuration of the modular equivalent circuit models in the library, detailed lab data is generally required. To do this, we need systematic measurements that capture the electrical dynamics of the battery cell over a relevant time scale, for variations in state of charge an temperature. Different types of lab tests are used for identifying these parameters. The most common ones are static discharge (and charge) tests, dynamic pulse tests, and electrical impedance spectroscop (EIS). The equivalent circuit models in the library use a common format for the model parameters. However, to generate these parameter tables, extensive processing of the lab data is typically needed.

The modular sub-components of the core model can be parametrized somewhat independently. However, if the impedance and OCV (open circuit voltage) are defined as functions of SoC, they both need to refer to the same definition of the SoC range.


The capacity component describes the SoC (state of charge) as a normalized measure of the amount of charge that the cell can provide. The SoC is defined relative to a nominal capacity, the total amount that the cell can provide when it is fully charged, under nominal conditions.

The nominal capacity is typically defined based on a static discharge experiment, where the fully charged cell is discharged with a constant current, until the minimum voltage limit is reached. The SoC range (0..1) is thus spanned by the two states defined by the start and end of the experiment.

Note that the nominal capacity is defined for a specific nominal discharge current.

Open circuit voltage

The open circuit voltage (OCV) is defined in the voltage component as a function of SoC. There are a number of lab tests that can be used for identifying these voltage characteristics. A slow discharge experiment can be used as an approximation, where the current is low enough to make the resistive voltage drop negligible. Or it could be calculated from two discharges tests at different currents, to subtract the voltage drop. Another approach is to discharge the cell in stages, and let it rest after each stage to let the voltage stabilize. This is typically part of an HPPC (Hybrid Pulse Power Characterization) experiment, which could be used for both identifying OCV and impedance. It may also be useful to take the average of a discharge and a charge test, to compensate for hysteresis or the voltage no having fully stabilized.

The data typically recorded relative an accumulated charge (commonly in Ah). To define the data in terms of SoC, the charge is normalized with the nominal capacity, and inverted to go from DoD (Depth of Discharge) to SoC:
SoC = 1 - DoD = charge / capacityNom


The impedance models provided in the library are mainly networks of resistors, capacitors and inductances. The tabular ones allow the parameters to vary with SoC and temperature, but require more data to parametrize. The parameters of these circuit elements need to be identified by systematic processing of the lab data.

The impedance parameters are usually parametrized either based on data from pulse tests (time domain) (e.g. "HPPC" tests) or based on electrical impedance spectroscopy (frequency domain). In either case, identifying the impedance parameters is generally a compromise in terms of capturing fast or slow dynamics. The internal resistance of the cell will typically be higher for lower frequency loads.

A common method used for identifying the parameters from a pulse test, is to fit the model to measurements by solving a non-linear least squares problem for each pulse response. Another method is to algebraically fit the model to a number of points along the response curve, as described in [Hentunen et al. 2016] and implemented in the Electrification.Batteries.Core.Impedance.Dynamic2ndPulse impedance model.

Non-linear curve fitting approaches are used also for data from impedance spectroscopy. And sometimes this is combined with pulse data, as is described in [Store et al. 2016].


[The Idaho National Laboratory, 2015] Electric Vehicle Battery Test Procedures Manual

[D. Store et al. 2016] Generalized Characterization Methodology for Performance Modelling of Lithium-Ion Batteries

[A. Hentunen et al. 2014] Time-Domain Parameter Extraction Method for Thévenin-Equivalent Circuit Battery Models


Cell limits can be specified for in the Limits parameter tab of the core model. It is possible to specify voltage, current, and power limits. These limits can be used by a battery controller to report available power to the rest of the system. Typically, the voltage limits are the most important ones, as they dictate the maximum possible cell current/power (in combination with the internal resistance). If no limits are specified, the maximum discharge limit is calculated as the theoretical maximum output power (based on the ocv and internal resistance of the model).

These limits are also monitored during the simulation to detect operating conditions in violation of these. Such violations can trigger warnings or a stop of the simulation (depending on the actions configured).


The library comes with some experiment templates that can be used for verifying that a battery model has been properly parametrized. For more information, please refer to the separate guide: Verify and validate a battery model.


Some pre-parametrized core models for different types of cells can be found here: Electrification.Batteries.Core.Examples