第二章:开发环境搭建——MATLAB/Simulink环境配置、嵌入式代码生成工具箱安装、硬件在环(HIL)仿真平台搭建
说实话,做飞控开发这么多年,我见过太多项目在环境搭建这一步就栽了跟头。有人装完工具箱发现版本不兼容,有人配完HIL平台发现延迟太大,还有人代码生成出来根本跑不动。嗯,这些坑我都踩过。今天咱们就把这套环境从头捋一遍,保证你搭完就能直接干活。
2.1 MATLAB/Simulink环境配置——地基要打牢
我个人习惯,装MATLAB之前先看三件事:操作系统版本、内存大小、硬盘空间。飞控开发不像做图像处理,对显卡要求不高,但CPU主频和内存很关键。我建议至少16GB内存,否则跑个复杂模型编译能等得你怀疑人生。
安装时注意几点:
- 版本选择:别追最新版。我踩过坑,R2022b刚出时兴冲冲装上,结果第三方工具箱全不兼容。现在团队统一用R2021a,稳定,生态成熟。
- 组件勾选:Simulink必选,Stateflow建议选上(做状态机用),另外MATLAB Coder、Simulink Coder、Embedded Coder这三个是代码生成的核心,一个都不能少。
- 路径设置:安装路径不要有中文和空格。我曾经有个同事路径里带了个“(测试版)”,结果编译报错查了两天。
ver 命令,检查所有工具箱版本是否匹配。特别是Simulink和Embedded Coder的版本号必须一致,否则代码生成会出诡异问题。
2.2 嵌入式代码生成工具箱安装——从模型到C代码的桥梁
说白了,这套工具箱就是把你画的Simulink框图变成能在STM32、TMS320上跑的C代码。我刚开始做的时候总觉得这步可有可无,直到有一次手动写代码把控制律写反了,飞机上天就翻……嗯,从那以后我再也不敢跳过自动代码生成。
安装步骤其实不复杂:
- 在MATLAB的Home选项卡里点 Add-Ons → Get Add-Ons
- 搜索 Embedded Coder,点击安装
- 根据你的目标芯片安装对应的 Support Package(比如STM32的、TI C2000的)
这里有个关键点——硬件支持包一定要单独装。MATLAB本体不包含这些,你得去MathWorks官网下载对应的安装器。我建议直接搜“MATLAB Support Package for STM32”,下载后双击运行,它会自动识别你的MATLAB版本。
装完后怎么验证?很简单:在Simulink里拖一个 PWM 模块出来,如果能正常配置引脚和频率,说明工具箱装好了。如果报错说找不到模块,那就是支持包没装对。
2.3 硬件在环(HIL)仿真平台搭建——让代码先飞一会儿
HIL是什么?说白了就是把你写的飞控代码跑在一块真实的硬件板子上,但板子不接真飞机,而是接一台仿真机。仿真机模拟飞机的传感器数据、执行机构响应,骗你的飞控以为自己在天上飞。
为什么要这么做?你想想看,真飞机上天一次成本多高?炸一次更心疼。HIL能让你在地面上把90%的bug都抓出来。我做过一个项目,HIL上发现舵机PWM频率配置错了,要是真飞,飞机一离地就螺旋下坠。
搭建HIL平台需要三样东西:
- 目标硬件:你的飞控板(比如Pixhawk、STM32F4开发板)
- 实时仿真机:我常用Speedgoat或者NI PXI,预算有限也可以用树莓派+实时内核凑合
- 通信接口:PWM线、CAN总线、串口线,具体看你的飞控支持什么
搭建流程大致如下:
- 在Simulink里建好你的控制模型,加上I/O接口模块(比如PWM输出、ADC输入)
- 用Embedded Coder生成代码,烧录到飞控板
- 在仿真机上运行飞机模型(6自由度动力学模型),通过I/O接口和飞控板交互
- 在MATLAB里用 Simulink Real-Time 监控数据,看控制效果
核心逻辑图:HIL数据流
搭建时最容易出问题的是实时性。我遇到过仿真机跑动力学模型,一个步长要算5毫秒,但飞控的PWM周期只有2毫秒,数据根本来不及更新。解决办法是:要么换性能更强的仿真机,要么降低模型复杂度(比如把6自由度模型简化成3自由度)。
2.4 环境验证——跑一个简单的例子
环境搭完别急着做项目,先跑个官方例程验证一下。我推荐用 slrt_ex_plant 这个例子,它自带一个简单的电机模型和PID控制器。
操作步骤:
- 在MATLAB命令窗口输入
slrt_ex_plant打开模型 - 双击 PWM Output 模块,配置你的飞控板对应的引脚
- 点击 Build Model,生成代码并烧录
- 在仿真机上运行,观察示波器模块的输出波形
如果能看到正弦波跟踪正常,说明你的环境搭建成功了。如果报错,八成是支持包没装对或者引脚配置冲突。
| 常见问题 | 可能原因 | 解决办法 |
|---|---|---|
| 代码生成报错“找不到头文件” | 支持包未安装或路径未添加 | 运行 checkEnvSetup 检查环境 |
| HIL通信延迟过大 | 仿真机性能不足或通信协议太慢 | 改用DMA传输或升级仿真机 |
| PWM输出无信号 | 引脚配置错误或硬件损坏 | 用示波器测引脚,确认硬件正常 |
嗯,环境搭建这部分就这些。说白了就是三件事:装对MATLAB、装对工具箱、搭好HIL。每一步都有坑,但按我说的来,基本能一次过。记住,飞控开发最怕“差不多就行”,环境搭得越扎实,后面调试越省心。