Skip to content

MATLAB - Simulink

Simulink® 是一个基于 MATLAB 的图形化编程环境,用于对多域动态系统进行建模、仿真和分析。其主要界面是一个图形化的框图工具和一套可定制的模块库。它与 MATLAB 环境的其余部分紧密集成,可以驱动 MATLAB 或通过 MATLAB 进行脚本编写。

Simulink 广泛用于自动控制和数字信号处理领域,进行多域仿真和模型化设计(Model-Based Design)。

Simulink 的核心功能包括:

  • 用于构建和管理分层框图的图形编辑器。
  • 用于建模连续时间和离散时间系统的预定义模块库。
  • 用于求解模拟系统行为的微分方程的仿真引擎(求解器)。
  • 用于可视化仿真结果的示波器和数据显示器。
  • 用于组织工作的项目和数据管理工具。

关键附加产品将 Simulink 的功能扩展到特定领域:

  • Stateflow®: 用于使用状态机和流程图对决策逻辑进行建模和仿真。
  • Simscape™: 用于建模和仿真多域物理系统(例如,电气、机械、流体)。
  • Simulink Coder™: 用于从您的模型自动生成 C 和 C++ 代码以用于实时应用程序。
  • Embedded Coder®: 扩展了 Simulink Coder,为生产嵌入式系统提供了高级优化。
  • Simulink Test™: 用于自动化模型的测试、验证和确认。

要打开 Simulink 启动页,请在 MATLAB 命令行窗口中输入以下命令:

simulink

Simulink 启动页将打开。它允许您从模板(如“空白模型”)创建新模型,或打开最近的项目和模型。对于您的第一个模型,请选择“空白模型”并点击“创建模型”。

这将打开一个空的、未命名的模型窗口(例如,untitled.slx)。此窗口是您的画布。您还将看到库浏览器,其中包含可用于构建模型的所有模块。

构建一个简单模型:仿真正弦波

Section titled “构建一个简单模型:仿真正弦波”

Simulink 模型是一个框图。您通过从库浏览器添加模块并用信号线连接它们来构建模型。让我们构建一个生成正弦波并在示波器(Scope)查看器中显示它的模型。

添加模块最有效的方法是双击画布并开始输入模块名称。

  1. 双击空白模型窗口中的任意位置。将出现一个搜索框。
  2. 输入 sine,然后从出现的列表中选择 Sine Wave(正弦波)模块。按 Enter 键。该模块将被添加到您的模型中。
  3. 再次双击画布。输入 scope,然后选择 Scope(示波器)模块。按 Enter 键。

现在您的模型窗口中应该有两个模块:一个“正弦波”模块,它是一个源(它生成信号),以及一个“示波器”模块,它是一个接收器(它显示信号)。

要将信号从源发送到接收器,您需要连接它们。

  1. 将鼠标悬停在“正弦波”模块的右侧,直到出现一个小 > 符号(一个输出端口)。
  2. 点击输出端口。将出现一条蓝线,跟随您的光标。
  3. 将光标移到“示波器”模块的左侧,直到其输入端口 < 被高亮显示。
  4. 点击输入端口以完成连接。现在应该有一根实心箭头连接这两个模块。

箭头表示信号流的方向,从正弦波发生器流向示波器可视化器。

模型完成后,您可以运行仿真。在模型窗口的工具条中,您将看到一个“运行”按钮(一个绿色的播放图标)。

  1. 确保仿真停止时间设置为合理的值,例如 10.0(默认值)。您可以在工具条中更改此设置。
  2. 点击运行按钮。
  3. 仿真将快速运行。要查看输出,请双击示波器模块。

将打开一个名为“Scope”的新窗口,显示正弦波在 0 到 10 秒时间轴上的图形。您可以使用 Scope 窗口中的工具来缩放、平移和测量信号。

  • MATLAB Function 模块: 对于复杂的逻辑,您可以使用 ‘MATLAB Function’ 模块将自己的 MATLAB 代码直接嵌入到 Simulink 模型中。这对于将算法代码与系统级模型结合起来非常强大。
  • Simulink 项目: 对于任何非简单项目,请使用 Simulink 项目(.prj 文件)来管理所有相关文件(模型、脚本、数据)。这有助于路径管理、源代码控制集成以及与他人共享您的工作。
  • 版本控制: 以现代 .slx 格式保存的 Simulink 模型更容易通过 Git 等版本控制系统进行管理。.slx 文件是一个包含 XML 文件的压缩包,这比旧的二进制 .mdl 格式具有更好的差异比较和合并能力。