Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update units and parameter propagation #42

Open
wants to merge 2 commits into
base: dev
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions VirtualFCS/Control/BatteryManagementSystem.mo
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ within VirtualFCS.Control;

model BatteryManagementSystem "Implement algorithms for the control of battery systems."
parameter Real N_s "Number of Cells in Series";
parameter Real lowerVoltageLimit = N_s * 2;
parameter Real upperVoltageLimit = N_s * 3.6;
parameter Modelica.Units.SI.Voltage lowerVoltageLimit = N_s * 2;
parameter Modelica.Units.SI.Voltage upperVoltageLimit = N_s * 3.6;
VirtualFCS.Control.ChargeCounter chargeCounter annotation(
Placement(visible = true, transformation(origin = {25, -1}, extent = {{25, -25}, {-25, 25}}, rotation = 0)));
Modelica.Electrical.Analog.Interfaces.NegativePin pin_n_battery annotation(
Expand Down Expand Up @@ -47,4 +47,4 @@ equation
Icon(graphics = {Rectangle(fillColor = {50, 50, 50}, fillPattern = FillPattern.Solid, extent = {{-100, 100}, {100, -100}}), Text(origin = {2, 72}, lineColor = {255, 255, 255}, extent = {{-26, 22}, {26, -22}}, textString = "Load"), Text(origin = {0, -52}, lineColor = {255, 255, 255}, extent = {{-44, 34}, {48, -36}}, textString = "Battery"), Text(origin = {104, 146}, lineColor = {0, 0, 255}, extent = {{-26, 22}, {84, -80}}, textString = "%name"), Text(origin = {62, 24}, lineColor = {255, 255, 255}, extent = {{-44, 34}, {26, -24}}, textString = "SOC_init"), Text(origin = {106, -52}, lineColor = {255, 255, 255}, extent = {{-44, 34}, {-8, 10}}, textString = "Q")}, coordinateSystem(extent = {{-150, -100}, {150, 100}}, initialScale = 0.1)),
Diagram(coordinateSystem(extent = {{-150, -100}, {150, 100}})),
Documentation(info = "<html><head></head><body>The BatteryManagementSystem component is responsible for protecting the battery pack. It ensures that the pack is not overcharged or overdischarged to dangerous state-of-charge levels. It also limits the maximum charging and discharging current the battery pack can support.</body></html>"));
end BatteryManagementSystem;
end BatteryManagementSystem;
2 changes: 1 addition & 1 deletion VirtualFCS/Control/EMS_FC.mo
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
within VirtualFCS.Control;

