Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

Model

引用另一个模型来创建模型层次结构

  • 库:
  • Simulink / Ports & Subsystems

    HDL Coder / Ports & Subsystems

  • Model block

描述

Model 模块引用指定的模型。该模块显示与引用模型顶层输入和输出端口对应的输入和输出端口。这些端口可将引用模型连接到父模型中的其他模块。

要确定 Model 模块是否比另一个具有类似功能的模块更适合您的目标,请参阅Choose Among Types of Model Components比较模型组件的功能

有关如何引用包含 Model 模块的模型的说明,请参阅引用现有模型

默认情况下,Model 模块显示引用模型内容的表示。有关详细信息,请参阅预览模型组件的内容。要查看引用模型的内容,请双击 Model 模块。

如果您拥有 Simulink® Coder™ 许可证,您可以通过保护模型来隐藏引用模型的实现细节。要保护模型,请参阅保护模型以隐藏内容 (Simulink Coder)。要引用受保护模型,请参阅引用来自第三方的受保护模型

端口

输入

全部展开

Model 模块针对它引用的模型的每个输入端口都有一个对应的输入端口。引用模型的输入端口由 InportIn Bus Element 模块定义。Model 模块端口的名称与引用模型中对应端口的名称相匹配。每个 Model 模块端口的输入信号、消息或函数调用必须对引用模型中的对应端口有效。有关详细信息,请参阅模型引用接口和边界

提示

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

  • 连接到输入端口的函数调用会传入引用模型中。要根据函数调用有条件地执行引用模型,请参阅函数调用

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus | image
复数支持:

输出

全部展开

Model 模块针对它引用的模型的每个输出端口都有一个对应的输出端口。引用模型的输出端口由 OutportOut Bus Element 模块定义。Model 模块上端口的名称与引用模型中对应端口的名称相匹配。Model 模块的输出信号和消息是连接到引用模型中的 OutportOut Bus Element 模块的信号和消息。请参阅模型引用接口和边界

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus | image
复数支持:

控制

全部展开

条件执行

使能端口显示在 Model 模块的顶部。端口标签是表示使能信号的图标。

Enable port on Model block

连接到端口的控制信号确定何时执行引用模型。有关详细信息,请参阅Conditionally Execute Referenced Models

依存关系

要使能此端口,请将 Enable 模块添加到引用模型的顶层。

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point

触发端口显示在 Model 模块的顶部。端口标签是表示触发信号的图标。

Trigger port on Model block

连接到端口的控制信号确定何时执行引用模型。有关详细信息,请参阅Conditionally Execute Referenced Models

依存关系

要启用此端口,请将 Trigger 模块添加到引用模型的顶层,并将其触发器类型设置为“上升沿”、“下降沿”或“任一沿”。

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point

函数调用端口显示在 Model 模块的顶部。端口标签将引用模型的名称显示为函数。

Function-call port on Model block

连接到端口的函数调用控制信号确定何时执行引用模型。有关详细信息,请参阅Conditionally Execute Referenced Models

依存关系

要启用此端口,请将 Trigger 模块添加到引用模型的顶层,并将其触发器类型设置为“函数调用”。

模型事件仿真

初始化事件端口提供触发模型初始化事件的函数调用控制信号,该事件会初始化引用模型的状态。

引用模型可以包含一个对应于模型初始化事件的 Initialize Function 模块。有关详细信息,请参阅使用初始化、重新初始化、重置和终止函数

依存关系

要启用此端口,请选择显示模型初始化端口

重置事件端口提供触发模型重置事件的函数调用控制信号,该事件会重置引用模型的状态。

对于每个模型重置事件,引用模型必须包含一个对应的 Reset Function 模块。有关详细信息,请参阅使用初始化、重新初始化、重置和终止函数

要指定端口名称,请使用 Reset Function 模块中 Event Listener 模块的事件名称参数。

依存关系

要启用这种类型的端口,请选择显示模型重置端口

重新初始化事件端口提供触发模型重新初始化事件的函数调用控制信号,该事件会重新初始化引用模型的状态。

对于每个模型重新初始化事件,引用模型必须包含一个对应的 Reinitialize Function 模块。有关详细信息,请参阅使用初始化、重新初始化、重置和终止函数

要指定端口名称,请使用 Reinitialize Function 模块中 Event Listener 模块的事件名称参数。

依存关系

要启用这种类型的端口,请选择 显示模型重新初始化端口, Show model reinitialize ports显示模型重新初始化端口Show model reinitialize ports

终止事件端口提供触发模型终止事件的函数调用控制信号,该事件会读取并保存引用模型的状态。

