MATLAB Simulink 综合教程
第一部分:初识 Simulink
1 什么是 Simulink?
Simulink 是 MATLAB 最重要的一个组件,它提供了一个图形化环境,用于建模、仿真和分析多域动态系统。

- 核心思想:你不需要编写复杂的代码,而是通过拖拽模块、连接线来构建系统的方框图,这个方框图直观地代表了系统的数学模型和物理结构。
- 应用领域:
- 控制系统:设计 PID 控制器、分析系统稳定性。
- 信号处理:设计滤波器、分析频谱。
- 通信系统:仿真调制解调、信道编码。
- 电力系统:模拟电机、电网。
- 机械系统:进行多体动力学仿真。
- 汽车/航空航天:设计自动驾驶算法、飞行控制系统。
2 Simulink vs. MATLAB Script
| 特性 | MATLAB Script | Simulink |
|---|---|---|
| 形式 | 文本代码 (.m 文件) |
图形化方框图 (.slx 文件) |
| 优点 | 灵活、高效、适合复杂算法和数据处理 | 直观、易于理解、适合系统级建模和仿真 |
| 缺点 | 不够直观,系统复杂时难以阅读 | 计算开销可能较大,不适合纯数学计算 |
| 关系 | 相辅相成,Simulink 可以调用 MATLAB 函数,MATLAB 可以读取 Simulink 仿真结果进行分析。 |
第二部分:Simulink 环境初探
启动 MATLAB,在命令窗口输入 simulink 并回车,或者点击工具栏上的 Simulink 图标,即可打开 Simulink Library Browser(库浏览器)和一个新的空白模型窗口。
界面主要区域:
-
Simulink Library Browser (库浏览器):
- Simulink:基础库,包含所有核心模块,如 Sources(信号源)、Sinks(接收器)、Math Operations(数学运算)、Continuous(连续系统)等。
- 特定工具箱:如 Control System Toolbox, Signal Processing Toolbox 等,提供更专业的模块。
-
Model Editor (模型编辑器):
(图片来源网络,侵删)- 你在这里构建方框图。
- 包含菜单栏、工具栏、模型画布。
第三部分:创建第一个 Simulink 模型
我们将通过一个简单的例子来走一遍完整流程:生成一个正弦波,并通过一个增益模块将其放大,最后在示波器上显示。
步骤 1:新建模型
- 在 Simulink Library Browser 中,点击
File->New->Model。 - 一个名为
untitled的空白窗口会打开。
步骤 2:查找并添加模块
- 添加正弦波信号源:
- 在库浏览器中,展开
Simulink。 - 点击
Sources(信号源)。 - 找到
Sine Wave模块,用鼠标左键按住并拖拽到模型画布上,然后松开。
- 在库浏览器中,展开
- 添加增益模块:
- 在库浏览器中,展开
Simulink。 - 点击
Math Operations(数学运算)。 - 找到
Gain模块,拖拽到画布上。
- 在库浏览器中,展开
- 添加示波器模块:
- 在库浏览器中,展开
Simulink。 - 点击
Sinks(接收器)。 - 找到
Scope(示波器) 模块,拖拽到画布上。
- 在库浏览器中,展开
步骤 3:连接模块
- 将鼠标指针移动到
Sine Wave模块的输出端口(右侧的>符号),指针会变成十字形。 - 按住鼠标左键,拖拽一条线到
Gain模块的输入端口(左侧的>符号),然后松开,一条连接线就画好了。 - 用同样的方法,连接
Gain模块的输出到Scope模块的输入。
你的模型现在看起来应该像这样:
[Sine Wave] --> [Gain] --> [Scope]
步骤 4:设置模块参数
- 设置增益值:
- 双击
Gain模块。 - 弹出参数对话框,默认增益是
1,将其修改为2。 - 点击
OK。
- 双击
- 设置正弦波参数:
- 双击
Sine Wave模块。 - 你可以设置频率、幅值等参数,我们先保持默认设置。
- 双击
步骤 5:配置仿真参数
- 在模型编辑器的工具栏中,找到并点击
Configuration Parameters按钮(通常看起来像齿轮图标),或者按快捷键Ctrl+E。 - 这会打开一个对话框,在左侧选择
Solver(求解器)。- Simulation time:设置仿真总时长,
Stop time: 10(仿真10秒)。 - Solver type:对于连续系统,选择
Variable-step(变步长)。 - Solver:选择
ode45(一个通用且强大的求解器)。 - 点击
OK。
- Simulation time:设置仿真总时长,
步骤 6:运行仿真
- 在工具栏中,点击绿色的
Run按钮(或按Ctrl+T)。 - 仿真开始,状态栏会显示进度,完成后,会显示 "Simulation completed"。
步骤 7:查看结果
- 双击
Scope模块,打开示波器窗口。 - 你会看到一个窗口,里面有一条曲线,这就是你的正弦波信号。
- 为了更好地观察,可以点击示波器工具栏上的
Settings(望远镜图标),在Time范围中设置10,然后点击OK,现在你应该能看到一个完整的周期(默认频率下,周期为 2π,约 6.28 秒),并且波的幅值是 2(因为增益是 2)。
恭喜!你已经成功创建了并运行了你的第一个 Simulink 模型!
第四部分:核心概念详解
1 模块
- 定义:Simulink 模型的基本构建块,代表一个数学运算、一个系统组件或一个功能。
- 参数:每个模块都有可配置的参数,
Gain模块的增益值。 - 端口:模块与外部连接的接口。
- 输入端口:信号流入的地方(左侧)。
- 输出端口:信号流出的地方(右侧)。
2 信号线
- 定义:连接模块端口,表示信号流动的路径。
- 信号标签:双击信号线可以添加标签,方便识别。
- 分支:按住
Ctrl键,点击信号线并拖拽,可以创建分支,将信号发送到多个模块。
3 求解器
- 定义:Simulink 的“引擎”,负责根据你的模型方程计算出仿真时间步上的系统状态。
- 类型:
- 变步长:根据系统的动态特性自动调整计算步长,在变化剧烈时步长变小,平缓时步长变大,精度和效率平衡得很好。默认推荐。
- 定步长:以固定的步长进行计算,适用于需要确定采样时间的实时应用或代码生成。
4 仿真管理器
- 定义:一个独立的窗口,用于管理多个仿真任务,可以并行运行多个仿真,非常高效。
第五部分:进阶主题与技巧
1 子系统
当模型变得复杂时,可以将相关的模块组合成一个子系统,使模型更整洁、更易于管理。

- 创建子系统:
- 用鼠标框选你想要组合的模块和信号线。
- 右键点击选中的区域,选择
Create Subsystem from Selection。
- 封装子系统:
这是更高级的用法,你可以为子系统创建自定义的对话框、图标和参数,使其看起来像一个独立的“黑匣子”,右键点击子系统,选择
Mask->Create Mask。
2 使用 MATLAB 工作区
- 从工作区导入数据:可以使用
From Workspace模块导入 MATLAB 工作区中的变量作为信号源。
