Thevenin Model#

class pybamm.equivalent_circuit.Thevenin(name='Thevenin Equivalent Circuit Model', options=None, build=True)#

The classical Thevenin Equivalent Circuit Model of a battery as described in, for example, Barletta et al.[1].

This equivalent circuit model consists of an OCV element, a resistor element, and a number of RC elements (by default 1). The model is coupled to two lumped thermal models, one for the cell and one for the surrounding jig. Heat generation terms for each element follow equation (1) of Nieto et al.[2].

Parameters:
  • name (str, optional) – The name of the model. The default is “Thevenin Equivalent Circuit Model”.

  • options (dict, optional) –

    A dictionary of options to be passed to the model. The default is None. Possible options are:

    • ”number of rc elements”str

      The number of RC elements to be added to the model. The default is 1.

    • ”calculate discharge energy”: str

      Whether to calculate the discharge energy, throughput energy and throughput capacity in addition to discharge capacity. Must be one of “true” or “false”. “false” is the default, since calculating discharge energy can be computationally expensive for simple models like SPM.

    • ”operating mode”str

      Sets the operating mode for the model. This determines how the current is set. Can be:

      • ”current” (default) : the current is explicity supplied

      • ”voltage”/”power”/”resistance” : solve an algebraic equation for current such that voltage/power/resistance is correct

      • ”differential power”/”differential resistance” : solve a differential equation for the power or resistance

      • ”CCCV”: a special implementation of the common constant-current constant-voltage charging protocol, via an ODE for the current

      • callable : if a callable is given as this option, the function defines the residual of an algebraic equation. The applied current will be solved for such that the algebraic constraint is satisfied.

  • build (bool, optional) – Whether to build the model on instantiation. Default is True. Setting this option to False allows users to change any number of the submodels before building the complete model (submodels cannot be changed after the model is built).

Examples

>>> model = pybamm.equivalent_circuit.Thevenin()
>>> model.name
'Thevenin Equivalent Circuit Model'

Extends: pybamm.models.base_model.BaseModel

View inheritance diagram for this model

Inheritance diagram of pybamm.models.full_battery_models.equivalent_circuit.thevenin.Thevenin

set_external_circuit_submodel()#

Define how the external circuit defines the boundary conditions for the model, e.g. (not necessarily constant-) current, voltage, etc

References