Discrepancy between nominal cell capacity and simulated capacity fade starting point

I’m encountering an issue with capacity fade simulation in PyBaMM. While my nominal cell capacity is set to 45 Ah, the capacity fade curve starts at approximately 1.8 Ah.

Additionally, I’d like to know if it’s possible to plot the capacity fade against Full Equivalent Cycles (FEC) instead of cycle number.

I’m encountering an issue with capacity fade simulation in PyBaMM. While my nominal cell capacity is set to 45 Ah, the capacity fade curve starts at approximately 1.8 Ah.

Additionally, I’d like to know if it’s possible to plot the capacity fade against Full Equivalent Cycles (FEC) instead of cycle number.

here i’m attaching the voltage output and also the summary variables where the capacity is starting from 1.8 A.h instead of 45 A.h:

Code:

import pandas as pd
import pybamm
import numpy as np
import matplotlib.pyplot as plt

Import drive cycle

drive_cycle = pd.read_csv(r"C:\Users\OO000009\Desktop-----.csv", comment=“#”, header=None).to_numpy()
drive_cycle[:, 1] = -drive_cycle[:, 1]

def create_experiment(num_cycles):

Create drive cycle step using the current function

drive_cycle_step = pybamm.step.current(drive_cycle)

# Create cycling experiment
cycle_steps = [
    (drive_cycle_step, 
     "Rest for 0.5 hours")  # Add rest between cycles
] * num_cycles

return pybamm.Experiment(cycle_steps)

Set up model with degradation

model = pybamm.lithium_ion.DFN(
{
“cell geometry”: “pouch”,
“SEI”: “interstitial-diffusion limited”,
“SEI porosity change”: “true”,
“lithium plating”: “partially reversible”,
“calculate discharge energy”: “true”,
}
)

Parameter values

parameter_values = pybamm.ParameterValues(“OKane2022”)

Your parameter settings

parameter_values[“Upper voltage cut-off [V]”] = 4.3
parameter_values[“Lower voltage cut-off [V]”] = 2.5
parameter_values[“Nominal cell capacity [A.h]”] = 45
parameter_values[‘Electrode height [m]’] = 0.104
parameter_values[‘Electrode width [m]’] = 0.35
parameter_values[‘Cell volume [m3]’] = 4.2498e-04
parameter_values[‘Number of electrodes connected in parallel to make a cell’] = 43

Create experiment with 2 cycles

experiment = create_experiment(num_cycles=15)

Solver settings

solver = pybamm.CasadiSolver(
mode=“safe”,
atol=1e-3,
rtol=1e-3
)

Create simulation

sim = pybamm.Simulation(
model,
parameter_values=parameter_values,
experiment=experiment,
solver=solver
)

try:
print(“Starting simulation for 2 cycles…”)
solution = sim.solve(initial_soc=0.27)
print(“Simulation completed successfully!”)

# Plot summary variables
pybamm.plot_summary_variabl
es(solution)
plt.show()


I think it’s because the parameter nominal capacity is only used for c-rate/current conversion, you need to change the physical properties of the cell to get a higher capacity, see this github discussion: Cell capacity definition · pybamm-team/PyBaMM · Discussion #4211

1 Like

I tried optimizing the following parameters used to calculate the actual capacity:

Maximum concentration in negative electrode [mol.m⁻³]: best_params[0]
Maximum concentration in positive electrode [mol.m⁻³]
Negative electrode active material volume fraction
Positive electrode active material volume fraction
Positive electrode thickness [m]
Negative electrode thickness [m]
Initial concentration in negative electrode [mol.m⁻³]
Initial concentration in positive electrode [mol.m⁻³]

which allowed me to have the following comparison between the simulated and experimental voltage:

However, despite this optimization, the starting point of the capacity curve remains at 1.8 A.h, as shown in the image below:


I would like to know exactly which parameters I should focus on to achieve a more logical representation of the capacity curve.
On another note, I noticed that the aging parameters seem to affect only the capacity curve but not the voltage curve. I find this a bit confusing.
Could you clarify why this might be the case and how I can ensure the aging parameters influence the voltage curve as well?

Regarding the capacity curve, you would be better off testing the eSOH model first to optimize capacity.
See: eSOH capacity sweep

Capacity depends on not just the thickness but the volume of an electrode.

1 Like

Thank you for your answer.
Can you please explain to me more what do you mean by testing the eSOH model first to optimize the capacity?

The electrode SOH model (eSOH) is used for determining stoichiometry limits and cell capacity.

As I said you can run this example with your own parameter-set and verify if you are getting expected capacity. Like for Chen2020 cell capacity comes out to be ~5Ah (see 3rd plot from below image)

1 Like