调参方法论:先调P、再调D、最后调I的黄金顺序
很多新手拿到飞机,上来就对着PID三个参数一顿乱拧。结果呢?飞机要么抖得像筛糠,要么反应慢半拍。我刚开始做飞控那会儿也犯过这毛病——调了一下午,电池都换了两块,飞机还是没法平稳悬停。
后来带我的老师傅跟我说了一句话,我到现在都记得:「调参不是调音台,别三个旋钮一起拧。」
说白了,PID调参是有顺序的。这个顺序不是我发明的,是无数工程师用炸机换来的经验。今天我就把这个黄金顺序掰开了讲给你听。
为什么是P→D→I?
先想一个问题:飞机为什么不稳?
因为外界有干扰,比如风。飞控要对抗干扰,就得先知道「偏差有多大」。这个任务,就是P的活。
P(比例)负责响应当前的偏差。你想想看,如果P都没调好,飞机连基本的回正力都没有,你调D和I有什么用?
D(微分)负责预测偏差的变化趋势。它像是一个「阻尼器」,抑制P带来的超调和震荡。但D对噪声非常敏感——我曾在项目里遇到过,P刚调稳,一加D反而开始高频抖动,最后发现是IMU的振动噪声没滤干净。
I(积分)负责消除稳态误差。说白了,就是当P和D都搞不定的那点「偏航角」,靠I慢慢把它拉回来。但I有滞后性,调大了会引入低频振荡。
核心逻辑:
- P 决定飞机的「刚性」——能不能快速回正
- D 决定飞机的「韧性」——回正时会不会过头
- I 决定飞机的「准头」——最终能不能停在目标位置
所以顺序很明确:先把P调到飞机能飞,再用D把飞机稳住,最后用I把误差抹掉。
第一步:调P——找到飞机的「刚性」
调P之前,先把D和I归零。对,就是设成0。
然后慢慢增大P值。怎么判断P合适?我教你一个土办法:
- 用手轻轻推一下飞机(注意安全,桨别伤人)
- 观察飞机回正的速度和幅度
- 如果回正很慢,甚至不回正——P太小
- 如果回正很快,但来回晃几下才停——P偏大,但接近临界了
- 如果飞机开始高频抖动——P太大了,赶紧降下来
我的经验值:
对于250mm轴距左右的四轴,P的起始值我一般设在0.03~0.05(角速度环)。如果飞机悬停时肉眼可见地「点头」,那就是P偏大。我曾经调一架450轴距的机架,P从0.02一直试到0.08才找到感觉——不同机架差别真的很大。
调P的目标是什么?让飞机在受到扰动后,能快速回正,且最多只超调1~2次就稳定下来。
第二步:调D——给飞机加「阻尼」
P调好了,飞机应该能飞了,但可能有点「贼」——稍微动一下摇杆,飞机就反应过度。这时候就该D上场了。
D的作用是抑制变化速度。你想想看,当飞机快速回正时,D会提前「踩刹车」,防止它冲过头。
调D的方法:
- 保持P不变,从0开始慢慢增加D
- 同样用手推飞机,观察回正过程
- 如果回正时不再超调,而是平滑地回到目标位置——D合适
- 如果飞机开始高频抖动(注意,和P过大的抖动不同,D的抖动频率更高)——D太大了
避坑指南:
我曾经在调试一架搭载了GoPro的六轴时,D稍微加了一点,飞机就开始剧烈抖动。查了半天才发现,是GoPro的安装支架有共振。D对高频振动特别敏感,如果你的飞机结构刚性不够,D值一定要保守。我现在的习惯是:D值不超过P值的1/3,除非机架非常硬朗。
调D的目标:让飞机回正过程平滑、无超调,像被一只无形的手稳稳托住。
第三步:调I——消除最后的「偏航」
P和D都调好了,飞机应该很稳了。但你可能发现一个问题:飞机悬停一段时间后,会慢慢往一个方向飘。这就是稳态误差。
I的作用就是累积这个误差,慢慢把它拉回来。
调I的方法:
- 保持P和D不变,从0开始增加I
- 让飞机悬停,观察它是否还会缓慢漂移
- 如果漂移消失——I合适
- 如果飞机开始低频摆动(周期2~3秒那种)——I太大了
小技巧:
调I的时候,可以故意让飞机偏一个角度,然后松手。如果飞机能自己慢慢回到水平,说明I在起作用。如果回来得太慢,I偏小;如果回来时过了头又开始摆,I偏大。我一般把I设为P的1/10到1/5作为起始值。
黄金顺序的完整流程
下面这张图,是我自己画的一个调参流程图。每次调新飞机,我都按这个步骤走,基本不会翻车。
一个完整的调参示例
假设你正在调一架四轴飞行器的横滚(Roll)通道。参数如下:
| 步骤 | P | D | I | 现象 | 操作 |
|---|---|---|---|---|---|
| 初始 | 0.00 | 0.00 | 0.00 | 飞机无法回正,一推就翻 | 增大P |
| 第1轮 | 0.02 | 0.00 | 0.00 | 能回正,但很慢,像没吃饭 | 继续增大P |
| 第2轮 | 0.05 | 0.00 | 0.00 | 回正快,但超调3次才稳定 | P合适,开始加D |
| 第3轮 | 0.05 | 0.01 | 0.00 | 超调减少到1次,但还有 | 继续增大D |
| 第4轮 | 0.05 | 0.02 | 0.00 | 无超调,回正平滑 | D合适,开始加I |
| 第5轮 | 0.05 | 0.02 | 0.005 | 悬停10秒后开始缓慢漂移 | 继续增大I |
| 第6轮 | 0.05 | 0.02 | 0.010 | 漂移消失,悬停稳定 | 调参完成 |
重要提醒:
上面的数值只是示例。不同机架、不同飞控、不同传感器,参数可能差一个数量级。我见过有人把P调到0.5还嫌小,也见过0.01就抖得不行。关键不是记住数值,而是理解现象和参数的关系。
为什么不能先调I?
这个问题我经常被问到。有人觉得,既然I能消除误差,为什么不先把它调好?
原因很简单:I会掩盖P和D的问题。
你想想看,如果P太小,飞机回正力不足,但I会慢慢把它拉回来。表面上看起来飞机是稳了,但实际上反应很迟钝——遇到阵风,飞机会先偏出去很远,然后被I慢慢拽回来。这种「假稳」在室内可能看不出来,一到室外有风的环境,飞机就像喝醉了酒。
我曾在项目里吃过这个亏。当时为了赶进度,先调了I让飞机「看起来稳」,结果试飞时一阵横风过来,飞机直接飘出去十几米才回来。从那以后,我再也不敢跳过P和D直接调I了。
调参时的几个实用技巧
- 每次只改一个参数——改了P就别动D,改了D就别动I。否则你根本不知道是哪个参数引起的现象变化。
- 记录每次的参数和现象——我习惯用个小本子记下来,或者直接在飞控的配置文件里写注释。调参是个迭代过程,记性靠不住。
- 从内环到外环——如果你调的是姿态模式,先调角速度环(内环),再调角度环(外环)。内环是外环的基础,内环不稳,外环怎么调都没用。
- 安全第一——调参时把飞机绑在测试架上,或者卸掉桨叶。我见过有人徒手抓飞机调参,结果P调大了,飞机直接翻过来打手——嗯,那滋味肯定不好受。
总结一下黄金顺序的核心思想:
P是骨架,D是肌肉,I是神经。先搭骨架,再长肌肉,最后连神经。顺序错了,飞机就长歪了。