Simulink

Simulink 大规模建模最佳实践

这些最佳实践涵盖建模模式、工具和流程,经实践证明,能够帮助构建高效、可扩展且易于维护的 Simulink® 模型。具体涵盖的主题有:

  • 组件化与接口
  • 使用 MATLAB® 工程进行协作
  • 数据管理
  • 仿真性能改进

Simulink 大规模建模最佳实践

大规模建模最佳实践:架构与性能

探索构建可扩展 Simulink 模型的方法,涵盖组件化、数据、接口、协作、性能以及易于维护的工作流。

大规模建模通常涉及复杂的闭环系统,其中包括被控对象模型、控制器、多个子系统,有时还有数十万甚至数百万个模块。

常见挑战包括模型可读性差、协作困难、数据管理复杂、仿真缓慢以及维护成本不断增加。

组件化将模型分解为若干可管理的单元,从而提高可读性、测试性、重用性、可维护性和协作性。

基于模型的设计使用可执行模型,在整个工程生命周期中开发、测试、验证和确认复杂系统。

模型架构、组件接口、数据管理、协作工作流和仿真性能。

通过使用模型引用、数据字典、MATLAB 工程、源代码管理和清晰的接口定义。

汽车、航空航天、机器人、工业自动化、能源系统、医疗器械和自主系统。

大型工业模型通常包含数十万个模块,一些企业级模型甚至超出一百万个模块。

可以提高开发效率、仿真效率、协作能力和模型重用性,并减少维护工作量。

建立组件化架构,而不是构建单个一体式模型。

Simulink 组件化最佳实践:模型引用、库和接口

Simulink 组件化:模型引用与接口

使用模型引用、库和子系统构建可扩展的 Simulink 架构,从而提升复用性、协作效率、可测试性和性能。

组件化将大型模型划分为多个较小的可重用组件,各组件之间的接口定义明确。

模型引用支持将独立模型集成到更大的系统中,同时保持单独的开发工作流。

当组件需要独立开发、仿真、测试、重用或加速时,使用模型引用。

库通常用于可重用实用工具,而模型引用支持独立仿真、加速和增量编译。

子系统引用适用于共享组件、Simscape 工作流以及特定 HDL 开发场景。

总线将相关信号组合成一个结构化接口,从而简化大型模型中的连接。

总线可提高可读性、减少图面杂乱,并使接口更易于维护。

总线元素端口简化了对总线内部信号的访问,并降低了对单独 Bus Selector 模块的需求。

不同工程师可以处理单独的组件,而无需不断修改同一个模型文件。

会。组件化架构支持加速模式、增量编译、缓存重用和更快的初始化。

在 Simulink 中使用 MATLAB 工程和 Git 进行协作开发

使用 MATLAB Projects 和 Git 进行 Simulink 协同开发

使用 MATLAB Projects 协作开发 Simulink 模型,涵盖源代码管理、依赖项分析、测试、CI/CD 以及易于维护的工作流。

MATLAB 工程提供环境管理、依赖关系管理、源代码管理集成和协作工具。

工程有助于自动化设置任务、标准化环境并减少手动配置工作。

打开工程会自动配置路径、变量、启动脚本、快捷方式和工程设置。

支持。MATLAB 工程与 Git 集成,并提供用于提交、拉取、推送、比较和合并操作的工具。

依赖关系分析器识别文件、模型、测试、库和数据字典之间的关系。

可以。工程针对被遮蔽的文件、未保存的更改、缺失依赖项和路径冲突发出警告。

工程引用支持一个工程使用并依赖另一个工程,同时保留环境配置。

MATLAB 包含图形化比较工具,可突出显示模型的功能性和非功能性更改。

MATLAB 提供专为 Simulink 文件设计的可视化合并工具。

可以。工程可与 Jenkins、GitHub、GitLab、Azure DevOps 和其他自动化平台配合使用。

可以。工程启动脚本和 API 可以自动化测试、报告和代码生成工作流。

Simulink 数据字典:设计数据管理的最佳实践

Simulink 数据字典:设计数据管理最佳实践

使用数据字典、模型工作区、参量和值类型管理 Simulink 设计数据,实现可扩展、一致的基于模型的设计。

设计数据包括模型使用的参数、信号、数据类型、枚举、总线、别名和配置信息。

Simulink 数据字典是专用的 .sldd 文件,用于将设计数据与模型文件分隔存储。

数据字典有助于更好地组织数据,并增强持久性、变更跟踪、重用和协作能力。

基础工作区是全局的且基于会话,而数据字典提供结构化、持久化的存储。

可以。多个模型可以引用同一个数据字典。

可以。数据字典支持分层引用,从而支持各组织共享通用定义。

模型参量使一个引用模型的不同实例能够使用不同参数值。

值类型定义可重用属性,例如数据类型、单位、范围和维度。

可以逐步迁移。Simulink 支持将数据字典与现有工作区变量结合使用。

可以。它们支持变更跟踪、比较工作流以及与源代码管理系统的集成。

采用分层结构:各组件使用组件级数据字典,通用定义则存放在共享字典中,供各组件引用。

使用快速重启、加速模式和并行计算加速 Simulink 仿真

使用快速重启和并行计算加速 Simulink

通过性能剖析、加速器模式、快速重启、并行计算和架构最佳实践来加速 Simulink 仿真。

性能瓶颈可能源于模型复杂度、求解器设置、架构不合理、数据记录过多或工作流效率低下。

Simulink 探查器、求解器探查工具、性能顾问和仿真元数据。

Simulink 探查器测量模块和子系统的执行时间,以识别缓慢区域。

求解器探查工具可分析求解器行为,识别过零次数过多、求解器频繁重置等问题。

性能顾问自动检查常见性能问题并推荐改进措施。

加速模式为模型执行生成编译代码,从而减少仿真开销。

快速加速模式会生成独立的可执行仿真目标,进一步提升仿真速度。

如果仅更改参数,快速重启可避免在多次仿真运行之间重新编译。

缓存文件存储编译的工件和仿真目标,以便在各仿真会话之间重用。

可以。parsim 工作流使多个仿真能够跨 CPU 内核并发运行。

组件化模型支持增量编译、选择性加速、缓存重用和更快的初始化。

首先使用探查工具找出瓶颈,然后对模型进行组件化,并利用加速模式、启用快速重启、并行运行多个仿真。