block EMS_FC
parameter Real ramp_up(unit = "1/s") = 20 "FC stack current ramp up rate";
parameter Modelica.Units.SI.TimeAging ramp_up = 20 "FC stack current ramp up rate";
Modelica.Blocks.Math.Abs abs1 annotation(
Placement(visible = true, transformation(origin = {70, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
Modelica.Blocks.Sources.Constant OFF(k = 0) annotation(
Expand Down
10 changes: 6 additions & 4 deletions VirtualFCS/Control/EnergyManagementSystem.mo
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
within VirtualFCS.Control;

block EnergyManagementSystem "Implement algorithms to control the energy and power distribution in a hybrid system."
parameter Real I_nom_FC_stack(unit = "A") = 100 "FC stack nominal operating current";
parameter Real ramp_up(unit = "1/s") = 20 "FC stack current ramp up rate";
parameter Modelica.Units.SI.Current I_nom_FC_stack = 100 "FC stack nominal operating current";
parameter Modelica.Units.SI.TimeAging ramp_up = 20 "FC stack current ramp up rate";
parameter Real SOC_lower_limit(unit = "1") = 0.2 "SOC lower limit";
parameter Real SOC_higher_limit(unit = "1") = 0.8 "SOC lower limit";
Comment on lines +6 to +7
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Have you considered declaring e.g. type StateOfChargeRatio = Modelica.Units.SI.DimensionlessRatio(min = 0, max = 1) as type for all SOC parameters (also in other model files)?

Modelica.Blocks.Sources.Constant shut_down(k = 0) annotation(
Placement(visible = true, transformation(origin = {-70, 40}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
Modelica.Blocks.Logical.Hysteresis hysteresis(pre_y_start = true, uHigh = 0.8, uLow = 0.2) annotation(
Modelica.Blocks.Logical.Hysteresis hysteresis(pre_y_start = true, uHigh = SOC_higher_limit, uLow = SOC_lower_limit) annotation(
Placement(visible = true, transformation(origin = {-70, 0}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
Modelica.Blocks.Sources.Constant setFuelCellCurrent(k = -I_nom_FC_stack) annotation(
Placement(visible = true, transformation(origin = {-70, -40}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
Expand Down Expand Up @@ -37,4 +39,4 @@ equation
annotation(
Icon(graphics = {Rectangle(fillColor = {50, 50, 50}, fillPattern = FillPattern.Solid, extent = {{-100, 100}, {100, -100}}), Text(origin = {-8, 121}, lineColor = {0, 0, 255}, extent = {{-54, 17}, {54, -17}}, textString = "%name")}, coordinateSystem(initialScale = 0.1)),
Documentation(info = "<html><head></head><body><div>The EnergyManagementSystem component is designed to manage the flow of power between the fuel cell stack, battery, vehicle load, and balance-of-plant load. It splits the load according to pre-defined energy management rules, which are implemented within the bounds of the battery management system and the fuel cell control unit.</div><div><br></div>This model implements a simple energy management algorithm for a hybrid fuel cell &amp; battery system. The model reads the state-of-charge (SOC) of the battery. If it is less than a lower threshold value, then a signal is sent to activate the fuel cell with a given electric current. The rate at which current can be demanded from the fuel cell is limited by a slew rate.&nbsp;</body></html>"));
end EnergyManagementSystem;
end EnergyManagementSystem;
4 changes: 1 addition & 3 deletions VirtualFCS/Control/PumpSpeedControl.mo
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,7 @@ within VirtualFCS.Control;

block PumpSpeedControl
parameter Real k = 1 "Control Gain";
parameter Real Td = 0.1 "Time Constant of Derivative Block";
//parameter Real k = 1 "Control Gain";
//parameter Real Td = 1 "Time Constant of Derivative Block";
parameter Modelica.Units.SI.Time Td = 0.1 "Time Constant of Derivative Block";
Modelica.Blocks.Continuous.LimPID limPID(Td = Td, initType = Modelica.Blocks.Types.Init.InitialOutput, k = k, yMax = 1, yMin = 0) annotation(
Placement(visible = true, transformation(origin = {-30, 30}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
Modelica.Blocks.Interfaces.RealInput setMassFlow annotation(
Expand Down
4 changes: 2 additions & 2 deletions VirtualFCS/Control/PumpSpeedControlCooling.mo
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ within VirtualFCS.Control;

block PumpSpeedControlCooling
parameter Real k = 1 "Control Gain";
parameter Real Td = 0.1 "Time Constant of Derivative Block";
parameter Real Ti = 0.1 "Time Constant of Integral Block";
parameter Modelica.Units.SI.Time Td = 0.1 "Time Constant of Derivative Block";
parameter Modelica.Units.SI.Time Ti = 0.1 "Time Constant of Integral Block";
Modelica.Blocks.Interfaces.RealInput setMassFlow annotation(
Placement(visible = true, transformation(origin = {-100, 40}, extent = {{-20, -20}, {20, 20}}, rotation = 0), iconTransformation(origin = {-110, 50}, extent = {{-10, -10}, {10, 10}}, rotation = 0)));
Modelica.Blocks.Interfaces.RealInput getMassFlow annotation(
Expand Down
6 changes: 3 additions & 3 deletions VirtualFCS/Control/VoltageLimiter.mo
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
within VirtualFCS.Control;

model VoltageLimiter "Enforce voltage limits on battery cells."
parameter Real upperVoltageLimit(unit = "V") = 3.6 "Upper Voltage Limit";
parameter Real lowerVoltageLimit(unit = "V") = 2.0 "Lower Voltage Limit";
parameter Modelica.Units.SI.Voltage upperVoltageLimit = 3.6 "Upper Voltage Limit";
parameter Modelica.Units.SI.Voltage lowerVoltageLimit = 2.0 "Lower Voltage Limit";
Modelica.Electrical.Analog.Interfaces.PositivePin pin_p_battery annotation(
Placement(visible = true, transformation(origin = {196, 0}, extent = {{10, -10}, {-10, 10}}, rotation = 0), iconTransformation(origin = {110, 190}, extent = {{10, -10}, {-10, 10}}, rotation = 0)));
Modelica.Electrical.Analog.Interfaces.NegativePin pin_n_battery annotation(
Expand Down Expand Up @@ -68,4 +68,4 @@ equation
Icon(graphics = {Rectangle(origin = {-100, 100}, fillColor = {50, 50, 50}, fillPattern = FillPattern.Solid, extent = {{-100, 100}, {300, -300}}), Text(origin = {2, 137}, lineColor = {255, 255, 255}, extent = {{-74, 31}, {74, -31}}, textString = "Battery"), Text(origin = {-4, -101}, lineColor = {255, 255, 255}, extent = {{-74, 31}, {74, -31}}, textString = "Load"), Text(origin = {-7, 253}, lineColor = {0, 0, 255}, extent = {{-181, 45}, {181, -45}}, textString = "%name")}, coordinateSystem(extent = {{-200, -200}, {200, 200}}, initialScale = 0.1)),
Diagram(coordinateSystem(extent = {{-200, -200}, {200, 200}})),
Documentation(info = "<html><head></head><body>The voltage limiter block enforces user-defined upper and lower voltage limits for battery cells and packs.&nbsp;</body></html>"));
end VoltageLimiter;
end VoltageLimiter;
2 changes: 1 addition & 1 deletion VirtualFCS/Electrical/DCConverterSwitch.mo
Original file line number Diff line number Diff line change
Expand Up @@ -101,4 +101,4 @@ The DC/DC converter is characterized by:
where underlined voltages and currents represent complex phasors</li>
</ul>
</html>"));
end DCConverterSwitch;
end DCConverterSwitch;
24 changes: 12 additions & 12 deletions VirtualFCS/Electrochemical/Battery/BatterySystem.mo
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,19 @@ model BatterySystem
// System
outer Modelica.Fluid.System system "System properties";
// Battery Pack Parameters
parameter Real m_bat_pack(unit = "kg") = 100 "Mass of the pack";
parameter Real L_bat_pack(unit = "m") = 0.6 "Battery pack length";
parameter Real W_bat_pack(unit = "m") = 0.45 "Battery pack width";
parameter Real H_bat_pack(unit = "m") = 0.1 "Battery pack height";
parameter Real Cp_bat_pack(unit = "J/(kg.K)") = 1000 "Specific Heat Capacity";
parameter Real V_min_bat_pack(unit = "V") = 240 "Battery pack minimum voltage";
parameter Real V_nom_bat_pack(unit = "V") = 336 "Battery pack nominal voltage";
parameter Real V_max_bat_pack(unit = "V") = 403.2 "Battery pack maximum voltage";
parameter Real C_bat_pack(unit = "A.h") = 200 "Battery pack nominal capacity";
parameter Modelica.Units.SI.Mass m_bat_pack = 100 "Mass of the pack";
parameter Modelica.Units.SI.Length L_bat_pack = 0.6 "Battery pack length";
parameter Modelica.Units.SI.Breadth W_bat_pack = 0.45 "Battery pack width";
parameter Modelica.Units.SI.Height H_bat_pack = 0.1 "Battery pack height";
parameter Modelica.Units.SI.SpecificHeatCapacity Cp_bat_pack = 1000 "Specific Heat Capacity";
parameter Modelica.Units.SI.Voltage V_min_bat_pack = 240 "Battery pack minimum voltage";
parameter Modelica.Units.SI.Voltage V_nom_bat_pack = 336 "Battery pack nominal voltage";
parameter Modelica.Units.SI.Voltage V_max_bat_pack = 403.2 "Battery pack maximum voltage";
parameter Modelica.Units.NonSI.ElectricCharge_Ah C_bat_pack = 200 "Battery pack nominal capacity";
parameter Real SOC_init = 0.5 "Battery pack initial state of charge";
// Power & efficiencies
Real Power(unit = "W") "Battery delivered power";
Real eta_batt(unit = "100") "Battery efficiency, calculated by assuming loss in terms of heat";
Modelica.Units.SI.Power Power "Battery delivered power";
Modelica.Units.SI.Efficiency eta_batt "Battery efficiency, calculated by assuming loss in terms of heat";
VirtualFCS.Control.BatteryManagementSystem batteryManagementSystem(N_s = batteryPack.N_s) annotation(
Placement(visible = true, transformation(origin = {0, 30}, extent = {{-30, -20}, {30, 20}}, rotation = 0)));
Modelica.Electrical.Analog.Interfaces.PositivePin pin_p annotation(
Expand All @@ -35,7 +35,7 @@ model BatterySystem
Placement(visible = true, transformation(origin = {0.369106, -30.5794}, extent = {{-24.8691, -14.9215}, {24.8691, 16.5794}}, rotation = 0)));
equation
Power = pin_n.i*pin_p.v;
eta_batt = max((abs(Power)-(batteryPack.heatSource.Q_flow))/(max(abs(Power), 0.00001)) * 100, 90);
eta_batt = max((abs(Power)-(batteryPack.heatSource.Q_flow))/(max(abs(Power), 0.00001)), 0.9);
connect(pin_n, batteryManagementSystem.pin_n_load) annotation(
Line(points = {{-44, 96}, {-44, 96}, {-44, 80}, {-10, 80}, {-10, 48}, {-10, 48}}, color = {0, 0, 255}));
connect(pin_p, batteryManagementSystem.pin_p_load) annotation(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ model LiIonBatteryPack_Composite "A Li-ion battery pack comprised of individual
parameter Real SOC_init(unit = "1") = 0.5 "Initial State of Charge";
parameter Integer p = 5 "Number of Cells in Parallel";
parameter Integer s = 10 "Number of Cells in Series";
parameter Real coolingArea = p * s * liIonCell[1].coolingArea "Cooling Area";
parameter Real heatTransferCoefficient(unit = "W/(m2.K)") = 7.8 * 10 ^ 0.78;
Real chargeCapacity;
parameter Modelica.Units.SI.Area coolingArea = p * s * liIonCell[1].coolingArea "Cooling Area";
parameter Modelica.Units.SI.CoefficientOfHeatTransfer heatTransferCoefficient = 7.8 * 10 ^ 0.78 "HeatTransferCoefficient (W/(m2.K))";
Modelica.Units.NonSI.ElectricCharge_Ah chargeCapacity;
VirtualFCS.Electrochemical.Battery.LiIonCell liIonCell[s * p](each SOC_init = SOC_init) annotation(
Placement(visible = true, transformation(origin = {0, 50.3333}, extent = {{-37, -24.6667}, {37, 24.6667}}, rotation = 0)));
Modelica.Electrical.Analog.Interfaces.PositivePin pin_p annotation(
Expand Down Expand Up @@ -95,4 +95,4 @@ This class automatically generates instances of the LiIonCell model based on the
</tr>
</tbody></table><br>
</div><div><div><i><u>Convective Heat Transfer</u></i></div><div>Q<sub>conv</sub>&nbsp;= hA<sub>cool</sub>(T&nbsp;<span style=\"color: rgb(32, 33, 34); font-family: sans-serif; orphans: 2; widows: 2; background-color: rgb(253, 253, 253);\">−</span>&nbsp;T<sub>0</sub>)</div><div><br></div><div><div><i><u>Radiative Heat Transfer</u></i></div><div>Q<sub>rad</sub>&nbsp;= 0.95A<sub>cool</sub><span style=\"color: rgb(32, 33, 34); font-family: sans-serif; orphans: 2; widows: 2; background-color: rgb(255, 255, 255);\">σ</span>(T<sup>4</sup>&nbsp;<span style=\"color: rgb(32, 33, 34); font-family: sans-serif; orphans: 2; widows: 2; background-color: rgb(253, 253, 253);\">−</span>&nbsp;(T<sub>0</sub>)<sup>4</sup>)</div></div></div></body></html>"));
end LiIonBatteryPack_Composite;
end LiIonBatteryPack_Composite;
36 changes: 18 additions & 18 deletions VirtualFCS/Electrochemical/Battery/LiIonBatteryPack_Lumped.mo
Original file line number Diff line number Diff line change
Expand Up @@ -3,23 +3,23 @@ within VirtualFCS.Electrochemical.Battery;
model LiIonBatteryPack_Lumped "A Li-ion battery pack model comprising a single lumped battery model."
// DECLARE PARAMETERS //
// Pack-level parameters
parameter Real m_bat_pack(unit = "kg") = 100 "Mass of the pack";
parameter Real L_bat_pack(unit = "m") = 0.6 "Battery pack length";
parameter Real W_bat_pack(unit = "m") = 0.45 "Battery pack width";
parameter Real H_bat_pack(unit = "m") = 0.1 "Battery pack height";
parameter Real Cp_bat_pack(unit = "J/(kg.K)") = 1000 "Specific Heat Capacity";
parameter Real V_min_bat_pack(unit = "V") = 37.5 "Battery pack minimum voltage";
parameter Real V_nom_bat_pack(unit = "V") = 48 "Battery pack nominal voltage";
parameter Real V_max_bat_pack(unit = "V") = 54.75 "Battery pack maximum voltage";
parameter Real C_bat_pack(unit = "A.h") = 200 "Battery pack nominal capacity";
parameter Modelica.Units.SI.Mass m_bat_pack = 100 "Mass of the pack";
parameter Modelica.Units.SI.Length L_bat_pack = 0.6 "Battery pack length";
parameter Modelica.Units.SI.Breadth W_bat_pack = 0.45 "Battery pack width";
parameter Modelica.Units.SI.Height H_bat_pack = 0.1 "Battery pack height";
parameter Modelica.Units.SI.SpecificHeatCapacity Cp_bat_pack = 1000 "Specific Heat Capacity";
parameter Modelica.Units.SI.Voltage V_min_bat_pack = 37.5 "Battery pack minimum voltage";
parameter Modelica.Units.SI.Voltage V_nom_bat_pack = 48 "Battery pack nominal voltage";
parameter Modelica.Units.SI.Voltage V_max_bat_pack = 54.75 "Battery pack maximum voltage";
parameter Modelica.Units.NonSI.ElectricCharge_Ah C_bat_pack = 200 "Battery pack nominal capacity";
parameter Real SOC_init = 0.5 "Battery pack initial state of charge";
parameter Real heatTransferCoefficient(unit = "W/(m2.K)") = 7.8 * 10 ^ 0.78;
parameter Modelica.Units.SI.CoefficientOfHeatTransfer heatTransferCoefficient = 7.8 * 10 ^ 0.78 "HeatTransferCoefficient (W/(m2.K))";
parameter Real N_s = ceil(V_max_bat_pack / V_chem_max);
Real vol_bat_pack = L_bat_pack * W_bat_pack * H_bat_pack;
Modelica.Units.SI.Volume vol_bat_pack = L_bat_pack * W_bat_pack * H_bat_pack;
// ADD dropdown menu for selecting chemistry type
// Coefficients for open-circuit voltage calculation
// LFP
parameter Real V_chem_max = 3.65;
parameter Modelica.Units.SI.Voltage V_chem_max = 3.65;
Real a1 = 3.25;
Real b1 = -1e-4;
Real c1 = -0.08;
Expand Down Expand Up @@ -70,12 +70,12 @@ model LiIonBatteryPack_Lumped "A Li-ion battery pack model comprising a single l
Modelica.Thermal.HeatTransfer.Components.BodyRadiation bodyRadiation(Gr = 0.95 * A_cool_bat_pack) annotation(
Placement(visible = true, transformation(origin = {-90, -50}, extent = {{-10, -10}, {10, 10}}, rotation = -90)));
protected
parameter Real R_O(unit = "Ohm") = 0.02 "Ohmic Resistance";
parameter Real R1_0(unit = "Ohm") = 0.01 "First RC Resistance";
parameter Real R2_0(unit = "Ohm") = 0.005 "Second RC Resistance";
parameter Real C1_0(unit = "F") = 5000 "First RC Capacitance";
parameter Real C2_0(unit = "F") = 20000 "Second RC Capacitance";
parameter Real A_cool_bat_pack = L_bat_pack * W_bat_pack;
parameter Modelica.Units.SI.Resistance R_O = 0.02 "Ohmic Resistance";
parameter Modelica.Units.SI.Resistance R1_0 = 0.01 "First RC Resistance";
parameter Modelica.Units.SI.Resistance R2_0 = 0.005 "Second RC Resistance";
parameter Modelica.Units.SI.Capacitance C1_0 = 5000 "First RC Capacitance";
parameter Modelica.Units.SI.Capacitance C2_0 = 20000 "Second RC Capacitance";
parameter Modelica.Units.SI.Area A_cool_bat_pack = L_bat_pack * W_bat_pack;
equation
// ***DEFINE EQUATIONS ***//
// Calculate the open-circuit voltage at given temperature and state of charge
Expand Down
19 changes: 9 additions & 10 deletions VirtualFCS/Electrochemical/Battery/LiIonCell.mo
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,17 @@ within VirtualFCS.Electrochemical.Battery;
model LiIonCell "An equivalent circuit model for a Li-ion battery cell."
// DECLARE PARAMETERS //
// Physical parameters
parameter Real mass(unit = "kg") = 0.045 "Mass of the pack";
parameter Real coolingArea(unit = "m2") = 0.003675 "Surface area for cooling";
// parameter Real vol(unit = "L") = 0.016 "Volume of the pack";
parameter Real specificHeatCapacity(unit = "J/(kg.K)") = 1000 "Specific Heat Capacity";
parameter Modelica.Units.SI.Mass mass = 0.045 "Mass of the cell";
parameter Modelica.Units.SI.Area coolingArea = 0.003675 "Surface area for cooling";
parameter Modelica.Units.SI.SpecificHeatCapacity specificHeatCapacity = 1000 "Specific Heat Capacity";
// Pack design parameters
parameter Real SOC_init(unit = "1") = 0.5 "Initial State of Charge";
parameter Real chargeCapacity(unit = "Ah") = 2.2 "Battery Cell Capacity";
parameter Real R_O(unit = "Ohm") = 0.02 "Ohmic Resistance";
parameter Real R1_0(unit = "Ohm") = 0.01 "First RC Resistance";
parameter Real R2_0(unit = "Ohm") = 0.005 "Second RC Resistance";
parameter Real C1_0(unit = "F") = 5000 "First RC Capacitance";
parameter Real C2_0(unit = "F") = 20000 "Second RC Capacitance";
parameter Modelica.Units.NonSI.ElectricCharge_Ah chargeCapacity = 2.2 "Battery Cell Capacity";
parameter Modelica.Units.SI.Resistance R_O = 0.02 "Ohmic Resistance";
parameter Modelica.Units.SI.Resistance R1_0 = 0.01 "First RC Resistance";
parameter Modelica.Units.SI.Resistance R2_0 = 0.005 "Second RC Resistance";
parameter Modelica.Units.SI.Capacitance C1_0 = 5000 "First RC Capacitance";
parameter Modelica.Units.SI.Capacitance C2_0 = 20000 "Second RC Capacitance";
// DECLARE VARIABLES //
// Coefficients for open-circuit voltage calculation
// LFP
Expand Down
Loading