4. 俯仰通道控制:与横滚的耦合关系,调试时的注意事项
俯仰通道,说白了就是控制飞机抬头低头的那个通道。很多新手调完横滚觉得挺顺,一调俯仰就炸机。为什么?因为这两个通道在物理上就天生耦合。
我刚开始做飞控那会儿,也踩过这个坑。当时觉得横滚和俯仰是独立的,各调各的PID不就完了?结果飞机一飞起来,像喝醉了酒一样,前后左右乱晃。后来才明白,这两个通道在高速旋转的螺旋桨面前,根本分不开。
4.1 耦合的物理根源
先说说为什么会有耦合。你想想看,四旋翼的四个电机,并不是独立工作的。
- 横滚运动:靠左右电机差速实现。左边快右边慢,飞机向右滚。
- 俯仰运动:靠前后电机差速实现。前快后慢,飞机向后仰。
问题来了。当飞机向右横滚时,左边的升力变大,右边的升力变小。但左边的电机转速提高后,它的反扭矩也变大了。这个反扭矩会通过机身传递到俯仰轴上,导致飞机不自觉地低头或抬头。
嗯,这就是所谓的交叉耦合。我在项目中遇到过一架飞机,横滚PID调得特别好,但一打横滚杆,飞机就自动低头俯冲。排查了半天,发现就是耦合导致的。
核心结论:横滚和俯仰的耦合,本质上是电机转速变化引起的扭矩分配不均。你动横滚,俯仰一定会受影响。反之亦然。
4.2 耦合的数学表达
如果你看过飞控的源码,会发现姿态控制部分通常是这样写的:
// 简化版姿态控制
roll_rate_target = roll_stick * roll_sensitivity;
pitch_rate_target = pitch_stick * pitch_sensitivity;
// 实际输出
motor[0] = throttle + roll_output - pitch_output + yaw_output;
motor[1] = throttle - roll_output - pitch_output - yaw_output;
motor[2] = throttle + roll_output + pitch_output - yaw_output;
motor[3] = throttle - roll_output + pitch_output + yaw_output;
你看,每个电机的输出里,同时包含了横滚和俯仰的贡献。这就是耦合的数学根源。你调整横滚的PID,会直接改变俯仰通道的等效增益。
我个人习惯在调试时,先看一眼这个混控矩阵。如果发现某个电机的输出在横滚和俯仰方向上互相抵消或叠加,就要特别小心了。
4.3 调试时的注意事项
好了,理论说完了,咱们聊聊实战。以下是我总结的几条经验,每一条都是用炸机换来的。
4.3.1 先调横滚,再调俯仰
这不是废话。横滚通道的响应通常比俯仰快,因为飞机的横滚惯量比俯仰惯量小。你先调好横滚,相当于给俯仰通道打了一个稳定的基础。
我曾经试过先调俯仰,结果横滚一介入,俯仰就乱套。后来老老实实按顺序来,效率高多了。
4.3.2 俯仰的P值要保守
俯仰通道的P值,我建议比横滚小10%-20%。为什么?因为俯仰轴上有电池、摄像头等重物,惯量大。P值太大,容易引起低频振荡。
警告:俯仰P值过大时,飞机会出现前后摇晃,频率大约2-3Hz。这时候不要盲目加D,先降P。
4.3.3 注意I值的限幅
俯仰通道的I值,很容易被风干扰。我在户外调试时,一阵风吹过来,飞机低头,I值开始积分。风停了,I值还在,飞机就抬头过冲。
我的做法是:给I值加一个限幅,通常限制在总输出的20%以内。这样即使有风,I值也不会积得太多。
4.3.4 用悬停测试耦合
怎么判断耦合严不严重?很简单。让飞机悬停,然后快速打一下横滚杆,观察俯仰角的变化。
- 如果俯仰角变化小于2度,说明耦合在可接受范围。
- 如果俯仰角变化超过5度,说明耦合严重,需要调整。
我记得有一次,我测出来耦合达到8度。后来发现是机架重心偏后,导致俯仰轴对横滚特别敏感。调整电池位置后,耦合降到了3度。
4.4 耦合补偿策略
如果耦合实在调不下去,可以考虑加补偿。常见的做法有两种:
| 方法 | 原理 | 适用场景 |
|---|---|---|
| 前馈补偿 | 根据横滚指令,提前给俯仰一个反向修正 | 耦合方向固定,且已知 |
| 解耦矩阵 | 在混控阶段,用矩阵运算消除耦合 | 耦合复杂,需要精确建模 |
我个人更推荐前馈补偿,简单有效。比如,当横滚指令为正时,给俯仰通道加一个小的负向偏置。这个偏置量可以通过实验标定。
// 前馈补偿示例
float feedforward_gain = 0.15; // 实验标定值
pitch_output -= roll_stick * feedforward_gain;
注意,这个增益不能太大,否则会引入新的问题。我一般从0.1开始试,逐步增加,直到耦合明显减小。
4.5 避坑指南
最后,分享几个我踩过的坑,希望你别再踩。
技巧:调试时,把飞机的重心调准。重心偏前或偏后,都会放大耦合。我习惯在机架上画一个重心标记,每次换电池后都检查一下。
- 不要用太软的机架:软机架会放大耦合,因为机身在受力时会发生形变。我试过用碳纤维管做的机架,耦合比硬铝机架大了一倍。
- 注意螺旋桨的动平衡:桨不平衡,会产生周期性的振动,这个振动会同时激励横滚和俯仰。我曾经被这个问题折磨了两天,最后换了一副桨就好了。
- I值不要调得太激进:俯仰通道的I值,我建议积分时间常数在0.5秒以上。太快了,容易和横滚通道的I值打架。
嗯,俯仰通道的调试,说白了就是和耦合做斗争。你理解了耦合的根源,掌握了补偿的方法,再配合一些实战经验,就能把飞机调得稳稳当当。
好了,俯仰通道的耦合问题就聊到这里。记住,调试不是一蹴而就的事,多飞、多调、多总结,你也能成为高手。
公众号:蓝海资料掘金营,微信deep3321