2. MATLAB/Simulink 基础:环境搭建、模块库与基本仿真操作

好,咱们正式开始动手了。这一章我带你搭好 Simulink 的台子,把工具箱摆顺,再跑通第一个仿真。别小看这些基础操作——我在项目里见过太多人因为环境没配好,debug 花了两天,结果发现是库没装全。嗯,咱们别走那个弯路。

2.1 环境搭建:别让工具卡住你

安装 MATLAB 时,很多人直接点“下一步”就完事了。我建议你多花 5 分钟,把下面几个组件勾上:

  • Simulink —— 核心平台,必选
  • Simscape Electrical —— 电机、逆变器、电源的物理模型库
  • Signal Processing Toolbox —— 信号滤波、FFT 分析
  • Control System Toolbox —— 传递函数、PID 整定
我的习惯:装完第一件事,在命令行敲 ver 看一眼版本。不同版本对某些模块的命名有差异,比如 R2020a 之后的“Power Electronics”库改过路径。提前确认,省得后面报错时抓瞎。

启动 Simulink 有两种方式:

% 方式一:命令行
>> simulink

% 方式二:点击 MATLAB 主页上的 Simulink 图标

我个人更喜欢命令行,快。启动后你会看到 Simulink Start Page,别急着关——这里能直接搜模板。比如搜“PMSM”就能找到永磁同步电机的 demo,我当年就是靠拆解这些 demo 入的门。

2.2 模块库:你的工具箱长什么样

Simulink 的模块库(Library Browser)就像工程师的工具墙。快捷键 Ctrl+Shift+L 能快速调出。我按电机控制项目的使用频率,给你排个优先级:

库名 常用模块 我的使用频率
Simulink / Sources Step、Sine Wave、Constant、Pulse Generator 极高
Simulink / Sinks Scope、To Workspace、Display 极高
Simulink / Math Operations Gain、Sum、Product、Trigonometric Function 高
Simulink / Continuous Integrator、Derivative、Transfer Fcn 高
Simscape / Electrical PMSM、Induction Motor、IGBT、Diode 中高
Simulink / Signal Routing Mux、Demux、Bus Creator、Switch 中
避坑指南:我曾经在 Simscape Electrical 里拖了一个“Ideal Torque Source”,仿真跑出来转速死活不对。后来发现它默认是恒转矩模式,跟实际电机特性差很远。所以,物理模型尽量用 PMSM 或 Induction Motor 这种具体器件,别偷懒用理想源。

2.3 基本仿真操作:跑通第一个模型

光看不练假把式。咱们搭一个最简单的模型:给电机一个阶跃转速指令,看它怎么响应。

2.3.1 新建模型与连线

  1. 点击 New Model(或 Ctrl+N)
  2. 从 Library Browser 拖入:Step(Sources)、Transfer Fcn(Continuous)、Scope(Sinks)
  3. 连线:鼠标左键点住输出端口拖到输入端口

连线时有个小技巧:按住 Shift 再拖,能画出直角拐线。我刚开始做电机控制仿真时,线总是歪歪扭扭的,后来发现这个快捷键,模型瞬间整洁多了。

2.3.2 参数设置

双击每个模块,设置参数:

  • Step:Step time = 0.1,Initial value = 0,Final value = 1000(模拟 1000 rpm 的转速指令)
  • Transfer Fcn:Numerator = [1],Denominator = [0.1 1](一阶低通,模拟电机响应惯性)
注意:传递函数的系数要写成行向量,用方括号括起来。我见过有人写成 0.1 1 不带括号,Simulink 直接报错。另外,分母的阶次必须大于等于分子,否则模型是非因果的,仿真跑不起来。

2.3.3 运行与观察

点击工具栏的绿色 Run 按钮(或 Ctrl+T)。双击 Scope 看波形——你应该看到一条从 0 开始、在 0.1 秒后逐渐上升到 1000 的曲线。

为什么会这样?因为 Step 在 0.1 秒跳变,Transfer Fcn 把它平滑了。这就是电机控制里最基础的“指令-响应”关系。你想想看,实际电机收到转速指令后,也是这么个爬升过程,只是时间常数更小、响应更快。

2.4 知识体系总览

下面这张图把本章的核心逻辑串起来了。我建议你保存下来,后面几章会反复用到这些概念。

Simulink 电机控制仿真基础框架 Simulink 电机控制仿真基础框架 环境搭建 模块库 基本操作 安装组件 Simulink + Simscape Sources / Sinks Math / Continuous 新建模型 连线 + 参数设置 运行仿真 → 观察波形 → 验证模型 输出:阶跃响应曲线 💡 核心逻辑 环境 → 工具 → 操作 → 验证

2.5 仿真参数:别让默认值坑了你

很多人直接点 Run,结果仿真时间太短、步长太大,波形根本看不清楚。我建议你养成一个习惯:每次新建模型,先按 Ctrl+E 打开 Configuration Parameters,改三个地方:

  • Stop time:根据你的系统响应时间设。电机转速响应一般在 0.1~1 秒,我通常设 2 秒,留够余量。
  • Solver:电机控制用 ode45(变步长)或 ode4(定步长)。如果模型里有开关器件(IGBT、MOSFET),必须用定步长,步长设 1e-6 到 1e-5 秒。
  • Max step size:变步长时,设一个上限,比如 1e-3。否则 solver 可能在信号跳变时“跨过去”,导致波形失真。
我的经验:第一次跑仿真,把 Scope 的“History”里的数据点数设大一点(比如 50000),这样放大波形时不会丢失细节。我曾经因为点数不够,以为系统有振荡,debug 了两天,结果只是采样率太低。

2.6 保存与版本管理

Simulink 模型默认是 .slx 格式(二进制),也可以用 .mdl(文本格式)。我建议你:

  • 每个模型单独一个文件夹
  • 文件名带日期或版本号,比如 PMSM_control_v2_1.slx
  • 关键模型用 Save As 备份,别只依赖 Ctrl+S

嗯,这一章的内容就这些。环境搭好了,库认识了,第一个仿真也跑通了。后面几章咱们会在这个基础上,一步步把电机控制模型搭起来。你先把今天的内容练熟,尤其是那个阶跃响应模型——多改改参数,看看波形怎么变,手感就出来了。