From 3daabce7885a9659b71a6f79e2414d6bdb941a2f Mon Sep 17 00:00:00 2001 From: Caitlin Parke Date: Wed, 14 Aug 2024 12:01:58 -0400 Subject: [PATCH] parameter updates --- .../lithium_ion/basic_ecm_split_OCV.py | 34 ++++++++----------- 1 file changed, 15 insertions(+), 19 deletions(-) diff --git a/src/pybamm/models/full_battery_models/lithium_ion/basic_ecm_split_OCV.py b/src/pybamm/models/full_battery_models/lithium_ion/basic_ecm_split_OCV.py index e1e62b5b46..00fe7a2bf0 100644 --- a/src/pybamm/models/full_battery_models/lithium_ion/basic_ecm_split_OCV.py +++ b/src/pybamm/models/full_battery_models/lithium_ion/basic_ecm_split_OCV.py @@ -7,7 +7,7 @@ class ECMsplitOCV(BaseModel): """Basic Equivalent Circuit Model that uses two OCV functions - for each electrode from the OCV function from Lithium ion parameter sets. + for each electrode. This model is easily parameterizable with minimal parameters. This class differs from the :class: pybamm.equivalent_circuit.Thevenin() due to dual OCV functions to make up the voltage from each electrode. @@ -34,7 +34,6 @@ def __init__(self, name="ECM with split OCV"): V = pybamm.Variable("Voltage [V]") # model is isothermal - T = param.T_init I = param.current_with_time # Capacity equation @@ -42,29 +41,28 @@ def __init__(self, name="ECM with split OCV"): self.initial_conditions[Q] = pybamm.Scalar(0) # Capacity in each electrode - Q_n = param.n.Q_init - Q_p = param.p.Q_init - # Q_n = pybamm.Parameter("Negative electrode capacity [A.h]") - # Q_p = pybamm.Parameter("Positive electrode capacity [A.h]") - R = pybamm.Parameter("Ohmic resistance [Ohm]") - Un = pybamm.Parameter("Negative electrode OCP [V]") - Up = pybamm.Parameter("Positive electrode OCP [V]") - c_n_0 = pybamm.Parameter("Negative electrode initial SOC") - c_p_0 = pybamm.Parameter("Positive electrode initial SOC") + Q_n = pybamm.Parameter("Negative electrode capacity [A.h]") + Q_p = pybamm.Parameter("Positive electrode capacity [A.h]") # State of charge electrode equations + c_n_0 = pybamm.Parameter("Negative electrode initial SOC") + c_p_0 = pybamm.Parameter("Positive electrode initial SOC") self.rhs[c_n] = -I / Q_n / 3600 self.rhs[c_p] = I / Q_p / 3600 - self.initial_conditions[c_n] = param.n.prim.c_init_av / param.n.prim.c_max - self.initial_conditions[c_p] = param.p.prim.c_init_av / param.p.prim.c_max - - # OCV's for the electrodes - Un = param.n.prim.U(c_n, T) - Up = param.p.prim.U(c_p, T) + self.initial_conditions[c_n] = c_n_0 + self.initial_conditions[c_p] = c_p_0 # Resistance for IR expression R = pybamm.Parameter("Ohmic resistance [Ohm]") + # Open-circuit potential for each electrode + Un = pybamm.FunctionParameter( + "Negative electrode OCP [V]", {"Negative particle SOC": c_n} + ) + Up = pybamm.FunctionParameter( + "Positive electrode OCP [V]", {"Positive particle SOC": c_p} + ) + # Voltage expression V = Up - Un - I * R @@ -77,9 +75,7 @@ def __init__(self, name="ECM with split OCV"): "Times [s]": pybamm.t, "Positive electrode potential [V]": Up, "Negative electrode potential [V]": Un, - "Current variable [A]": I, "Current function [A]": I, - "Negative electrode capacity [A.h]": Q_n, } # Events specify points at which a solution should terminate