主要内容

Simulink 中基于组件的建模

基于组件的建模有助于组织开发由许多功能部件组成的 Simulink® 模型。您创建的每个 Simulink 组件均为您设计的一个部件,它们都有接口,便于系统或较大组件的整合。有用的组件具有明确定义的范围,执行由需求定义的功能,并构成较大系统的一部分。

使用组件能够:

  • 实现基于团队的开发 - 通过明确定义的接口,减少文件争用并独立创建组件。

  • 降低设计复杂度 - 每个组件解决一个较小问题。

  • 支持重用 - 在一个工程内和跨多个工程重用算法和环境模型。

  • 支持单元测试 - 避免重复测试没有变化的组件,降低验证成本。

  • 实现规模化性能优势 - 减少内存使用以及加载和仿真模型所需的时间。

  • 支持变体 - 在组件的多个实现中进行选择。

  • 实现知识产权保护 - 限制您与第三方共享组件的功能和内容的可见性。

要将您现有的 Simulink 组件、使用第三方工具创建的组件以及您的 MATLAB®、C/C++ 或 Python® 代码集成到 Simulink 中,请参阅Choose Tools to Integrate Existing Components and MATLAB, C/C++, or Python Code into Simulink

是否应创建 Simulink 组件?

考虑到定义和管理组件所需的工作,仅当收益大于成本时,才应使用基于组件的建模。

将一个现有 Simulink 模型分成几个组件类似于将一大段代码(C、Java® 或 MATLAB 代码)分解成多个函数。如果设计最初不是模块化的,转换为基于模块的设计可能需要大量工作和大量修改。

预先考虑模型的可扩展性和潜在需求,可以更轻松地将一个 Simulink 模型分成多个组件。预先确定组件可以帮助您避免下列困难:

  • 组件定义不佳 - 随着时间的推移,子系统的范围可能无法满足组件需求。例如,它们可能包含太多或太少的功能,从而无法重用,无法生成与旧功能集成的代码,也无法支持硬件在环测试。

  • 合并冲突 - 如果模型原先是针对单一工程师开发而设计的,那么后续的工程师加入开发的初期,可能会经历非常耗时且容易出错的合并过程。

  • 人为代数环 - 如果一个工程师自下而上地开发模型,随着模型复杂度的增加,他可能会将各个模块分组到不同子系统中。模型中的子系统可能只是图形层面的分组,对模型执行没有实质影响。当您将这些子系统作为原子子系统或将它们转换为引用模型时,可能会引入难以诊断和解决的人为代数环。

当设计变得过于复杂以至于一个人无法管理所有细节时,组件也很有用。例如,复杂模型可以是具有以下特性的模型:

  • 数千个模块

  • 数百项逻辑决策

  • 相同功能的多种不同配置

工程和源代码管理可以帮助您管理组件。有关详细信息,请参阅What Are MATLAB Projects in Simulink?Configuration Management

要在使用 Simulink 组件实现功能之前设计系统架构,请参阅使用架构模型构建和分析系统 (System Composer)

定义 Simulink 组件

1.探索模型组件的类型

确定符合您的高级建模要求的 Simulink 组件。

2.比较模型组件的功能调查哪些类型的 Simulink 组件满足您的低级建模要求。
3.Define Interfaces and Manage Data of Simulink Components在接口上配置设计属性,并管理 Simulink 组件的数据。