PDF

Capacity Fade of a Lithium-Ion Battery
Introduction
Side reactions and degradation processes may lead to a number of different undesirable effects causing capacity loss in lithium-ion batteries. Typically, aging occurs due to multiple complex phenomena and reactions that are occurring simultaneously at different places in the battery, and the degradation rate varies between different certain stages during a load cycle, depending on potential, local concentration, temperature, and also the direction of the current. Different cell materials age differently, and the combination of different materials may result in further accelerated aging, for instance due to “cross-talk” electrode materials.
This model example demonstrates how to model aging in the negative graphite electrode in a lithium ion battery, where a parasitic solid-electrolyte-interface (SEI) forming reaction results in irreversible loss of cyclable lithium. The model also includes the effect of an increasing potential losses due to the resistance of the growing SEI film on the electrode particles, as well as the effect of reduced electrolyte volume fraction on the electrolyte charge transport.
Model Definition
Battery Chemistry and Aging reaction
The battery cell model is created using the Lithium-Ion Battery interface. This model uses the template model 1D Lithium-Ion Battery Model for the Capacity Fade Tutorial, that contains the physics, geometry and mesh of a lithium-ion battery. A more detailed description on how to set up this type of model can be found in the model example 1D Isothermal Lithium-Ion Battery. The template model 1D Lithium-Ion Battery Model for the Capacity Fade Tutorial does not contain any capacity fade reactions or mechanisms. They are included in this model as described below.
In addition to the main graphite-lithium intercalation reaction on the negative electrode, the following parasitic lithium/solvent reduction reaction is also included in the model:
where S is the solvent (ethylene carbonate, EC) and PSEI is the product formed in the reaction. The production of PSEI results in loss of cyclable lithium in the battery, and also to an increase of the resistance of the SEI layer (Ref. 1 and Ref. 2) and a reduction of the electrolyte volume fraction in the negative electrode.
The kinetic expression for the SEI forming reaction is based on a paper by Ekström and Lindbergh (Ref. 3). In this paper the SEI formation is assumed to be limited by a diffusion process through the formed SEI film, with the result that the aging slows upon thickening of the film. In addition, when the graphite electrode particles expand, during intercalation into the negative electrode, the aging is however also accelerated due to “cracking” of the SEI film. The graphite expansion rate depends both on the state of charge and the intercalation current. The SEI forming reaction is assumed to be a reduction reaction, resulting in higher reaction rates for lower potentials (that is, the battery state-of charge). The values of the model parameters where fitted, using a lumped zero-dimensional model, to experimental data during cycling and calendar aging for different state-of-charges for a graphite/LFP cell at 45 C. Only the graphite aging effects where assumed in the paper.
In this model example the above 0D model is expanded and applied to a 1D lithium-ion battery model using graphite/NCA electrodes. The kinetics of the parasitic reaction are described by the following kinetics expression for the local current density on the particle surface, iloc, SEI(SI unit: A/m2) in the negative graphite electrode:
(1)
Here
iloc,1C,ref (A/m2) is the local current density corresponding to a 1C discharge rate.
HK (1) is a dimensionless graphite expansion factor function (depends on the graphite state of charge). HK is zero during de-intercalation.
J (1) dimensionless exchange current density for the parasitic reaction.
α (1) transfer coefficient of the electrochemical reduction reaction.
ηSEI (V) is the overpotential, assuming an equilibrium potential of 0 V versus lithium.
 qSEI (C/m2) is the local accumulated charge due to SEI formation.
