BATTERY_MODULE
Specifies a battery module and its parameters.
Type
AcuSolve Command
Syntax
BATTERY_MODULE("name") {parameters...}
Parameters
- number_of_parallel_cells (int) ≥1 [=1]
- Number of cells connected in parallel in a battery module for each serial unit. For example, for a 4s2p battery pack the number of parallel cells is 2.
- number_of_serial_cells (int) ≥1 [=1]
- Number of parallel units connected together in series. For example, for a 4s2p battery pack the number of serial cells is 4.
- number_of_parallel_connected_units (int) ≥1 [=1]
- Number of parallel connected units in the module configuration. For example, in a 4s2p battery module 2 parallel connected units means two sub-units of size 2s2p are connected.
- electrical_input_type (enumerated) [=current]
- Type of global electrical input to battery module.
- current
- Electric current input. Requires current_type.
- c_rate
- C-rate input. Requires c_rate_type.
- voltage
- Voltage input. Requires voltage_type = constant.
- power
- Power input. Requires power_type.
- standard_charge_profile
- Pre-defined charging profile.
- current_type (enumerated) [=none]
- Type of electrical current input.
- constant or const
- Constant electrical current. Requires current.
- piecewise_linear or linear
- Piecewise linear curve fit electrical current 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.
- current (real) [=0]
- Constant value of electrical current. When current_type is constant. Notice you have positive current for discharging and negative current for charging.
- current_curve_fit_values (array) [={0,0}]
- A two-column array of independent-variable/isotropic electrical current data values. The independent variable is either state of charge or time. Used with piecewise_linear and cubic_spline types.
- current_curve_fit_variable (enumerated) [=time]
- Independent variable of the curve fit for isotropic electrical current. Used
with piecewise_linear and
cubic_spline types.
- time
- time
- c_rate_type (enumerated) [=none]
- Type of c-rate input.
- none
- No c-rate type specified.
- constant or const
- Constant c-rate value. Requires c_rate.
- piecewise_linear or linear
- Piecewise linear curve fit c-rate profile. Requires curve_fit_values and curve_fit_variable.
- cubic_spline or spline
- Cubic spline curve fit c-rate profile. Requires curve_fit_values and curve_fit_variable.
- c_rate (real) [=0]
- Constant value of c-rate. When type is constant.
- c_rate_curve_fit_values (array) [={0,0}]
- A two-column array of independent-variable/isotropic c-rate data values. The independent variable is time. Used with piecewise_linear and cubic_spline types.
- c_rate_curve_fit_variable (enumerated) [=time]
- Independent variable of the curve fit for isotropic c-rate. Used with
piecewise_linear and
cubic_spline types.
- time
- time
- voltage_type (enumerated) [=constant]
- Type of voltage input.
- constant or const
- Constant voltage value. Requires voltage.
- voltage (real) [=0]
- Constant value of module input voltage. When voltage_type = constant.
- power_type (enumerated) [=constant]
- Type of power input.
- constant or const
- Constant power value. Requires power.
- piecewise_linear or linear
- Piecewise linear curve fit power profile. Requires curve_fit_values and curve_fit_variable.
- cubic_spline or spline
- Cubic spline curve fit power profile. Requires curve_fit_values and curve_fit_variable.
- power (real) [=0]
- Constant value of module input power. When power_type = constant. Input can be positive or negative.
- power_curve_fit_values (array) [={0,0}]
- A two-column array of independent-variable/isotropic power data values. The independent variable is time. Used with piecewise_linear and cubic_spline types.
- power_curve_fit_variable (enumerated) [=time]
- Independent variable of the curve fit for power. Used with
piecewise_linear and
cubic_spline types.
- time
- time
- charging_profile_type (enumerated) [=none]
- Type of power input.
- none
- No charging profile used.
- constant_current_constant_voltage or cccv
- Constant current constant voltage charging profile. Requires a module input current or c_rate to be specified.
- constant_power_constant_voltage or cpcv
- Constant power constant voltage standard charging profile. Requires module power to be specified.
- cut_off_current_percent (real) [=0.01]
- Current at which the battery is considered fully charged when using charge profiles.
- maximum_cell_voltage (real) [=4.20]
- Maximum allowed voltage of an individual battery cell. This avoids overcharging.
- minimum_cell_voltage (real) [=3.0]
- Minimum allowed voltage of an individual battery cell.
- maximum_cell_state_of_charge (real) [=0.95]
- State of charge at which a battery cell is considered fully charged.
- minimum_cell_state_of_charge (real) [=0.05]
- State of charge at which a battery cell is considered fully discharged.
- module_id (int) ≥ 0 [=1]
- Module ID of battery module in a pack.
- battery_pack (string) [=no default]
- User-given name of the BATTERY_PACK to which this BATTERY_MODULE belongs.
Description
Battery Modules and Components
The BATTERY_MODULE command specifies parameters related to a battery module (multiple battery cells connected in series and parallel).
BATTERY_MODULE( "4s2p battery module" ) {
number_of_parallel_cells = 2
number_of_serial_cells = 4
electrical_input_type = current
current_type = constant
current = 20
number_of_parallel_connected_units = 2
}
BATTERY_COMPONENT_MODEL( "battery cell" ) {
battery_module = "4s2p battery module"
...
}
BATTERY_COMPONENT_MODEL( "battery positive terminal" ) {
battery_module = "4s2p battery module"
...
}
ELEMENT_SET( "battery cell element set" ) {
Battery_component_model = "battery cell"
...
}
ELEMENT_SET( "terminal element set" ) {
Battery_component_model = "battery positive terminal"
...
}
Cell Electrical Connectivity




Multi-Battery Module Treatment

Cell Current/Voltage Calculation in Module

Electrical Input Type
Different types of electrical input can be included as an input to the battery module using the electrical_input_type command. These are summarized in the following sections.
Current
Current supports both generic charging and discharging, these include: constant; piecewise_linear; cubic_spline; and current profiles.
BATTERY_MODULE( "4S2P battery module" ) {
number_of_parallel_cells = 2
number_of_serial_cells = 4
electrical_input_type = current
current_type = piecewise_linear
current_curve_fit_values = Read( "time_current.txt" )
current_curve_fit_variable = time
cut_off_current_percent = 0.1
maximum_cell_voltage = 4.2
minimum_cell_voltage = 2.7
minimum_cell_state_of_charge = 0.05
maximum_cell_state_of_charge = 0.95
}
time_current.txt
would look like
this:0 0.66809696
9.61104062 0.66809696
12.5842409 0.66809696
13.34691228 15.37136268
…


[1] Mahfoudi, Nadjiba, et al. "Thermal Analysis of LMO/Graphite Batteries Using Equivalent Circuit Models." Batteries 7.3 (2021): 58.
C-Rate
C-rate supports both generic charging and discharging, these include: constant; piecewise_linear; cubic_spline; and c-rate profiles.
- Battery with capacity of 3.5Ah discharged at a c rate of 0.5C delivers 1.75A for 2 hours.
- Battery with capacity of 3.5Ah discharged at a c rate of 1C delivers 3.5A for 1 hour.
- Battery with capacity of 3.5Ah discharged at a c rate of 2C delivers 7A for 30 mins.
BATTERY_MODULE( "4s2p battery module" ) {
number_of_parallel_cells = 2
number_of_serial_cells = 4
electrical_input_type = c_rate
c_rate = 1
number_of_parallel_connected_units = 2
}
Charging Profiles


- electrical_input_type = standard_charge_profile
- charging_profile_type = constant_current_constant_voltage
- current/c_rate
- cut_off_current_percent
- maximum_cell_voltage
- minimum_cell_voltage
- minimum_cell_state_of_charge
- maximum_cell_state_of_charge
BATTERY_MODULE( "4S2P battery module" ) {
number_of_parallel_cells = 2
number_of_serial_cells = 4
electrical_input_type = standard_charge_profile
charging_profile_type = constant_current_constant_voltage
current_type = constant
current = -20
cut_off_current_percent = 0.1
maximum_cell_voltage = 4.2
minimum_cell_voltage = 3.0
minimum_cell_state_of_charge = 0.05
maximum_cell_state_of_charge = 0.95
}
- electrical_input_type = standard_charge_profile
- charging_profile_type = constant_power_constant_voltage
- power
- cut_off_current_percent
- maximum_cell_voltage
- minimum_cell_voltage
- minimum_cell_state_of_charge
- maximum_cell_state_of_charge
BATTERY_MODULE( "4S2P battery module" ) {
number_of_parallel_cells = 2
number_of_serial_cells = 4
electrical_input_type = standard_charge_profile
charging_profile_type = constant_power_constant_voltage
power_type = constant
power = 300
cut_off_current_percent = 0.1
maximum_cell_voltage = 4.2
minimum_cell_voltage = 3.0
minimum_cell_state_of_charge = 0.05
maximum_cell_state_of_charge = 0.95
}
Constant Power (CP)
CP is charging with constant power, for example, power_type = constant.
- electrical_input_type = power
- power
- cut_off_current_percent
- maximum_cell_voltage
- minimum_cell_voltage
- minimum_cell_state_of_charge
- maximum_cell_state_of_charge
BATTERY_MODULE( "4S2P battery module" ) {
number_of_parallel_cells = 2
number_of_serial_cells = 4
electrical_input_type = power
power_type = constant
power = 300
cut_off_current_percent = 0.1
maximum_cell_voltage = 4.2
minimum_cell_voltage = 2.7
minimum_cell_state_of_charge = 0.05
maximum_cell_state_of_charge = 0.95
}
Constant Voltage (CV)
CV is charging with constant voltage, for example, voltage_type = constant. The input module voltage divided by the number of parallel cells should be between the minimum and maximum cell voltage.
- electrical_input_type = voltage
- voltage
BATTERY_MODULE( "4S2P battery module" ) {
number_of_parallel_cells = 2
number_of_serial_cells = 4
electrical_input_type = voltage
voltage_type = constant
voltage = 16
cut_off_current_percent = 0.1
maximum_cell_voltage = 4.2
minimum_cell_voltage = 2.7
minimum_cell_state_of_charge = 0.05
maximum_cell_state_of_charge = 0.95
}