构建电网应用电池包模型
此示例说明了如何使用 Simscape™ Battery™ 从棱柱形电芯创建和构建用于电网应用的电池包的 Simscape™ 系统模型。电池储能是将间歇性可再生能源并入电网的一个良好选项。电池包是用于电网级应用的 150 kWh 棱柱形电池。要创建电池包的系统模型,必须先创建构成电池包的 Cell、ParallelAssembly、Module 和 ModuleAssembly 对象,然后使用 buildBattery 函数。
下图显示了以自下而上的方式创建电池包对象的整个过程:

电池包由多个模组组件组成。这些模组组件又由多个串联或并联的电池模组组成。电池模组由多个并联组件组成,这些组件又由多个电池电芯以特定的拓扑结构或几何排列方式并联连接而成。
创建电池包对象后,buildBattery 函数会在工作文件夹中创建一个库,该库包含电池包的系统模型模块。您可以在仿真中将此系统模型用作参考。这些模型的运行时间参数(如电池电芯阻抗或电池开路电压)在模型创建后定义,因此不包含在电池包构建器类中。要定义运行时参数,您可以在生成的 Simscape 模型模块封装中指定这些参数,或使用 buildBattery 函数的 MaskParameters 参量。
在 MATLAB 中创建电池 Pack 对象
本节介绍如何通过编程方式从 MATLAB® 命令行窗口生成电池 Pack 对象。
创建 Cell 对象
要创建电池 Pack 对象,请先创建一个方形格式的 Cell 对象。
通过 PrismaticGeometry 对象,可以定义电池电芯的软包几何排列。要创建 PrismaticGeometry 对象,请使用 batteryPrismaticGeometry 函数。将高度指定为第一个参量,将长度指定为第二个参量,并将厚度指定为第三个参量。
prismaticGeometry = batteryPrismaticGeometry(simscape.Value(0.2,"m"),... simscape.Value(0.35,"m"),simscape.Value(0.07,"m"));
有关电池电芯可能的几何排列的更多信息,请参阅 CylindricalGeometry 和 PouchGeometry 文档页。
现在,使用这个 PrismaticGeometry 对象创建一个棱柱形电池电芯。
prismaticCell = batteryCell(prismaticGeometry)
prismaticCell =
Cell with properties:
Geometry: [1×1 simscape.battery.builder.PrismaticGeometry]
CellModelOptions: [1×1 simscape.battery.builder.CellModelBlock]
Mass: 0.1000 (kg)
Capacity: 5 (A*hr)
Energy: 50 (W*hr)
Show all properties
有关更多信息,请参阅Cell文档页。
通过 Cell 对象,可以使用简单的一维模型仿真电池电芯的热效应。要仿真电池电芯的热效应,请在 Cell 对象的 CellModelOptions 属性的 BlockParameters 属性中,将 thermal_port 参数设置为 "model"。
prismaticCell.CellModelOptions.BlockParameters.thermal_port = "model";创建 ParallelAssembly 对象
并联组件包括多个电池电芯,这些电池电芯在特定的拓扑配置或几何排列下电连接成并联。在此示例中,您将创建一个由一个棱柱形电芯组成的并联组件。
要创建 ParallelAssembly 对象,请使用 batteryParallelAssembly 函数。将 Cell 对象指定为第一个参量,并将并联的电芯数指定为第二个参量。
parallelAssembly = batteryParallelAssembly(prismaticCell,1)
parallelAssembly =
ParallelAssembly with properties:
NumParallelCells: 1
Cell: [1×1 simscape.battery.builder.Cell]
Topology: "SingleStack"
Rows: 1
ModelResolution: "Lumped"
Show all properties
有关更多信息,请参阅ParallelAssembly文档页。
创建 Module 对象
电池模组由多个串联的并联组件组成。在此示例中,您将创建一个由 22 个并联组件组成的电池模组,每个组件之间的间隙为 0.005 米。
要创建 Module 对象,请使用 batteryModule 函数。将 ParallelAssembly 对象指定为第一个参量,并将串联的并联组件数指定为第二个参量。要定义每个组件之间的间隙,请使用名称-值参量 InterParallelAssemblyGap。
module = batteryModule(parallelAssembly,22,... InterParallelAssemblyGap=simscape.Value(0.005,"m"), ... ModelResolution="Lumped")
module =
Module with properties:
NumSeriesAssemblies: 22
ParallelAssembly: [1×1 simscape.battery.builder.ParallelAssembly]
ModelResolution: "Lumped"
SeriesGrouping: 22
ParallelGrouping: 1
Show all properties
有关更多信息,请参阅Module文档页。
创建 ModuleAssembly 对象
电池模组组件由串联或并联的多个电池模组组成。在此示例中,您将创建一个电池模组组件,该组件由十个相同的模组堆叠在十个不同的层上,每个模组之间的间隙为 0.05 米。默认情况下,以电气方式串联 ModuleAssembly 对象。
要创建 ModuleAssembly 对象,请使用 batteryModule 函数,并将 Module 对象指定为第一个参量。要定义其他属性,请使用名称-值参量 InterModuleGap 和 NumLevels。
moduleAssembly = batteryModuleAssembly(repmat(module,1,10),... InterModuleGap=simscape.Value(0.05,"m"), ... NumLevels=10)
moduleAssembly =
ModuleAssembly with properties:
Module: [1×10 simscape.battery.builder.Module]
Show all properties
有关更多信息,请参阅ModuleAssembly文档页。
创建 Pack 对象
现在,您已经拥有创建电池包的所有基本元素。电池包由串联或并联的多个模组组件组成。在此示例中,您将创建一个由一个模组组件组成的电池包。
要创建 Pack 对象,请使用 batteryPack 函数,并将 ModuleAssembly 对象定义为第一个参量。
pack = batteryPack(moduleAssembly)
pack =
Pack with properties:
ModuleAssembly: [1×1 simscape.battery.builder.ModuleAssembly]
Show all properties
有关更多信息,请参阅Pack文档页。
可视化电池包并检查模型分辨率
要在构建系统模型之前可视化电池包并查看其模型分辨率,请在要可视化电池包的位置创建图形,然后使用 batteryChart 函数。要查看模组的模型分辨率,请将 SimulationStrategyVisible 名称-值参量定义为 "On"。
f = figure(Color="w",Position=[0 0 1500 1500]); packChart = batteryChart(f,pack, ... SimulationStrategyVisible="on");

