-
-
Notifications
You must be signed in to change notification settings - Fork 689
Description
PyBaMM Version
23.4.1
Python Version
3.8.10
Describe the bug
In order to convert SEI thickness into SEI concentration, the surface area to volume ratio a is required. However, if any of the loss of active material models are enabled, a changes over time.
Prior to 15th November 2022, a_typ is used to convert from thickness to concentration. This results in SEI growth being overestimated, with SEI growing on particles that have already been lost.
On 15th November 2022, a_typ was replaced with the time-dependent a(t). However, this is also flawed. If a particle that already had SEI on it is lost, PyBaMM considers that SEI to also be lost, which results in "Loss of lithium due to SEI [mol]" decreasing over time in some cases.
One solution could be to have separate ODEs for the various LLI variables so they are incremented at the point the lithium is lost, but that would be computationally expensive and surely there must be a better way?
Steps to Reproduce
import pybamm
import matplotlib.pyplot as plt
model = pybamm.lithium_ion.DFN({
"particle mechanics": ("swelling only", "none"),
"SEI": "interstitial-diffusion limited",
"loss of active material": ("stress-driven", "none")
})
param = pybamm.ParameterValues("OKane2022")
param.update({
"Inner SEI reaction proportion": 0.5,
"Initial inner SEI thickness [m]": 2.5e-09,
"Initial outer SEI thickness [m]": 2.5e-09,
"Ratio of lithium moles to SEI moles": 2.0,
})
var_pts = {"x_n": 20, "x_s": 20, "x_p": 20, "r_n": 30, "r_p": 30}
exp = pybamm.Experiment(["Discharge at 1C until 2.5 V", "Charge at 0.3C until 4.2 V", "Hold at 4.2 V until C/100"])
sim = pybamm.Simulation(model, parameter_values=param, experiment=exp)
sol = sim.solve()
t = sol["Time [s]"].entries
Q_SEI = sol["Loss of capacity to SEI [A.h]"].entries
plt.figure()
plt.plot(t,Q_SEI)
plt.show()
Relevant log output
No response