Skip to content

[Bug]: LLI due to SEI incorrect if loss of active material is enabled #3006

@DrSOKane

Description

@DrSOKane

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

Metadata

Metadata

Labels

bugSomething isn't workingdifficulty: mediumWill take a few daysin-progressAssigned in the core dev monthly meetingpriority: mediumTo be resolved if time allows

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions