4. PID控制原理:比例、积分、微分环节的作用、PID参数对系统的影响
聊到飞控算法,PID 是绕不开的核心。说白了,它就是一套「看现在、忆过去、想未来」的控制逻辑。我做了这么多年飞控调参,见过太多新手一上来就猛调 P,结果飞机抖得像筛糠。今天咱们就把这三个环节掰开揉碎了讲清楚。
4.1 比例环节(P)—— 当下的力量
比例环节最直观。它的公式很简单:P_out = Kp * e(t)。其中 e(t) 是当前误差,也就是「目标值 - 当前值」。
作用是什么?
误差越大,输出的控制量就越大。你想想看,飞机低头了,我给它一个抬头力矩,低头越狠,抬头越猛。这就是比例环节的直觉。
Kp 的影响:
- Kp 太小:系统反应迟钝。飞机偏了,它慢悠悠地回正,像个没睡醒的司机。
- Kp 太大:系统容易震荡。我遇到过一架四旋翼,Kp 调太高,起飞瞬间直接翻了个跟头——因为响应太猛,超调后反复修正,越修越乱。
- Kp 合适:快速响应,稳态误差小,但无法完全消除误差。
核心结论:比例环节决定了系统的「反应速度」和「刚性」。但它有个硬伤——稳态误差。比如你让飞机悬停在 10 米高度,P 控制下它可能停在 9.8 米就不动了,因为误差小到产生的控制力刚好被重力抵消。
4.2 积分环节(I)—— 过去的积累
积分环节解决的就是 P 解决不了的问题。公式:I_out = Ki * ∫e(t)dt。它把过去所有的误差累加起来。
为什么需要它?
因为现实世界有各种「偏置」。比如重心偏移、风阻、传感器零偏。这些因素会让系统始终存在一个固定方向的误差。P 环对此无能为力,但 I 环会不断累积这个误差,直到输出足够的控制量把它拉回来。
Ki 的影响:
- Ki 太小:消除稳态误差的速度极慢。你可能等了一分钟,飞机才慢慢爬到目标高度。
- Ki 太大:积分饱和。这是个大坑。我曾经调试一架固定翼,Ki 设大了,结果飞机在爬升时积分项疯狂累积,等到了目标高度,积分值还没退回来,导致飞机直接冲过头,进入大幅震荡。
- Ki 合适:稳态误差被平滑消除,系统稳定。
避坑指南:我曾经在调试一款测绘无人机时,忽略了积分限幅。结果飞机在强风条件下,积分项累积到满值,电机直接满油门输出,差点炸机。记住:积分环节一定要加限幅,并且考虑「积分分离」策略——误差大时停止积分,误差小时再启用。
4.3 微分环节(D)—— 未来的预判
微分环节看的是误差的变化趋势。公式:D_out = Kd * de(t)/dt。说白了,它预测「下一秒误差会变成什么样」。
为什么需要它?
P 和 I 都是「事后补救」,而 D 是「事前预防」。当误差正在快速增大时,D 会提前输出反向控制力,抑制这种趋势。这就像你开车看到前面刹车灯亮了,你提前松油门——而不是等撞上了才踩刹车。
Kd 的影响:
- Kd 太小:系统超调大,震荡衰减慢。
- Kd 太大:系统对噪声极其敏感。传感器的一点点抖动,在微分项里会被放大成剧烈的控制输出。我见过有人把 Kd 调大后,飞机在地面静止时电机都在「哆嗦」——那是传感器噪声被微分放大了。
- Kd 合适:系统响应快,超调小,稳定性好。
我的个人习惯:在实际工程中,我通常先调 P,让系统能响应但不震荡;然后加一点 D 抑制超调;最后用 I 消除稳态误差。这个顺序我用了十年,基本没出过问题。
4.4 三个环节的协同工作
PID 不是三个独立模块的简单叠加。它们之间会相互影响:
- P 和 D 的关系:D 可以让你用更大的 P 而不产生震荡。所以有时候你发现 P 调不上去,试试加点 D。
- P 和 I 的关系:I 的存在会降低系统的相位裕度,让系统更容易震荡。所以加了 I 之后,往往需要适当降低 P。
- D 和噪声的关系:D 对高频噪声敏感,所以实际工程中通常会对微分项做低通滤波。我一般用一阶滤波,截止频率设在 20-50Hz 之间。
4.5 知识体系结构图
下面这张图总结了 PID 三个环节的核心逻辑和参数影响:
4.6 参数调优实战建议
纸上谈兵没意思,我分享几个实际调参中的经验:
- 先让系统动起来:从很小的 P 开始,逐步增大直到系统出现轻微震荡,然后退回 60-70%。这是 P 的基准值。
- 加入 D 抑制震荡:在 P 的基础上,逐步增加 D,直到震荡被明显抑制。注意观察高频抖动——如果出现,说明 D 太大了。
- 最后加 I 消除偏差:从很小的 Ki 开始,观察稳态误差是否在缓慢减小。如果系统出现低频摆动(周期几秒那种),说明 I 太大了。
- 别忘了限幅:积分限幅、输出限幅,这两个是保命用的。我习惯把积分限幅设在输出限幅的 30-50%。
一个真实案例:去年调试一款倾转旋翼无人机,在过渡模式(垂直转平飞)时,俯仰通道总是出现剧烈震荡。查了半天,发现是积分项在模式切换时没有清零,累积了上一阶段的误差。加上「积分清零」逻辑后,问题立刻解决。嗯,细节决定成败。
4.7 参数影响速查表
| 参数 | 增大效果 | 减小效果 | 典型问题 |
|---|---|---|---|
| Kp | 响应加快,超调增大 | 响应变慢,稳态误差增大 | Kp 过大 → 高频震荡 |
| Ki | 稳态误差消除加快 | 稳态误差消除变慢 | Ki 过大 → 积分饱和、低频摆动 |
| Kd | 超调减小,稳定性提高 | 超调增大,震荡加剧 | Kd 过大 → 噪声放大、电机抖动 |
最后说一句:PID 参数没有「万能值」。每架飞机的动力学特性、传感器噪声水平、执行器响应速度都不一样。我见过有人把一套参数从一架飞机直接复制到另一架,结果炸得稀碎。老老实实按流程调,比什么都强。
公众号:蓝海资料掘金营,微信deep3321