【Simulink】数据对象(Data Object)

关于Simulink的数据对象知识。

1. 什么是Simulink数据对象

理解数据对象,请先补充软件面向对象编程的概念(本文略)。

在Simulink,你可以创建数据对象,以便为信号、状态和模块参数指定值、值范围、数据类型、可调性以及其他特征。可以在 Simulink® 对话框中使用对象名称指定信号、状态和参数特征。
对象存在于工作区中(基础工作区、模型工作区或 Simulink 数据字典)。利用数据对象,只需更改工作区对象的值,即可对信号、状态和参数特征进行模型范围的更改。

内置包Simulink中定义了两个数据类,即Simulink.Signal和Simulink.Parameter,可以用它们创建数据对象。
在这里插入图片描述
要存储查找表数据以便在查找表模块(例如 n-D Lookup Table)之间共享,可以使用 Simulink.LookupTable 和 Simulink.Breakpoint 类。
通过定义内置数据类的子类,可以自定义数据对象属性和方法。

2. 命名约定

如上图片,可以看出,在Matlab中,文件夹名称前面带“+”号代表是类定义的包,名称前面带“@”代表是类。
Simulink 使用圆点表示法为数据类命名:
package.class

  • package 是包含类定义的包的名称。
  • class 是类的名称。

3. 在 Simulink 模型中使用数据对象

要通过修改工作区或数据字典中的变量为信号、模块参数和状态指定仿真和代码生成选项,请使用数据对象。将这些对象与模型图中的信号、参数和状态相关联。
创建/应用数据对象,常见的有三种方法:

  • 在Property Inspector中(Modeling-Design-Property Inspector),第3.1节介绍
  • 在Model Data Editor中,第3.2节介绍
  • 模型资源管理器的 Model Hierarchy,第4节介绍

3.1 使用参数对象

您可以使用参数对象(而不是 MATLAB® 数值变量)为模块参数指定值。例如,要创建并使用名为 myParam 的 Simulink.Parameter 对象来指定 Gain 模块的 Gain 参数,请执行以下操作:

  1. 在模型中,在 Modeling 选项卡上,在 Design 下,点击 Property Inspector。

  2. 在模型中,点击目标 Gain 模块。Property Inspector 显示模块的属性和参数。

  3. 将 Gain 参数的值设置为 myParam。

  4. 在参数值旁边,点击操作按钮(竖着的三个点图标) ,然后选择 Create。

  5. 在 Create New Data 对话框中,将 Value 设置为 Simulink.Parameter(15.23),然后点击 Create。
    在这里插入图片描述
    Simulink.Parameter 对象 myParam 出现在基础工作区中(如果想放入数据字典,请先创建数据字典,然后这里Location中就可以选择)。属性对话框显示对象将参数值 15.23 存储在 Value 属性中。

  6. 使用属性对话框,通过调整对象属性指定模块参数的其他特征。例如,要指定参数可采用的最小值和最大值,请使用 Minimum 和 Maximum 属性。

现在,Gain 参数在仿真期间使用值 15.23。

3.2 使用信号对象

可以将信号线或模块状态(例如 Unit Delay 模块的状态)与信号对象相关联。

3.2.1 用于信号

要使用信号对象控制模型中某个信号的特征,请使用与该信号相同的名称在工作区中创建对象。

  1. 在模型中,在 Modeling 选项卡上,点击 Model Data Editor。
  2. 在模型数据编辑器中,选择 Signals 选项卡。
  3. 在模型中,选择目标信号。模型数据编辑器突出显示与信号对应的行。
  4. 在模型数据编辑器中的 Name 列中,给定信号名称,如 mySig。
  5. 点击信号名称旁边的按钮(三个竖着的点)。选择 Create and Resolve。
  6. 在 Create New Data 对话框中,将 Value 设置为 Simulink.Signal。使用 Location 下拉列表选择要存储对象的工作区(默认值为 “Base Workspace”,同理可以选择数据字典)。点击 Create。
    目标工作区中出现 Simulink.Signal 对象 mySig。Simulink 选择信号属性 Signal name must resolve to Simulink signal object,从而强制模型中的信号使用信号对象存储的属性。
  7. 将打开新对象的属性对话框。

3.2.2 用于状态

使用信号对象来控制模块(例如 Discrete-Time Integrator 模块)的状态特征。

  1. 在模型中,在 Modeling 选项卡上,点击 Model Data Editor。
  2. 在模型数据编辑器中,选择 States 选项卡。
  3. 在模型中,选择拥有目标状态的模块。模型数据编辑器突出显示与该状态对应的行。
  4. 在模型数据编辑器中的 Name 列中,给定状态名称,例如 myState。
  5. 点击状态名称旁边的按钮(竖着的三个点)。选择 Create and Resolve。
  6. 在 Create New Data 对话框中,将 Value 设置为 Simulink.Signal。使用 Location 下拉列表选择要存储对象的工作区(默认值为 “Base Workspace”,同理可以选择数据字典)。点击 Create。
    Simulink.Signal 对象 myState 出现在目标工作区中。Simulink 选择模块参数 State name must resolve to Simulink signal object,从而强制模型中的状态使用信号对象存储的属性。
  7. 使用属性对话框指定状态特征。点击 OK。

4. 从内置数据类包 Simulink 创建数据对象

我们更常用的是从内置的数据类包(Simulink.Parameter和Simulink.Signal)中通过用户界面的形式或编程的形式创建这些对象。方法大致如下:

  1. 在模型资源管理器的 Model Hierarchy 窗格中,选择要包含数据对象的工作区。例如,点击 Base Workspace。
  2. 在工具栏上,点击 Add Parameter在这里插入图片描述
    或 Add Signal在这里插入图片描述
    旁边的箭头。从下拉列表中选择 Simulink Parameter 或 Simulink Signal。
    基础工作区中将出现一个参数对象或信号对象。新参数对象的默认名称为 Param。新信号对象的默认名称为 Sig。
  3. 要在模型资源管理器工具栏上创建 Simulink.LookupTable 和 Simulink.Breakpoint 对象,请使用 在这里插入图片描述
    按钮。
  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Simulink中,数据字典是一种用于管理模型参数和变量的工具。数据字典可以帮助您集中管理模型中使用的所有参数和变量,并提供一种方便的方式来进行定标和配置。以下是关于Simulink数据字典定标的两种方法: 1. 使用数据字典编辑器进行定标[^1]: - 打开Simulink模型,然后选择“模型”选项卡中的“数据字典”按钮。 - 在数据字典编辑器中,您可以创建新的数据字典或打开现有的数据字典文件。 - 在数据字典中,您可以定义参数和变量,并为它们指定初始值、单位和其他属性。 - 您还可以使用数据字典编辑器中的定标工具来指定参数的最小值、最大值和步长。 - 保存数据字典并将其与模型关联,以便在模型中使用定义的参数和变量。 2. 使用MATLAB脚本进行定标: - 打开MATLAB命令窗口,并导航到包含Simulink模型的文件夹。 - 创建一个MATLAB脚本,并使用Simulink.data.dictionary.create函数创建一个新的数据字典。 - 使用Simulink.data.dictionary.open函数打开数据字典。 - 使用Simulink.data.dictionary.createSection函数创建一个新的部分,并使用addEntry函数添加参数和变量。 - 使用setValue函数为参数和变量指定初始值、单位和其他属性。 - 使用setValue函数为参数指定最小值、最大值和步长。 - 保存数据字典并将其与模型关联,以便在模型中使用定义的参数和变量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CrazyRabbit0823

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值