Main Content

batteryModule

Create module of battery parallel assemblies

Since R2024a

Description

Use the batteryModule function to create a battery module object that represents a number of battery parallel assemblies connected electrically in series. For more information about the Module object and its properties, see Module (object).

module = batteryModule creates a parallel assembly that comprises battery parallel assemblies with default property values.

module = batteryModule(ParallelAssembly) sets the ParallelAssembly property to create a battery module that comprises one parallel assembly.

module = batteryModule(ParallelAssembly,NumSeriesAssemblies) sets the ParallelAssembly and NumSeriesAssemblies properties to create a battery module with a number of parallel assemblies equal to the value of the NumSeriesAssemblies property.

example

module = batteryModule(___,Name=Value) specifies the module properties using one or more name-value arguments. Specify the name-value arguments after all the arguments in any of the previous syntaxes. For a list of properties, see the Properties section of the Module object.

For example, create a module with four default parallel assemblies stacked along the y-axis with a gap between the parallel assemblies equal to 0.05 m.

module = batteryModule(...
    batteryParallelAssembly, ...
    4, ...
    StackingAxis="Y",... 
    InterParallelAssemblyGap=simscape.Value(0.05,"m"));

example

Examples

collapse all

Create a Cell object with a pouch geometry.

cell = batteryCell(batteryPouchGeometry)

Create a ParallelAssembly object of three cells with the default topology.

pSet = batteryParallelAssembly(cell,3)

Use this ParallelAssembly object to create a Module object of 10 parallel assemblies connected in series.

module = batteryModule(pSet,10)

Visualize the module by using a BatteryChart object.

moduleChart = batteryChart(module);

Create a Cell object and use it to create a ParallelAssembly object.

cell = batteryCell(batteryCylindricalGeometry)
pSet = batteryParallelAssembly(cell,6,Rows=3,Topology="Square")

Use this ParallelAssembly object to create a Module object of 6 parallel assemblies connected in series.

module = batteryModule(pSet,6,InterParallelAssemblyGap=simscape.Value(0.005,"m"))

Discretize this module in three individual electrical models. The second model comprises four of the original parallel assemblies of the module.

module.SeriesGrouping = [1 4 1]

To verify your modeling resolution, visualize the module by using the BatteryChart object and click on the "Show/hide simulation strategy" button on the top-right corner of the plot.

moduleChart = batteryChart(module);

Input Arguments

collapse all

Parallel assembly component in the module, specified as a ParallelAssembly object. The Module object creates this component and then electrically connects it in series a number of times equal to the value of the NumSeriesAssemblies property.

Number of parallel assemblies connected in series inside the module, specified as a strictly positive and finite integer. The value of this property must be less than 150.

Name-Value Arguments

Specify optional pairs of arguments as Name1=Value1,...,NameN=ValueN, where Name is the argument name and Value is the corresponding value. Name-value arguments must appear after other arguments, but the order of the pairs does not matter.

Example: batteryModule(ModelResolution="Detailed")

Note

The properties listed here are only a subset. For a complete list, see the Properties section of the Module object.

Model resolution or fidelity in the simulation, specified as:

  • "Lumped" — Choose this value for the lowest fidelity. The module uses only one electrical model. To obtain the fastest compilation time and running time, use this value.

  • "Detailed" — Choose this value for the highest fidelity. The module uses one electrical model and one thermal model for each battery cell.

  • "Grouped" — Choose this value to use a custom simulation strategy based on the SeriesGrouping and ParallelGrouping properties.

Modeling strategy for the module along the series connections, specified as a row vector of positive integers.

The length of this vector specifies the number of individual electrical models required. Each entry specifies how many parallel assemblies are lumped within the specified electrical model. For example, if your module comprises four parallel assemblies (NumSeriesAssemblies = 4) and you set this property to [2 1 1], the object discretizes the module in three individual electrical models. The first model comprises two of the original parallel assemblies.

The sum of the entries in this vector must be equal to the value of the NumSeriesAssemblies property.

Dependencies

To enable this property, set the ModelResolution property to "Grouped".

Modeling strategy for every parallel assembly defined in the SeriesGrouping property, specified as a vector of positive integers. The length of this vector must be equal to the length of the SeriesGrouping property value.

Each entry of this vector specifies the number of individual electrical models for entry of the SeriesGrouping property. The values of the entries must be 1 or the value of the NumParallelCells property.

For example, assume that your module comprises these elements:

  • Four parallel assemblies (NumSeriesAssemblies = 4)

  • 48 cylindrical cells for each parallel assembly (NumParallelCells = 48)

  • Three individual electrical models, in which the first model comprises two of the original parallel assemblies (SeriesGrouping = [2 1 1])

If you set this property to [1 1 48], the object discretizes the module into 50 individual electrical models, where each cell of the fourth parallel assembly has an electrical model.

The value of an entry in this property must be 1 if the value of the corresponding entry of the SeriesGrouping property is larger than 1.

Dependencies

To enable this property, set the ModelResolution property to "Grouped".

Shortest distance between parallel assemblies inside the module, specified as a positive scalar or a simscape.Value object that represents a positive scalar with a unit of length. The value of this property must be less than 0.1 m.

If you set this property directly with a positive scalar value instead of using a simscape.Value object, the object converts the value to a simscape.Value object with meter as its physical unit.

Version History

Introduced in R2024a