建立电池模组与电芯间热交换模型
此示例说明了如何在 Simscape™ Battery™ 中创建和构建一个具有电芯间热交换的电池模组的 Simscape™ 系统模型。电池电芯之间的热传递机制与电池系统的设计密切相关,包括分析电池热传播和评估虚拟验证中的电热负荷循环。Simscape™ Battery™ 支持的热传递机制包括传导、对流和辐射。要创建电池模组的系统模型,必须先创建构成电池模组的 Cell
和 ParallelAssembly
对象,然后使用 buildBattery
函数。buildBattery
函数为以下 Simscape Battery 对象生成 Simscape 模型:
该函数会在工作文件夹中创建一个库,其中包含一个电池模组的系统模型模块。请在仿真中将此模型用作参考。创建模型后,您可以修改此模型模块的运行时参数,例如电池电芯电阻或电池开路电压。要定义运行时参数,可在生成的 Simscape 模型的模块封装中指定,或使用 buildBattery
函数的 MaskParameters
参量。
在 MATLAB 中创建电池 Module
对象
要创建电池模组对象,必须先设计并创建电池模组的基础元素。
下图以自下而上的视图显示电池包对象的层次结构:
电池模组由多个并联组件组成。这些并联组件又由许多电池电芯组成,这些电池电芯在特定的拓扑结构或几何排列下并联连接。
创建 Cell
对象
要创建 Module
对象,首先创建一个具有圆柱体几何形状的 Cell
对象。
CylindricalGeometry
对象定义了电池电芯的圆柱形几何排列。要创建 CylindricalGeometry
对象,请使用 batteryCylindricalGeometry
函数。将电芯高度指定为第一个参量,电芯半径指定为第二个参量。
cylindricalGeometry = batteryCylindricalGeometry(simscape.Value(0.07,"m"),... simscape.Value(0.0105,"m"));
有关电池电芯可能的几何排列的更多信息,请参阅 PouchGeometry
和 PrismaticGeometry
文档页。
现在,使用此 CylindricalGeometry
对象创建一个圆柱形电池电芯。
cylindricalCell = batteryCell(cylindricalGeometry)
cylindricalCell = Cell with properties: Geometry: [1×1 simscape.battery.builder.CylindricalGeometry] CellModelOptions: [1×1 simscape.battery.builder.CellModelBlock] Mass: 0.1000 (kg) Capacity: 5 (A*hr) Energy: 50 (W*hr) Show all properties
通过 Cell
对象,可以使用简单的一维模型仿真电池电芯的热效应。要仿真电池电芯的热效应,请在 Cell
对象的 CellModelOptions
属性的 BlockParameters
属性中,将 thermal_port
属性设置为 "model"
。
cylindricalCell.CellModelOptions.BlockParameters.thermal_port = "model";
创建 ParallelAssembly
对象
并联组件包括多个电池电芯,这些电池电芯在特定的拓扑配置或几何排列下电连接成并联。在此示例中,您将创建一个并联组件,该组件由三个圆柱形电芯以方形拓扑结构堆叠成三行。
要创建 ParallelAssembly
对象,请使用 batteryParallelAssembly
函数。将 Cell
对象定义为第一个参量,并将并联电芯数定义为第二个参量。要指定其他属性,请使用名称-值参量 StackingAxis
和 Topology
。
parallelAssembly = batteryParallelAssembly(cylindricalCell,3,... StackingAxis="X", ... Topology="Square");
创建 Module
对象
现在,您已经拥有创建电池模组的所有基本元素。电池模组由多个串联的并联组件组成。在此示例中,您将创建一个由六个并联组件组成的电池模组。您还可以定义模组的模型分辨率。
要创建 Module
对象,请使用 batteryModule
函数。将 ParallelAssembly
对象定义为第一个参量,并将串联的并联组件数定义为第二个参量。要指定其他属性,请使用名称-值参量 InterParallelAssemblyGap
和 ModelResolution
。
module = batteryModule(parallelAssembly,6,... InterParallelAssemblyGap=simscape.Value(2e-3,'m'),... ModelResolution="Detailed");
启用电芯间热路径
要启用电芯之间的热传导路径,请将 batteryModule
对象的 InterCellThermalPath
属性设置为 "on"
。电池电芯模型模块必须启用至少一个热域端口的有效热模型。
module.InterCellThermalPath = "on";
Module
和 ParallelAssembly
对象通过创建热域网络来仿真相邻电池电芯之间的热交互。在这个热域网络中,每个电池电芯的热模型与相邻的每个电芯相互连接。启用 InterCellThermalPath
属性可通过使用 Simscape™ 热阻模块将相邻电芯热连接。在构建 Simscape™ 电池模块后,您可以设置热阻参数。您可以为两个相邻电芯之间的每个热连接设置不同的值。
查看电芯间热路径连接信息
要查看 Module
对象中的电芯间热连接总数,请使用 NumInterCellThermalConnections
属性。该属性是模组中每个并联组件内所有电芯之间的热连接之和。
disp(module.NumInterCellThermalConnections)
12
要查看相邻 ParallelAssemblies
对象之间的热连接数量,请使用 NumInterParallelAssemblyThermalConnections
属性。
disp(module.NumInterParallelAssemblyThermalConnections)
35
要可视化电芯之间的热连接,请使用 InterCellConnectionsMapping
属性。InterCellConnectionsMapping
是一个二维矩阵,显示相邻电池电芯模型之间的连接。对于每列,InterCellConnectionsMapping
属性的第一行显示了热连接源自的特定并联组件中的电芯索引。第二行包含相应目标电芯的索引。此热连接为双向连接,与 Simscape™ 中的所有热域连接一致。对于 Module
对象,索引仅基于并联组件中并联连接的电芯数量。
disp(module.InterCellConnectionsMapping)
1 2 1 2 1 2 1 2 1 2 1 2 2 3 2 3 2 3 2 3 2 3 2 3
要可视化 parallelAssembly 到 parallelAssembly 的热连接,请使用 InterParallelAssemblyConnectionsMapping
属性。InterParallelAssemblyConnectionsMapping
是一个二维矩阵,显示模组内相邻并联组件中相邻电池电芯模型之间的连接。对于每一列,InterParallelAssemblyConnectionsMapping
的第一行显示了热连接起源的 Module
中的 ParallelAssembly
索引。第二行包含对应目标 ParallelAssembly
的索引。
disp(module.InterParallelAssemblyConnectionsMapping)
1 1 1 1 1 1 1 2 2 2 2 2 2 2 3 3 3 3 3 3 3 4 4 4 4 4 4 4 5 5 5 5 5 5 5 2 2 2 2 2 2 2 3 3 3 3 3 3 3 4 4 4 4 4 4 4 5 5 5 5 5 5 5 6 6 6 6 6 6 6
Simscape Battery 中的电池制造商还支持电芯之间的辐射热交换。启用 InterCellRadiativeThermalPath
属性可通过使用 Simscape™ 辐射模块在热上连接相邻的电芯模型。该图展示了两种方法的比较:
可视化电池模组并检查模型分辨率
要获得用于模组仿真的 Simscape Battery(Table-based) 模块的数量,请使用 Module
对象的 NumModels
属性。
disp(module.NumModels)
18
要在构建系统模型之前可视化电池模组并查看其模型分辨率,请在要可视化模组的位置创建图形,然后使用 batteryChart
函数。要查看模组的模型分辨率,请将 SimulationStrategyVisible
名称-值参量指定为 "On"
。
f = figure(Color="w"); tl = tiledlayout(1,2,"Parent",f,"TileSpacing","Compact"); nexttile(tl) moduleChart1 = batteryChart(tl,module); nexttile(tl) moduleChart2 = batteryChart(tl,module,SimulationStrategyVisible="On");
构建 Module
对象的 Simscape 模型
创建电池对象后,需要将其转换为 Simscape 模型,以便在模块图中使用。然后,您可以将这些模型作为参考,用于系统集成和需求评估、冷却系统设计、控制策略开发、硬件在环等许多应用。
要创建一个包含 Module
对象的 Simscape Battery 模型的库,请使用 buildBattery
函数。
buildBattery(module,LibraryName="interCellHeatExchangeModule",Verbose="off");
此函数在您的工作文件夹中创建一个名为 interCellHeatExchangeModule_lib
的库。打开此模型,以将电池对象作为 Simscape 模块进行访问。