4. 姿态控制参数整定:PID参数失谐现象、角速率环调试、姿态环调试

各位工程师,咱们今天聊点实在的。飞控参数整定,说白了就是让飞机听话的过程。我见过太多团队,代码写得漂亮,仿真跑得完美,一上天就翻车。为什么?参数没调好。

这一节,我重点讲三个东西:PID参数失谐角速率环调试姿态环调试。这三者是递进关系,你跳不过去。

4.1 PID参数失谐:你以为是飞机坏了?其实是参数不对

先说说什么是失谐。简单讲,就是PID参数跟实际系统不匹配。飞机表现出来就是抖、慢、或者干脆发散。

我在项目中遇到过最典型的场景:一个四旋翼,悬停时轻微抖动,飞手说“桨平衡有问题”。结果换了三套桨,问题依旧。最后查出来,是D项增益高了0.3。你看,硬件背了软件的锅。

失谐的三种典型表现:
  • 高频抖动:飞机像得了帕金森,肉眼可见的震颤。通常是D项过大,或者传感器噪声被放大。
  • 低频摆动:飞机像喝醉了,左右晃。通常是P项不足,或者I项太弱,系统恢复力不够。
  • 发散振荡:越晃越大,最后炸鸡。这是P项过大,系统进入正反馈。

你想想看,为什么会出现失谐?原因无非三个:

  1. 模型变了:电池电压下降、负载变化、重心偏移。你的参数是基于某个状态调的,换个状态就不行了。
  2. 传感器问题:陀螺仪噪声变大、加速度计温漂。我建议每次起飞前做一次传感器自检。
  3. 执行机构饱和:电机转速到顶了,舵面卡死了。PID还在积分,结果就是积分饱和。
避坑指南:我曾经在调试一款六旋翼时,发现悬停时YAW轴一直有低频振荡。查了两天,最后发现是电机PWM频率设置太低,导致电机响应滞后。调高PWM频率后,问题消失。所以,失谐不一定是PID的问题,先检查底层。

4.2 角速率环调试:这是飞控的“肌肉反应”

角速率环,也叫内环。它控制的是飞机的角速度,说白了就是“我想转多快”。这个环必须快、准、稳。

我个人习惯,先调内环,再调外环。内环调不好,外环就是空中楼阁。

4.2.1 调试前的准备

  • 把飞机固定好,或者用仿真环境。千万别手拿着调,那会受伤。
  • 设置好遥控器通道,能随时切回手动模式。
  • 记录初始参数,方便回退。

4.2.2 角速率环的PID结构

角速率环通常用PD控制,I项用得少。为什么?因为角速率环要求响应快,I项会引入滞后。

// 角速率环PID伪代码
float rate_pid_roll(float target_rate, float current_rate) {
    float error = target_rate - current_rate;
    float p_out = Kp_rate * error;
    float d_out = Kd_rate * (error - last_error) / dt;
    // I项可选,通常不用或很小
    // float i_out = Ki_rate * integral;
    return p_out + d_out;
}

4.2.3 调试步骤(我常用的方法)

  1. 先给一个小的P值,比如0.1。打一个阶跃信号,看响应。如果响应太慢,增加P。
  2. 增加P直到出现轻微振荡。这个振荡频率通常在5-10Hz。记下这个P值,然后乘以0.6作为最终P值。这是经典的Ziegler-Nichols方法。
  3. 加入D项抑制超调。D项从0开始慢慢加,直到振荡消失。注意,D项太大会放大噪声。
  4. 检查稳态误差。如果存在稳态误差,可以加一点点I项。但I项不要超过P项的1/10。
我的小技巧:调试时,用遥控器打一个快速阶跃(比如突然打满副翼),然后看飞机的响应曲线。理想的响应是:快速到达目标角速率,超调小于10%,没有振荡。如果曲线像“狗啃的”,那就是参数不对。

4.3 姿态环调试:让飞机“指哪打哪”

姿态环是外环,它控制的是飞机的角度。内环控制角速率,外环控制角度。外环的输出,就是内环的目标值。

嗯,这里要注意:外环的带宽必须比内环低。通常外环的响应速度是内环的1/3到1/5。否则,内外环会打架。

4.3.1 姿态环的PID结构

姿态环通常用P控制就够了,I项和D项用得少。因为角度误差本身就有积分效果(角度是角速度的积分)。

// 姿态环PID伪代码
float att_pid_roll(float target_angle, float current_angle) {
    float error = target_angle - current_angle;
    float p_out = Kp_att * error;
    // 输出作为角速率环的目标值
    return p_out;
}

4.3.2 调试步骤

  1. 先确保内环已经调好。内环不稳,外环别碰。
  2. 设置外环P值为内环P值的1/3。这是一个经验值,我用了很多年。
  3. 打一个角度阶跃,比如打10度。看响应。如果响应太慢,增加P。如果超调太大,减小P。
  4. 检查跟踪精度。让飞机做匀速旋转,看实际角度是否跟得上目标角度。如果滞后明显,可以加一点点I项。
内外环参数关系(经验值):
参数 内环(角速率环) 外环(姿态环)
P增益 0.1 - 0.5 内环P的1/3 - 1/5
D增益 0.01 - 0.05 通常为0
I增益 0 或很小 0 或很小
带宽 10 - 20 Hz 3 - 5 Hz

4.4 核心逻辑:从失谐到整定的闭环

为了让你更直观地理解,我画了一张流程图。它展示了从发现失谐到完成整定的完整路径。

姿态控制参数整定核心逻辑 发现失谐现象 诊断失谐原因 调试角速率环(内环) 调试姿态环(外环) 飞行验证与微调 高频抖动? 低频摆动? 发散振荡? 检查传感器、 执行机构、模型 先调P,再调D I项慎用 P为内环1/3 带宽要低 实际飞行测试

这张图你看懂了吗?从上到下,是一个完整的排查和调试流程。我建议你每次调参都走一遍这个流程,不要跳步。

4.5 实战中的几个坑

最后,我分享几个实战中踩过的坑,希望能帮你省点时间。

  • 坑一:在风大的时候调参。风是外部扰动,会掩盖参数的真实表现。我建议在无风或微风环境下调试。
  • 坑二:只调一个轴。Roll、Pitch、Yaw三个轴要分别调。我见过有人调好了Roll,以为Pitch也一样,结果一飞就翻。
  • 坑三:忽略油门。不同油门下的响应不同。我建议在悬停油门附近调,然后验证低油门和高油门的表现。
  • 坑四:过度依赖仿真。仿真模型永远无法完全模拟真实情况。我建议仿真只用来找初始值,最终参数必须在真机上验证。
我的习惯:每次调参后,我都会把参数和飞行日志一起保存。这样如果出了问题,可以回溯。我还会在日志里加一个“参数版本号”,方便对比。这个小习惯,救过我很多次。

好了,这一节的内容就到这里。参数整定是个手艺活,多练、多记、多总结。你调得多了,自然就有感觉了。

专注资料整理