4. 积分控制(I):消除静差的关键

各位同学,今天我们来聊聊PID里的“I”——积分控制。说实话,我刚入行那会儿,觉得P控制就够了,干嘛还要加个I?直到第一次做温控系统,才发现没有I,温度死活到不了设定值。嗯,这就是我们今天要讲的核心问题。

4.1 积分控制的基本公式

积分控制的数学形式其实很简单:

u_I(t) = K_i * ∫ e(t) dt

其中:

  • u_I(t):积分环节的输出
  • K_i:积分增益(也叫积分系数)
  • e(t):当前时刻的误差
  • ∫ e(t) dt:误差对时间的累积

说白了,积分就是把过去所有的误差都加起来,然后乘以一个系数。你想想看,如果误差一直存在,积分值就会越来越大,直到控制器输出足够的力量去消除它。

在离散系统中(也就是我们飞控里实际用的),公式变成:

u_I[k] = u_I[k-1] + K_i * e[k] * T

这里T是采样周期。我习惯把K_i调好后,再根据采样周期做归一化处理,这样换平台时不用重新调参。

4.2 I控制的作用:消除静差

什么是静差?举个例子:

你让无人机悬停在10米高度。P控制会这样工作:

  • 高度9.5米 → 误差0.5米 → 给一个向上的力
  • 高度9.8米 → 误差0.2米 → 给一个较小的力
  • 高度9.9米 → 误差0.1米 → 给一个很小的力

问题来了:当无人机接近10米时,P输出的力可能刚好等于重力。这时候误差虽然还有0.1米,但P已经无法再增加了——因为再增加力,无人机就会过冲。结果就是:永远停在9.9米,到不了10米。这个0.1米的差距,就是静差。

积分控制怎么解决?

积分项会持续累积这0.1米的误差。每过一个采样周期,积分值就增加一点。最终积分输出的力会超过重力,把无人机推到10米。到了10米后,误差为0,积分值不再增加,系统稳定。

我在做四旋翼飞控时遇到过类似情况。有一次飞机总是偏航2度,怎么调P都没用。加上I之后,2秒钟就回正了。说白了,P控制是“看现在”,I控制是“算旧账”

4.3 积分饱和问题

积分控制虽好,但有个大坑——积分饱和。我曾经在这个问题上栽过跟头,差点炸机。

什么是积分饱和?

想象这个场景:无人机在地面上,目标高度100米。误差是100米,积分值开始疯狂累积。等无人机飞到100米时,积分值已经累积到了一个巨大的数值。这时候误差虽然变成了0,但积分值不会立刻消失——它需要时间慢慢减下来。

结果就是:无人机飞过100米,继续往上冲。等积分值降下来,飞机已经冲到120米了。这就是积分饱和导致的超调。

避坑指南:

我曾经在调试一款工业无人机时,因为积分饱和导致飞机在切换高度模式时直接窜升了15米。从那以后,我养成了两个习惯:

  • 积分限幅:给积分值设置上下限,比如±100
  • 积分冻结:当执行器饱和时,停止积分累积

常用的抗积分饱和方法:

方法 原理 适用场景
积分限幅 限制积分值的范围 通用,最简单
积分冻结 输出饱和时停止积分 执行器容易饱和的场景
反馈积分 用实际输出与理想输出的差值修正积分 高精度控制
条件积分 误差较大时减小积分速度 大阶跃响应

我个人最常用的是“积分限幅+积分冻结”的组合。简单可靠,在飞控上跑了几万架次没出过问题。

4.4 I增益对系统的影响

K_i这个参数怎么调?我直接说结论:

  • K_i太小:消除静差很慢,系统要花很长时间才能到达目标值
  • K_i适中:快速消除静差,系统稳定
  • K_i太大:系统振荡,甚至发散

为什么会这样?你想想看,积分是累积误差。K_i太大意味着一点点误差就会被放大很多倍。系统稍微过冲一点,积分值就会反向累积,导致系统来回振荡。

调参小技巧:

我习惯先把K_i设为0,调好P和D。然后慢慢增加K_i,直到静差消失。如果出现振荡,就减小K_i,或者增加D来抑制振荡。

一个经验公式:K_i ≈ K_p / (10 * 系统时间常数)。当然这只是起点,具体还要看实际响应。

另外要注意:积分增益和采样周期是耦合的。同样的K_i,采样周期不同,效果完全不同。我建议把K_i写成:

K_i_actual = K_i_normalized * T

这样K_i_normalized就与采样周期无关了,换平台时不用重新调。

知识体系总览

下面这张图总结了积分控制的完整知识结构:

积分控制(I)知识体系 积分控制 I 基本公式 u_I = K_i * ∫e dt 消除静差 累积误差直到目标 积分饱和 限幅/冻结/条件积分 I增益影响 太小→慢,太大→振荡 积分限幅 积分冻结 条件积分 核心:消除静差,但需防饱和

好了,积分控制的内容就讲到这里。记住三个关键词:消除静差、积分饱和、增益调参。下一节我们讲微分控制,那是用来解决超调和振荡的利器。


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