引用模型可以包含一个对应于模型终止事件的 Terminate Function 模块。有关详细信息,请参阅使用初始化、重新初始化、重置和终止函数

依存关系

要启用此端口,请选择显示模型终止端口

周期性事件端口提供指定何时执行模型的函数调用控制信号。有关示例,请参阅Test Rate-Based Model Simulation Using Function-Call Generators

每个端口标签显示关于周期性事件的信息,例如对应的 Inport 模块的采样时间。例如,此图像中的 Model 模块显示周期性事件端口并引用一个具有以下两个离散速率的模型:0.01 和 0.1。

A Model block has ports labeled D1[0.01] and D2[0.1].

依存关系

要启用这种类型的端口,请将速率调度方式设置为“端口”。

参数

全部展开

要以交互方式修改 Model 模块参数,请选择 Model 模块。然后,在 Simulink 工具条的模型模块选项卡上,点击模块参数

常设

指定 Model 模块的基本信息。

指定引用模型的文件名。文件名必须为模型的有效 MATLAB® 标识符,如模型名称中所定义。文件扩展名是可选的。

要选择要引用的模型,请点击浏览。要查看指定的模型,请点击打开模型

编程用法

您可以用不同格式查询引用模型的名称:

  • ModelFile - 带文件扩展名的模型名称。如果不指定文件扩展名,则由 Simulink 在 MATLAB 路径中找到的第一个匹配项确定文件扩展名。

  • ModelNameDialog - 带或不带文件扩展名的模型名称,具体取决于您是否指定了文件扩展名。

  • ModelName - 不带文件扩展名的模型名称。如果为 ModelName 指定带文件扩展名的模型名称,则 Simulink 通过设置 ModelNameDialogModelFile 来保留文件扩展名。

参数ModelNameDialog
类型:字符向量
'' | '<filename>'
默认值''

指定 Model 模块的仿真模式。Model 模块的仿真模式可以不同于其引用模型和模型层次结构中的其他模型的仿真模式。

  • 加速” - 为引用模型创建 MEX 文件,然后通过运行 S-Function 执行引用模型。

  • 普通” - 以解释方式执行引用模型,就像引用模型是在父模型中直接实现的原子子系统一样。

  • 软件在环(SIL)” - 此选项需要 Embedded Coder® 许可证。根据代码接口参数设置生成生产代码。代码针对主机平台编译并在主机平台上执行。

  • 处理器在环(PIL)” - 此选项需要 Embedded Coder 许可证。根据代码接口参数设置生成生产代码。此代码针对目标平台编译并在目标平台上执行。对于主机与目标之间的数据交换,软件提供了目标连接 API 实现,支持在 PIL 仿真的每个时间步进行此类数据交换。

Model 模块的四个角指示 Model 模块的仿真模式。对于普通模式,四个角为空心三角形。对于加速模式,四个角为实心三角形。对于 SIL 和 PIL 模式,四个角为实心三角形,且模块图标上显示有 (SIL)(PIL) 字样。

虽然您可以为模型指定任何仿真模式,但当您引用该模型时,Model 模块会指定引用模型实例的仿真模式。父模型的仿真模式可以覆盖 Model 模块的仿真模式。

有关详细信息,请参阅为模型层次结构选择仿真模式

编程用法

参数SimulationMode
类型:字符向量
'Normal' | 'Accelerator' | 'Software-in-the-loop' | 'Processor-in-the-loop'
默认值'Normal'

指定是从顶层模型还是从引用模型为 SIL 和 PIL 仿真模式生成代码。要将生成的代码部署为使用引用模型的较大应用程序的一部分,请指定“模型引用”。要将生成的代码部署为独立应用程序,请指定“顶层模型”。

  • 模型引用” - 代码是作为模型层次结构的一部分从引用模型生成的。代码生成使用 slbuild('model', 'ModelReferenceCoderTarget') 命令。

  • 顶层模型” - 代码是使用独立的代码接口从顶层模型生成的。代码生成使用 slbuild('model') 命令。

依存关系

要启用此参数,请将仿真模式设置为“软件在环(SIL)” 或“处理器在环(PIL)”。

编程用法

参数: CodeInterface
类型:字符向量
值:'Model reference' | 'Top model'
默认值:'Model reference'

模型事件仿真

控制引用模型何时执行并更改状态。

选中此参数可显示初始化事件端口。清除此参数可删除该端口。

依存关系

要启用此参数,请引用未配置为条件执行的模型。

编程用法

模块参数:ShowModelInitializePort
类型:字符向量
值:'off' | 'on'
默认值:'off'

选中此参数可显示重新初始化事件端口。清除此参数可删除这些端口。

依存关系

