BATTERY_MODEL

Specifies a battery model and its parameters.

Type

AcuSolve Command

Syntax

BATTERY_MODEL("name") {parameters...}

Parameters

battery_model_type (enumerated) [=first_order]
Type of battery model.
first_order_ecm
Equivalent circuit model with a single ohmic resistance in series with one parallel RC pair to represent the dynamic voltage transients (or diffusion voltages).
second_order_ecm
Equivalent circuit model with a single ohmic resistance in series with two parallel RC pairs to represent the dynamic voltage transients (or diffusion voltages).
ohmic_resistance_type (enumerated) [=constant]
Ohmic resistance in first or second order ECM model.
constant or const
Constant ohmic resistance. Requires ohmic_resistance.
piecewise_linear or linear
Piecewise linear curve fit ohmic resistance profile. Requires curve_fit_values and curve_fit_variable.
piecewise_bilinear or bilinear
Piecewise bilinear curve fit ohmic resistance profile. Requires curve_fit_values and curve_fit_variable.
cubic_spline or spline
Cubic spline curve fit electrical current profile. Requires curve_fit_values and curve_fit_variable.
ohmic_resistance (real) [=0.0]
Constant value of ohmic resistance. Used when ohmic_resistance_type = constant.
ohmic_resistance_curve_fit_values (array) [={0,0}]
A two-column array of independent-variable/isotropic ohmic resistance data values. The independent variable is either state of charge or time. Used with ohmic_resistance_type = piecewise_linear or ohmic_resistance_type = cubic_spline.
ohmic_resistance_curve_fit_variable (enumerated) [=soc]
Independent variable of the curve fit for ohmic resistance. Used with ohmic_resistance_type = piecewise_linear or ohmic_resistance_type = cubic_spline.
soc
state_of_charge
time
time
ohmic_resistance_soc_temperature_values (2D array) [={0,0;0,1}]
Independent variable of the curve fit for ohmic resistance. Used with ohmic_resistance_type = piecewise_bilinear.
ohmic_resistance_bilinear_curve_fit_row_variable [=soc]
Independent row variable of the curve fit for ohmic resistance. Used with ohmic_resistance_type = piecewise_bilinear.
soc
state_of_charge
ohmic_resistance_bilinear_curve_fit_column_variable [=temperature]
Independent column variable of the curve fit for ohmic resistance. Used with ohmic_resistance_type = piecewise_bilinear.
temp
temperature
polarization_resistance1_type (enumerated) [=constant]
Polarization resistance for the first RC pair in first or second order ECM model.
constant or const
Constant polarization resistance. Requires polarization_resistance1.
piecewise_linear or linear
Piecewise linear curve fit polarization resistance 1 profile. Requires curve_fit_values and curve_fit_variable.
piecewise_bilinear or bilinear
Piecewise bilinear curve fit polarization resistance 1 profile. Requires curve_fit_values and curve_fit_variable.
cubic_spline or spline
Cubic spline curve fit polarization resistance 1 profile. Requires curve_fit_values and curve_fit_variable.
polarization_resistance1 (real) [=0.0]
Constant value of polarization resistance 1. When polarization_resistance1_type = constant.
polarization_resistance1_curve_fit_values (array) [={0,0}]
A two-column array of independent-variable/isotropic polarization resistance 1 data values. The independent variable is either state of charge or time. Used with polarization_resistance1_type = piecewise_linear or polarization_resistance1_type = cubic_spline.
polarization_resistance1_curve_fit_variable (enumerated) [=soc]
Independent variable of the curve fit for polarization resistance 1. Used with polarization_resistance1_type = piecewise_linear or polarization_resistance1_type = cubic_spline.
soc
state_of_charge
time
time
polarization_resistance1_soc_temperature_values (2D array) [={0,0;0,0}]
Independent variable of the curve fit for polarization resistance 1. Used with polarization_resistance1_type = piecewise_bilinear.
polarization_resistance1_bilinear_curve_fit_row_variable [=soc]
Independent row variable of the curve fit for polarization resistance 1. Used with polarization_resistance1_type = piecewise_bilinear.
soc
state_of_charge
polarization_resistance1_bilinear_curve_fit_column_variable [=temperature]
Independent column variable of the curve fit for polarization resistance 1. Used with polarization_resistance1_type = piecewise_bilinear.
temp
temperature
polarization_resistance2_type (enumerated) [=constant]
Polarization resistance for the second RC in second order ECM model.
constant or const
Constant polarization resistance. Requires polarization_resistance2.
piecewise_linear or linear
Piecewise linear curve fit polarization resistance 2 profile. Requires curve_fit_values and curve_fit_variable.
piecewise_bilinear or bilinear
Piecewise bilinear curve fit polarization resistance 2 profile. Requires curve_fit_values and curve_fit_variable.
cubic_spline or spline
Cubic spline curve fit polarization resistance 2 profile. Requires curve_fit_values and curve_fit_variable.
polarization_resistance2 (real) [=0.0]
Constant value of polarization resistance 2. When polarization_resistance2_type = constant.
polarization_resistance2_curve_fit_values (array) [={0,0}]
A two-column array of independent-variable/isotropic polarization resistance 2 data values. The independent variable is either state of charge or time. Used with polarization_resistance2_type = piecewise_linear or polarization_resistance2_type = cubic_spline.
polarization_resistance2_curve_fit_variable (enumerated) [=soc]
Independent variable of the curve fit for polarization resistance 2. Used with polarization_resistance2_type = piecewise_linear or polarization_resistance2_type = cubic_spline.
soc
state_of_charge
time
time
polarization_resistance2_soc_temperature_values (2D array) [={0,0;0,1}]
Independent variable of the curve fit for polarization resistance 2. Used with polarization_resistance2_type = piecewise_bilinear.
polarization_resistance2_bilinear_curve_fit_row_variable [=soc]
Independent row variable of the curve fit for polarization resistance 2. Used with polarization_resistance2_type = piecewise_bilinear.
soc
state_of_charge
polarization_resistance2_bilinear_curve_fit_column_variable [=temperature]
Independent column variable of the curve fit for polarization resistance 2. Used with polarization_resistance2_type = piecewise_bilinear.
temp
temperature
polarization_capacitance1_type (enumerated) [=constant]
Polarization capacitance for the first RC pair in first or second order ECM model.
constant or const
Constant polarization capacitance. Requires polarization_capacitance1.
piecewise_linear or linear
Piecewise linear curve fit polarization capacitance 1 profile. Requires curve_fit_values and curve_fit_variable.
piecewise_bilinear or bilinear
Piecewise bilinear curve fit polarization capacitance 1 profile. Requires curve_fit_values and curve_fit_variable.
cubic_spline or spline
Cubic spline curve fit polarization capacitance 1 profile. Requires curve_fit_values and curve_fit_variable.
polarization_capacitance1 (real) [=0.0]
Constant value of polarization capacitance 1. When polarization_capacitance1_type = constant.
polarization_capacitance1_curve_fit_values (array) [={0,0}]
A two-column array of independent-variable/isotropic polarization capacitance 1 data values. The independent variable is either state of charge or time. Used with polarization_capacitance1_type = piecewise_linear or polarization_capacitance1_type = cubic_spline.
polarization_capacitance1_curve_fit_variable (enumerated) [=soc]
Independent variable of the curve fit for polarization capacitance 1. Used with polarization_capacitance1_type = piecewise_linear or polarization_capacitance1_type = cubic_spline.
soc
state_of_charge
time
time
polarization_capacitance1_soc_temperature_values (2D array) [={0,0;0,1}]
Independent variable of the curve fit for polarization capacitance 1. Used with polarization_capacitance1_type = piecewise_bilinear.
polarization_capacitance1_bilinear_curve_fit_row_variable [=soc]
Independent row variable of the curve fit for polarization capacitance 1. Used with polarization_capacitance1_type = piecewise_bilinear.
soc
state_of_charge
polarization_capacitance1_bilinear_curve_fit_column_variable [=temperature]
Independent column variable of the curve fit for polarization capacitance 1. Used with polarization_capacitance1_type = piecewise_bilinear.
temp
temperature
polarization_capacitance2_type (enumerated) [=constant]
Polarization capacitance for the second RC pair in second order ECM model.
constant or const
Constant polarization capacitance. Requires polarization_capacitance2.
piecewise_linear or linear
Piecewise linear curve fit polarization capacitance 2 profile. Requires curve_fit_values and curve_fit_variable.
piecewise_bilinear or bilinear
Piecewise bilinear curve fit polarization capacitance 2 profile. Requires curve_fit_values and curve_fit_variable.
cubic_spline or spline
Cubic spline curve fit polarization capacitance 2 profile. Requires curve_fit_values and curve_fit_variable.
polarization_capacitance2 (real) [=0.0]
Constant value of polarization capacitance 2. When polarization_capacitance2_type = constant.
polarization_capacitance2_curve_fit_values (array) [={0,0}]
A two-column array of independent-variable/isotropic polarization capacitance 2 data values. The independent variable is either state of charge or time. Used with polarization_capacitance2_type = piecewise_linear or polarization_capacitance2_type = cubic_spline.
polarization_capacitance2_curve_fit_variable (enumerated) [=soc]
Independent variable of the curve fit for polarization capacitance 2. Used with polarization_capacitance2_type = piecewise_linear or polarization_capacitance2_type = cubic_spline.
soc
state_of_charge
time
time
polarization_capacitance2_soc_temperature_values (2D array) [={0,0;0,1}]
Independent variable of the curve fit for polarization capacitance 2. Used with polarization_capacitance2_type = piecewise_bilinear.
battery_capacity (real) [=5.0]
The capacity of a battery cell measured in Ah (Amp-hr).
polarization_capacitance2_bilinear_curve_fit_row_variable [=soc]
Independent row variable of the curve fit for polarization capacitance 2. Used with polarization_capacitance2_type = piecewise_bilinear.
soc
state_of_charge
polarization_capacitance2_bilinear_curve_fit_column_variable [=temperature]
Independent column variable of the curve fit for polarization capacitance 2. Used with polarization_capacitance2_type = piecewise_bilinear.
temp
temperature
open_circuit_voltage_type (enumerated) [=constant]
Open circuit potential is the potential established between positive and negative electrode terminals when current is zero.
constant or const
Constant open circuit potential. Requires open_circuit_voltage.
piecewise_linear or linear
Piecewise linear curve fit open circuit potential profile. Requires curve_fit_values and curve_fit_variable.
piecewise_bilinear or bilinear
Piecewise bilinear curve fit open circuit potential profile. Requires curve_fit_values and curve_fit_variable.
cubic_spline or spline
Cubic spline curve fit open circuit potential profile. Requires curve_fit_values and curve_fit_variable.
open_circuit_voltage (real) [=0.0]
Constant value of open circuit potential. When open_circuit_voltage_type = constant.
open_circuit_voltage_curve_fit_values (array) [={0,0}]
A two-column array of independent-variable open circuit potential data values. The independent variable is either state of charge or time. Used with open_circuit_voltage = piecewise_linear or open_circuit_voltage_type = cubic_spline.
open_circuit_voltage_curve_fit_variable (enumerated) [=soc]
Independent variable of the curve fit for open circuit potential. Used with open_circuit_voltage = piecewise_linear or open_circuit_voltage_type = cubic_spline.
soc
state_of_charge
time
time
open_circuit_voltage_soc_temperature_values (2D array) [={0,0;0,1}]
Independent variable of the curve fit for open circuit potential. Used with open_circuit_voltage_type = piecewise_bilinear.
open_circuit_voltage_bilinear_curve_fit_row_variable [=soc]
Independent row variable of the curve fit for open circuit potential. Used with open_circuit_voltage_type = piecewise_bilinear.
soc
state_of_charge
open_circuit_voltage_bilinear_curve_fit_column_variable [=temperature]
Independent column variable of the curve fit for open circuit potential. Used with open_circuit_voltage_type = piecewise_bilinear.
temp
temperature
entropic_heat_coefficient_type (enumerated) [=constant]
Entropic heat coefficient is the derivative of open circuit potential with respect to temperature. It represents reversible heat generation in the battery cell.
constant or const
Constant entropic heat coefficient. Requires entropic_heat_coefficient.
piecewise_linear or linear
Piecewise linear curve fit entropic heat coefficient profile. Requires curve_fit_values and curve_fit_variable.
piecewise_bilinear or bilinear
Piecewise bilinear curve fit entropic heat coefficient profile. Requires curve_fit_values and curve_fit_variable.
cubic_spline or spline
Cubic spline curve fit entropic heat coefficient profile. Requires curve_fit_values and curve_fit_variable.
entropic_heat_coefficient (real) [=0.0]
Constant value of entropic heat coefficient. When entropic_heat_coefficient_type = constant.
entropic_heat_coefficient_curve_fit_values (array) [={0,0}]
A two-column array of independent-variable entropic heat coefficient data values. The independent variable is either state of charge or time. Used with entropic_heat_coefficient_type = piecewise_linear or entropic_heat_coefficient_type = cubic_spline.
entropic_heat_curve_fit_variable (enumerated) [=soc]
Independent variable of the curve fit for entropic heat coefficient. Used with entropic_heat_coefficient_type = piecewise_linear or entropic_heat_coefficient_type = cubic_spline.
soc
state_of_charge
time
time
entropic_heat_soc_temperature_values (2D array) [={0,0;0,1}]
Independent variable of the curve fit for entropic heat coefficient. Used with entropic_heat_coefficient_type = piecewise_bilinear.
entropic_heat_bilinear_curve_fit_row_variable [=soc]
Independent row variable of the curve fit for entropic heat coefficient. Used with entropic_heat_coefficient_type = piecewise_bilinear.
soc
state_of_charge
entropic_heat_bilinear_curve_fit_column_variable [=temperature]
Independent column variable of the curve fit for entropic heat coefficient. Used with entropic_heat_coefficient_type = piecewise_bilinear.
temp
temperature

