主要内容

使用总线对象的接口规范

此示例显示了如何将总线传播到参考模型中。它还显示了如何使用来自父模型的记录信号数据独立模拟参考模型。

打开示例模型

打开并模拟示例模型sldemo_mdlref_总线.

检查模型

该模型包含一个名为CounterA的模型块,该块引用sldemo_mdlref_计数器_总线,这是一个简单计数器的模型。

一个名为COUNTERBUS的总线阵列将数据和计数器的饱和极限输入到模型中。名为COUNTERBUS的总线包含两个元素:数据信号和名为LIMITBUS的嵌套总线。数据用于计数,LIMITBUS包含计数器的上限值和下限值。

模型块具有第二个输入端口,该端口连接到名为INCREMENTBUS的总线。此总线包含更改增量和重置计数器的元素。

该模型使用名为的数据字典文件sldemo_mdlref_bus.sldd包含万博1manbetx模拟总线定义COUNTERBUS、LIMITBUS和INCREMENTBUS元素的对象。

查看公共汽车对象,打开总线编辑器。在Simulink®Toolstrip中的万博1manbetx建模选项卡,在设计图库,单击总线编辑器.

该模型使用公共汽车对象来指定以下总线创建程序块的输出:

  • 反总线创建者1

  • 反总线创建者2

  • LIMITBUSCreator1

  • LIMITBUSCreator2

  • 递增总线创建者

名为counter_input in的输入端口块sldemo_mdlref_计数器_总线指定公共汽车名为柜台巴士. 双击该块。在“块参数”对话框中的信号属性标签,数据类型设置为公共汽车:柜台公共汽车.

名为increment_input的Inport块同样配置为使用公共汽车名为增量总线.

测井信号数据

这些信号被标记为信号记录:

  • 柜台巴士

  • 增量总线

  • 外数据

  • 内部数据

模拟模型后,记录的信号在中的基本工作区中可用托普特变量

模拟数据。数据集数万博1manbetx据集“toout”的“toout”的4个元素的4个元素的4个元素的4个元素的4个元素的名称“totoout”的4个元素的4个元素的名称“toout”的4个元素的名称“totoout”的4个元素的4个元素的名称,4个元素的名称“totototototototototototo8.8.8.8.模拟数据数据数据数据数据数据集数据集“数据集”数据集“toout”数据“toout”的“toout”的“toout”的“toout”的“toout”的“toout”有4元素的4元素的4元素的4个元素的4个元素的4个元素的4个元素的4元素的4元素的4元素的4个元素的4个元素的4元素的4元素的4个元素的4个元素的4元素的4元素的4个元素的4元素名称名称名称名称名称名称名称名称,4元素的名称名称名称名称名称/递增总线4[1x1信号]INNERDATA…erA | sldemo_mdlref_counter_bus/counter-使用大括号{}访问、修改或添加使用索引的元素。

模型使用数据集信号记录格式。访问数据集格式化给定信号的记录数据,使用getElement方法:

toput.getElement('计数器总线')
ans=Si万博1manbetxmulink.SimulationData.Signal包:Simulink.SimulationData属性:名称:'COUNTERBUS'传播数据名称:''块路径:[1x1 Simulink.SimulationData.BlockPath]端口类型:'outport'端口索引:1个值:[2x1结构]

总线数据作为MATLAB®结构记录在价值观字段:

toput.getElement('COUNTERBUS')。值
ans=2x1带字段的结构数组:数据限制

该结构包含MATLAB时间序列每个总线的对象:

toput.getElement('COUNTERBUS')。值(1)。数据
timeseries公用属性:名称:“数据”时间:[301x1双精度]时间信息:tsdata.timemetadata数据:[301x1 int32]数据信息:tsdata.datametadata
toput.getElement('COUNTERBUS')。值(2)。数据
timeseries公用属性:名称:“数据”时间:[301x1双精度]时间信息:tsdata.timemetadata数据:[301x1 int32]数据信息:tsdata.datametadata

您还可以使用情节功能:

toput.getElement('OUTERDATA').Values.plot()

对数参考模型信号

要记录参考模型中的信号,请选择模型块并单击日志信号模型块标签。

对于这个模型,记录模式设置为按照模型中的规定记录所有信号.模拟时记录的所有信号sldemo_mdlref_计数器_总线作为参考模型进行模拟时,也会记录作为顶部模型。要更改这些信号的记录或记录信号的子集,请执行以下操作:

  1. 设置记录模式超越信号.

  2. 模型层次结构窗格,清除计数器A(sldemo\U mdlref\U计数器\U总线)复选框,指示此模型不应使用按照模型中的规定记录所有信号背景

  3. 在表中,选择模拟顶部模型时要记录的信号。

  4. 要保存更改,请保存顶部模型。

加载数据

打开引用的模型sldemo_mdlref_计数器_总线通过单击作为顶级模型打开模型块左下角的徽章。

参考模型配置为通过根输入端口块读取记录的信号数据。若要查看此配置,请打开“配置参数”对话框。在Simulink Toolstrip中,在万博1manbetx建模选项卡,单击模型设置. 上数据导入/导出标签,输入使用逗号分隔的列表指定从中记录的数据托普特对于两个输入端口。这个计数器输入端口使用timeseries结构数组为COUNTERBUS加载数据,并且增量输入端口使用timeseries结构为INCREMENTBUS加载数据。

  • toput.getElement('计数器总线')

  • toput.getElement('INCREMENTBUS')

您可以配置输入通过单击连接输入按钮。根输入端口映射器工具打开。在本例中,该工具使用映射算法设置输入来自基本工作区中记录的数据的字段。

要选择要导入的数据,请执行以下操作:

  1. 在根输入端口映射器中,单击从工作空间.

  2. 选择记录的数据托普特点击好啊.

  3. 在打开的对话框中,指定文件名并单击拯救.

通过将数据加载到根输入端口映射器工具中,可以确定要为其分配输入数据的根输入端口。Simulink根据以下条件之一将输入数据与输入端口匹配:块名称、块路径、信号名称、端口顺序或自定义算法。因为万博1manbetx托普特使用模型中的信号名称记录,映射标准的最佳选择是信号名. 使用此标准,Simulink尝试将输入数据变万博1manbetx量名称与输入信号的名称相匹配。

要选择此选项,请执行以下操作:

  1. 在根输入映射器层次结构窗格中,选择场景数据集托普特.

  2. 点击信号名单选按钮。

  3. 点击映射到模型按钮箭头,然后单击地图全部.

映射数据时,Simulink根据输入数万博1manbetx据评估输入端口以确定兼容性。根输入端口映射器表使用绿色复选标记、橙色警告三角形或红色错误感叹号反映此兼容性的状态。在本例中,该表显示绿色状态,表示不存在兼容性问题。您可以可以使用此输入数据到输入端口的映射来模拟模型。该映射还设置输入数据导入/导出“配置参数”对话框的选项卡,以正确的逗号分隔的输入列表。要将更改应用于模型,请在“配置参数”对话框中,单击申请.

用导入的数据模拟模型

模拟sldemo_mdlref_计数器_总线.

模拟后,从sldemo_mdlref_总线(外数据)及sldemo_mdlref_计数器_总线(内部数据)显示相同的跟踪。

输入参考模型范围的信号也会被记录。记录的数据可在变量下的MATLAB工作区中获得苏布特. 您可以验证toput.getElement('OUTERDATA')subOut.getElement('INNERDATA')是一样的。

另见

相关话题