主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

Pack

R2026a

创建模组组件电池包

自 R2022b 起

描述

使用 Pack 创建一个电池包对象,该对象代表多个电连接或并联的 ModuleAssembly 对象。

要生成 Pack 对象的 Simscape™ 模型,请使用 buildBattery 函数。

Pack 对象仅支持结构或设计参数的定义。创建模型后,您可以修改该对象及其构成模组组件和模组的运行时参数。Pack 对象跟踪其独特的组成模组模型,并为这些模型生成属性,而不是为每个模型实例生成属性。通过在 buildBattery 函数中指定 MaskParameters 参量,可以生成一个包含 Pack 对象的所有参数的脚本。独特的电池组模型具有相同的属性(例如 NumSeriesAssemblies 和 ModelResolution)和相同的组成电芯属性(例如名称、格式和重量)。

Pack 对象是自下而上方法中电池包系统模型的最后阶段。在早期开发阶段、软件和硬件开发、系统集成和需求评估、冷却系统设计、控制策略开发硬件在环等许多应用中,都需要使用包模型进行架构评估。

热边界条件

热边界条件定义了电芯热模型与其周围环境的每个接触面发生的特定传热机制。在电池系统中,电池电芯通常与不同的热源和散热器进行热耦合,这些热源和散热器都会影响电池电芯的温度。电芯模型的热边界条件的数量和类型取决于电池系统的热设计和机械设计。

例如,您可以将电芯放置在铝制冷却板上以增强散热效果,同时使用灌封化合物将电芯机械连接在一起,从而有效消除或减少电芯之间的热交换路径。电芯温度对电池性能和使用寿命有直接影响。因此,在动态仿真中预测此状态至关重要。

在电池对象内,您可以设置集总热质量电芯模型的热网络,以同时捕获到环境、冷却液和/或冷却板的热路径:

这些选项并不互斥。例如,电池模型可以结合冷却液热路径和冷却热板来建模各个电芯与冷却板各部分之间的热阻。

有关热路径的详细信息,请参阅 AmbientThermalPath、CoolantThermalPath 和 CoolingPlate 属性。

您还可以对电芯间的直接热交换建模。当您想要仿真更详细的热管理策略,甚至热传播场景(其中电芯之间的热传递速度快于环境或冷却液的速度)时,这一点非常重要。在电池行业,可以通过多种不同方式将电池电芯相互连接起来。例如,您可以使用灌封化合物来提高圆柱形电芯的机械刚性、稳定性和隔热性,或使用其他类型的热界面材料。您还可以使用介电流体或其他化合物以及强制空气对流来加热或冷却圆柱形电芯。

创建电池模型后,您可以定义电芯间热交换的热参数。您可以从第一性原理计算和更详细的三维仿真中找到这些参数。

这些选项并不互斥。

有关电芯间热路径的更多信息,请参阅 InterCellThermalPath 和 InterCellRadiativeThermalPath 属性。

创建对象

描述

注意

要快速创建一个 Pack 对象,请使用 batteryPack 函数。使用此函数,您无需导入命名空间、使用完整类名或在创建对象时仅处理名称-值参量。 (自 R2024a 起)

若要在不使用 batteryPack 函数的情况下创建 Pack 对象,请在 MATLAB® 命令行窗口中,每 MATLAB 会话至少执行一次以下命令:

import simscape.battery.builder.*; 
此对象的所有属性都以名称-值参量的形式公开。

batteryPack = Pack 创建一个具有默认属性值的模组组件的电池包。

batteryPack = Pack(Name=Value) 使用一个或多个名称-值参量设置 属性。例如,创建一个包含四个默认模组组件的包,这些模组组件串联连接,沿 x 轴堆叠,模组组件之间的间隙为 0.005 米。

batteryPack = Pack(...
    ModuleAssembly=repmat(ModuleAssembly=ModuleAssembly,1,4), ...
    StackingAxis="X",...
    InterModuleAssemblyGap=simscape.Value(0.005,"m"));

您可以在 ModuleAssembly 属性中定义模组组件的数量和类型。如果包中包含许多属性值完全相同的模组组件,则可以使用 repmat 函数指定 ModuleAssembly 属性。否则,请指定一个不同模组组件数组。

示例

属性

全部展开

电池包中的电池模组组件集,指定为 ModuleAssembly 对象或 ModuleAssembly 对象数组。Pack 对象根据 CircuitConnection 属性将模组组件串联或并联连接。如果包中包含许多具有相同属性值的模组组件,则可以使用 repmat 函数来指定该属性。否则,请指定一个不同模组组件数组。

注意

此属性不会影响 Pack 对象堆叠模组的方式。只有 StackingAxis 属性定义了堆叠策略。

电池包内模组组件之间的最短距离,指定为正标量或 simscape.Value 对象,该对象表示一个以长度为单位的正标量。此属性的值必须小于 0.1 m。

如果直接使用正标量值设置此属性,而不是使用 simscape.Value 对象,则该对象将值转换为以米为物理单位的 simscape.Value 对象。

电池组的荷电状态均衡策略,指定为 "None"、"Passive" 或 "External"。

要指定外部电池平衡策略对其建模,请将此属性设置为 "External"。然后,Pack (Generated Block) 会暴露两个电气节点数组端口,即 +BUS 和 -BUS。对于桌面仿真和硬件在环电池仿真硬件,请将此选项与 Passive Balancing Interface 模块结合使用。

注意

设置该属性会自动将其值传播到该 Pack 对象内的所有子组件电池对象。但是,这一更改不会传播到 MATLAB 工作区中的其他电池对象。如果在创建此 Pack 对象时未设置此属性,则默认值会自动传播到其所有子组件电池对象。

选项:在电芯和 Simscape 热网络之间连接一个简单的热阻模块,指定为 "CellBasedThermalResistance" 或 "None"。

注意

设置该属性会自动将其值传播到该 Pack 对象内的所有子组件电池对象。但是,这一更改不会传播到 MATLAB 工作区中的其他电池对象。如果在创建此 Pack 对象时未设置此属性,则默认值会自动传播到其所有子组件电池对象。

示例: batteryPack.AmbientThermalPath = "CellBasedThermalResistance"

选项:在电芯和 Simscape 热网络之间连接一个简单的热阻模块,指定为 "CellBasedThermalResistance" 或 "None"。如果使用冷却板,则对象通过一组热节点将电芯与冷却板模块之间的热阻模块连接起来。

注意

设置该属性会自动将其值传播到该 Pack 对象内的所有子组件电池对象。但是,这一更改不会传播到 MATLAB 工作区中的其他电池对象。如果在创建此 Pack 对象时未设置此属性,则默认值会自动传播到其所有子组件电池对象。

示例: batteryPack.CoolantThermalPath = "CellBasedThermalResistance"

自 R2023a 起

在特定表面边界使用冷却板组件的选项,指定为 "Top"、"Bottom" 或 "None"。

如果希望电池包生成器在生成的模型中自动添加冷却板,请使用 CoolingPlateBlockPath 属性指定冷却板模块的路径。

注意

设置该属性会自动将其值传播到该 Pack 对象内的所有子组件电池对象。但是,这一更改不会传播到 MATLAB 工作区中的其他电池对象。如果在创建此 Pack 对象时未设置此属性,则默认值会自动传播到其所有子组件电池对象。

示例: batteryPack.CoolingPlate = "Top"

自 R2023a 起

指定要将哪个冷却板模块分配给由 CoolingPlate 属性定义的边界上的 Pack 对象,指定为 "batt_lib/Thermal/Edge Cooling"、"batt_lib/Thermal/Parallel Channels"、"batt_lib/Thermal/U-Shaped Channels" 或 "None"。

此图显示了将 CoolingPlate 属性设置为 "Bottom" 时,包的内部结构:

注意

设置该属性会自动将其值传播到该 Pack 对象内的所有子组件电池对象。但是,这一更改不会传播到 MATLAB 工作区中的其他电池对象。如果在创建此 Pack 对象时未设置此属性,则默认值会自动传播到其所有子组件电池对象。

示例: batteryPack.CoolingPlateBlockPath = "batt_lib/Thermal/Edge Cooling"

电池对象在三维笛卡尔坐标系中的位置,指定为实数和有限条目的向量。

示例: batteryPack.Position = [0 0 0]

电池包的名称,指定为字符串。

示例: batteryPack.Name = "ModuleAssembly2"

模组组件之间的电气连接类型,指定为 "Series 或 "Parallel"。

示例: batteryPack.CircuitConnection = "Series"

二维笛卡尔坐标系中电池电芯排列的优先堆叠方向,指定为 "X" 或 "Y"。

下图显示了电池的全球坐标系。

要在 y 轴方向绘制 Pack 对象,请在创建 BatteryChart 对象之前将此属性设置为 "Y"。

示例: batteryPack.StackingAxis = "Y"

由母线、选项卡和集流板等组件添加到电池组中的与电芯无关的附加质量,指定为大于或等于 1 的严格正双精度数。

示例: batteryPack.MassFactor = 1.2

使用电阻模块表示非电芯组件的附加电阻的选项,指定为 'off'、'on' 或数字或逻辑 1 (true) 或 0 (false)。'on' 的值等效于 true,而 'off' 的值等效于 false。因此,您可以将此属性的值用作逻辑值。该值存储为 matlab.lang.OnOffSwitchState 类型的 on/off 逻辑值。

示例: batteryPack.NonCellResistance = 'on'

使用热阻模块来表示相邻电池电芯之间的线性电芯间热传递路径的选项,指定为 'off'、'on' 或数字或逻辑 1 (true) 或 0 (false)。'on' 的值等效于 true,而 'off' 的值等效于 false。因此,您可以将此属性的值用作逻辑值。该值存储为 matlab.lang.OnOffSwitchState 类型的 on/off 逻辑值。

