第2章 PID控制基础:比例、积分、微分的物理意义
聊PID之前,我先问个问题:你调参的时候,有没有觉得P、I、D三个参数像三个性格迥异的队友?
比例项像个急性子,看到偏差就猛推;积分项像个记仇的,把过去的偏差都攒着;微分项像个预言家,总想提前刹车。我做了这么多年飞控,越来越觉得——理解这三个家伙的脾气,比背公式重要得多。
2.1 比例(P)——最直接的反馈
比例控制,说白了就是「偏差越大,输出越大」。你想想看,四旋翼往右偏了10度,P项就输出一个向左的力矩,偏得越多,力矩越大。
核心公式: uP = Kp × e(t)
其中 e(t) 是当前偏差,Kp 是比例增益。
我在项目中遇到过一个问题:光用P控制,飞机永远回不到精确的水平位置。为什么?因为当偏差很小时,P项输出的力矩也很小,小到不足以克服机体的摩擦力或重心偏移。这就叫「稳态误差」。
调参经验: 先调P,让系统能响应。P太小,反应迟钝;P太大,会震荡甚至发散。我一般从0.1开始试,逐步往上加,直到出现轻微震荡再回调20%左右。
2.2 积分(I)——消除静差的老黄牛
积分项的作用,就是解决P项搞不定的稳态误差。它会累积过去的偏差,哪怕偏差只有0.1度,时间长了积分值也会变大,最终输出足够的力矩把飞机拉回来。
核心公式: uI = Ki × ∫e(t) dt
积分项对时间累积偏差,Ki 是积分增益。
嗯,这里要注意——积分是把双刃剑。我曾经在调试一款六旋翼时,I给得太大,结果飞机悬停时开始低频晃动,像喝醉了酒。这就是「积分饱和」的典型表现。
避坑指南: 我曾经吃过一次大亏——积分限幅没设好,起飞时积分项疯狂累积,等飞机离地直接翻了个跟头。记住:一定要给积分项加限幅,一般限制在输出总量的30%~50%。
2.3 微分(D)——提前预判的刹车片
微分项看的是偏差的变化率。如果飞机正在快速靠近目标,D项会提前输出反向力矩来「刹车」,防止超调。
核心公式: uD = Kd × de(t)/dt
微分项对偏差的变化率敏感,Kd 是微分增益。
你想想看,没有D项会怎样?飞机会像弹簧一样来回震荡,每次过冲再拉回,再过冲。D项就是那个「预判家」,让系统平滑地收敛。
实战技巧: 微分对噪声极其敏感。我习惯在D项前面加一个低通滤波器,截止频率设在20~30Hz。否则,传感器的一点点抖动都会被D放大成剧烈的电机抖动。
2.4 PID控制器的数学模型
把三个家伙合在一起,就是完整的PID控制器:
u(t) = Kp × e(t) + Ki × ∫e(t) dt + Kd × de(t)/dt
在飞控里,我们用的是离散形式(毕竟单片机只能处理离散数据):
u(k) = Kp × e(k) + Ki × Σe(i)×Δt + Kd × (e(k) - e(k-1))/Δt
其中 Δt 是控制周期,一般飞控用 1ms 或 2ms。我建议你把这个公式刻在脑子里——调参的时候,脑子里要能浮现出每个参数在公式里的位置和作用。
2.5 串级PID——姿态环的典型结构
单级PID在姿态控制里基本不够用。为什么?因为姿态角的变化率(角速度)和姿态角本身是两回事。你想想看,如果只用角度环,当飞机受到外力扰动时,角度环要等到角度偏差出现才会响应,太慢了。
串级PID的思路是:内环控制角速度,外环控制角度。内环跑得快(频率高),外环跑得慢(频率低)。
典型结构:
- 外环(角度环): 输入是目标角度,输出是目标角速度。一般只用P,偶尔加少量I。
- 内环(角速度环): 输入是目标角速度,输出是电机控制量。P、I、D都用,响应要快。
我在项目中遇到过最典型的案例:一架穿越机,外环P给到4.5,内环P给到0.08,内环I给到0.02,内环D给到0.003。飞起来手感非常跟手,几乎没有延迟感。
重要原则: 内环频率至少是外环的5~10倍。我一般设外环100Hz,内环500Hz。如果频率比不对,内环响应跟不上外环指令,飞机会出现高频抖动。
2.6 三个参数的调参顺序
我个人的调参习惯,供你参考:
| 步骤 | 操作 | 现象判断 | 我的经验值 |
|---|---|---|---|
| 1 | I和D归零,只调P | 飞机开始轻微震荡时,P就差不多了 | 穿越机:0.06~0.12 |
| 2 | 加D抑制震荡 | 震荡消失,手感变「硬」 | D = P × 0.03~0.05 |
| 3 | 加I消除静差 | 悬停更稳,但不要出现低频晃动 | I = P × 0.2~0.4 |
| 4 | 微调三个参数 | 快速打舵,看回中是否干脆 | 根据手感微调±10% |
一个实用技巧: 调内环的时候,用手抓住飞机,快速晃动机身,感受电机是否有力矩输出对抗你的手。如果对抗感很强且不抖动,内环就差不多了。
记住,PID调参没有万能公式。每架飞机的重量、重心、桨叶尺寸都不一样。我见过有人把一套参数从一架飞机直接复制到另一架,结果炸机了。嗯,参数是死的,飞机是活的,多试多感受才是正道。