Source code for pybamm.models.submodels.equivalent_circuit_elements.thermal

import pybamm


[docs] class ThermalSubModel(pybamm.BaseSubModel): """ Thermal SubModel for use with equivalent circuits. Parameters ---------- param : parameter class The parameters to use for this submodel options : dict, optional A dictionary of options to be passed to the model. """ def __init__(self, param, options=None): super().__init__(param) self.model_options = options
[docs] def get_fundamental_variables(self): T_cell = pybamm.Variable("Cell temperature [degC]") T_jig = pybamm.Variable("Jig temperature [degC]") # Note this is defined in deg C T_amb = self.param.T_amb(pybamm.t) Q_cell_cool = -self.param.k_cell_jig * (T_cell - T_jig) Q_jig_cool = -self.param.k_jig_air * (T_jig - T_amb) kelvin = 273.15 variables = { "Cell temperature [degC]": T_cell, "Cell temperature [K]": T_cell + kelvin, "Jig temperature [degC]": T_jig, "Jig temperature [K]": T_jig + kelvin, "Ambient temperature [degC]": T_amb, "Ambient temperature [K]": T_amb + kelvin, "Heat transfer from cell to jig [W]": Q_cell_cool, "Heat transfer from jig to ambient [W]": Q_jig_cool, } return variables
[docs] def get_coupled_variables(self, variables): number_of_rc_elements = self.model_options["number of rc elements"] number_of_elements = number_of_rc_elements + 1 Q_irr = pybamm.Scalar(0) for i in range(number_of_elements): Q_irr += variables[f"Element-{i} irreversible heat generation [W]"] Q_rev = variables["Reversible heat generation [W]"] variables.update( { "Irreversible heat generation [W]": Q_irr, "Total heat generation [W]": Q_irr + Q_rev, } ) return variables
[docs] def set_rhs(self, variables): T_cell = variables["Cell temperature [degC]"] T_jig = variables["Jig temperature [degC]"] Q_irr = variables["Irreversible heat generation [W]"] Q_rev = variables["Reversible heat generation [W]"] Q_cell_cool = variables["Heat transfer from cell to jig [W]"] Q_jig_cool = variables["Heat transfer from jig to ambient [W]"] self.rhs = { T_cell: (Q_irr + Q_rev + Q_cell_cool) / self.param.cth_cell, T_jig: (Q_jig_cool - Q_cell_cool) / self.param.cth_jig, }
[docs] def set_initial_conditions(self, variables): T_cell = variables["Cell temperature [degC]"] T_jig = variables["Jig temperature [degC]"] self.initial_conditions = { T_cell: self.param.initial_T_cell, T_jig: self.param.initial_T_jig, }