pybop.applications.ocp_methods#

Classes#

OCPAverage

Estimate the equlilibrium open-circuit potential (OCP) by averaging the charge

OCPCapacityToStoichiometry

Estimate the stoichiometry from a measurement of open-circuit voltage versus

OCPMerge

Generate a representative open-circuit potential (OCP) without hysteresis by

Module Contents#

class pybop.applications.ocp_methods.OCPAverage(ocp_discharge: pybop.Dataset, ocp_charge: pybop.Dataset, n_sto_points: int = 101, allow_stretching: bool = True, cost: pybop.ErrorMeasure | pybop.LogLikelihood | None = None, optimiser: pybop.BaseOptimiser | None = pybop.SciPyMinimize, verbose: bool = True)[source]#

Bases: pybop.BaseApplication

Estimate the equlilibrium open-circuit potential (OCP) by averaging the charge and discharge branches, using a method loosely based on method 4(a) proposed by Lu et al. (2021) available at: https://doi.org/10.1149/1945-7111/ac11a5

Parameters:
  • ocp_discharge (pybop.Dataset) – A dataset containing the “Stoichiometry” and “Voltage [V]” obtained from a discharge measurement.

  • ocp_charge (pybop.Dataset) – A dataset containing the “Stoichiometry” and “Voltage [V]” obtained from a charge measurement.

  • n_sto_points (int, optional) – The number of points in stoichiometry at which to calculate the voltage.

  • allow_stretching (bool, optional) – If True, the OCPs are allowed to stretch as well as shift with respect to the stoichiometry (default: True)

  • cost (pybop.ErrorMeasure | pybop.LogLikelihood, optional) – The cost function to quantify the error (default: pybop.RootMeanSquaredError).

  • optimiser (pybop.BaseOptimiser, optional) – The optimisation algorithm to use (default: pybop.SciPyMinimize).

  • verbose (bool, optional) – If True, progress messages are printed (default: True).

__call__() pybop.Dataset[source]#
allow_stretching = True[source]#
cost[source]#
n_sto_points = 101[source]#
ocp_charge[source]#
ocp_discharge[source]#
optimiser[source]#
verbose = True[source]#
class pybop.applications.ocp_methods.OCPCapacityToStoichiometry(ocv_dataset: pybop.Dataset, ocv_function: collections.abc.Callable, cost: pybop.ErrorMeasure | pybop.LogLikelihood | None = None, optimiser: pybop.BaseOptimiser | None = pybop.SciPyMinimize, verbose: bool = True)[source]#

Bases: pybop.BaseApplication

Estimate the stoichiometry from a measurement of open-circuit voltage versus charge capacity.

Parameters:
  • ocv_dataset (pybop.Dataset) – A dataset containing the “Charge capacity [A.h]” and “Voltage [V]” obtained from an OCV measurement.

  • ocv_function (Callable) – The open-circuit voltage as a function of stoichiometry.

  • cost (pybop.ErrorMeasure | pybop.LogLikelihood, optional) – The cost function to quantify the error (default: pybop.RootMeanSquaredError).

  • optimiser (pybop.BaseOptimiser, optional) – The optimisation algorithm to use (default: pybop.SciPyMinimize).

  • verbose (bool, optional) – If True, progress messages are printed (default: True).

__call__() pybop.Dataset[source]#
cost[source]#
ocv_dataset[source]#
ocv_function[source]#
optimiser[source]#
verbose = True[source]#
class pybop.applications.ocp_methods.OCPMerge(ocp_discharge: pybop.Dataset, ocp_charge: pybop.Dataset, n_sto_points: int = 101)[source]#

Bases: pybop.BaseApplication

Generate a representative open-circuit potential (OCP) without hysteresis by merging the provided charge and discharge branches of the OCP.

Parameters:
  • ocp_discharge (pybop.Dataset) – A dataset containing the “Stoichiometry” and “Voltage [V]” obtained from a discharge measurement.

  • ocp_charge (pybop.Dataset) – A dataset containing the “Stoichiometry” and “Voltage [V]” obtained from a charge measurement.

  • n_sto_points (int, optional) – The number of points in stoichiometry at which to calculate the voltage.

__call__() pybop.Dataset[source]#
n_sto_points = 101[source]#
ocp_charge[source]#
ocp_discharge[source]#