Description

The BATTERY_MODEL is included as part of a material model of a battery cell when using equation = battery_joule_heating or equation = battery_msmd. The BATTERY_MODEL specifies the parameters for a first or second order equivalent circuit model (ECM), the entropic heat source and the battery capacity.
Figure 1. Equivalent Circuit Battery Model


In an ECM model the electric behavior, for example, the voltage-current response, is modeled using a phenomenological electric circuit approach. For example, in a second order ECM (see above figure), that is, two RC pairs, the governing set of ODEs are given by:

U T = V o c ( soc , T ) + V 1 + V 2 R o ( soc , T ) i ( t ) MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaamyvamaaBa aaleaacaWGubaabeaakiabg2da9iaadAfadaWgaaWcbaGaam4Baiaa ykW7caWGJbaabeaakmaabmaabaGaae4Caiaab+gacaqGJbGaaiilai aadsfaaiaawIcacaGLPaaacqGHRaWkcaWGwbWaaSbaaSqaaiaaigda aeqaaOGaey4kaSIaamOvamaaBaaaleaacaaIYaaabeaakiabgkHiTi aadkfadaWgaaWcbaGaam4BaaqabaGcdaqadaqaaiaabohacaqGVbGa ae4yaiaacYcacaWGubaacaGLOaGaayzkaaGaamyAaiaacIcacaWG0b Gaaiykaaaa@54A9@
d V 1 d t = 1 R 1 ( soc , T ) C 1 ( soc , T ) V 1 1 C 1 ( soc , T ) i ( t ) MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaWaaSaaaeaaca WGKbGaamOvamaaBaaaleaacaaIXaaabeaaaOqaaiaadsgacaWG0baa aiabg2da9maalaaabaGaaGymaaqaaiaadkfadaWgaaWcbaGaaGymaa qabaGcdaqadaqaaiaabohacaqGVbGaae4yaiaacYcacaWGubaacaGL OaGaayzkaaGaam4qamaaBaaaleaacaaIXaaabeaakmaabmaabaGaae 4Caiaab+gacaqGJbGaaiilaiaadsfaaiaawIcacaGLPaaaaaGaamOv amaaBaaaleaacaaIXaaabeaakiabgkHiTmaalaaabaGaaGymaaqaai aadoeadaWgaaWcbaGaaGymaaqabaGcdaqadaqaaiaabohacaqGVbGa ae4yaiaacYcacaWGubaacaGLOaGaayzkaaaaaiaadMgacaGGOaGaam iDaiaacMcaaaa@5A0D@
d V 2 dt = 1 R 2 ( soc,T ) C 2 ( soc,T ) V 2 1 C 2 ( soc,T ) i(t) MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaWaaSaaaeaaca WGKbGaamOvamaaBaaaleaacaaIYaaabeaaaOqaaiaadsgacaWG0baa aiabg2da9maalaaabaGaaGymaaqaaiaadkfadaWgaaWcbaGaaGOmaa qabaGcdaqadaqaaiaabohacaqGVbGaae4yaiaacYcacaWGubaacaGL OaGaayzkaaGaam4qamaaBaaaleaacaaIYaaabeaakmaabmaabaGaae 4Caiaab+gacaqGJbGaaiilaiaadsfaaiaawIcacaGLPaaaaaGaamOv amaaBaaaleaacaaIYaaabeaakiabgkHiTmaalaaabaGaaGymaaqaai aadoeadaWgaaWcbaGaaGOmaaqabaGcdaqadaqaaiaabohacaqGVbGa ae4yaiaacYcacaWGubaacaGLOaGaayzkaaaaaiaadMgacaGGOaGaam iDaiaacMcaaaa@5A12@

