4. PID控制理论:比例、积分、微分的作用与参数整定

各位同学好,我是老张。今天咱们聊点硬核的——PID控制。说实话,我入行头三年,一直觉得PID就是个“调三个旋钮直到飞机不抖”的玄学。直到有一次在试飞现场,一架固定翼因为空速控制回路发散,差点冲出跑道……从那以后,我才真正沉下心来把PID吃透。

说白了,PID就是三个“纠偏员”在干活:比例负责“现在错了多少”,积分负责“过去攒了多少债”,微分负责“未来会错多少”。你想想看,这三个角色配合好了,飞机就能稳稳地按你给的指令飞。

4.1 比例控制(P)——最直接的纠偏

比例控制最简单,也最暴力。它的输出和当前误差成正比:

u(t) = Kp * e(t)

其中 e(t) 是目标空速和实际空速的差值。Kp 越大,纠偏力度越大。

我在项目中遇到过一个典型问题:某次调试一架小翼展无人机,Kp 给得太大了,结果空速一有偏差,舵面直接打满,飞机像抽风一样左右摇摆。嗯,这就是比例过大导致的震荡。

⚠️ 注意: 纯比例控制永远存在稳态误差。比如你要飞 20m/s,实际可能稳定在 19.5m/s,那 0.5m/s 的差距就是稳态误差。因为比例控制需要误差存在才能产生输出,所以它永远“差一口气”。

4.2 积分控制(I)——还清历史旧账

积分项专门解决稳态误差。它把过去所有的误差累加起来:

u(t) = Ki * ∫e(t)dt

说白了,积分就是“记仇”。误差存在时间越长,它输出的修正量越大,直到把误差彻底消除。

我曾经在调试一款飞翼布局时,发现空速总是偏低 0.8m/s,怎么调 Kp 都没用。后来加了积分项,几秒钟后误差就归零了。但这里有个坑——积分饱和。

💡 避坑指南: 积分饱和是新手最容易踩的坑。比如飞机在地面还没起飞,空速传感器读数为0,目标空速15m/s,积分项会疯狂累加。等飞机一起飞,积分项已经“欠了一屁股债”,导致超调严重。我的习惯是:
• 起飞前手动清零积分项
• 或者加积分限幅(比如限制积分输出不超过总输出的30%)
• 再或者用“条件积分”——误差太大时暂停积分

4.3 微分控制(D)——预测未来的先知

微分项看的是误差的变化趋势:

u(t) = Kd * de(t)/dt

误差在快速增大?微分项提前输出反向力,把趋势扼杀在摇篮里。误差在快速减小?微分项“踩刹车”,防止超调。

我个人习惯在空速控制中只用 PD 或者 PI,很少三个全用。为什么?因为空速传感器本身有噪声,微分项对噪声极其敏感。你想想看,一个带毛刺的空速信号,微分一下,输出全是高频抖动。

🔧 实用技巧: 如果非要用微分,记得先对空速信号做低通滤波。我一般用一阶低通,截止频率设在 5-10Hz,效果不错。

4.4 Ziegler-Nichols 参数整定法

说到参数整定,Ziegler-Nichols 法是我入行时学的第一套方法。虽然现在有各种自动整定算法,但 Z-N 法依然是理解 PID 本质的最佳途径。

步骤很简单:

  1. 先把 Ki 和 Kd 设为 0,只保留比例控制
  2. 慢慢增大 Kp,直到系统开始等幅震荡
  3. 记下此时的 Kp 值,称为 Ku(临界增益)
  4. 记下震荡周期 Tu
  5. 按下面表格计算 PID 参数
控制器类型 Kp Ki Kd
P 0.5 * Ku - -
PI 0.45 * Ku 1.2 * Kp / Tu -
PID 0.6 * Ku 2 * Kp / Tu Kp * Tu / 8

我在项目中遇到过一个情况:某次用 Z-N 法整定出来的参数,仿真时效果完美,但一上真机就震荡。后来发现是执行机构(舵机)的响应速度跟不上控制器的输出频率。所以 Z-N 法有个前提——执行机构要足够快。

⚠️ 注意: Z-N 法整定出来的参数通常偏“激进”,适合快速响应。如果追求平稳,建议把 Kp 再降 20-30%。我个人的经验是:先用 Z-N 法算出初始值,然后手动微调,直到响应速度和超调量都满意为止。

4.5 知识体系总览

下面这张图是我自己整理的 PID 控制知识框架,方便大家对照理解:

PID控制理论核心框架 PID控制器 比例 (P) Kp * e(t) 积分 (I) Ki * ∫e(t)dt 微分 (D) Kd * de(t)/dt P 特性 • 响应最快 • 存在稳态误差 I 特性 • 消除稳态误差 • 可能积分饱和 D 特性 • 抑制超调 • 对噪声敏感 Ziegler-Nichols 整定法 临界增益 Ku → 震荡周期 Tu → 查表计算

4.6 实战中的参数整定建议

说了这么多理论,最后给几条实战建议:

  • 先调 P,再调 I,最后调 D——这个顺序不要乱。P 调好了,系统基本能工作;I 解决精度问题;D 是锦上添花。
  • 空速控制回路通常比姿态回路慢——空速变化受发动机响应、空气动力学延迟影响,所以 PID 参数可以设得保守一些。
  • 别忘了做限幅——无论 P、I、D 哪个通道,输出都要限幅。我见过最惨的事故就是积分项输出过大,直接把油门推到底,飞机垂直爬升失速。
  • 仿真和实物的差异——仿真里调好的参数,上真机后通常要再调。因为仿真模型永远无法完全模拟真实的风场、传感器噪声和执行机构延迟。
📌 总结一下: PID 控制没有“万能参数”,每个机型、每个飞行阶段都可能需要不同的参数。我的习惯是:先做仿真整定,再在真机上做小范围微调。记住,调参是个迭代过程,别指望一次搞定。

好了,这一章的内容就到这里。PID 控制是飞控系统的核心,也是你从“调参侠”进阶为“飞控工程师”的必经之路。多动手、多试错,慢慢就能找到感觉。


专注资料整理