这个simulink工程是我在官网下载的一个bms工程用于学习的,在模型资源管理器中发现一个图中红圈所示的变量,我在添加选项中未发现与他图标一致的类型,研究了一会自定义类也没有找到相同的,然后我自己在网上搜索如何添加struct类,网上搜到的结果都是使用bus,与我看到的这个也是不一样的?那么有人知道这个struct类型应该如何添加吗?

这个simulink工程是我在官网下载的一个bms工程用于学习的,在模型资源管理器中发现一个图中红圈所示的变量,我在添加选项中未发现与他图标一致的类型,研究了一会自定义类也没有找到相同的,然后我自己在网上搜索如何添加struct类,网上搜到的结果都是使用bus,与我看到的这个也是不一样的?那么有人知道这个struct类型应该如何添加吗?

关注结合GPT给出回答如下请题主参考
首先,根据图示,struct类型变量名为“BMS_Data”,包含了若干个成员变量,每个成员变量都有自己的名称和数据类型。在Simulink中,可以通过两种方式添加struct类型变量:
Simulink提供了预定义的一些struct类型,可以在Data Type Assistant中查看和使用。具体操作如下:
下面是示例代码:
% 在MATLAB命令行中定义struct类型
s = struct('CellVolt',zeros(1,16),'PackVolt',0,'PackCurrent',0);
% 将struct类型变量添加到模型中
BMS_Data = Simulink.Bus.createMATLABStruct('BMS_Data',s);
% 在模型中使用struct类型变量
In1 = Simulink.Signal;
In1.DataType = 'BMS_Data';
In1.Complexity = 'real';
如果Simulink中没有合适的预定义struct类型,可以自己定义新的struct类型。具体操作如下:
下面是示例代码:
% 在MATLAB命令行中定义struct类型
s = struct('CellVolt',zeros(1,16),'PackVolt',0,'PackCurrent',0);
% 创建一个新的bus object
busobj = Simulink.Bus.createObject(s);
% 在模型中使用新的bus object类型
In1 = Simulink.Signal;
In1.DataType = 'busobj';
In1.Complexity = 'real';