只有当您选择了电芯热模型且电池内存在多个电芯或电芯模型时,启用电池电芯间热路径才有用。

您可以在创建模型后定义热阻参数值。

如果将该属性设置为 'on',则不能将 InterCellRadiativeThermalPath 属性设置为 'on'。

有关电芯间热交换建模的更多信息,请参阅 Model Heat Exchange Between Cells。

注意

设置该属性会自动将其值传播到该 Pack 对象内的所有子组件电池对象。但是,这一更改不会传播到 MATLAB 工作区中的其他电池对象。如果在创建此 Pack 对象时未设置此属性,则默认值会自动传播到其所有子组件电池对象。

示例: batteryPack.InterCellThermalPath = "on"

使用热阻模块来表示相邻电池电芯之间的辐射式电芯间热传递路径的选项,指定为 'off'、'on' 或数字或逻辑值 1(true)或 0 (false)。'on' 的值等效于 true,而 'off' 的值等效于 false。因此,您可以将此属性的值用作逻辑值。该值存储为 matlab.lang.OnOffSwitchState 类型的 on/off 逻辑值。

只有当您选择了电芯热模型且电池内存在多个电芯或电芯模型时,启用电芯间辐射热路径才有用。

您可以在创建模型后定义辐射热传参数值。

如果将该属性设置为 'on',则不能将 InterCellThermalPath 属性设置为 'on'。

有关电芯间热交换建模的更多信息,请参阅 Model Heat Exchange Between Cells。

注意

设置该属性会自动将其值传播到该 Pack 对象内的所有子组件电池对象。但是,这一更改不会传播到 MATLAB 工作区中的其他电池对象。如果在创建此 Pack 对象时未设置此属性,则默认值会自动传播到其所有子组件电池对象。

示例: batteryPack.InterCellRadiativeThermalPath = "on"

此 属性 为只读。

电池体积,以 simscape.Value 对象形式返回,该对象以体积为单位。

此 属性 为只读。

电池的累积质量,以 simscape.Value 对象形式返回,该对象以质量为单位。

自 R2023a 起

此 属性 为只读。

电池的累积电芯容量,以 simscape.Value 对象形式返回,该对象以电流乘以时间为单位。

此属性的值等于单个电芯容量乘以该电池对象内并联的电芯数量。

自 R2023a 起

此 属性 为只读。

电池的累积电芯能量,以 simscape.Value 对象形式返回,该对象以能量为单位。

该属性的值等于单个电芯的能量乘以该电池对象中电芯的总数。

此 属性 为只读。

仿真中的电芯模型模块数,以双精度返回。

此 属性 为只读。

电池内部所有电芯的编号,以结构体形式返回。

此 属性 为只读。

外部边界条件的向量化热节点信息,以结构体形式返回。该信息包括 XY 位置、XY 维度和热节点数。如果未定义电池电芯的几何形状,则此属性为空结构体。

此 属性 为只读。

电池类型,返回为 "Pack"。

示例

全部折叠

创建一个具有圆柱形几何形状的 Cell 对象。

batteryCell = Cell(Geometry=CylindricalGeometry)

以默认的拓扑结构创建由三个并联电芯组成的 ParallelAssembly 对象。

pSet = ParallelAssembly(Cell=batteryCell,NumParallelCells=3)

使用此 ParallelAssembly 对象创建一个由 10 个并联组件串联的 Module 对象,并将其沿 x 轴堆叠。

batteryModule = Module(ParallelAssembly=pSet,NumSeriesAssemblies=10,StackingAxis="X")

使用 Module 对象创建一个由四个相同模组串联组成的 ModuleAssembly 对象。

batteryModuleAssembly = ModuleAssembly(Module=repmat(batteryModule,1,4))

使用 ModuleAssembly 对象创建一个由两个串联的相同模组组件组成的 Pack 对象。

batteryPack = Pack(ModuleAssembly=repmat(batteryModuleAssembly,1,2))

使用 BatteryChart 对象可视化电池包。

packChart = BatteryChart(Battery=batteryPack);

要定义电池组的电芯平衡策略,请按照 使用两个串联模组组件创建圆柱形电芯组 中的步骤创建电池组。

设置一个通用的电芯平衡策略。

batteryPack.BalancingStrategy = "Passive"

为了保持包及其所有基础组件的 BalancingStrategy 属性的一致性,设置包平衡策略会自动修改包中每个基础模组组件中的所有 BalancingStrategy 属性。

disp(batteryPack.ModuleAssembly(1).Module(1).BalancingStrategy);
disp(batteryPack.ModuleAssembly(2).Module(1).BalancingStrategy);
Passive
Passive

版本历史记录

在 R2022b 中推出

全部展开