要启用此参数,请引用未配置为条件执行且包含 Reinitialize Function 模块的模型。

编程用法

模块参数:ShowModelReinitializePorts
类型:字符向量
值:'off' | 'on'
默认值:'off'

选中此参数可显示重置事件端口。清除此参数可删除这些端口。

依存关系

要启用此参数,请引用未配置为条件执行且包含 Reset Function 模块的模型。

编程用法

模块参数:ShowModelResetPorts
类型:字符向量
值:'off' | 'on'
默认值:'off'

选中此参数可显示终止事件端口。清除此参数可删除该端口。

依存关系

要启用此参数,请引用未配置为条件执行的模型。然后,选择显示模型初始化端口

编程用法

模块参数:ShowModelTerminatePort
类型:字符向量
值:'off' | 'on'
默认值:'off'

用周期性事件控制引用模型的执行。

根据速率调度方式参数的值,选择此参数将显示 Model 模块上的周期性事件端口,或创建分区以与调度编辑器结合使用。当速率调度方式参数不可见时,将应用其默认值(“端口”)。

清除此参数会隐藏周期性事件端口并且不会创建分区。

依存关系

要启用此参数,请引用一个具有离散采样时间的模型,该模型未配置为条件执行且不是导出函数模型。如果父模型是基于速率的模型,而引用模型是导出函数模型,则会自动选择调度速率

编程用法

模块参数:ScheduleRates
类型:字符向量
值:'off' | 'on'
默认值:'off'

创建端口或分区。

  • 端口” - 显示引用模型中离散速率的周期性事件端口。

    要手动指定端口速率,请使用 set_param 函数将 Model 模块的 AutoFillPortDiscreteRates 参数设置为 'off'。然后,使用 PortDiscreteRates 参数指定端口速率。

  • 调度编辑器” - 为引用模型创建分区以便与调度编辑器结合使用。

依存关系

要启用此参数,请进行如下设置:

编程用法

模块参数:ScheduleRatesWith
类型:字符向量
值:'Ports' | 'ScheduleEditor'
默认值'Ports'

实例参数

为模型参数指定特定于实例的值。

显示实例参数并指定特定于实例的值。实例参数是已在引用模型中进行配置、用于对模型的每个实例使用不同值的模块参数。

要指定特定于实例的值,请使用表中的列。要指定参数值可以被父模型覆盖,请选中参数复选框。有关在引用模型中配置实例参数以及在 Model 模块中指定特定于实例的值的详细信息,请参阅 参数化可重用引用模型的实例

更改特定于实例的值时,可以使用非完全结构体,该结构体的字段仅对应于您希望更改其值的实例参数。不包含在此非完全结构体中的实例参数保持其值不变。在结构体中包含实例参数名称和值,指定为字符向量。

编程用法

模块参数ParameterArgumentValues
类型:结构体
值:结构体
默认值:不包含字段的结构体
模块参数:InstanceParameters
类型:结构体数组
值:包含下列字段的结构体:NameValuePathArgument

求解器

为模型参数指定局部求解器特定值。有关如何使用此功能的更多详细信息,请参阅Use local solver when referencing model

指定如何处理信号。如果您选择“自动”,Simulink 会根据您选择的求解器选择输入处理。“自动”将数值补偿应用于局部求解器,以改进顶层求解器和局部求解器之间的数据交换。“零阶保持”不会这样做。

编程用法

模块参数:InputSignalHandling
类型:字符向量
值:'Use solver interpolant' | 'Zero-order hold'
默认值:'Use solver interpolant'

指定如何处理输出信号。如果您选择“使用求解器插值”,Simulink 会根据您选择的求解器选择输出处理。

编程用法

模块参数OutputSignalHandling
类型:字符向量
值:'Auto' | 'Zero-order Hold'
默认值:'Auto'

使用此参数设置 求解器窗格 中的求解器配置参数。

依存关系

此参数仅在选择定步长求解器时有效。

使用此参数设置 求解器窗格 中的固定步长(基础采样时间) 配置参数。

依存关系

此参数仅在选择定步长求解器时有效。

模块特性

数据类型

Booleana | busa | doublea | enumerateda | fixed pointa | halfa | integera | singlea | stringa

直接馈通

多维信号

有限a

可变大小信号

有限a

过零检测

a 实际支持的数据类型或功能取决于模块实施。

提示

要以编程方式确定 Model 模块是否引用受保护模型,请使用 get_param 函数查询 Model 模块的只读 ProtectedModel 参数。如果引用模型为受保护模型,函数将返回 'on'。如果引用模型不是受保护模型,函数将返回 'off'

扩展功能

版本历史记录

在 R2006a 之前推出

全部展开