Simulink

主要功能

  • 图形编辑器,可用于构建和管理具有层次关系的框图
  • 预定义模块库,可用于构建连续时间和离散时间系统模型
  • 仿真引擎,配有固定步长和可变步长 ODE 求解器
  • 通过示波器和数据显示,可以查看仿真结果
  • 项目和数据管理工具,可用于管理模型文件及数据
  • 模型分析工具,可用于优化模型架构以及提高仿真速度
  • MATLAB 函数块,可用于将 MATLAB 算法导入模型中
  • 代码继承工具 (Legacy Code Tool),可用于将 C 和 C++ 代码导入模型中

模型构建

Simulink® 提供了一套预定义模块,加以组合即可创建详细的系统框图。有关层次建模、数据管理和子系统自定义等工具可使您简明而准确地描绘最为复杂的系统。

选择模块

Simulink 库浏览器包含系统建模常用的模块库。其中包括:

  • 连续和离散动态模块,如积分和单位延迟
  • 算法模块,如 Sum(加法)、Product(乘法)和 Lookup Table(查找表)等
  • 结构模块,如 Mux、Switch 和 Bus Selector 等

无论是使用这些模块,还是将手写 MATLAB®、C、Fortran 或 Ada 代码融合到模型时,均可构建自定义函数。

您可以将自定义模块存储在 Simulink 库浏览器内各自的库中。

借助于 Simulink 附加产品,可以加入航空、通信、PID 控制、控制逻辑、信号处理、视频和图像处理以及其他应用的专业化组件。有了附加产品,还可以利用机械、电气和液压组件来构建物理系统模型。

Simulink 库浏览器。
扩大 Simulink 库浏览器。

MATLAB 算法与 Simulink 模型的集成 2:04
使用 MATLAB® Function模块将 MATLAB 代码集成到一个 Simulink® 模型中。

构建和编辑模型

将模块从 Simulink 库浏览器拖入 Simulink 编辑器中即可构建模型。接下来,使用信号线将这些模块连接起来,即可在系统组件之间建立数学关系。您可以在构建模型之际借助图形格式化工具(如智能辅助线和信号线智能布控)来掌控模型的外观。通过以子系统的方式将一组模块和信号封装在单一模块内,便可以添加层次结构。

Simulink 编辑器可用于全面控制模型中的内容和操作。例如,可以将命令和子菜单添加到编辑器和上下文菜单中。还可以使用一个掩码来隐藏子系统内容并为子系统提供自己的图标和参数对话框,以此将自定义接口添加到入子系统或模型中。

Simulink 入门 3:20
构建和仿真模型。

创建和封装子系统 3:09
使用子系统创建层次化和模块化的系统特性。

模型层次结构导览

Simulink 中的资源管理器栏和模型浏览器有助于您在模型中导航。资源管理器栏可指示当前查看的层级,使您得以在层次结构中上、下移动。而模型浏览器为模型提供了一个完整的层次结构树状图,并且像资源管理器栏一样,可用于在各层级间移动。

分层模型遍览 1:46
查看资源管理器栏、选项卡式窗口和模型浏览器如何帮助您浏览层次模型。

管理信号和参数

Simulink 模型既包含含信号也包含参数。信号是由连接模块的线条所表示的时变数据。参数是定义系统动态和行为的系数。

Simulink 可用于确定以下信号和参数属性:

  • 数据类型 — 单精度、双精度、有符号或无符号 8、16 或 32 位整数;布尔类型;枚举类型;或定点类型
  • 维度 — 标量、矢量、矩阵、N-D 或可变大小数组
  • 复杂度 — 实数或复数值
  • 最大和最小范围、初始值和工程单位

如果选择不指定数据属性,Simulink 则会通过传播算法自动予以确定,然后执行一致性检查,确保数据完整性。

这些信号和参数属性可以在模型或者单独的数据字典中加以指定,随后便可以通过模型资源管理器来组织、查看、以及修改和添加数据,而无需遍历整个模型。

显示 Signal Attributes(信号属性)选项卡的模块对话框。
扩大 显示 Signal Attributes(信号属性)选项卡的模块对话框。
Simulink 模型资源管理器。
扩大 Simulink 模型资源管理器。

模型仿真

您可以对系统的动态行为进行仿真,并在运行仿真时查看结果。为确保仿真速度和精度,Simulink 提供了固定步长和可变步长 ODE 求解器、图形化调试器以及模型探查器。

选择求解器

求解器是利用模型中所含的信息来计算系统动态行为的数值积分算法。Simulink 提供的求解器可支持多种系统的仿真,其中包括任何规模的连续时间(模拟)、离散时间(数字)、混杂(混合信号)和多采样率系统。

这些求解器可以对刚性系统以及具有不连续过程的系统进行仿真。您可以指定仿真选项,其中包括求解器的类型和属性、仿真的起始时间和结束时间以及是否加载或保存仿真数据。此外,您还可以设置优化和诊断信息。不同的选项组合可与模型一起保存。

Configuration Parameters dialog box showing the Solver pane.
扩大 Configuration Parameters dialog box showing the Solver pane.

运行仿真

