This guide describes how to re-scale the energy content and power capability of a core battery model for a specific cell. A full battery pack can be scaled via the number of cells, which is covered in the last section of the guide.
When is this useful?
"I need a model of a Lithium Polymer cell, capable of delivering __ Ah and __ W."
The approach described here is useful when you have an existing model for type of cell that you want to model, but the energy content and/or power capability does not match that cell. If we can re-scale these parameters, while maintaining the voltage and impedance characteristics of the original model, then we can use the model as an approximation of the cell we want to describe. This assumes that the two cells are similar enough for this approximation to be useful. Keep in mind that there may be significant differences between two cells even if they have the same fundamental chemistry.
This approach can be applied to equivalent circuit models based on the Modular templates, such as one of the pre-parametrized example models included with the library (e.g. Electrification.Batteries.Core.Examples.LFP.Tabular).
An alternative to re-scaling a detailed model for a specific cell, is to use the Electrification.Batteries.Core.Examples.Nominal core model, that can be directly parametrized based on nominal energy and power capability.
The scaling is performed with an iterative approach. First, the baseline characteristics of the model are identified with a simulation experiment. The results of this is then used for scaling the model parameters.
A static discharge experiment is used for evaluating accumulated nominal quantities and continuous power capability, while a constant voltage experiment can be used for evaluating dynamic power capability.
The scaling is primarily achieved by adjusting the charge capacity, via the
Q_cap_cell_nom parameter in the capacity sub-component of the model, and the internal resistance, via the
k_R factor of the impedance sub-component. By adjusting these parameters, we can scale several different target quantities, in addition to the capacity (Ah) and resistance (Ohm), including energy content (Wh) and power capability (W). Since we adjust two parameters, we will generally only be able to match two target quantities exactly.
Because of dependencies between some of the quantities, the order of adjustment matters, and a re-evaluation of the characteristics may be necessary after some of the adjustments.
Order of adjustments
- Voltage limits (V): Typically no need to adjust these (refer to section further down), but should be done before anything else they are.
- Resistance (Ohm): If specified explicitly.
- Power (W) or current (A) capability: Scaled by adjusting the resistance.
- Capacity (Ah): If specified explicitly.
- Energy (Wh): Always scaled last, since it depends on all of the others.
For cases when only a capacity or energy is specified for the new cell, it is recommended to scale the resistance accordingly (as described in the separate section).
It is generally recommended to apply the scaling to the battery by first creating a new variant that extends from the original one.
Static discharge experiment
The static discharge experiment is used for evaluating the baseline nominal quantities of the battery cell, including voltage, charge capacity and energy. These nominal quantities correspond to accumulated outputs after heat losses, and are evaluated at a specific nominal current. This can alternatively be specified as a nominal "C-rate" (current normalized with capacity). In that case, the actual current will change if the battery capacity is changed. Note that the nominal outputs will change if either the current or the losses (internal resistance) are altered.
In addition to the nominal quantities, the model also provides outputs for maximum continuous power (or current) for the range of states evaluated in the experiment.
A discharge experiment can be created by extending from the following template model, and redeclaring the core battery component:
In this experiment, the nominal quantities are calculated in the nominal block. Note that these outputs should evaluated at the end of the experiment, as they are accumulated quantities.
The experiment starts with the battery in a fully charged state. The battery is initialized to 100 % SOC by default in the experiment template. The experiment is configured to stop either when reaching the minimum cell voltage or 0 % SOC (this can be changed in the Limits tab of the model parameters). This means that the experiment may stop before reaching 0 % SoC, if the current is larger than the nominal current for the model. More information about this can be found in the section about voltage limits further down.
In this experiment, the characteristics of the battery are evaluated with a constant internal temperature. If the battery model have temperature dependent characteristics, it is important to specify a nominal temperature for which the battery should be scaled. The temperature is specified with the
T0 parameter, in the Conditional tab.
Several quantities can be scaled indirectly by adjusting the internal resistance. If the steady state resistance is specified explicitly, this can be adjusted directly by evaluating the following outputs from the static discharge experiment:
These outputs specify the steady state internal resistance of the battery cell for (at the specific SoC and temperature).
The resistance can be scaled via the
k_R factor (found in the Scaling parameter tab of the impedance sub-component in the model).
If a resistance is not provided and is not specified indirectly (e.g. as power capability), then it is recommended to scale the resistance inversely with any adjustments made to capacity. This will results in a battery cell that has the same nominal and maximum C-rate as the original one.
Continuous power or current capability
The power capability is the ability of the battery cell to deliver power without exceeding the upper and lower voltage limits. This is primarily dictated by the voltage drop due to the internal resistance of the battery, but also by thermal constraints due to the resulting heat losses. The maximum power (and current) capability can thus be scaled by adjusting the internal resistance. This is done by adjusting the by adjusting the
k_R factor in the Scaling parameter tab of the impedance sub-component. In order to double the maximum power or current,
k_R should be reduced by half.
The maximum continuous power and current capability can be evaluated from the static discharge experiment (see separate section) via the following outputs:
Note that the corresponding outputs without the "
_max" suffix describe the actual power and current during the simulation.
Also note that the maximum power and current will vary depending on both SoC and temperature. This means that requirements on power and current will need to be specified for specific operating points or a range of them (e.g. "10 kW between 10 .. 90 % SOC at 15 degrees Celsius").
Additional factors (e.g. thermal constraints) may impose additional limits to current or power. These limits can be explicitly specified in the Limits tab of the core model, in addition to the voltage limits. Those parameters may be used by a BMS controller and/or for monitoring to trigger a warning or error if they are exceeded.
Pulse power or current capability
The maximum possible power or current will typically be higher for short durations than for continuous operation. This is because of the impedance dynamics, which means that the internal resistance and voltage drop will take some time to build up. Note that this is only relevant if the model includes impedance dynamics. If the model has a constant internal resistance, then the dynamic and continuous maximum power is the same.
The maximum dynamic power or current can be identified with the MaximumPower experiment, which can be set up by extending from the following template:
In this experiment, the voltage across the battery cell is forced to the minimum limit. This results in the maximum current or power output that is possible without exceeding this voltage limit. After a long enough time, the power should approach the maximum continuous limit. The pulse power capability for a certain duration, is the minimum power over that duration from the start of the test.
This is evaluated with the actual discharge current or power:
i_dch_max would show the maximum continuous power, which is lower than the maximum dynamic power.
The same experiment can be used for evaluating the maximum charging capability of the battery cell. The target voltage should then be changed from
battery.vCellMax. The maximum charging current and power can then be evaluated as positive valued output:
Note that this experiment is evaluated for a specific (initial) state of charge. To evaluate the pulse power capability for several states, the experiment needs to be simulated multiple times with different initial SOC.
The charge capacity defines the amount of accumulated charge that the battery cell can provide from its fully charged state until it cannot provide any more charge. This is usually specified as a nominal capacity, where the cell is considered empty (0 % SoC) when the minimum voltage limit is reached for a specific nominal discharge current.
The nominal charge capacity can be specified directly with the parameter
Q_cap_cell_nom, in the capacity sub-component of the model.
The nominal capacity can be verified with the static discharge experiment. Note however that the calculated capacity may be lower if the minimum voltage is reached before 0 % SoC is reached, which will happen if the discharge current is larger than the nominal current that the model is parametrized for. For more information about this, please refer to the section about Voltage limits and SoC range.
The energy content of the cell can be specified as an alternative to the charge capacity, or in addition to it. The nominal energy can be evaluated with the static discharge experiment (output from the Nominal block), which corresponds to the total electrical energy provided (after heat losses) when the cell is discharged from 100 % to 0 % with a nominal current. The nominal energy is also the product of the nominal capacity and the average voltage for the discharge experiment. The nominal energy thus scales linearly with the charge capacity, which can either be altered directly with
Q_cap_cell_nom (in the capacity sub-component), or scaled with the factor
In the case that the nominal energy is specified in addition to the nominal capacity, then this may provide information about losses and internal resistance. We could then specify the nominal capacity explicitly, and then scale the resistance to obtain the specified nominal energy. This assumes that the nominal capacity and energy are both defined for the same nominal operating conditions and limits.
Voltage limits and SoC range
The voltage limits dictate the range of operation of the cell, both related to energy content and power output. These voltage limits should typically not be changed, since they are tightly coupled to a specific chemistry. However, scaling of the cell resistance will result in a different nominal current for which the SoC range is defined. This means, for example, that discharging the scaled cell with the nominal current of the original cell could lead to the voltage limit being reached before or after 0 % SoC, and similarly for charging the cell to 100 % SoC.
The reason for this is that the voltage levels corresponding to 0 % and 100 % SoC are typically defined under load, not for open circuit conditions. Typically, 0 % SoC will be defined as the state when the minimum cell voltage is reached for a specific nominal discharge current (or C-rate). And 100 % SoC will typically be defined as the state when a specific "cut-off" current is reached when charging the cell to its maximum specified voltage. Note that this also corresponds to the limits for which the nominal charge capacity is defined. If the full SoC range
This means, if the resistance is doubled, the current levels that define the SoC limits would have to be halved, to maintain the same voltage drop. Note that this is also true if the nominal load is defined as a C-rate. Consequently, this means that the resistance would have to be scaled if the same nominal C-rate should be maintained when the capacity of the cell is scaled.
There are cases when there is a need to change the voltage limits, typically to reduce the range of operation, to avoid the extremes of the cell dynamics. This corresponds to utilizing a smaller range of the voltage characteristics. This also means the SoC limits will also need to be adjusted, if they should be defined based on the new voltage limits. This is not covered by this guide, but this is supported for the tabular OCV and impedance models, via the scaling parameters
ref_SoC_1. Similar adjustments to the range can be made to re-define the SoC limits for another nominal current. Note that any adjustments to the SoC range should be made before scaling the nominal energy of the cell. And any adjustments to voltage limits need to be made before any of the adjustments covered in this guide.
Scaling of a battery pack (number of cells)
The energy content, power capacity and voltage of a battery pack, is a combination of what specific cell is used, how many of them that make up the pack, and how they are electrically connected together. Thus, any cell could be used to achieve a minimum voltage, energy and power, as long as you have enough of them.
The number of cells in the pack is defined by the parameters
np, which relate the cell and pack quantities as follow:
- The pack voltage scales with the cell voltage multiplied by the number of cells connected in series (
ns). This is also true for the voltage limits.
- The charge capacity (Ah) scales with the number of cells in parallel (
np). This is true also for the current limits.
- The energy content (Wh) of the battery scales with the total number of cells (
ns x np), and so do the maximum power limits.
The corresponding experiment templates for evaluating the characteristics of a full battery pack are: