第3章:Roll轴调参实战——Rate P、Rate D与角外环P

好,咱们直接进入正题。这一章要啃的是Roll轴的三个核心参数:Roll Rate P、Roll Rate D,还有Roll角外环P。说白了,就是让飞机在横滚方向上听话、不抖、不飘。

我个人习惯把调参比作“驯马”。Rate P是马的力气,Rate D是缰绳的阻尼,外环P是骑手的方向感。三个配合不好,马要么原地转圈,要么把你甩下来。

核心原则:先内环(Rate),后外环(Angle)。内环调稳了,外环才有意义。

3.1 准备工作:在SITL里起飞

在开始拧参数之前,确保你的SITL环境已经跑起来了。我建议用arducopter加上MAVProxy,或者直接用Mission Planner的SITL模式。

起飞后,切到Stabilize模式。这个模式下,外环角度控制是激活的,方便我们观察内外环的耦合效果。

小技巧: 在MAVProxy里用param fetch先把所有参数拉下来,然后用param set改值。别直接在GCS上乱点,容易漏参数。

3.2 Roll Rate P参数调节

Rate P是内环的比例增益。它决定了飞控对“期望角速度”和“实际角速度”之间误差的反应强度。

怎么调?

  1. 先把ATC_RAT_RLL_P设为默认值(通常是0.15左右)。
  2. 在SITL里做快速横滚机动(比如打满副翼然后回中)。
  3. 观察日志里的Rate.Roll和DesRate.Roll。

我记得第一次调这个参数时,把P设到0.25,结果飞机像抽风一样高频抖动。嗯,这就是典型的P过大——系统在“过冲-回调-再过冲”之间震荡。

警告: 如果P太小,飞机会“软绵绵”的,打杆后反应迟钝,甚至回中后还在慢慢转。P太大,飞机会高频抖动,严重时直接炸机。在SITL里炸了没事,但养成好习惯:每次只改20%,然后飞一个起落看效果。

理想状态: 打杆后,实际角速度快速跟上期望值,没有明显超调,也没有滞后。回中后,角速度迅速归零。

现象 原因 对策
响应慢,滞后明显 P太小 增加P(每次+0.02)
高频抖动(嗡嗡声) P太大 减小P(每次-0.02)
回中后过冲一次再稳定 P略大,或D不足 先减P,再考虑加D

3.3 Roll Rate D参数调节

Rate D是微分增益。它的作用是抑制角速度的变化率。说白了,就是给系统加阻尼,防止P把飞机推过头。

你想想看,如果只有P,就像你推一个秋千,每次都用全力。秋千会越荡越高。D就是你在秋千荡回来时轻轻拉一把,让它稳定在中间。

怎么调?

  1. 在P调得差不多后,开始调ATC_RAT_RLL_D。默认值通常是0.003左右。
  2. 做同样的横滚机动,观察日志里的Rate.Roll曲线。

我曾经在一个四轴项目上,P已经调得很好了,但飞机在顺风转弯时总有点“点头”。后来发现是D太小,角速度变化时没有足够的阻尼。加了0.002的D,问题立刻消失。

避坑指南: D不是越大越好。D过大会放大噪声,导致电机发烫、电池续航下降。在SITL里,你可以故意把D设到0.01,然后看日志——角速度信号上全是毛刺。这就是D放大了传感器噪声。

理想状态: 打杆后,角速度平滑上升,没有尖峰;回中后,角速度平滑归零,没有震荡。

现象 原因 对策
回中后仍有1-2次震荡 D不足 增加D(每次+0.001)
角速度曲线有高频毛刺 D过大 减小D(每次-0.001)
电机异常发烫 D过大导致高频修正 立即减小D

3.4 Roll角外环P调节

外环P(ATC_ANG_RLL_P)控制的是角度,而不是角速度。它告诉飞控:“你现在偏了10度,赶紧给我转回来。”

外环的输出是内环的期望角速度。所以外环P越大,飞控对角度偏差的反应越激进。

怎么调?

  1. 内环(Rate P和Rate D)调好后,开始调外环P。默认值通常是4.5左右。
  2. 在Stabilize模式下,打杆让飞机倾斜一定角度,然后松杆。
  3. 观察飞机回正的速度和是否过冲。

我个人习惯把外环P调得稍微“紧”一点。比如在SITL里,我会把飞机倾斜30度,松杆后看它回正。如果回正过程中有“点头”或“来回晃”,说明外环P太大了,或者内环跟不上。

注意: 外环P不能独立于内环调。如果内环响应慢,外环P再大也没用——内环根本执行不了那么高的角速度期望。这就是为什么我反复强调“先内后外”。

理想状态: 松杆后,飞机平滑回正,没有过冲,没有震荡。回正时间大约在0.5-1秒之间。

现象 原因 对策
回正太慢,飞机“懒洋洋” 外环P太小 增加外环P(每次+0.5)
回正时过冲,然后来回晃 外环P太大,或内环D不足 先减外环P,再检查内环D
回正时抖动(高频) 内环P太大,或内环D太小 回到内环重新调

3.5 完整调参流程总结

下面这张图是我自己总结的调参流程,每次做新机型我都会走一遍。

Roll轴调参流程图 Roll轴调参流程 加载默认参数 调 Rate P 调 Rate D 调外环 P 飞行验证 不满足则回退 每次只改一个参数,改完后飞一个起落,看日志,再决定下一步

3.6 实战:在SITL里跑一次完整的Roll调参

好,理论说完了,咱们动手。下面是我在SITL里常用的调参脚本片段。

# 连接到SITL
mavproxy.py --master tcp:127.0.0.1:5760 --sitl 127.0.0.1:5501

# 在MAVProxy里
param set ATC_RAT_RLL_P 0.15
param set ATC_RAT_RLL_D 0.003
param set ATC_ANG_RLL_P 4.5

# 起飞后切到Stabilize模式
mode stabilize

# 做横滚机动,观察日志
# 用graph命令看Rate.Roll和DesRate.Roll
graph Rate.Roll DesRate.Roll

# 如果响应慢,增加P
param set ATC_RAT_RLL_P 0.17

# 如果抖动,减小P或增加D
param set ATC_RAT_RLL_D 0.004

# 内环满意后,调外环
param set ATC_ANG_RLL_P 5.0

我的习惯: 每次改完参数,我都会在日志里加一个标记。在MAVProxy里用log mark,这样回头分析时一眼就能看出哪个参数改了。

3.7 常见问题与避坑

  • 问题: 内环P和D都调好了,但飞机在悬停时Roll轴还是轻微晃动。
    原因: 可能是外环P太小,或者传感器噪声太大。先检查日志里的角速度信号是否干净。
  • 问题: 调参后飞机在快速前飞时Roll轴突然失控。
    原因: 内环P在高速气流下可能不足。我遇到过类似情况,后来在风洞里测试才发现是桨效变化导致的。解决办法是适当增加P,或者开启ATC_RAT_RLL_FF前馈补偿。
  • 问题: SITL里调得好好的,真机上一飞就抖。
    原因: SITL的模型太理想了,没有考虑机架振动和电机延迟。我曾经在SITL里把P调到0.25,真机上直接抖散架。建议SITL调参时留20%的余量。

最终提醒: 调参不是一蹴而就的。你可能需要反复迭代3-4轮,才能找到一组满意的参数。每次只改一个参数,飞一个起落,看日志,再改。这是最笨的方法,也是最有效的方法。