Main Content

比较模型组件的功能

在使用特定类型的模型组件实现系统的一部分之前,请考虑组件类型是否满足建模要求。

提示

要根据高级规范和用例确定要考虑的组件类型,请参阅Choose Among Types of Model Components

组件考虑事项建模要求
开发过程
  • 单独的文件

  • 组件重用

  • 共享数据

  • 特定于实例的编辑

  • 变体

  • 版本控制和配置管理

  • 保护知识产权

  • 单元测试

性能要求
  • 增量模型加载

  • 编译工件重用

  • 降低大型模型的内存使用量

  • 消除人为代数环

功能
  • 兼容的配置参数设置

  • 接口上的信号属性设定

  • 接口处的物理连接

  • 总线设定

  • 状态初始化

  • 条件执行

  • 基于事件的行为

  • 独立函数

注意

有关代码生成的注意事项,请参阅:

开发过程

建模要求子系统链接子系统子系统引用模型引用
单独的文件

不支持

您将子系统与其父级保存在同一文件中。

要创建或更改子系统,您必须编辑父文件,这可能导致文件争用和合并问题。

支持

将链接模块的父级库模块保存在一个单独的文件中。

使用单独的文件有助于避免文件争用。

支持

将引用子系统保存在一个单独的文件中。

使用单独的文件有助于避免文件争用。

支持

将引用模型保存在一个单独的文件中。

使用单独的文件有助于避免文件争用。

组件重用

不支持

虽然您可以复制子系统以在模型中重用它,但副本是相互独立的。

支持

您可以在多个模型中多次链接到同一父库模块,而无需创建副本。

管理库链接会增加一些开销,例如管理断开的、禁用的或参数化的链接。

支持

您可以在多个模型中多次引用同一个子系统,而无需创建副本。

支持

您可以在多个模型中多次引用同一模型,而无需创建副本。请参阅模型重用

共享数据

支持

通过在组件外部定义数据,可以在各实例之间共享数据。例如,通过使用公共父级子系统中的数据存储。

支持

与子系统行为相同。

支持

与子系统行为相同。

支持

通过在引用模型内创建数据存储,可以在引用模型的各实例之间共享数据。请参阅在引用模型实例之间共享数据

特定于实例的编辑

支持

子系统副本相互独立。

支持

编辑父库模块时,更改将应用于库文件,并传播到链接到该模块的所有模块。

要编辑模块的实例,可以禁用库链接。

当父库模块限制了写访问时,无法禁用库链接。

不支持

编辑引用子系统的一个实例时,更改将应用于子系统文件,并传播到引用子系统的所有其他实例。

不支持

编辑引用模型的一个实例时,更改将应用于模型文件,并传播到引用模型的所有其他实例。

可以为引用模型指定特定于实例的参数值。有关详细信息,请参阅参数化可重用引用模型的实例

变体

支持

将子系统变体添加到 Variant SubsystemVariant Model 模块。

有关详细信息,请参阅在 Variant Subsystem 模块中定义、配置和激活变体选择项

支持

与子系统行为相同。

支持

与子系统行为相同。

支持

将模型变体添加到 Variant SubsystemVariant Model 模块。

有关详细信息,请参阅在 Variant Subsystem 模块中定义、配置和激活变体选择项

版本控制和配置管理

不支持

您不能直接将子系统放在源代码管理系统中。

要减少文件争用并对每个子系统使用单独的版本控制,请使用子系统引用。

支持

您可以将库文件放在源代码管理系统中。

要为每个库模块提供单独的版本控制,请在库中使用子系统引用和模型引用。当您将这些模块从库中拖到模型中时,它们会引用子系统文件或模型文件。

转换表允许您将旧库模块映射到模块的新版本。

支持

您可以将子系统文件放在源代码管理系统中。

支持

您可以将模型文件放在源代码管理系统中。

保护知识产权

不支持

请改用模型引用。

不支持

与子系统行为相同。

不支持

与子系统行为相同。

支持

受保护模型会隐藏模型内容,这在分发模型时非常有用。

创建受保护模型需要 Simulink® Coder™ 许可证。有关详细信息,请参阅保护模型以隐藏内容 (Simulink Coder)

使用受保护模型需要 Simulink Coder 许可证。有关详细信息,请参阅引用来自第三方的受保护模型

单元测试

支持

子系统依赖于它们在模型中的上下文。如果子系统的上下文发生变化,例如输入信号的数据类型,则必须更新相关测试框架。

对于非原子子系统,测试框架可能因虚拟边界而使用不同模块执行顺序。

有关支持编写、管理和执行基于仿真的系统性子系统测试的工具,请参阅Create Test Harnesses and Select Properties (Simulink Test)

要衡量模型组件测试的彻底程度,请参阅Model Coverage (Simulink Coverage)

支持

与子系统行为相同。

支持

与子系统行为相同。