where U T MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaamyvamaaBa aaleaacaWGubaabeaaaaa@37D6@ is the terminal voltage, V o c MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaamOvamaaBa aaleaacaWGVbGaaGPaVlaadogaaeqaaaaa@3A65@ is the open circuit voltage, R o MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaamOuamaaBa aaleaacaWGVbaabeaaaaa@37EE@ is the ohmic resistance, R 1 MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaamOuamaaBa aaleaacaaIXaaabeaaaaa@37B5@ is the polarization resistance of the first RC pair, R 2 MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaamOuamaaBa aaleaacaaIYaaabeaaaaa@37B6@ is the polarization resistance of the second RC pair, C 1 MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaam4qamaaBa aaleaacaaIXaaabeaaaaa@37A6@ is the polarization capacitance of the first RC pair, C MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaam4qaaaa@36BF@ 2 is the polarization capacitance of the second RC pair, and i ( t ) MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaamyAaiaacI cacaWG0bGaaiykaaaa@3937@ is the input current. The output terminal voltage is therefore dependent on the input current and the ECM parameters ( R o MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaamOuamaaBa aaleaacaWGVbaabeaaaaa@37EE@ , R 1 MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaamOuamaaBa aaleaacaaIXaaabeaaaaa@37B5@ , R 2 MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaamOuamaaBa aaleaacaaIYaaabeaaaaa@37B6@ , C 1 MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaam4qamaaBa aaleaacaaIXaaabeaaaaa@37A6@ ) which can be both state of charge and temperature dependent.

