探索模型组件的类型
Simulink® 为您提供了多种将模型组织成组件的方法。不同类型的组件针对不同的要求。
在定义组件时,请考虑这些潜在需求。
文件争用 - 如果每个组件只有一个人处理,那么分段变量可以拥有更大的组件。如果必须在几个人之间共享组件,则应将设计划分为更小的逻辑部分。如果多个人必须编辑同一个文件,请参阅比较报告中的移植或还原模型更改。
可重用性 - 如果您希望在模型中多次使用一组模块,请在可重用组件中定义该组模块。通过避免重复,您可以更轻松地维护模型。要重构具有重复的现有模型,请参阅Refactor Models to Improve Component Reuse (Simulink Check)。
代码生成 - 如果您必须为物理组件(例如数字控制器)生成独立代码,则应该有一个代表物理组件并具有明确定义的接口的组件。
验证成本 - 如果模型的某个部分经常变化并且测试成本很高,则应该将模型的这一部分作为单独文件中的组件进行管理。当组件在单独的文件中定义时,您可以使用工程源代码管理来控制和跟踪更改。有关源代码管理的更多信息,请参阅Configuration Management。
仿真速度 - 对具有不同数值属性的组件使用不同的求解器可以提高仿真速度。类似地,根据采样率对模块进行分组可以提高仿真速度。有关详细信息,请参阅Solver Profiler和Improve Simulation Performance Using Performance Advisor。
建模要求会影响组件的尺寸。例如,少于 500 个模块的模型比较大的模型更容易测试。但是,当引用模型包含超过 500 个模块时,模型层次结构的仿真会更快。
Simulink 组件
不同类型的 Simulink 组件可满足各种建模要求。
建模要求 | 组件类型 | 内容源 | 模型中的实现 | 更多信息 |
---|---|---|---|---|
简化其他组件的模块图 | 子系统 子系统是一组独特的模块,具有动态接口,可以继承其输入和输出的属性。 | 无 - 必须手动将内容添加到每个子系统 | Subsystem 模块 | 将模块组合为子系统 |
存储实用工具和块集 | 链接子系统 链接子系统是存储在库中的 Subsystem 模块的链接实例。如果禁用库链接,则链接模块的每个实例都可以是唯一的。 | 包含父库模块或原型模块的库文件( | 带有库链接的 Subsystem 模块 | 链接模块 |
减少文件争用和合并问题 | 子系统引用 子系统引用是对具有动态接口的可重复使用模块组的引用,该接口可以继承其输入和输出的属性。 | 包含引用子系统的子系统文件( | Subsystem Reference 模块 | Create and Use Referenced Subsystems in Models |
代码重用、单元测试、并行构建和大型组件 | 模型引用 模型引用是对具有定义接口的模型的引用,该接口指定了其输入和输出的属性。 | 包含引用模型的模型文件( | Model 模块 | 模型引用行为和功能 |
多种类型的组件可以满足相同的要求。例如,您可以通过模型引用减少文件争用和合并问题,还可以对子系统进行单元测试。
Simulink 模型可以组合使用这些组件。例如,为了最大限度地减少大型模型的文件争用,您可以将子系统转换为引用的子系统和模型,它们都保存在单独的文件中。
当您将子系统引用或模型引用从库拖到模型中时,它会直接引用定义其内容的子系统文件或模型文件。仅当父库模块直接应用封装时,它才具有库链接。通常,您应该使用模型封装,它们保存在引用的文件中并且不需要库链接。
高级组件选择指南
此流程图为选择组件类型提供了起点。
提示
如果您希望一个子系统能够增长,请将该子系统设为原子子系统,以便该子系统基于功能对模块进行组合。当父模型执行时,原子子系统的行为就像单个模块或原子单元。原子行为是将子系统转换为模型引用所必需的。
该表提供了流程图中的信息,并详细说明了组件类型的选择如何提高在层次结构中多次重用且包含许多模块的组件的性能。
组件使用 | 组件类型 |
---|---|
该组件将需要定义的接口或独立行为。 | 考虑模型参考。 |
该组件将包含足够的模块并被充分重用,以受益于参考模型的加速器模式仿真。 模型层次结构是否受益于参考模型的加速器模式仿真取决于许多因素。对于在加速器模式下仿真的每个参考模型,Simulink 必须构建并编译一个仿真目标。这些目标被重用于引用模型的其他实例,当模型层次结构包含引用模型的许多实例时,这可以加速仿真。如果引用的模型没有改变,则可以重用其仿真目标,该目标存储在 Simulink 缓存文件( | 考虑模型参考。 |
该组件将是一个已发布的实用工具,很少发生变化。 | 考虑一个链接的子系统。 |
该组件将在源代码管理系统中重用或管理,并且不需要定义的接口、受益于模型参考仿真目标或成为已发布的实用工具。 | 考虑子系统引用。 |
该组件将不会在源代码管理系统中被重用或管理。 | 考虑一个子系统。 |
有关何时使用不同组件化方法的概述,请参阅 Simulink 中基于组件的建模(4 分 28 秒)。
建模要求考虑因素
在根据高级指南实施组件之前,请考虑其他建模要求。例如,如果您需要在组件接口处进行物理连接,则必须使用子系统、链接子系统或引用子系统。如果需要属性保护,就必须创建一个受保护的模型,以供参考。
要确定组件是否满足您的建模要求,请参阅比较模型组件的功能。