Skip to content

Unify hysteresis models and add heat generation terms #4884

@rtimms

Description

@rtimms

Description

We now have three options for modelling open-circuit potential hysteresis in PyBaMM: 1) "current sigmoid"; 2) "Wycisk"; and 3) "Axen", all of which have slightly different implementations.

Both "Wycisk" and "Axen" are single-state hysteresis models which contain a single ODE for a hysteresis state variable, h, of the form dh/dt = K(1-sgn(i))h, but again with slightly different implementations. The current sigmoid model is a zero-state model (the OCP just jumps between branches depending on the sign of the applied current), and doesn't track the variable h

We propose we unify these models by (see #4332 (comment)):

  • Making sure all hysteresis models use the state variable -1<h<1 (in the current sigmoid model h will just jump from -1 to 1)

  • Add a base one-state model that solves a general one-state equation:

$\frac{\partial h}{\partial t} = \gamma\cdot\left(\frac{i_\mathrm{surf}a_\mathrm{vol}}{\phi_\mathrm{act}Fc_\mathrm{max}}\right)\cdot \left(1 - \mathrm{sgn}(i_\mathrm{surf})h\right)$

for $i_\mathrm{surf}$ the interfacial phase-specific current density (anodic current density positive).

  • Allow a scalar input or arbitrary functional input for $\gamma$, or allow $\gamma$ to be computed using the specific Wycisk formula with parameters $K$, $n$ and the OCP:

$\gamma = K \cdot \left(\frac{\frac{\partial q_\mathrm{vol}}{\partial U}}{\left.\frac{\partial q_\mathrm{vol}}{\partial U}\right|_\mathrm{ref}}\right)^{-n}$

where the evaluation at a reference point (implicitly at $x_\mathrm{Li}=x_\mathrm{Li,ref}$ which in turn defines $K$ as the decay rate at the reference stoichiometry) is to ensure that we take an arbitrary power only of a unitless quantity.

  • Allow general (particle-wise) initialisation of the hysteresis state, not necessarily = 0.

Unifying the models will also allow us to more reasonably include hysteresis heating (see https://github.com/About-Energy-OpenSource/AEPyBaMM/blob/main/src/aepybamm/pybamm_tools.py#L91).

Motivation

No response

Possible Implementation

No response

Additional context

No response

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions