主要内容

比较模型组件的功能

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

提示

要根据高级指导方针和用例确定要考虑的组件类型,请参见在模型组件类型中进行选择

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

  • 组件重用

  • 共享数据

  • 特定于编辑

  • 变体

  • 版本控制和配置管理

  • 知识产权保护

  • 单元测试

性能需求
  • 增量式模型加载

  • 构建构件重用

  • 减少了大型模型的内存使用

  • 人工代数环消去

特性
  • 兼容的配置参数设置

  • 接口上的信号属性规范

  • 接口的物理连接

  • 总线规范

  • 状态初始化

  • 条件执行

  • 基于事件的行为

  • 独立的功能

请注意

关于代码生成的注意事项,请参见:

开发过程

建模的要求 子系统 相关子系统 子系统的引用 模型引用
单独的文件

不支持

将子系统保存在与其父文件相同的文件中。

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

支持

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

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

支持

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

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

支持

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

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

组件重用

不支持

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

支持

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

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

支持

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

支持

您可以在多个模型中多次引用相同的模型,而无需创建副本。看到模型重用

共享数据

支持

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

支持

与子系统的行为相同。

支持

与子系统的行为相同。

支持

通过在模型中创建数据存储,您可以在引用模型的实例之间共享数据。看到在引用的模型实例之间共享数据

特定于编辑

支持

子系统副本彼此独立。

支持

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

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

当父库块有限制写访问时,不能禁用库链接。

不支持

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

不支持

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

您可以为引用的模型指定特定于实例的参数值。有关更多信息,请参见参数化可重用引用模型的实例

变体

支持

向a中添加子系统变量不同的子系统变体模型块。

有关更多信息,请参见定义、配置和激活一个变量子系统块中的变量选择

支持

与子系统的行为相同。

支持

与子系统的行为相同。

支持

向a中添加模型变量不同的子系统变体模型块。

有关更多信息,请参见定义、配置和激活一个变量子系统块中的变量选择

版本控制和配置管理

不支持

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

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

支持

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

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

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

支持

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

支持

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

知识产权保护

不支持

使用模型引用代替。

不支持

与子系统的行为相同。

不支持

与子系统的行为相同。

支持

受保护的模型模糊了模型内容,这在分发模型时很有用。

创建受保护的模型需要动态仿真模块®编码器™许可证。有关更多信息,请参见保护模型以隐藏内容(仿真软件编码器)

使用受保护的模型可以需要一个仿真软件编码器许可证。有关更多信息,请参见从第三方引用受保护的模型

单元测试

支持

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

对于非原子的子系统,由于虚拟边界的关系,测试工具可能使用不同的块执行顺序。

有关支持编写、管理和执行系统的、基于仿真的子系统测试的工具,请参见创建测试工具并选择属性(仿真软件测试)

要度量模型组件测试的彻底程度,请参见模型覆盖(仿真软件覆盖)

支持

与子系统的行为相同。

支持

与子系统的行为相同。

支持

您可以独立地测试引用模型,通过将其模拟为顶级模型来隔离行为。

您可以使用MATLAB中的数据定义测试工具®测试载体和直接覆盖收集。

有关支持编写、管理和执行系统的、基于仿真的子系统测试的工具,请参见创建测试工具并选择属性(仿真软件测试)

要度量模型组件测试的彻底程度,请参见模型覆盖(仿真软件覆盖)

性能需求

建模的要求 子系统 相关子系统 子系统的引用 模型引用
增量式模型加载

不支持

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

支持

在编辑、更新图表或模拟模型过程中,Simulink会在需要的地方增量地加载库。

支持

在编辑、更新图表或模拟模型期间,Simulink在所需的点上增量地加载一个引用子系统。

支持

在编辑、更新图表或模拟模型过程中,Simulink会在需要的地方增量地加载一个引用模型。

构建构件重用

不支持

构建工件,例如模拟目标,不是为子系统生成的。

不支持

与子系统的行为相同。

不支持

与子系统的行为相同。

支持

您可以使用Simulink缓存文件共享和重用构建工件,例如模拟目标。有关更多信息,请参见共享Simulink缓存文件以更快的模拟

减少大模型的内存使用

不支持

子系统不会减少模拟和代码生成的内存使用。

不支持

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

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

不支持

子系统引用不会减少模拟和代码生成的内存使用。

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

支持

加速模式下引用的模型减少了模拟和代码生成的内存使用量,因为Simulink会逐步加载它们的编译版本。

人工代数环消去

支持

非原子的子系统避免人工代数循环。

如果子系统是原子的,则可以通过启用子系统块参数最小化代数循环的出现

支持

与子系统的行为相同。

支持

与子系统的行为相同。

支持

您可以尝试通过启用来消除人工代数循环配置参数>模型参考>最小化代数循环的出现

特性

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

支持

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

支持

与子系统的行为相同。

支持

与子系统的行为相同。

支持

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

接口信号属性规范

支持

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

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

支持

与子系统的行为相同。

支持

与子系统的行为相同。

支持

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

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

当被引用模型与采样时间无关时,被引用模型可以继承离散的采样时间。

接口物理连接

支持

可以在子系统接口上指定物理连接。

支持

与子系统的行为相同。

支持

与子系统的行为相同。

不支持

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

总线规范

支持

你可以使用仿真软件。公共汽车对象指定传入子系统的总线的数据类型。

子系统不需要使用公共汽车对象用于虚拟总线。

支持

与子系统的行为相同。

支持

与子系统的行为相同。

支持

你可以使用仿真软件。公共汽车对象,以指定传递到引用模型的总线的数据类型。

的模型引用不需要使用公共汽车对象的虚拟总线在公共汽车元素而且公共汽车元素块。

状态初始化

支持

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

支持

与子系统的行为相同。

支持

与子系统的行为相同。

支持

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

条件执行

支持

子系统支持有条件执行。有关更多信息,请参见有条件执行子系统概述

支持

与子系统的行为相同。

支持

与子系统的行为相同。

支持

引用的模型支持条件执行。有关更多信息,请参见有条件地执行引用模型

基于事件的行为

支持

子系统支持基于事件的行为。有关更多信息,请参见使用Initialize, Reinitialize, Reset和Terminate函数

支持

与子系统的行为相同。

支持

与子系统的行为相同。

支持

引用模型支持基于事件的行为。有关更多信息,请参见使用Initialize, Reinitialize, Reset和Terminate函数

独立的功能

支持

你可以在子系统中定义独立的函数。有关更多信息,请参见动态仿真模块功能概述

支持

与子系统的行为相同。

支持

与子系统的行为相同。

支持

您可以在引用的模型中定义独立的函数。有关更多信息,请参见导出功能模型概述

相关的话题

外部网站

Baidu
map