Introduction of background knowledge regarding flow physics and CFD as well as detailed information about the use of AcuSolve and what specific options do.
Collection of AcuSolve simulation cases for which results are compared against analytical or experimental results to demonstrate the accuracy
of AcuSolve results.
Parameter types of integer, real, and array may be any valid arithmetic expression. Valid expressions consist of the
operators +, -, *, /, ^ (for power), parentheses, a set of built-in functions and a set of built-in or user-assigned
variables, specified by the ASSIGN command.
In the rest of this manual the commands are grouped into general categories and placed into chapters. In order to
make a particular command functionality easier to find, an alternative categorization is presented. Each command may
appear in more than one category.
Specifies a set of surfaces for integrated-surface output parameters for the Ffowcs-Williams Hawkings (FWH) method that is
used by the AcuFwh post processing program to propagate acoustic sources to far field locations.
Specifies output parameters for the Ffowcs-Williams Hawkings (FWH) method that is used by the AcuFwh post processing program
to propagate acoustic sources to far field locations.
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 commands are referenced by
BATTERY_COMPONENT_MODEL commands, which in turn are
referenced by an ELEMENT_SET
command.
The number of parallel and serial cells,
number_of_parallel_cells and
number_of_serial_cells respectively, are defined by their
electrical connectivity, for example a pouch module made up of 8 cells in a 4s2p
configuration would be:
Where four pairs of parallel connected cells: 1&2, 3&4, 5&6, and 7&8,
are connected in series to make up the module configuration 4s2p. Alternatively, for
a cylindrical module, with 48 cells in an 8s6p configuration:
Each set of 6 cells, for example, 1-6 or 7-12, are connected in parallel. These banks
of parallel cells are then connected in series, for example, cells 1-6 are connected
in series to cells 7-12. The number_of_parallel_connected_units
is how many PCUs (parallel connected unit) you have in the configuration.
Conceptually a PCU and an SCU, given by PCU being equal to the number of serial
connected cells, is demonstrated in the following figure:
For example, in a 4s2p case, where the
number_of_parallel_connected_units = 1,
2 or 4. The corresponding electrical
connection of the battery cells would be:
Multi-Battery Module Treatment
In a battery module, batteries are connected in a nSmP pattern, for example, 8s6p,
where m batteries are connected in parallel and then n of these parallel connected
units are connected in serial to form a pack. In the MSMD method, two potential
equations are solved for the and electrical field. Depending on battery connectivity, and could be the potential from the positive current
collector or the negative one. Therefore, in a battery module simulation, the two
potential equations are solved with the transfer current density changing sign
dependent on the location in the module. The cells are alternating as odd and even
stages. See figure 4. In tabs and busbars, you only solve for one of the fields. In
figure 4, the and on the left indicates which field was solved in the
tabs/busbars in the line. The governing equations for the cell scale
become:(1)
For in an odd stage:(2)
(3)
For in an even stage:(4)
(5)
For in an odd stage:(6)
(7)
For in an even stage:(8)
(9)
Cell Current/Voltage Calculation in Module
To model serial and parallel connected modules, state and model information is needed
for each individual cell. The module current is given, but the individual current through each
battery () is needed for the electric potential equation,
energy equation, ECM model, and the voltage across each PCU as the reference
potential. As an example, suppose two PCUs are connected in series. Then the
electrical circuit diagram would be as follows:
To get current and voltage distribution over each cell, the terminal voltage is
separated into a "fixed" part () and a "variable" part.(10)
(11)
(12)
Everything is known for the "fixed" part from the last time step, the reference
potential Vk can be calculated across
any PCU based on the following equation.
Ik is the pack
charging/discharging current, which is an input.(13)
(14)
is then used in the subscale model to calculate , , is the polarization resistance and capacitance from
the first pair, , is the polarization resistance and capacitance from
the second pair, , , , are diffusion resistor current at time step k and
k+1.(15)
(16)
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.
The following gives an example input for a current
profile:
Figure 7 shows a typical driving profile with current input. Figure 8 shows the
voltage and soc response from this particular current input. The driving profile is
taken from [1].
[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.
C-rate is the speed at which a battery is charged/discharged. For example, if you
have a battery with a capacity of 3.5Ah, then you can calculate how many amps it can
provide for different charging or discharging rates. Below are some examples:
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.
To define a constant c-rate for a 1C discharge the BATTERY_MODULE
would be:
For charging profiles, you can have CC-CV or CP-CV. For CC-CV the charging starts
with a constant current, or c_rate, and then switches to a constant voltage charging
method once the voltage limit is reached. The simulation will terminate when the
current drops to a pre-defined level, for example, minimum current or maximum soc.
For CP-CV, the initial charging is constant power and switches to constant voltage
once the voltage limit is reached. The CP-CV charging terminates in the same manner
as CC-CV. A typical CC-CV or CP-CV charging current, voltage and soc curve are shown
in the following figures.
Example CC-CV input: For a CC-CV input, the following parameters need to be
defined:
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.
Example input CV: For a CV input, the following parameters need to be defined: