Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

模型引用接口和边界

Model 模块具有输入、输出和控制端口,这些端口与它所引用模型的根级输入、输出和控制端口相对应。引用模型可以包含 InportOutportIn Bus ElementOut Bus ElementTriggerEnable 模块,用于从父模型获取输入并向父模型提供输出。Model 模块的输入信号必须对引用模型的对应输入模块有效。Model 模块的输出信号是引用模型的根级输出模块信号。

sldemo_mdlref_basic 中,每个 Model 模块有三个输入:两个 Constant 模块和一个 Pulse Generator 模块。每个 Model 模块都有一个输出信号记录到示波器。由于每个 Pulse Generator 模块的输入信号使用不同的采样时间,因此对于每个模型实例,各个 Model 模块的输出信号也各不相同。

为了与父模型建立连接,引用模型 sldemo_mdlref_counter 也包括三个 Inport 模块(upperlowerinput)和一个 Outport 模块 (output)。

要查看每个 Model 模块的输出信号有何不同,您可以使用仿真数据检查器

刷新 Model 模块

刷新 Model 模块会更新其内部表示,以反映对引用模型的接口的更改。例如,当引用模型获得或丢失一个端口时,刷新 Model 模块会更新其端口。

在加载引用模型时,引用它的 Model 模块会自动刷新。如果未加载引用模型,则当您执行诸如以下的操作时,对应的 Model 模块会刷新:

  • 打开父模型

  • 选择 Model 模块

  • 仿真模型层次结构

  • 为模型层次结构生成代码

当您选择 Model 模块时,您可以通过点击 Model Block 选项卡上的 Refresh 按钮箭头,然后点击 Refresh Blocks 来刷新模型层次结构中的所有 Model 模块。

如果需要在 Simulink® 检测到 Model 模块可能与其引用模型不匹配时收到通知,请更改下列诊断配置参数的默认设置:

当模型的这些配置参数设置为 “error” 时,该模型中的 Model 模块不会自动刷新。要在这些配置参数设置为 “error” 时刷新 Model 模块,请执行以下操作:

信号传播

引用模型中的信号属性独立于 Model 模块的上下文。例如,信号维度和数据类型不会跨 Model 模块边界传播。要在引用模型中定义信号属性,请为根级 InportIn Bus Element 模块定义模块参数。

对于连接到 Outport 模块以从引用模型传播到父模型的信号,信号名称必须显式出现在信号线上。

对于跨模型引用边界的虚拟总线,请使用 In Bus ElementOut Bus Element 模块。

对于跨模型引用边界的非虚拟总线,请使用 InportOutport 模块,这些模块指定与父模型中的相关总线相同的总线对象。请参阅模型接口上的非虚拟总线

有关使用总线的模型层次结构的示例,请参阅 sldemo_mdlref_bus

引用模型只能输入或输出用户定义的定点数据类型或者由 Simulink.DataTypeSimulink.Bus 对象定义的数据类型。

引用模型中的信号记录

在引用模型中,您可以对配置为信号记录的任何信号进行记录。使用 Signal Logging Selector 选择模型层次结构中配置为信号记录的部分或所有信号。有关详细信息,请参阅Override Signal Logging Settings

您可以使用仿真数据检查器来查看和分析在引用模型中记录的信号。您可以在多个绘图上查看信号、缩放和使用数据游标来理解和计算数据。此外,您可以比较来自多个仿真的信号数据。有关查看引用模型中信号的示例,请参阅Viewing Signals in Model Reference Instances

采样时间要求

连接到引用模型根级输入或输出模块的第一个非虚拟模块必须与相关端口具有相同的采样时间。如果采样时间不同,请使用 Rate Transition 模块来匹配输入和输出采样时间,如下图所示。

在引用模型实例之间共享数据

默认情况下,每个 Model 模块实例分别读写模型中不同的信号和模块状态副本。因此,实例之间不会通过共享信号或状态数据进行交互。

要在所有实例之间共享一段数据(例如,累加器或故障指示器),可将数据建模为数据存储。

  • 要限制数据访问,从而只允许引用模型中的模块读取和写入数据,请在模型中使用 Data Store Memory 模块并选择 Share across model instances 参数。有关示例,请参阅Share Data Store Between Instances of a Reusable Algorithm

  • 要允许对引用模型之外的数据进行访问,请使用全局数据存储,它是基础工作区或数据字典中的 Simulink.Signal 对象。引用模型之外的数据可以位于父模型或在其他引用模型之中。

有关数据存储的详细信息,请参阅通过创建数据存储对全局数据建模

另请参阅

模块

相关主题