4. PID控制理论:比例、积分、微分的作用与参数整定
各位同学好,我是老张。今天咱们聊点硬核的——PID控制。说实话,我入行头三年,一直觉得PID就是个“调三个旋钮直到飞机不抖”的玄学。直到有一次在试飞现场,一架固定翼因为空速控制回路发散,差点冲出跑道……从那以后,我才真正沉下心来把PID吃透。
说白了,PID就是三个“纠偏员”在干活:比例负责“现在错了多少”,积分负责“过去攒了多少债”,微分负责“未来会错多少”。你想想看,这三个角色配合好了,飞机就能稳稳地按你给的指令飞。
4.1 比例控制(P)——最直接的纠偏
比例控制最简单,也最暴力。它的输出和当前误差成正比:
u(t) = Kp * e(t)
其中 e(t) 是目标空速和实际空速的差值。Kp 越大,纠偏力度越大。
我在项目中遇到过一个典型问题:某次调试一架小翼展无人机,Kp 给得太大了,结果空速一有偏差,舵面直接打满,飞机像抽风一样左右摇摆。嗯,这就是比例过大导致的震荡。
4.2 积分控制(I)——还清历史旧账
积分项专门解决稳态误差。它把过去所有的误差累加起来:
u(t) = Ki * ∫e(t)dt
说白了,积分就是“记仇”。误差存在时间越长,它输出的修正量越大,直到把误差彻底消除。
我曾经在调试一款飞翼布局时,发现空速总是偏低 0.8m/s,怎么调 Kp 都没用。后来加了积分项,几秒钟后误差就归零了。但这里有个坑——积分饱和。
• 起飞前手动清零积分项
• 或者加积分限幅(比如限制积分输出不超过总输出的30%)
• 再或者用“条件积分”——误差太大时暂停积分
4.3 微分控制(D)——预测未来的先知
微分项看的是误差的变化趋势:
u(t) = Kd * de(t)/dt
误差在快速增大?微分项提前输出反向力,把趋势扼杀在摇篮里。误差在快速减小?微分项“踩刹车”,防止超调。
我个人习惯在空速控制中只用 PD 或者 PI,很少三个全用。为什么?因为空速传感器本身有噪声,微分项对噪声极其敏感。你想想看,一个带毛刺的空速信号,微分一下,输出全是高频抖动。
4.4 Ziegler-Nichols 参数整定法
说到参数整定,Ziegler-Nichols 法是我入行时学的第一套方法。虽然现在有各种自动整定算法,但 Z-N 法依然是理解 PID 本质的最佳途径。
步骤很简单:
- 先把 Ki 和 Kd 设为 0,只保留比例控制
- 慢慢增大 Kp,直到系统开始等幅震荡
- 记下此时的 Kp 值,称为 Ku(临界增益)
- 记下震荡周期 Tu
- 按下面表格计算 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 法有个前提——执行机构要足够快。
4.5 知识体系总览
下面这张图是我自己整理的 PID 控制知识框架,方便大家对照理解:
4.6 实战中的参数整定建议
说了这么多理论,最后给几条实战建议:
- 先调 P,再调 I,最后调 D——这个顺序不要乱。P 调好了,系统基本能工作;I 解决精度问题;D 是锦上添花。
- 空速控制回路通常比姿态回路慢——空速变化受发动机响应、空气动力学延迟影响,所以 PID 参数可以设得保守一些。
- 别忘了做限幅——无论 P、I、D 哪个通道,输出都要限幅。我见过最惨的事故就是积分项输出过大,直接把油门推到底,飞机垂直爬升失速。
- 仿真和实物的差异——仿真里调好的参数,上真机后通常要再调。因为仿真模型永远无法完全模拟真实的风场、传感器噪声和执行机构延迟。
好了,这一章的内容就到这里。PID 控制是飞控系统的核心,也是你从“调参侠”进阶为“飞控工程师”的必经之路。多动手、多试错,慢慢就能找到感觉。