hyts3366 2023-10-26 10:41 采纳率: 40%
浏览 33
已结题

请问一下图示的struct类型变量是如何添加的?

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

img

  • 写回答

6条回答 默认 最新

  • CyMylive. 新星创作者: python技术领域 2023-10-28 15:44
    关注
    获得2.25元问题酬金

    结合GPT给出回答如下请题主参考
    首先,根据图示,struct类型变量名为“BMS_Data”,包含了若干个成员变量,每个成员变量都有自己的名称和数据类型。在Simulink中,可以通过两种方式添加struct类型变量:

    1. 使用Simulink预定义的struct类型

    Simulink提供了预定义的一些struct类型,可以在Data Type Assistant中查看和使用。具体操作如下:

    • 打开Data Type Assistant,选择“New”。
    • 在“Data type name”中输入变量名“BMS_Data”。
    • 在“Type properties”中选择“Struct”类型,然后点击“OK”。
    • 在“Fields”选项卡中,添加所有成员变量,包括名称和数据类型。
    • 点击“Apply”和“OK”保存新的struct类型,在模型中使用。

    下面是示例代码:

    % 在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';
    
    1. 自定义struct类型

    如果Simulink中没有合适的预定义struct类型,可以自己定义新的struct类型。具体操作如下:

    • 在MATLAB命令行中定义struct类型,并添加所有成员变量。
    • 使用Simulink.Bus.createObject创建一个新的bus object,并指定变量名和数据类型。
    • 在模型中使用新的bus object类型。

    下面是示例代码:

    % 在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';
    
    评论

报告相同问题?

问题事件

  • 系统已结题 11月4日
  • 赞助了问题酬金15元 10月27日
  • 创建了问题 10月26日