The battery state of charge (soc) is updated using coulomb counting:

dsoc dt = 1 3600 Q Ah MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaWaaSaaaeaaca WGKbGaae4Caiaab+gacaqGJbaabaGaamizaiaadshaaaGaeyypa0Za aSaaaeaacaaIXaaabaGaaG4maiaaiAdacaaIWaGaaGimaiaadgfada WgaaWcbaGaaeyqaiaabIgaaeqaaaaaaaa@4313@

The equivalent circuit models are enabled using the BATTERY_MODEL command with battery_model_type = first_order_ecm or battery_model_type = second_order_ecm.

An example BATTERY_MODEL with a second order ECM model and an open_circuit_voltage_type = linear and values read from a file is shown below:
BATTERY_MODEL( "ecm" ) {
    battery_model_type = second_order_ecm
    ohmic_resistance_type = constant
    ohmic_resistance = 0.011
    polarization_resistance1_type = constant
    polarization_resistance1 = 0.0063
    polarization_resistance2_type = constant
    polarization_resistance2 = 0.0043
    polarization_capacitance1_type = constant
    polarization_capacitance1 = 657.42
    polarization_capacitance2_type = constant
    polarization_capacitance2 = 6574.23
    open_circuit_voltage_type = piecewise_linear
    open_circuit_voltage_curve_fit_values = Read( "open_circuit_voltage.fit" )
    entropic_heat_coefficient_type = constant
    entropic_heat_coefficient = 0.0
    battery_capacity = 18000
}
"open_circuit_voltage.fit” defines the file with the ocp versus soc relationship, for example:
1.0  4.2828   	
0.99 4.2681
0.98 4.2538
…

