主要内容

使用总线对象接口规范

这个例子展示了如何传播公共汽车到参考模型。它还显示了如何模拟被引用的模型独立使用父记录信号数据模型。

打开示例模型

开放和模拟模型的例子sldemo_mdlref_bus

检查模型

模型包含一个名为CounterA的模型块,引用sldemo_mdlref_counter_bus,这是一个模型,一个简单的计数器。

公交车的数组名为COUNTERBUS提要数据和计数器的饱和限制到模型中。公共汽车命名COUNTERBUS每个包含两个元素:一个名为LIMITBUS的数据信号和一个嵌套的总线。计算中使用的数据是,LIMITBUS包含上、下极限的计数器值。

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

模型使用一个数据字典文件命名sldemo_mdlref_bus.sldd包含金宝appSimulink.Bus对象定义的元素COUNTERBUS, LIMITBUS, INCREMENTBUS。

查看公共汽车对象,打开汽车编辑器。在仿真软件®将金宝app来发布的建模选项卡,设计画廊,点击公共汽车编辑器

该模型使用公共汽车对象指定的输出总线创造者块如下:

  • COUNTERBUSCreator1

  • COUNTERBUSCreator2

  • LIMITBUSCreator1

  • LIMITBUSCreator2

  • IncrementBusCreator

叫counter_input轮廓尺寸的块sldemo_mdlref_counter_bus指定了公共汽车对象命名COUNTERBUS。双击。在块参数对话框,信号的属性选项卡,数据类型被设置为总线:COUNTERBUS

尺寸的块名叫increment_input同样是配置为使用公共汽车对象命名INCREMENTBUS

测井信号数据

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

  • COUNTERBUS

  • INCREMENTBUS

  • OUTERDATA

  • INNERDATA

模拟模型,记录信号后可在基本工作空间中topOut变量。

topOut = 金宝appSimulink.SimulationData。数据集'topOut' with 4 elements Name BlockPath ____________ ________________________________________ 1 [1x1 Signal] COUNTERBUS sldemo_mdlref_bus/Concatenate 2 [1x1 Signal] OUTERDATA sldemo_mdlref_bus/CounterA 3 [1x1 Signal] INCREMENTBUS sldemo_mdlref_bus/IncrementBusCreator 4 [1x1 Signal] INNERDATA ...erA|sldemo_mdlref_counter_bus/COUNTER - Use braces { } to access, modify, or add elements using index.

该模型使用数据集日志格式信号。访问数据集对于一个给定的信号格式记录数据,使用getElement方法:

topOut.getElement (“COUNTERBUS”)
ans = 金宝appSimulink.SimulationData。信号包:仿真软件。金宝appSimulationData属性:名称:COUNTERBUS PropagatedName:”BlockPath: [1 x1 Simulink.Simulati金宝apponData。BlockPath] PortType:外港的PortIndex: 1值:[2 x1结构)

总线数据记录的MATLAB®结构字段:

topOut.getElement . values (“COUNTERBUS”)
ans = 2 x1结构体数组字段:数据的限制

这个结构包含了MATLABtimeseries为每个总线对象:

topOut.getElement (COUNTERBUS) . values (1) . data
timeseries共同的属性:名称:“数据”时间:把TimeInfo设为[301 x1双]:tsdata。x1 int32 timemetadata数据:[301]DataInfo: tsdata.datametadata
topOut.getElement (COUNTERBUS) . values (2) . data
timeseries共同的属性:名称:“数据”时间:把TimeInfo设为[301 x1双]:tsdata。x1 int32 timemetadata数据:[301]DataInfo: tsdata.datametadata

你还可以使用图记录的数据情节功能:

topOut.getElement (OUTERDATA) .Values.plot ()

日志引用模型的信号

测井信号的参考模型,选择模型块和点击测井信号模型块选项卡。

对于这个模型,日志记录模式被设置为日志中指定的所有信号模型。当模拟记录的所有信号sldemo_mdlref_counter_bus作为一个顶级模特也会被记录,当模拟它作为一个参考模型。更改日志记录的这些信号或记录的一个子集的信号:

  1. 日志记录模式覆盖信号

  2. 模型层次结构窗格中,清除CounterA (sldemo_mdlref_counter_bus)复选框,表明此模型不应使用日志中指定的所有信号模型设置。

  3. 表中,选择信号记录当模拟模型。

  4. 保存更改,保存的模型。

加载数据

打开引用模型sldemo_mdlref_counter_bus作为一个顶级模特通过单击开放的顶级模特左下角的徽章模型块。

引用的模型配置为读取记录的信号数据通过根尺寸块。看到这个配置,配置参数对话框打开。在仿真软件将来金宝app发布,建模选项卡上,单击模型设置。在数据导入/导出选项卡,输入使用逗号分隔列表指定记录的数据topOut两个输入端口。的counter_input港口使用的数组结构timeseries COUNTERBUS加载数据,和increment_input端口使用INCREMENTBUS timeseries加载数据的结构。

  • topOut.getElement (“COUNTERBUS”)

  • topOut.getElement (“INCREMENTBUS”)

您可以配置输入现场通过单击连接输入按钮。根尺寸映射工具打开。在这个例子中,工具使用一个映射算法设置输入工作区字段记录的数据基础。

选择要导入的数据:

  1. 在根尺寸映射器,单击从工作空间

  2. 选择记录的数据topOut并点击好吧

  3. 在打开的对话框中,指定一个文件名,然后单击保存

与数据加载到根尺寸映射器工具,您可以确定根输入端口的分配输入数据。金宝app模型匹配输入数据与输入端口基于这些标准之一:块名称、阻塞道路,信号名称、端口顺序,或一个自定义的算法。因为topOut记录从模型中,使用信号名称映射准则的最佳选择是什么信号的名字。使用这一标准,模型试图匹配输入数据变量名称的金宝app名称输入信号。

选择这个选项:

  1. 在根尺寸映射器层次结构窗格中,选择场景数据集topOut

  2. 单击信号的名字单选按钮。

  3. 单击映射到模型按钮箭头,然后单击映射所有

当映射数据,仿真软件评价输入端口对输入金宝app数据来确定兼容性。根尺寸映射表反映了这种兼容性的状态用一个绿色的复选标记,橙色预警三角形,或红色错误感叹号。在这个例子中,表显示一个绿色的状态指示没有兼容性问题。你可以用这个映射模拟模型的输入数据输入端口。映射还设置输入数据导入/导出选项卡的配置参数对话框来适当的以逗号分隔的输入。将更改应用到模型中,在配置参数对话框中,点击应用

与进口数据模拟模型

模拟sldemo_mdlref_counter_bus

仿真后,范围从sldemo_mdlref_bus(OUTERDATA),sldemo_mdlref_counter_bus(INNERDATA)显示相同的痕迹。

信号范围喂养在参考模型中也记录。记录的数据可在MATLAB下工作空间变量subOut。你可以验证数据topOut.getElement (“OUTERDATA”)subOut.getElement (“INNERDATA”)是相同的。

另请参阅

相关的话题