第4章:I增益调参实战——积分项消除静差,积分饱和与抗饱和策略,悬停精度优化

各位飞控调参的朋友们,大家好。今天我们聊聊积分项,也就是I增益。

说实话,很多新手对I增益又爱又恨。爱它,是因为它能消除静差;恨它,是因为调不好就会震荡,甚至炸机。我个人觉得,理解I增益的本质,比记住几个参数值重要得多。

4.1 积分项到底在干什么?

先问大家一个问题:为什么光靠P和D,飞机悬停时总会往一边飘?

原因很简单。P项是根据当前偏差来调整的,但如果有持续的外力——比如重心偏了、风一直吹——P项只能减小偏差,却无法彻底消除。这就是所谓的“静差”。

积分项的作用,说白了就是“记账”。它把过去所有的偏差累加起来,然后给一个补偿量。偏差持续存在,积分值就越来越大,直到把偏差彻底拉回零。

我在项目中遇到过一架六轴,悬停时总是往左偏5度。P增益调了又调,就是消不掉。后来发现是电池绑歪了,重心偏了。积分项虽然能补偿,但补偿量太大,反而让电机发热严重。嗯,这里要注意:积分不是万能的,机械问题还是要先解决。

4.2 积分饱和——一个容易被忽视的坑

积分饱和是什么?我举个例子。

假设你的飞机在地面,你解锁后猛推油门。这时候期望高度是10米,实际高度是0米。偏差很大,积分项开始疯狂累加。等飞机冲到10米时,积分项已经攒了一大笔“债”。

结果呢?飞机会继续往上冲,超出目标高度一大截。这就是积分饱和。

我曾经在一次竞速飞行的调试中,遇到过类似情况。飞机从地面起飞后,直接窜到了3米高,然后开始剧烈震荡。我当时第一反应是P增益太大,后来才发现是积分饱和在作怪。

积分饱和的核心问题:积分项在偏差大时积累过快,导致系统超调严重。

4.3 抗饱和策略——怎么解决?

解决积分饱和,常用的方法有几种。我个人习惯用“积分限幅”和“条件积分”。

4.3.1 积分限幅

最简单粗暴的方法:给积分项设一个上限。

// 积分限幅示例
integral += error * dt;
if (integral > I_MAX) integral = I_MAX;
if (integral < -I_MAX) integral = -I_MAX;

这个I_MAX怎么设?我一般先设为油门总量的10%~20%。比如油门范围是1000~2000,那I_MAX就设100左右。具体数值要结合你的飞机重量和电机响应速度来调。

我的经验:积分限幅值不要设得太小。太小了,积分项发挥不了作用,静差又回来了。我通常先设一个较大的值,然后逐步减小,直到悬停精度和响应速度都满意为止。

4.3.2 条件积分

另一种更智能的方法:只在偏差较小时才进行积分。

// 条件积分示例
if (abs(error) < I_THRESHOLD) {
    integral += error * dt;
} else {
    // 偏差太大,不积分,防止饱和
    integral = 0;  // 或者保持当前值
}

这个I_THRESHOLD怎么选?我建议设为期望值的5%~10%。比如悬停时角度偏差期望在2度以内,那阈值就设0.1~0.2度。

注意:条件积分虽然能防止饱和,但如果阈值设得太小,积分项几乎不工作,静差又回来了。如果设得太大,又起不到抗饱和的作用。需要反复试。

4.4 悬停精度优化——实战步骤

好了,理论讲完了,我们直接上实战。下面是我个人总结的悬停精度优化步骤。

4.4.1 先调P和D,再动I

这是铁律。P和D没调好,I增益再大也没用。我见过有人P增益还没调稳,就开始加I,结果飞机像弹簧一样乱跳。

4.4.2 从零开始加I

先把I增益设为0。然后慢慢增加,每次增加0.01~0.05(具体看你的飞控单位)。

怎么判断I增益合适?看悬停时的位置漂移。如果飞机能在1米范围内稳定悬停,说明I增益基本够用。

4.4.3 观察积分值

很多飞控支持实时查看积分值。我习惯在调参软件里盯着积分项看。

  • 如果积分值一直很大(接近限幅值),说明P和D可能偏小,或者机械有问题。
  • 如果积分值来回震荡,说明I增益可能太大了。
  • 如果积分值稳定在一个小范围内,说明调得不错。

4.4.4 抗饱和参数微调

加上抗饱和策略后,再微调I增益。我一般会做几次“急加速-急减速”测试。比如快速推油门到5米,然后松手。观察飞机是否超调。

如果超调明显,说明积分限幅值偏大,或者条件积分的阈值偏大。逐步减小,直到超调消失。

核心要点:
  • 积分项消除静差,但会引入超调风险
  • 积分饱和是超调的主要原因之一
  • 抗饱和策略:积分限幅 + 条件积分
  • 悬停精度优化:先P/D后I,逐步增加,观察积分值

4.5 知识体系图

下面这张图,是我自己总结的I增益调参知识体系。你可以把它当作调参时的“地图”。

I增益调参知识体系 I增益调参 消除静差:积分项持续累加偏差 积分饱和:偏差大时积分过快导致超调 抗饱和策略:积分限幅 + 条件积分 积分限幅:设上限I_MAX 条件积分:偏差小才积分 悬停精度优化:先P/D后I,逐步增加 图:I增益调参知识体系

4.6 避坑指南

最后,分享几个我踩过的坑。

  • 我曾经把I增益设得太大,结果飞机悬停时像“打摆子”一样左右晃动。后来发现是积分项和P项产生了共振。解决办法:先减小I增益,再重新调P。
  • 我曾经忘记加积分限幅,结果飞机在风大的时候直接翻了过去。嗯,那次损失了一个桨叶。从那以后,我每次调参都会检查积分限幅值。
  • 我曾经在条件积分中把阈值设得太小,结果积分项几乎不工作,静差又回来了。后来把阈值从0.05度改到0.2度,问题解决。

调I增益,说白了就是找平衡。既要消除静差,又要防止超调。多试几次,你就能找到感觉。

好了,这一章就到这里。记住:积分项是工具,不是万能药。机械问题、传感器问题,还是要先解决。


公众号:蓝海资料掘金营,微信deep3321