要为电池图添加默认轴标签,请使用 BatteryChart 对象的 setDefaultLabels 方法。
有关更多信息,请参阅batteryChart文档页。
为电池包对象构建 Simscape 模型
创建电池对象后,需要将其转换为 Simscape 模型,以便在模块图中使用。然后,您可以将这些模型作为参考,用于系统集成和需求评估、冷却系统设计、控制策略开发、硬件在环等许多应用。
要创建一个包含本例中创建的 Pack 对象的 Simscape Battery 模型的库,请使用 buildBattery 函数。
buildBattery(pack,LibraryName="packGridExample",Verbose="off");
此函数在工作目录中创建 packGridExample_lib 和 packGridExample SLX 库文件。packGridExample_lib 库包含 Modules 和 ParallelAssemblies 子库。

要访问 Module 和 ParallelAssembly 对象的 Simscape 模型,请打开 packGridExample_lib SLX 文件,双击子库,然后将 Simscape 模块拖到模型中。
packGridExample 库包含 ModuleAssembly 和 Pack 对象的 Simscape 模型。

您的 ModuleAssembly 和 Pack 对象的 Simscape 模型是子系统。打开 packLibrary SLX 文件并双击子系统,即可查看这些子系统的内部情况。
有关更多信息,请参阅buildBattery文档页。
在电池构建器中探索电池包和构建模型
在此示例中,您通过在 MATLAB 命令行窗口中调用相关对象和函数,以编程方式创建了电池包及其所有子组件。另外,如果您喜欢互动性和可视化性更强的方法,也可以使用 Battery Builder。使用此 App,您可以交互式地导入现有的电池对象或从头构建电池对象,探索和编辑属性,以及查看电池层次结构和三维可视化。然后,您就可以构建对象的 Simscape 系统模型,并将其用作仿真中的参考。您还可以导出工作区中的对象。要了解如何使用电池构建器生成电池对象和构建 Simscape 模型,请参阅 电池构建器快速入门 示例。
探索您在本例中创建的电池包。打开电池构建器。在 App 选项卡的 Simscape 下,点击电池构建器图标。您也可以从命令行打开该 App:
batteryBuilder
从 packGridExample MAT 文件中导入电池包对象。在电池构建器选项卡下,在工具条的导入部分中,点击导入。然后点击从 MAT 文件导入,并加载 packGridExample MAT 文件。
电池构建器现在由一个 Pack 对象及其每个子组件组成。

应用左侧的电池浏览器面板包含应用当前活动会话中的所有电池对象。您可以选择一个对象,在已选电池选项卡中将其可视化,在电池层次结构面板中检查其层次结构和子对象,并在 App 右侧的属性面板中编辑其属性。
您可以在电池图选项卡下编辑图的属性,如坐标轴标签、坐标轴方向、图的标题和灯光。您还可以检查所选电池对象的当前仿真策略和模型分辨率。要在图中可视化仿真策略,请在工具条的仿真策略部分选中可见框。
最后,如果您修改了电池对象,并希望创建更新后的 Pack 对象的库模型,请在工具条的电池构建器选项卡下的库部分中,点击创建库。在新窗口中,指定要保存库的文件夹、库名称,以及是否使用数字值或变量名称作为封装参数和封装初始目标。

点击创建库,在指定文件夹中生成电池对象的更新库模型。打开此模型,即可访问电池对象(作为 Simscape 模块),您可以在早期开发阶段、软件和硬件开发、系统集成和需求评估、冷却系统设计、控制策略开发、硬件在环等许多应用中,将其作为架构评估的起点。