此示例显示了如何将总线传播到参考模型中。它还显示了如何使用来自父模型的记录信号数据独立模拟参考模型。
打开并模拟示例模型sldemo_mdlref_总线
.
该模型包含一个名为CounterA的模型块,该块引用sldemo_mdlref_计数器_总线
,这是一个简单计数器的模型。
一个名为COUNTERBUS的总线阵列将数据和计数器的饱和极限输入到模型中。名为COUNTERBUS的总线包含两个元素:数据信号和名为LIMITBUS的嵌套总线。数据用于计数,LIMITBUS包含计数器的上限值和下限值。
模型块具有第二个输入端口,该端口连接到名为INCREMENTBUS的总线。此总线包含更改增量和重置计数器的元素。
该模型使用名为的数据字典文件sldemo_mdlref_bus.sldd
包含
定义COUNTERBUS、LIMITBUS和INCREMENTBUS元素的对象。万博1manbetx模拟总线
查看公共汽车
对象,打开总线编辑器。在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_计数器_总线
作为参考模型进行模拟时,也会记录作为顶部模型。要更改这些信号的记录或记录信号的子集,请执行以下操作:
设置记录模式到超越信号
.
在模型层次结构窗格,清除计数器A(sldemo\U mdlref\U计数器\U总线)复选框,指示此模型不应使用按照模型中的规定记录所有信号
背景
在表中,选择模拟顶部模型时要记录的信号。
要保存更改,请保存顶部模型。
打开引用的模型sldemo_mdlref_计数器_总线
通过单击作为顶级模型打开模型块左下角的徽章。
参考模型配置为通过根输入端口块读取记录的信号数据。若要查看此配置,请打开“配置参数”对话框。在Simulink Toolstrip中,在万博1manbetx建模选项卡,单击模型设置. 上数据导入/导出标签,输入使用逗号分隔的列表指定从中记录的数据托普特
对于两个输入端口。这个计数器输入端口使用timeseries结构数组为COUNTERBUS加载数据,并且增量输入端口使用timeseries结构为INCREMENTBUS加载数据。
toput.getElement('计数器总线')
toput.getElement('INCREMENTBUS')
您可以配置输入通过单击连接输入按钮。根输入端口映射器工具打开。在本例中,该工具使用映射算法设置输入来自基本工作区中记录的数据的字段。
要选择要导入的数据,请执行以下操作:
在根输入端口映射器中,单击从工作空间.
选择记录的数据托普特
点击好啊.
在打开的对话框中,指定文件名并单击拯救.
通过将数据加载到根输入端口映射器工具中,可以确定要为其分配输入数据的根输入端口。Simulink根据以下条件之一将输入数据与输入端口匹配:块名称、块路径、信号名称、端口顺序或自定义算法。因为万博1manbetx托普特
使用模型中的信号名称记录,映射标准的最佳选择是信号名. 使用此标准,Simulink尝试将输入数据变万博1manbetx量名称与输入信号的名称相匹配。
要选择此选项,请执行以下操作:
在根输入映射器层次结构窗格中,选择场景数据集托普特
.
点击信号名单选按钮。
点击映射到模型按钮箭头,然后单击地图全部.
映射数据时,Simulink根据输入数万博1manbetx据评估输入端口以确定兼容性。根输入端口映射器表使用绿色复选标记、橙色警告三角形或红色错误感叹号反映此兼容性的状态。在本例中,该表显示绿色状态,表示不存在兼容性问题。您可以可以使用此输入数据到输入端口的映射来模拟模型。该映射还设置输入在数据导入/导出“配置参数”对话框的选项卡,以正确的逗号分隔的输入列表。要将更改应用于模型,请在“配置参数”对话框中,单击申请.
模拟sldemo_mdlref_计数器_总线
.
模拟后,从sldemo_mdlref_总线
(外数据
)及sldemo_mdlref_计数器_总线
(内部数据
)显示相同的跟踪。
输入参考模型范围的信号也会被记录。记录的数据可在变量下的MATLAB工作区中获得苏布特
. 您可以验证toput.getElement('OUTERDATA')
和subOut.getElement('INNERDATA')
是一样的。