f (1/s) is a lumped nondimensional parameter based on the properties of the SEI film.
The Dissolving-Depositing Species section of the Porous Electrode node is used to solve for an additional degree of freedom to keep track of the formed SEI concentration, cSEI (mol/m3), in the porous electrode according to:
where is the stoichiometric coefficient of the SEI species in the reaction.
qSEI above is directly proportional to cSEI according to:
(2)
where Av (1/m) is the electrode surface area.
Film resistance calculation
The thickness of the SEI layer, δfilm, is then calculated from the SEI concentration as:
where MP (0.1 kg/mol) is the molar weight and ρP (2100 kg/m3) is the density of the product formed by the side reaction. The initial film thickness at t=0, δfilm,0, is assumed to be 1 nm.
The resistance of the SEI layer, Rfilm (Ω·m2), used in the negative electrode, is then calculated from:
Load cycle, events, and Applied Current
The switching between the different stages of the load cycle is modeled by the event-based Charge-Discharge Cycling boundary feature.
The battery is cycled in the following sequence of operation modes:
1
2
3
Time accelerating factor
Typically a battery needs many cycles to show any prominent capacity loss, and the incremental cycle-to-cycle differences in cycling behavior can therefore usually be assumed to be very small.
By assuming every simulated charge-discharge-cycle in the model to represent an average aging behavior for a larger number of cycles τ, and further assuming that over one complete charge-discharge cycle, all lithium captured in the SEI layer can been seen as stemming from the negative electrode, the capacity loss can be accelerated by rewriting the stoichiometry of the SEI forming reaction by adding the reaction formula
to
resulting in
τ can here be seen as a time accelerating factor, representing how many real cycles each simulated battery cycle should represent. In the model, τ is set to 250.
Postprocessing (plotting)
The capacity fade model defines filter variables in the definitions, which are used to determine the onset of discharge cycle (dch_start_filter), charge cycle (ch_start_filter), first cycle (first_cycle_filter), and last cycle (last_cycle_filter) for the load cycle applied during the charge-discharge of the battery. These variables are used while plotting the results after solving the model. See the postprocessing in the Modeling Instructions below.
Results and Discussion
Figure 1 shows the cell voltage during discharge for different cycle numbers.
Figure 1: Cell voltage during discharge.
Figure 2 and Figure 3 show the relative capacity versus time and cycle number, respectively. Both the capacity based on the total amount of cyclable lithium and the nominal 1C discharge capacity (based on the time spent during the 1C discharge part of the load cycle) decrease continuously, but with a higher capacity fade rate during the first cycles. Both capacities decay similarly, about 20% during the 2000 cycles of the study, indicating that the main contributor to the 1 C discharge capacity fade is the loss of lithium, and not a significantly increased internal resistance due to film formation or worsened ion transport in the negative electrode.
Figure 2: Capacity versus total accumulated cycling time.
Figure 3: Capacity versus cycle number.
Figure 4 depicts the change in electrolyte volume fraction. Due to a, on average, higher SEI forming rate close to the separator, the reduction in the electrolyte volume fraction is more pronounced there. A similar trend is seen in Figure 5, which depicts the change in the potential drop over the SEI film. Due to a higher amount of formed SEI close to the separator, the increase in potential drop is higher there.
Figure 4: Electrolyte volume fraction versus cycle number.
Figure 5: SEI film potential drop versus cycle number.
Finally, the local states of charge in the electrodes at the boundaries facing the separator are shown in Figure 6.
Figure 6: Local state-of-charge on the separator-electrode boundaries.
References
1. P. Ramadass, B. Haran, P. Gomadam, R. White, and B. Popov, “Development of first principles capacity fade model for li-ion cells,” J. Electrochemical Society, vol. 151, no. 2, pp. A196–A203, 2004.
2. G. Ning, R. White, and B. Popov, “A generalized cycle life model of rechargeable Li-ion batteries”, Electrochimica Acta, vol 51, pp. 2012–2022, 2006.
3. H. Ekström and G. Lindbergh “A model for predicting capacity fade due to SEI formation in a commercial Graphite/LiFePO4 cell”, J. Electrochemical Society, vol 162, pp. A1003–A1007, 2015.
Application Library path: Battery_Design_Module/Batteries,_Lithium-Ion/capacity_fade
Modeling Instructions
Start this tutorial by opening a seed file that contains a 1D battery model, without any capacity fade reactions or mechanisms added.
From the File menu, choose Open.
Browse to the model’s Application Libraries folder and double-click the file capacity_fade_seed.mph.
Lithium-Ion Battery (liion)
Run this model in Constant Current-Constant Voltage (CCCV) mode using the Charge-Discharge cycling boundary node.
Charge-Discharge Cycling 1
1
In the Model Builder window, expand the Component 1 (comp1) node.
2
Right-click Component 1 (comp1)>Lithium-Ion Battery (liion) and choose Electrode>Charge-Discharge Cycling.
3
4
In the Settings window for Charge-Discharge Cycling, locate the Discharge Settings section.
5
In the Idch text field, type -i_1C.
6
In the Vmin text field, type E_min.
7
Locate the Charge Settings section. In the Ich text field, type i_1C.
8
In the Vmax text field, type E_max.
9
Select the Include constant voltage charging check box.
10
In the Iupper text field, type I_min_ch.
11
Locate the Start Mode section. From the Start with list, choose Charge first.
Porous Electrode 1
Now use the Dissolving-Depositing species functionality to define the SEI layer thickness on the negative electrode.
1
In the Model Builder window, click Porous Electrode 1.
2
In the Settings window for Porous Electrode, click to expand the Dissolving-Depositing Species section.
3
4
You can control if the volume change induced by a dissolving of depositing species should affect the electrolyte and/or electrode volume fractions. In this case we will assume the formed SEI reduces the electrolyte volume fraction only.
5
Clear the Add volume change to electrode volume fraction check box.
Also add a film resistance that depends on the deposited film thickness.
6
Click to expand the Film Resistance section. From the Film resistance list, choose Thickness and conductivity.
7
In the s0 text field, type dfilm_0.
8
From the Δs list, choose Total film thickness change (liion/pce1).
9
In the σfilm text field, type kappa_film.
Add a second porous electrode reaction on the negative electrode to account for the parasitic lithium/solvent SEI forming reduction reaction, and set the stoichiometric coefficient for the degradation reaction.
Porous Electrode Reaction 2
1
In the Physics toolbar, click  Attributes and choose Porous Electrode Reaction.
2
In the Settings window for Porous Electrode Reaction, locate the Equilibrium Potential section.
3
From the Eeq list, choose User defined. Locate the Electrode Kinetics section. From the iloc,expr list, choose User defined. In the associated text field, type I_SEI*(cycle_no>0). The I_SEI variable was already defined in the seed file. You find the definition on the Component 1>Definitions>Variables 1 node.
4
Locate the Stoichiometric Coefficients section. In the νLiθ text field, type -(t_factor-1). The t_factor parameter is used to speed up the capacity fade per simulated cycle. You can read more about how the parameter is defined in the model documentation above.
5
In the Stoichiometric coefficients for dissolving-depositing species: table, enter the following settings:
6
Click to expand the Heat of Reaction section. From the dEeq/dT list, choose User defined. This is just a cosmetic setting to avoid the Materials node reporting missing material properties. The Heat of Reaction settings are not used in the model.
Definitions (comp1)
Also add a domain integration operator with the default name intop1. It will be used during postprocessing to integrate the amount of cyclable lithium in the battery in order to calculate the remaining capacity.
Integration 1 (intop1)
1
In the Definitions toolbar, click  Nonlocal Couplings and choose Integration.
2
In the Settings window for Integration, locate the Source Selection section.
3
From the Selection list, choose Negative Electrode.
Study 1
The physics part of the model is now complete. Tweak the solver settings before computing.
Solution 1 (sol1)
In the Study toolbar, click  Show Default Solver.
Step 1: Current Distribution Initialization
Disable the aging reaction in the initialization study step.
1
In the Model Builder window, click Step 1: Current Distribution Initialization.
2
In the Settings window for Current Distribution Initialization, locate the Physics and Variables Selection section.
3
Select the Modify model configuration for study step check box.
4
In the Physics and variables selection tree, select Component 1 (comp1)>Lithium-Ion Battery (liion)>Porous Electrode 1>Porous Electrode Reaction 2.
5
Click  Disable.
Solution 1 (sol1)
Add a stop condition that makes use of a cycle number variable comp1.cycle_no defined at the Component 1>Definitions>Variables 1 node. This variable in turn is based on an internal variable defined by the Charge-Discharge Cycling node.
1
In the Model Builder window, expand the Solution 1 (sol1) node.
2
Right-click Time-Dependent Solver 1 and choose Stop Condition.
3
In the Settings window for Stop Condition, locate the Stop Expressions section.
4
5
6
Locate the Output at Stop section. From the Add solution list, choose Steps before and after stop.
By enabling storing the solution before and after events, the solution data for the first and last time step of the constant charge current, constant voltage and constant discharge current stages will be stored.
7
Clear the Add warning check box.
8
In the Model Builder window, click Study 1.
9
In the Settings window for Study, locate the Study Settings section.
10
Clear the Generate default plots check box. For this model we are not interested in the default plots.
11
In the Study toolbar, click  Compute. The model should solve in about a minute or so.
Results
Using the variables E_cell> and I_cell, defined at the Component 1>Definitions>Variables 1 node, you can create a plot of the first load cycle as follows:
Load cycle
1
In the Home toolbar, click  Add Plot Group and choose 1D Plot Group.
2
In the Settings window for 1D Plot Group, type Load cycle in the Label text field.
3
Click to expand the Title section. From the Title type list, choose None.
4
Locate the Plot Settings section. Select the Two y-axes check box.
Global 1
1
Right-click Load cycle and choose Global.
2
In the Settings window for Global, locate the y-Axis Data section.
3
Filter 1
1
Right-click Global 1 and choose Filter.
2
In the Settings window for Filter, locate the Point Selection section.
3
In the Logical expression for inclusion text field, type first_cycle_filter.
Global 2
1
In the Model Builder window, under Results>Load cycle right-click Global 1 and choose Duplicate.
2
In the Settings window for Global, locate the y-Axis section.
3
Select the Plot on secondary y-axis check box.
4
Locate the y-Axis Data section. In the table, enter the following settings:
5
In the Load cycle toolbar, click  Plot.
Discharge curve comparison
The following creates a comparison plot of the constant current discharge curves (Figure 1).
1
In the Home toolbar, click  Add Plot Group and choose 1D Plot Group.
2
In the Settings window for 1D Plot Group, type Discharge curve comparison in the Label text field.
3
Locate the Title section. From the Title type list, choose None.
4
Locate the Plot Settings section. Select the y-axis label check box.
5
First cycle
1
Right-click Discharge curve comparison and choose Global.
2
In the Settings window for Global, type First cycle in the Label text field.
3
Locate the y-Axis Data section. In the table, enter the following settings:
4
Locate the x-Axis Data section. From the Parameter list, choose Expression.
5
In the Expression text field, type (t-liion.cdc1.t_dch_start).
The Charge-Discharge Cycling node stores the latest time for switching to discharge mode in the liion.cdc1.t_dch_start variable. The above expression hence defines the time elapsed since the discharge started within each cycle.
Filter 1
1
Right-click First cycle and choose Filter.
The seed model contained a number of definitions for filter variables, defined under the Component 1>Definitions>Variables 1 node. These variables have either the value 1 or 0, depending on the charging state of the battery. In the postprocessing part of this tutorial we will use these filter variables extensively to filter out different time ranges of the solution data.
2
In the Settings window for Filter, locate the Point Selection section.
3
In the Logical expression for inclusion text field, type first_cycle_filter*dch_filter.
Last cycle
1
In the Model Builder window, right-click First cycle and choose Duplicate.
2
In the Settings window for Global, type Last cycle in the Label text field.
3
Locate the y-Axis Data section. In the table, enter the following settings:
Filter 1
1
In the Model Builder window, expand the Last cycle node, then click Filter 1.
2
In the Settings window for Filter, locate the Point Selection section.
3
In the Logical expression for inclusion text field, type last_cycle_filter*dch_filter.
4
In the Discharge curve comparison toolbar, click  Plot.
SEI layer potential drop at 1C
The following creates a plot of the potential drop over the SEI layer, using the liion.deltaphi variable defined by the Film Resistance section of the Porous Electrode 1 node (Figure 5).
1
In the Home toolbar, click  Add Plot Group and choose 1D Plot Group.
2
In the Settings window for 1D Plot Group, type SEI layer potential drop at 1C in the Label text field.
3
Locate the Title section. From the Title type list, choose Label.
4
Locate the Plot Settings section. Select the y-axis label check box.
5
In the associated text field, type Potential drop over SEI layer (V).
Point Graph 1
1
Right-click SEI layer potential drop at 1C and choose Point Graph.
2
3
In the Settings window for Point Graph, locate the y-Axis Data section.
4
In the Expression text field, type -liion.deltaphi.
5
Locate the x-Axis Data section. From the Parameter list, choose Expression.
6
In the Expression text field, type cycle_no.
7
Select the Description check box.
8
9
Click to expand the Legends section. Select the Show legends check box.
10
From the Legends list, choose Manual.
11
Filter 1
1
Right-click Point Graph 1 and choose Filter.
2
In the Settings window for Filter, locate the Point Selection section.
3
In the Logical expression for inclusion text field, type dch_start_filter.
Point Graph 2
1
In the Model Builder window, under Results>SEI layer potential drop at 1C right-click Point Graph 1 and choose Duplicate.
2
In the Settings window for Point Graph, locate the Selection section.
3
Click  Clear Selection.
4
5
Locate the Legends section. In the table, enter the following settings:
6
In the SEI layer potential drop at 1C toolbar, click  Plot.
Electrolyte volume fraction
1
In the Model Builder window, right-click SEI layer potential drop at 1C and choose Duplicate.
The electrolyte volume fraction will decrease as a result of the formed SEI. Plot the volume fraction (Figure 4) as follows:
2
In the Settings window for 1D Plot Group, type Electrolyte volume fraction in the Label text field.
3
Locate the Plot Settings section. In the y-axis label text field, type Electrolyte volume fraction (1).
Point Graph 1
1
In the Model Builder window, expand the Electrolyte volume fraction node, then click Point Graph 1.
2
In the Settings window for Point Graph, locate the y-Axis Data section.
3
In the Expression text field, type liion.epsl.
Point Graph 2
1
In the Model Builder window, click Point Graph 2.
2
In the Settings window for Point Graph, locate the y-Axis Data section.
3
In the Expression text field, type down(liion.epsl).
The down() operator indicates in this case that the value on the electrode side of the point should be used, i.e. not the default mean of the values on each side.
4
In the Electrolyte volume fraction toolbar, click  Plot.
Capacity vs. time
Now plot the capacity versus time (Figure 2). We will compute the remaining capacity in two ways: 1) based on the integral of charge used for forming the SEI layer and 2) based on the time elapsed during the 1C discharge.
1
In the Home toolbar, click  Add Plot Group and choose 1D Plot Group.
2
In the Settings window for 1D Plot Group, type Capacity vs. time in the Label text field.
3
Locate the Title section. From the Title type list, choose None.
4
Locate the Plot Settings section. Select the x-axis label check box.
5
6
Select the y-axis label check box.
7
Global 1
1
Right-click Capacity vs. time and choose Global.
2
In the Settings window for Global, locate the y-Axis Data section.
3
4
Locate the x-Axis Data section. From the Parameter list, choose Expression.
5
In the Expression text field, type t*t_factor.
6
Select the Description check box.
7
From the Unit list, choose d.
8
In the Description text field, type Time (days).
9
Click to expand the Legends section. From the Legends list, choose Manual.
10
Filter 1
1
Right-click Global 1 and choose Filter.
2
In the Settings window for Filter, locate the Point Selection section.
3
In the Logical expression for inclusion text field, type ch_start_filter.
Global 2
1
In the Model Builder window, under Results>Capacity vs. time right-click Global 1 and choose Duplicate.
2
In the Settings window for Global, locate the y-Axis Data section.
3
4
Locate the Legends section. In the table, enter the following settings:
Capacity vs. time
1
In the Model Builder window, click Capacity vs. time.
2
In the Capacity vs. time toolbar, click  Plot.
Capacity vs. cycle number
You may also plot the capacity fade versus the cycle number (Figure 3) as follows:
1
Right-click Capacity vs. time and choose Duplicate.
2
In the Settings window for 1D Plot Group, type Capacity vs. cycle number in the Label text field.
3
Locate the Plot Settings section. In the x-axis label text field, type Cycle number (1).
Global 1
1
In the Model Builder window, expand the Capacity vs. cycle number node, then click Global 1.
2
In the Settings window for Global, locate the x-Axis Data section.
3
In the Expression text field, type cycle_no.
Global 2
1
In the Model Builder window, click Global 2.
2
In the Settings window for Global, locate the x-Axis Data section.
3
In the Expression text field, type cycle_no.
4
In the Capacity vs. cycle number toolbar, click  Plot.
Local state-of-charge at separator-electrode interface
Now plot the local state of charge in electrodes during the first and last cycles (Figure 6).
1
In the Home toolbar, click  Add Plot Group and choose 1D Plot Group.
2
In the Settings window for 1D Plot Group, type Local state-of-charge at separator-electrode interface in the Label text field.
3
Locate the Title section. From the Title type list, choose Label.
4
Locate the Plot Settings section. Select the y-axis label check box.
5
Point Graph 1
1
Right-click Local state-of-charge at separator-electrode interface and choose Point Graph.
2
3
In the Settings window for Point Graph, locate the y-Axis Data section.
4
In the Expression text field, type liion.socloc_surface.
5
Click to expand the Title section. Locate the x-Axis Data section. From the Parameter list, choose Expression.
6
In the Expression text field, type t-liion.cdc1.t_ch_start.
7
Locate the Legends section. Select the Show legends check box.
8
From the Legends list, choose Manual.
9
Filter 1
1
Right-click Point Graph 1 and choose Filter.
2
In the Settings window for Filter, locate the Point Selection section.
3
In the Logical expression for inclusion text field, type first_cycle_filter.
Point Graph 2
1
In the Model Builder window, under Results>Local state-of-charge at separator-electrode interface right-click Point Graph 1 and choose Duplicate.
2
In the Settings window for Point Graph, locate the Selection section.
3
Click  Clear Selection.
4
5
Locate the Legends section. In the table, enter the following settings:
Point Graph 3
1
Right-click Point Graph 1 and choose Duplicate.
2
In the Settings window for Point Graph, locate the Legends section.
3
Filter 1
1
In the Model Builder window, expand the Point Graph 3 node, then click Filter 1.
2
In the Settings window for Filter, locate the Point Selection section.
3
In the Logical expression for inclusion text field, type last_cycle_filter.
Point Graph 4
1
In the Model Builder window, under Results>Local state-of-charge at separator-electrode interface right-click Point Graph 2 and choose Duplicate.
2
In the Settings window for Point Graph, locate the Legends section.
3
Filter 1
1
In the Model Builder window, expand the Point Graph 4 node, then click Filter 1.
2
In the Settings window for Filter, locate the Point Selection section.
3
In the Logical expression for inclusion text field, type last_cycle_filter.
4
In the Local state-of-charge at separator-electrode interface toolbar, click  Plot.