2. Simulink基础入门:界面、模块库、信号线与子系统
好,咱们正式开始动手了。
上一章我们把无人机仿真环境的大致轮廓聊了一遍。这一章,咱们得把吃饭的家伙——Simulink,好好捋一遍。你可能会觉得,界面有啥好讲的?不就是拖拖拽拽嘛。嗯,我刚开始也这么想,结果第一次做复杂模型时,光找模块就找了半小时,信号线连得跟蜘蛛网似的,最后自己都看不懂。
所以,这一章咱们不讲虚的。我带你快速过一遍Simulink的核心操作,重点放在那些你真正会用到的功能上。说白了,就是让你能立刻上手,搭出第一个能跑的模型。
2.1 Simulink界面:别被密密麻麻的按钮吓到
打开Simulink,第一眼看到的东西确实多。但别慌,你只需要关注三个区域:
- 工具栏(Toolstrip):最上面那一排。常用的就几个:新建模型、打开库浏览器、运行、停止。其他的,用到再找。
- 库浏览器(Library Browser):左边侧边栏,或者按
Ctrl+Shift+L调出来。这是你的“零件仓库”。 - 模型画布(Canvas):中间那块大白板。你的所有模块、连线、子系统,都在这里画。
我个人习惯,一上来先把库浏览器钉在左边。这样找模块快很多。你试试看,是不是顺手多了?
Ctrl+D 可以更新模型显示,有时候连线变了颜色或者模块参数没更新,按一下就好。我经常用这个快捷键,比鼠标点来点去快多了。
2.2 模块库:你的“零件仓库”
Simulink的模块库,说白了就是一堆封装好的功能块。你不需要自己写代码,只需要把它们拖出来,连起来,设置参数就行。
咱们做无人机仿真,最常用的几个库你得心里有数:
| 库名称 | 常用模块 | 用途 |
|---|---|---|
| Sources(信号源) | Constant, Sine Wave, Step, Clock | 生成输入信号,比如给电机一个阶跃指令 |
| Sinks(信号显示) | Scope, Display, To Workspace | 看波形、看数值、把数据存到MATLAB工作区 |
| Continuous(连续系统) | Integrator, Derivative, Transfer Fcn | 积分、微分、传递函数——飞控里到处都是 |
| Math Operations(数学运算) | Add, Product, Gain, Dot Product | 加减乘除、增益、点乘——算姿态、算控制量 |
| Ports & Subsystems(端口与子系统) | Subsystem, Inport, Outport | 把模型打包,让架构清晰 |
你想想看,一个无人机飞控,无非就是:传感器输入 → 姿态解算 → 控制律计算 → 电机输出。这些步骤,都能用上面这些模块搭出来。
2.3 信号线操作:别让连线变成一团乱麻
模块拖出来了,接下来就是连线。操作很简单:鼠标左键点住一个模块的输出端口,拖到另一个模块的输入端口,松开。
但这里有几个坑,我踩过,你得注意:
- 信号线分支:想从一根线上分出另一根线?按住
Ctrl键,在线上点一下,然后拖出去。这样就不用重复连了。 - 信号线命名:双击一根线,可以给它起个名字。比如
roll_angle、motor_thrust。别偷懒,命名了以后查错方便十倍。我曾经在一个没命名的模型里找bug,找了整整一下午,最后发现是线连错了端口。 - 信号线颜色:默认是黑色。如果线变成红色,说明数据类型不匹配。比如你连了一个double信号到一个需要int的端口,就会报错。这时候右键点击线,选“Signal Properties”,看看数据类型。
Ctrl+Shift+. 添加一个跳线点。
2.4 子系统创建:把大象装进冰箱
模型一复杂,画布上就全是模块和线,看着就头疼。这时候就需要子系统了。
子系统,说白了就是把一堆模块打包成一个“黑盒子”。你只关心它的输入和输出,里面的细节可以暂时不管。
创建方法很简单:
- 选中你要打包的所有模块(按住鼠标左键框选)。
- 右键,选择 “Create Subsystem from Selection”。
- 搞定。Simulink会自动帮你生成一个子系统,并添加好输入输出端口。
双击这个子系统,就能看到里面的内容。这样,你的顶层模型就变得非常干净。比如咱们的无人机仿真,顶层可以只有几个子系统:
- 传感器子系统:模拟IMU、GPS、气压计
- 姿态估计子系统:用卡尔曼滤波或者互补滤波算姿态
- 控制子系统:PID控制器,输出电机指令
- 动力学子系统:根据电机力和力矩,算出无人机的位置和姿态
你看,这样一拆,整个模型的结构就一目了然了。每个子系统内部再复杂,也不影响顶层阅读。
注释框(在库浏览器的 “Commonly Used Blocks” 里找 “Annotation”),写上这个子系统的功能、输入输出说明、以及我最后一次修改的日期。这样过了一个月再回来看,自己还能看懂。
2.5 本章知识体系
为了让你更直观地理解这一章的内容,我画了一张图。它把Simulink基础操作的几个核心点串起来了:
这张图其实就概括了咱们这一章的全部内容。你先把界面摸熟,知道东西在哪儿;然后去模块库里挑零件;接着用信号线把零件连起来;最后用子系统把模型收拾得整整齐齐。一套流程下来,一个可运行的仿真模型就出来了。
嗯,这一章就到这儿。内容不多,但都是实打实的操作。你最好打开Simulink,跟着我说的步骤走一遍。光看是学不会的,得动手。