PID控制理论入门:比例、积分、微分的作用,PID在飞控中的角色

聊到飞控调参,绕不开的就是PID。很多新手一上来就盯着P、I、D三个参数猛调,结果越调越飘。说实话,我当年也干过这种事——把P值拉满,飞机像抽风一样抖,我还以为是陀螺仪坏了。

其实PID没那么玄乎。说白了,它就是一套「纠错」的逻辑。你希望飞机悬停在1米高度,它掉到0.9米了,怎么办?PID就是告诉你:该用多大的力气、多快的速度、多长的时间把它拉回来。

核心一句话:PID是飞控的「肌肉反应」,没有它,飞机就是个铁疙瘩。

1. 比例控制(P)—— 当前误差有多大,我就推多大力

比例控制是最直观的。误差大,输出就大;误差小,输出就小。比如飞机偏右了10度,P项就会给一个向左的修正力矩,偏得越多,修正越猛。

但这里有个坑:P太大,飞机会震荡;P太小,飞机反应迟钝。我在项目里遇到过一架四轴,P值设到0.8,悬停时像喝醉了酒,左右晃个不停。后来降到0.4,稳了。为什么?因为P太大,修正过头了,飞机冲过目标位置,又得反向修正,来回折腾。

我的经验:调P的时候,先给一个保守值(比如0.3),然后慢慢往上加,直到飞机出现轻微抖动,再退回20%。这个点就是P的「甜区」。

比例控制有个天生缺陷:稳态误差。什么意思?比如飞机悬停,风一直从左边吹,P项会一直给一个向右的力来对抗。但P的出力是跟误差成正比的,如果风刚好让飞机偏了2度,P给的力刚好抵消风力,那飞机就永远偏着2度飞。这就是稳态误差。

2. 积分控制(I)—— 消除那点「永远差一点」的误差

积分项就是来解决稳态误差的。它会累积过去的误差,时间越长,累积越大,输出就越强。还是刚才那个例子,飞机偏了2度一直没回来,I项就会慢慢累积,最终给出一个额外的力,把飞机拉回正位。

但I项用不好会出大事。积分饱和——这个词我吃了不少亏。有一次我调一台六轴,I值设得偏大,飞机起飞时慢慢往一边偏,我打杆修正,结果它突然猛抽一下,差点翻掉。后来分析,是起飞前积分已经累积了一大堆误差,一离地就爆发了。

警告:I值不要贪大。我个人的习惯是,先让P把飞机调到「基本稳」,然后给一个很小的I(比如0.01),观察5-10秒,看稳态误差有没有消除。如果消除得太慢,再微调加一点。

积分还有个作用:抵抗持续干扰。比如航线飞行时遇到侧风,P项只能临时对抗,I项才能持续输出,让飞机沿着航线走直。你想想看,如果没有I项,飞机在风里就会一直偏航,航线飞成一条蛇形。

3. 微分控制(D)—— 提前刹车,别冲过头

微分项看的是误差的变化趋势。误差在快速变大,D项就猛推一把;误差在快速变小,D项就收力,防止冲过头。说白了,D项就是「阻尼器」。

我记得有一次调一架穿越机,P和I都调好了,但飞机在急转弯时总是 overshoot(过冲),转过了头才回正。加了D项之后,问题立刻解决。D项让飞机在接近目标角度时提前减速,稳稳停住。

但D项对噪声极其敏感。飞控的陀螺仪数据如果带噪声,D项会把噪声放大,导致电机高频抖动。我曾经遇到过一架飞机,悬停时电机发出尖锐的啸叫声,一看日志,D值设到0.08,陀螺仪噪声全被放大了。降到0.02,啸叫消失。

避坑指南:如果你发现飞机悬停时电机有高频抖动,先检查D值。另外,D项通常只用在角速度环(内环),位置环(外环)很少用D,因为位置噪声更大,D会放大到不可控。

4. PID在飞控中的角色:三层嵌套结构

飞控里的PID不是孤立的,它是一套嵌套结构。我画了一张图,帮你理解这个逻辑:

飞控PID三层嵌套控制结构 外环:位置环(P控制为主) 输入:期望位置(GPS/视觉) → 输出:期望速度 特点:更新频率低(10-50Hz),P为主,I辅助消除位置静差 中环:速度环(PI控制) 输入:期望速度 → 输出:期望姿态角(横滚/俯仰/偏航) 特点:更新频率中等(50-200Hz),PI配合,I项抵抗持续风扰 内环:角速度环(PID控制) 输入:期望角速度 → 输出:电机PWM值 特点:更新频率最高(200-1000Hz),PID全上,D项提供阻尼

这张图你看懂了吗?从外到内,一层层嵌套:

  • 位置环(外环):告诉飞机「你该往哪飞」。比如航线飞行时,期望位置是下一个航点,位置环算出需要多大的速度才能过去。
  • 速度环(中环):告诉飞机「该飞多快」。位置环给了速度指令,速度环算出需要倾斜多少角度才能达到这个速度。
  • 角速度环(内环):告诉飞机「该转多快」。速度环给了角度指令,角速度环算出电机该转多快才能达到这个角度。

为什么要嵌套?因为每一层只关心自己的事。外环不用管电机怎么转,内环不用管飞机要去哪。各司其职,调参也方便——先调内环,再调外环,这是铁律。

调参顺序口诀:先内后外,先P后I,D最后加。内环不稳,外环白调。

5. 实战中的PID调参思路

说了这么多理论,来点实际的。我一般调参分三步走:

  1. 粗调P:给一个保守的P值,让飞机能飞起来,不炸就行。观察响应速度,慢慢加P直到出现轻微震荡,然后退回20%。
  2. 加I消除静差:悬停时看高度和姿态有没有偏差。如果有,加一点I,等5-10秒看效果。I不要急,一次加0.005就够了。
  3. 加D抑制过冲:做急停或急转弯测试,看飞机有没有 overshoot。如果有,加D。注意D值通常很小,0.01-0.05之间。

重要提醒:调参时一定要看日志!光靠眼睛看飞机飞,你只能看到「稳不稳」,看不到「为什么不稳」。日志里的PID输出曲线、误差曲线,才是调参的真正依据。我每次调参必开日志记录,这是血的教训换来的。

6. 一张表总结PID三兄弟

参数 作用 太大会怎样 太小会怎样 我的常用范围
P 当前误差,即时响应 震荡、抖动、电机发烫 反应迟钝、漂移严重 0.3 - 0.8
I 累积误差,消除静差 积分饱和、超调、低频摆动 稳态误差、抗风差 0.005 - 0.05
D 误差变化率,提供阻尼 高频抖动、电机啸叫、噪声放大 过冲、急停不稳 0.01 - 0.05

嗯,这张表你存着,调参时对照着看,基本不会跑偏。记住,PID不是魔法,它只是一套反馈逻辑。理解了三兄弟各自的分工,你就能听懂飞机在「说」什么——它抖了,是P在喊「我太用力了」;它偏了,是I在喊「我还没攒够劲」;它啸叫了,是D在喊「噪声太大了,我受不了」。

飞控调参,说白了就是跟飞机对话。你听懂它,它就会听话。


专注资料整理