5、PID中I项的如何整定?
前言 通过前面《使用lua脚本快速调整角速率环的PD项》一文中,可以发现快速调参只调PD项,P值与I值是一样的! 此外通过APM的官方wiki文档,在调参一文中,也是让用户把P值与I值设置为一样,如下所示: I项到底用来干嘛? 单从从默认的...
前言
通过前面《使用lua脚本快速调整角速率环的PD项》一文中,可以发现快速调参只调PD项,P值与I值是一样的!
此外通过APM的官方wiki文档,在调参一文中,也是让用户在调试角速率环时,把P值与I值设置为一样,如下所示:

I项到底用来干嘛?
大家可能都非常清楚,P是力度越高响应越快,D是阻尼类似刹车,那么I到底是什么?
PID的“I项”,在控制理论中是用来“消除系统中的静差(稳态误差)”。
即当 P 项(比例项)和 D 项(微分项)已经让系统接近目标状态, P/D 已让无人机快速响应偏差。
但是由于打杆回正、快速修正俯仰、横滚角度但因持续干扰(如微风、重心偏移、电机推力差异)导致控制系统最终无法完全达到目标时,那么引入I 项,通过积累历史偏差来 “补足” 控制量,最终让系统稳定在目标值上,解决最终无法精准停在目标值的问题!
一句话总结:多旋翼的 I 项是 “精准的收尾项; P/D 负责 “快速修正”,I 负责 “彻底稳住”,但 I 项过强或过弱都会破坏稳定性。
对多旋翼而言,调试 I 项直接影响 3 个关键场景:
1)悬停姿态稳定性:滚转 / 俯仰是否有残留偏移(比如始终偏 2~5°)、航向是否缓慢漂移;
2)定高精度:定高模式下是否始终差 5~10cm(比如目标 10m,稳定在 9.9m),无上下波动;
3)定点悬停精度:x/y 轴是否缓慢飘移(比如悬停 5 分钟飘出 3 米),无法自动回中。
针对姿态内环(角速率)的I:
I项过大:
- 悬停时飞机一抽一抽地来回晃,不是高频的震动(那是 P 太大),是那种往左歪一下、马上又往右歪回来的低频晃悠,停不住;
- 打杆转完松杆后,飞机不会稳稳停住,会晃悠好几下,比如掉头松杆后,往左晃一下、又往右晃一下,来回摆好几次才能稳住,手感特别肉、特别飘;
- 偏航转机头时最明显,松杆后总往反方向多转一点,来回晃半天才能定住方向;
I项过小:
- 静差明显:始终存在小的角度误差,来回轻微摆动。打杆让飞机转(横滚、掉头),松杆之后不能立即稳稳停住,总会留一点角度,比如你打杆滚 30 度,松杆后只回正到 25 度。
针对定高的I:
1)调得过小,核心现象是:定高精度差,高度飘
具体表现为:
- 定高时始终差 10cm 以上(目标 10m,稳定在 9.8~9.9m);
- 上升 / 下降后无法精准停在目标高度,有明显残留差。
- 定高悬停时,飞机总慢慢掉高度,或者慢慢往上爬,你拉到指定高度松手,它就慢慢往下掉 / 往上飘,总定不住你要的高度;
- 往前飞的时候,飞机一低头就掉高度,飞完松杆后,不会自己爬回原来的高度,一直停在低处,得手动推油门拉回来;
2)调得过大,核心现象是:高度震荡,冲顶 / 沉底
具体表现为:
- 定高时上下波动(如 10m→10.3m→9.7m,反复 “波浪式” 起伏);
- 切换定高模式瞬间,无人机突然窜高或下沉;
针对定点的I:
1)调得过小,核心现象是:定点漂移明显
具体表现为:
- 悬停时 x/y 轴持续漂移,即使无风也慢慢远离起飞点,无法自动回中。
- 定点悬停时,飞机总慢慢往一个方向飘,比如一直往前、往左飘,你拉回原地松手,它又慢慢飘走,像在冰面上滑一样,总定不住位置;
- 有风的时候,飞机直接被风吹着跑,风往哪吹就往哪飘,不手动打杆顶着,能飘出去几百米;
2)调得过大,核心现象是:定点震荡,来回摆动
具体表现为:
- 定点悬停时,飞机像喝醉了一样,在原地来回晃,往前飘一点马上又往后退,往左飘一点又往右拉,来回画圈、走之字,总定不住;
- 打杆飞完松杆后,直接刹过了头,比如往前飞松杆后,不仅停住了,还往后退了好几米,然后又往前冲,来回晃好几次,像开车踩刹车踩猛了前后晃悠;
- 稍微有点风就来回窜,风从前面吹,飞机本来要往后飘,结果 I 项使劲往前顶,顶过了头往前冲,然后又往后拉,越晃越厉害,根本稳不住;
- 轻轻碰一下杆,飞机就猛冲猛退,根本没法做精细的位置调整,稍微动一点杆就窜出去很远,然后又猛拉回来,晃半天才能停。
总结:
I项过大,主要表现为反复摇摆,震荡,过冲等!
I项过小,主要表现为力度不够,稳不住。