pybop-team / PyBOP

A parameterisation and optimisation package for battery models.
https://pybop-docs.readthedocs.io
BSD 3-Clause "New" or "Revised" License
44 stars 8 forks source link

Add electrode balancing example #222

Open NicolaCourtier opened 4 months ago

NicolaCourtier commented 4 months ago

Feature description

Create an example workflow for fitting the electrode stoichiometry balance parameters from pseudo-OCV test data.

Motivation

To demonstrate and benchmark a common battery parameterisation problem.

Possible implementation

This could be implemented as an example script/notebook or as an extension of the FittingProblem class.

Additional context

No response

brosaplanella commented 3 months ago

Similar to my comment in GITT: https://github.com/pybop-team/PyBOP/issues/223#issuecomment-1997057745. However, this one requires some extra work as our implementation do not conform to the PyBaMM model structure yet so it is a bit clunky (for ref https://github.com/paramm-team/pybamm-param/blob/develop/pbparam/optimisation_problems/OCP_balance.py). I know how the refactoring should go, just need to find some time to implement it.

BradyPlanden commented 3 months ago

Assigned - @DrSOKane

DrSOKane commented 3 months ago

Would the half-cell OCP curves be given in terms of capacity or stoichiometry? Both work, but they're different optimization problems.

BradyPlanden commented 3 months ago

Stoichiometry should allow for direct integration with PyBaMM, so that would be my preference.

brosaplanella commented 3 months ago

In our implementation in pybamm-param (https://github.com/paramm-team/pybamm-param/blob/develop/examples/notebooks/ocp_balance.ipynb). which may be a good starting point, we took the reference OCP to be vs stoichiometry and the measured one to be vs capacity. The idea was that OCP in the lab is measured vs capacity but, as Brady said, the models require it to be vs stoichiometry.