For ohmic resistance, polarization resistance 1 and 2, polarization capacitance 1 and 2, open circuit voltage, and entropic heat coefficient, you can also have them as a variable for both soc and temperature. Two example inputs are given below:

1. Ohmic resistance specified as a function of both soc and temperature:
BATTERY_MODEL( "ecm" ) {
	...
	ohmic_resistance_type = piecewise_bilinear
	ohmic_resistance_soc_temperature_values = {
            0,     0.2,       0.4,      0.6,       0.8,     1.0 ;
            298,   0.011,     0.0111,   0.0112,    0.0113,  0.0114 ;
            333,   0.0115,    0.0116,   0.0117,    0.0118,  0.0119 ; }
	...
}
2. Open circuit potential as a bilinear fit for both soc and temperature:
BATTERY_MODEL( "ecm" ) {
	…
	open_circuit_voltage_type = piecewise_bilinear
	open_circuit_voltage_soc_temperature_values = {
            0,   0.2,   0.4,   0.6,   0.8,   1.0 ;
            298, 3.783, 3.896, 3.968, 4.039, 4.147 ;
            333, 3.782, 3.903, 3.976, 4.056, 4.150 ;
	…
}

Bernardi’s heat generation equation

In this approach, a source term that represents the irreversible and reversible heat generation is included in the energy equation, given by:

q= i(t) V [ ( V oc U T )T d V oc dT ]+ σ + 2 σ + + σ 2 σ MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr 4rNCHbGeaGqiVu0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq=Jc9 vqaqpepm0xbba9pwe9Q8fs0=yqaqpepae9pg0FirpepeKkFr0xfr=x fr=xb9adbaqaaeGaciGaaiaabeqaamaabaabaaGcbaGaamyCaiabg2 da9maalaaabaGaamyAaiaacIcacaWG0bGaaiykaaqaaiaadAfaaaWa amWaaeaadaqadaqaaiaadAfadaWgaaWcbaGaam4BaiaaygW7caaMb8 UaaGzaVlaaygW7caaMc8Uaam4yaaqabaGccqGHsislcaWGvbWaaSba aSqaaiaadsfaaeqaaaGccaGLOaGaayzkaaGaeyOeI0Iaamivamaala aabaGaamizaiaadAfadaWgaaWcbaGaam4BaiaaygW7caaMb8UaaGza VlaaygW7caaMc8Uaam4yaaqabaaakeaacaWGKbGaamivaaaaaiaawU facaGLDbaacqGHRaWkcqaHdpWCdaWgaaWcbaGaey4kaScabeaakiab gEGirpaaCaaaleqabaGaaGOmaaaakiabeo8aZnaaBaaaleaacqGHRa WkaeqaaOGaey4kaSIaeq4Wdm3aaSbaaSqaaiabgkHiTaqabaGccqGH his0daahaaWcbeqaaiaaikdaaaGccqaHdpWCdaWgaaWcbaGaeyOeI0 cabeaaaaa@6E5E@

The first term of the RHS represents the cell overpotential and includes irreversibilities, such as ohmic losses and mass transport limitations, while the second term represents entropic heat generation. The last two terms represent ohmic heat generation and are only enabled when electric_potential = battery_msmd. Bernardi’s heat generation equation is automatically included in the energy equation as a source term for all battery models. The entropic heat is included in the BATTERY_MODEL and can be both temperature and state_of_charge dependent.