MATLAB - Simulink
MATLAB - Simulink 模型化设计入门
Section titled “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 入门
Section titled “Simulink 入门”要打开 Simulink 启动页,请在 MATLAB 命令行窗口中输入以下命令:
simulinkSimulink 启动页将打开。它允许您从模板(如“空白模型”)创建新模型,或打开最近的项目和模型。对于您的第一个模型,请选择“空白模型”并点击“创建模型”。
这将打开一个空的、未命名的模型窗口(例如,untitled.slx)。此窗口是您的画布。您还将看到库浏览器,其中包含可用于构建模型的所有模块。
构建一个简单模型:仿真正弦波
Section titled “构建一个简单模型:仿真正弦波”Simulink 模型是一个框图。您通过从库浏览器添加模块并用信号线连接它们来构建模型。让我们构建一个生成正弦波并在示波器(Scope)查看器中显示它的模型。
步骤 1:向模型添加模块
Section titled “步骤 1:向模型添加模块”添加模块最有效的方法是双击画布并开始输入模块名称。
- 双击空白模型窗口中的任意位置。将出现一个搜索框。
- 输入
sine,然后从出现的列表中选择 Sine Wave(正弦波)模块。按 Enter 键。该模块将被添加到您的模型中。 - 再次双击画布。输入
scope,然后选择 Scope(示波器)模块。按 Enter 键。
现在您的模型窗口中应该有两个模块:一个“正弦波”模块,它是一个源(它生成信号),以及一个“示波器”模块,它是一个接收器(它显示信号)。
步骤 2:连接模块
Section titled “步骤 2:连接模块”要将信号从源发送到接收器,您需要连接它们。
- 将鼠标悬停在“正弦波”模块的右侧,直到出现一个小
>符号(一个输出端口)。 - 点击输出端口。将出现一条蓝线,跟随您的光标。
- 将光标移到“示波器”模块的左侧,直到其输入端口
<被高亮显示。 - 点击输入端口以完成连接。现在应该有一根实心箭头连接这两个模块。
箭头表示信号流的方向,从正弦波发生器流向示波器可视化器。
步骤 3:运行仿真
Section titled “步骤 3:运行仿真”模型完成后,您可以运行仿真。在模型窗口的工具条中,您将看到一个“运行”按钮(一个绿色的播放图标)。
- 确保仿真停止时间设置为合理的值,例如
10.0(默认值)。您可以在工具条中更改此设置。 - 点击运行按钮。
- 仿真将快速运行。要查看输出,请双击示波器模块。
将打开一个名为“Scope”的新窗口,显示正弦波在 0 到 10 秒时间轴上的图形。您可以使用 Scope 窗口中的工具来缩放、平移和测量信号。
现代开发实践
Section titled “现代开发实践”- MATLAB Function 模块: 对于复杂的逻辑,您可以使用 ‘MATLAB Function’ 模块将自己的 MATLAB 代码直接嵌入到 Simulink 模型中。这对于将算法代码与系统级模型结合起来非常强大。
- Simulink 项目: 对于任何非简单项目,请使用 Simulink 项目(
.prj文件)来管理所有相关文件(模型、脚本、数据)。这有助于路径管理、源代码控制集成以及与他人共享您的工作。 - 版本控制: 以现代
.slx格式保存的 Simulink 模型更容易通过 Git 等版本控制系统进行管理。.slx文件是一个包含 XML 文件的压缩包,这比旧的二进制.mdl格式具有更好的差异比较和合并能力。