# BATTERY_MODULE

Specifies a battery module and its parameters.

## Type

AcuSolve Command

## Syntax

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

## Parameters

- number_of_parallel_cells (int) [=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]
- 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]
- 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 = constant.
- standard_charging_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) [=soc]
- Independent variable of the curve fit for isotropic electrical current. Used
with piecewise_linear and
cubic_spline types.
- soc
- state_of_charge
- 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 either state of charge or time. Used with piecewise_linear and cubic_spline types.
- c_rate_curve_fit_variable (enumerated) [=soc]
- Independent variable of the curve fit for isotropic c-rate. Used with
piecewise_linear and
cubic_spline types.
- soc
- state_of_charge
- 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.

- power (real) [=0]
- Constant value of module input power. When power_type = constant. Input can be positive or negative.
- 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.05]
- 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.

## 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

^{k}can be calculated across any PCU based on the following equation. I

^{k}is the pack charging/discharging current, which is an input.

## 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
}
```