3. 配置 Stabilize(增稳)模式:参数设置、姿态控制原理与仿真测试
Stabilize 模式,说白了就是飞控的「自动回正」模式。你松手,飞机自己就水平了。这是所有自稳飞行的基础,也是你学 SITL 仿真第一个要玩透的模式。
我个人习惯把 Stabilize 叫做「拐杖模式」——它帮你扶着飞机,但不会替你走路。你推杆它就动,你松杆它就停。嗯,这里要注意:它没有位置保持能力,风一吹还是会飘走的。
3.1 Stabilize 模式的核心控制逻辑
先看一张图,把整个控制链路理清楚。我当年刚接触 ArduPilot 时,就是靠这张图把姿态控制串起来的。
流程其实很简单:遥控器摇杆给出角度期望 → 飞控算出当前姿态与期望的差值 → PID 算出力矩 → 混控器分给四个电机。你想想看,这不就是最经典的闭环控制吗?
3.2 关键参数设置
Stabilize 模式涉及的参数不多,但每个都很要命。我曾经在项目里因为一个 ATC_ANG_RLL_P 没调好,飞机在天上跟喝醉了似的晃悠。
| 参数名 | 默认值 | 作用 | 我的建议 |
|---|---|---|---|
ATC_ANG_RLL_P |
4.5 | 横滚角度 P 增益 | 从 4.0 起步,逐步加 |
ATC_ANG_PIT_P |
4.5 | 俯仰角度 P 增益 | 与横滚保持一致 |
ATC_ANG_YAW_P |
4.5 | 偏航角度 P 增益 | 可以比横滚小 0.5 |
ATC_RAT_RLL_P |
0.15 | 横滚角速率 P 增益 | 内环,先不动 |
ATC_RAT_RLL_I |
0.15 | 横滚角速率 I 增益 | 消除稳态误差用 |
ATC_RAT_RLL_D |
0.003 | 横滚角速率 D 增益 | 抑制超调,小心震荡 |
3.3 在 SITL 中配置 Stabilize 模式
好,理论说完了,咱们动手。打开你的终端,启动 SITL:
sim_vehicle.py -v ArduCopter --map --console
等控制台和地图都出来之后,用 param fetch 把参数拉下来。我个人习惯先检查一下默认参数:
param show | grep ATC_ANG
你会看到类似这样的输出:
ATC_ANG_RLL_P 4.500
ATC_ANG_PIT_P 4.500
ATC_ANG_YAW_P 4.500
嗯,默认值 4.5 对于大多数四轴来说偏大。我建议先降到 3.0 试飞,安全第一。
接下来把飞行模式切到 Stabilize。用 Mission Planner 或者直接通过 MAVProxy 命令:
mode stabilize
你会看到控制台输出 Mode: STABILIZE。这时候解锁:
arm throttle
推一点油门(大概 30%),飞机应该就离地了。注意看地图上的姿态指示器——你松杆,它应该自己回平。
SIM_SPEEDUP 设成 1(实时速度)。我曾经图快设成 10,结果飞机姿态震荡到失控,我都没来得及切模式。
3.4 仿真测试与调参实战
飞机飞起来之后,咱们做几个测试动作:
- 松杆回正测试——打一点横滚,然后松杆。飞机应该在 1-2 秒内回平。如果回得太慢,加大
ATC_ANG_RLL_P;如果来回晃,减小它。 - 阶跃响应测试——快速推杆到 30° 俯仰,然后保持。观察飞机是否快速到达并稳定在 30°。如果 overshoot 明显,考虑加一点 D 增益。
- 抗风扰动测试——在 SITL 里加风:
sim_set wind 5 0 0(5m/s 正北风)。看飞机能不能保持姿态。如果偏航被吹歪,检查ATC_ANG_YAW_P。
我记得有一次做抗风测试,飞机在 8m/s 风里横滚来回摆,我查了半天发现是 ATC_RAT_RLL_I 设成了 0。加上积分项之后,飞机稳得像块石头。
3.5 常见问题与避坑指南
- 飞机解锁后直接翻倒——检查
AHRS_ORIENTATION和FRAME_CLASS是否匹配你的机型。我遇到过有人用 X 型四轴却设成了 + 型。 - 姿态回中太慢——加大外环 P 增益,但别超过 6.0。超过这个值,飞机大概率开始抖。
- 偏航锁不住——检查
ATC_ANG_YAW_P和ATC_RAT_YAW_P。偏航的响应天生比横滚俯仰慢,别着急。 - 油门推了飞机不升——确认
MOT_SPIN_ARM和MOT_SPIN_MIN设置正确。有时候是电机没怠速。
我的调参流程总结:
- 把所有
ATC_ANG_*_P设为 3.0,ATC_RAT_*_P保持默认 - 试飞,观察回中速度和震荡情况
- 每次加 0.5 外环 P,直到出现轻微震荡,然后退回 0.3
- 如果存在稳态误差(比如飞机一直偏左),加内环 I 增益,每次 0.02
- 最后微调 D 增益抑制超调,但不要超过 0.008
Stabilize 模式是飞控调试的基石。你在 SITL 里把它调顺了,后面学 AltHold、Loiter 甚至 Auto 模式都会轻松很多。说白了,姿态控制就是飞控的「内功」,内功练好了,什么招式都使得出来。