支持

您可以独立测试引用模型,通过将其作为顶层模型进行仿真来隔离行为。

可以将数据定义的测试框架与 MATLAB® 测试向量和直接覆盖率集合结合使用。

有关支持编写、管理和执行基于仿真的系统性子系统测试的工具,请参阅Create Test Harnesses and Select Properties (Simulink Test)

要衡量模型组件测试的彻底程度,请参阅Model Coverage (Simulink Coverage)

性能要求

建模要求子系统链接子系统子系统引用模型引用
增量模型加载

不支持

加载模型会加载保存在模型中的所有子系统内容。

支持

在编辑、更新图或对模型进行仿真的过程中,Simulink 会在所需时间点以增量方式加载库。

支持

在编辑、更新图或对模型进行仿真的过程中,Simulink 会在所需时间点以增量方式加载引用子系统。

支持

在编辑、更新图或对模型进行仿真的过程中,Simulink 会在所需时间点以增量方式加载引用模型。

编译工件重用

不支持

编译工件,例如仿真目标,不是为子系统生成的。

不支持

与子系统行为相同。

不支持

与子系统行为相同。

支持

您可以使用 Simulink 缓存文件共享和重用编译工件,例如仿真目标。有关详细信息,请参阅共享 Simulink 缓存文件以加快仿真速度

降低大型模型的内存使用量

不支持

子系统不会减少仿真和代码生成的内存使用量。

不支持

链接子系统不会减少仿真和代码生成的内存使用量。

Simulink 会在模块更新过程中复制库模块实例。

不支持

子系统引用不会减少仿真和代码生成的内存使用量。

Simulink 在模块更新期间复制子系统引用实例。

支持

加速模式中引用的模型可减少仿真和代码生成的内存使用量,因为 Simulink 以增量方式加载其编译版本。

消除人为代数环

支持

非原子子系统可避免人为代数环。

如果子系统是原子子系统,您可以尝试通过启用 Subsystem 模块参数尽量减少代数环来消除人为代数环。

支持

与子系统行为相同。

支持

与子系统行为相同。

支持

您可以尝试通过启用配置参数 > 模型引用 > 尽量减少出现代数环来消除人为代数环。

功能

建模要求子系统链接子系统子系统引用模型引用
兼容的配置参数设置

支持

子系统使用包含这些子系统的模型的配置参数设置。

支持

与子系统行为相同。

支持

与子系统行为相同。

支持

父模型及其引用模型的配置参数设置通常可能不同。有关兼容性信息,请参阅设置模型层次结构的配置参数

接口上的信号属性设定

支持

您可以在子系统接口上指定信号属性。

对于未指定的信号属性,子系统从其上下文继承信号属性。传播信号属性可能会导致 Simulink 使用您未预料到的信号属性。

支持

与子系统行为相同。

支持

与子系统行为相同。

支持

您必须在引用模型接口上指定大多数信号属性。

引用模型独立于上下文,它们具有定义的边界,因此不会继承大多数信号属性。

当引用模型不依赖于采样时间时,引用模型可以继承离散采样时间。

接口处的物理连接

支持

您可以指定子系统接口处的物理连接。

支持

与子系统行为相同。

支持

与子系统行为相同。

不支持

物理连接必须完全包含在引用模型中。它们不能跨模型接口。

总线设定

支持

您可以使用 Simulink.Bus 对象来指定传入子系统的总线的数据类型。

子系统不要求对虚拟总线使用 Bus 对象。

支持

与子系统行为相同。

支持

与子系统行为相同。

支持

您可以使用 Simulink.Bus 对象来指定传入引用模型的总线的数据类型。

当您使用 In Bus ElementOut Bus Element 模块时,模型引用不要求对虚拟总线使用 Bus 对象。

状态初始化

支持

您可以初始化子系统的状态。

支持

与子系统行为相同。

支持

与子系统行为相同。

支持

您可以使用结构体格式或带时间的结构体格式从顶层模型初始化状态。

条件执行

支持

子系统支持条件执行。有关详细信息,请参阅条件执行子系统概述

支持

与子系统行为相同。

支持

与子系统行为相同。

支持

引用模型支持条件执行。有关详细信息,请参阅Conditionally Execute Referenced Models

基于事件的行为

支持

子系统支持基于事件的行为。有关详细信息,请参阅使用初始化、重新初始化、重置和终止函数

支持

与子系统行为相同。

支持

与子系统行为相同。

支持

引用模型支持基于事件的行为。有关详细信息,请参阅使用初始化、重新初始化、重置和终止函数

独立函数

支持

您可以在子系统中定义独立函数。有关详细信息,请参阅 Simulink Functions Overview

支持

与子系统行为相同。

支持

与子系统行为相同。

支持

您可以在引用模型中定义独立函数。有关详细信息,请参阅导出函数模型概述

相关主题

外部网站