Source code for pybamm.parameters.electrical_parameters
#
# Standard electrical parameters
#
import pybamm
import numpy as np
[docs]class ElectricalParameters:
"""
Standard electrical parameters
Layout:
1. Dimensional Parameters
2. Dimensionless Parameters
"""
def __init__(self):
# Get geometric parameters
self.geo = pybamm.geometric_parameters
# Set parameters
self._set_dimensional_parameters()
self._set_dimensionless_parameters()
def _set_dimensional_parameters(self):
"""Defines the dimensional parameters."""
self.I_typ = pybamm.Parameter("Typical current [A]")
self.Q = pybamm.Parameter("Nominal cell capacity [A.h]")
self.C_rate = pybamm.AbsoluteValue(self.I_typ / self.Q)
self.n_electrodes_parallel = pybamm.Parameter(
"Number of electrodes connected in parallel to make a cell"
)
self.n_cells = pybamm.Parameter(
"Number of cells connected in series to make a battery"
)
self.i_typ = pybamm.Function(
np.abs, self.I_typ / (self.n_electrodes_parallel * self.geo.A_cc)
)
self.voltage_low_cut_dimensional = pybamm.Parameter("Lower voltage cut-off [V]")
self.voltage_high_cut_dimensional = pybamm.Parameter(
"Upper voltage cut-off [V]"
)
# Current as a function of *dimensional* time. The below is overwritten in
# lithium_ion_parameters.py and lead_acid_parameters.py to use the correct
# timescale used for non-dimensionalisation. For a base model, the user may
# provide the typical timescale as a parameter.
self.timescale = pybamm.Parameter("Typical timescale [s]")
self.dimensional_current_with_time = pybamm.FunctionParameter(
"Current function [A]", {"Time[s]": pybamm.t * self.timescale}
)
self.dimensional_current_density_with_time = (
self.dimensional_current_with_time
/ (self.n_electrodes_parallel * self.geo.A_cc)
)
def _set_dimensionless_parameters(self):
"""Defines the dimensionless parameters."""
self.current_with_time = (
self.dimensional_current_with_time
/ self.I_typ
* pybamm.Function(np.sign, self.I_typ)
)
electrical_parameters = ElectricalParameters()