您可以通过 Simulink 编辑器以交互的方式运行仿真,或者通过 MATLAB 命令行按部就班地运行仿真。仿真有以下三种模式:

  • Normal(标准,默认设置),以解释的方式对模型进行仿真
  • Accelerator(加速器),通过创建和执行已编译的目标代码来提高仿真性能,而且在仿真过程中依然能够灵活地更改模型参数
  • Rapid Accelerator(快速加速器),通过创建能够在 Simulink 外部的第二个处理内核上运行的可执行程序,能够比 Accelerator(加速器)模式更快地进行模型仿真

为了缩短运行多个仿真所需的时间,可以在一台多核计算机或计算机集群上并行运行这些仿真。

有关并行运行多个 Simulink 仿真的简介介绍 2:29
使用 parfor 加速运行多个仿真运行。

仿真结果分析

运行仿真后,可以在 MATLAB 和 Simulink 中分析仿真结果。Simulink 含带了多种有助于了解仿真行为的调试工具。

查看仿真结果

使用 Simulink 中提供的显示器和示波器查看信号,可以实现仿真行为可视化。您还可以查看仿真数据检查器内的仿真数据,从中比较来自多次仿真的多组信号。

再者,您还可以使用 MATLAB 构建自定义的 HMI 显示屏,或者将信号记录到 MATLAB 工作区,以便使用 MATLAB 算法以及可视化工具来查看和分析数据。

仿真结果可视化 2:51
使用示波器和查看器直观地查看仿真结果。

调试仿真

Simulink 支持使用仿真步进器 (Simulation Stepper) 进行调试,以便于前后逐步查看示波器上的仿真数据,或检查系统改变状态的方式及时间。

您可以通过 Simulink 调试器以逐个方法来地运行仿真,并检查相应方法的执行结果。在模型仿真过程中,您可以显示有关模块状态、模块输入与输出以及在 Simulink 编辑器中执行模块方法等方面的信息。

仿真回退 1:29
  仿真过程中逐步后退和前进,分析系统行为。

项目管理

Simulink 提供了众多有助于管理与项目相关的文件、组件及大量数据的工具。

管理与项目相关的文件

Simulink Projects 是一款交互式工具,可用于管理项目文件,连接源代码管理软件。Simulink Projects 工具借助以下功能来促进跨团队协作:

  • 查找所有与项目相关的文件
  • 创建多种快捷方式,籍此访问常用操作以及初始化和关闭项目
  • 在修改的文件上加注标记供同事复查
  • 利用 Apache Subversion® (SVN) 这一外部源代码管理工具来共享项目

Simulink Projects 具备与源代码管理、版本控制、软件配置管理 (SCM)、产品生命周期管理 (PLM) 以及应用程序生命周期管理 (ALM) 等工具的连接。您还可以使用 Simulink Projects Source Control SDK 来创建有关其他第三方源代码管理工具的自定义适配器。

Simulink项目与团队协作 1:14
获取Simulink项目与团队协作概要。

构建设计组件

Simulink 可以方便地进行基于组件的建模和模块化设计。您可以将模型分割成若干设计组件,然后分别对每个组件进行建模、仿真和验证。您既可以将组件作为子系统保存在库中,也可以利用模型引用将组件另存为单独的模型。这样一来,团队成员便可以并行使用这些组件。

模型变量和变量子系统)可用于管理同一个模型中的设计变量。这一功能简化了对需要共享组件的相关设计的创建和管理,因为一个模型可代表一个设计系列。

使用模型参考进行标准设计 2:49
探索模型参考对基于组件建模的价值。

使用变量子系统 3:38
使用变量子系统在设计选项间切换。

管理大规模数据

Simulink 提供的总线信号可用于管理模型中的大量信号数据。使用总线信号,可以将多个信号合并到一个对象中,以便于这些信号与另一个模块建立连接。您还可以定义总线阵列,以便在一个包中管理一组总线对象。

模型资源管理器是一款图形化数据字典工具,可以帮助您组织、查看和修改数据,并将数据添加到 Simulink 模型中。使用模型资源管理器可以进行如下操作:

  • 对界面进行自定义,从而仅显示需要查看的数据和属性
  • 控制数据范围,以定义哪些组件可以访问该数据

硬件连接

您可以将 Simulink 模型与硬件相连接,以便实现快速原型开发、硬件在环 (HIL) 仿真和嵌入式系统部署。

在硬件上运行仿真

Simulink 提供了有关在低成本目标硬件上进行模型的原型开发、测试和运行的内置支持,其中包括 Arduino®、LEGO® MINDSTORM® NXT、PandaBoard 和 BeagleBoard。您可以在 Simulink 中设计有关控制系统、机器人、音频处理和计算机视觉应用的算法,并查看其实时执行情况。

您可以借助 Real-Time Windows Target 在 Microsoft® Windows® PC 上实时运行 Simulink 模型,并连接一组 I/O 板来创建和控制实时系统。若要在目标计算机上实时运行模型,可以使用 xPC Target 来实现 HIL 仿真、快速控制原型开发以及其他的实时测试应用程序。请参阅 xPC Target Turnkey,了解可用的目标计算机硬件。

Simulink对目标硬件支持的简介 1:55
Simulink在低成本目标硬件,如Arduino、乐高机器人、树莓派上提供原型、测试和运行模型的内置支持。

Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

生成代码

Simulink 模型经过配置后便可用来生成代码。通过将 Simulink 与附加代码生成产品配合使用,可以直接由模型来生成 C 和 C++、HDLPLC 代码。

咨询 Simulink 专家

来自 Simulink 社区的最新内容