PID控制基础:从公式到手感

大家好,我是你们的老朋友。今天咱们聊聊PID控制——飞控里最基础、也最绕不开的东西。

说实话,我刚开始做飞控那会儿,觉得PID就是个黑盒子。调参数全靠蒙,飞起来要么抖得像筛子,要么软得像面条。后来踩的坑多了,才慢慢摸到门道。

这一章,咱们就把PID的底裤扒干净。从公式到物理意义,再到每个参数到底在干什么,我都会用大白话讲清楚。

核心观点:PID不是数学公式,它是你控制无人机姿态的“手感”。比例是力度,积分是纠偏,微分是预判。

PID公式长什么样?

先看标准公式:

u(t) = Kp * e(t) + Ki * ∫e(t)dt + Kd * de(t)/dt

别被积分微分吓到。咱们拆开看:

  • e(t):当前误差。比如你希望飞机水平,但它偏了5度,那e就是5。
  • u(t):控制输出。说白了就是电机要多转多少。
  • Kp、Ki、Kd:三个系数,就是我们常说的P、I、D参数。

嗯,就这么简单。三个部分加起来,就是最终的控制量。

比例(P):最直接的“力度”

比例项说白了就是:误差越大,纠正越猛

你想想看,飞机偏了10度,你肯定希望它用力回正。偏了1度,轻轻带一下就行。这就是P在做的事。

公式里就是 Kp * e。Kp越大,纠偏力度越大。

我的经验:调P的时候,我习惯先给一个保守值,然后慢慢往上加。加到飞机开始轻微抖动,再退回20%。这个点,就是P的“甜区”。

但P有个硬伤——稳态误差。什么意思?比如有风一直吹,P只能根据当前误差输出,永远差那么一口气,就是回不到零。这时候就需要I了。

积分(I):专治“老偏”

积分项,说白了就是算总账

它把过去所有的误差累加起来。只要误差一直存在,积分值就会越来越大,输出也越来越大,直到把误差彻底消除。

公式里是 Ki * ∫e(t)dt。∫就是累加的意思。

注意:积分不是越大越好。我曾经在一个项目里,I给大了,结果飞机悬停时一直“嗡嗡”地上下抖动。这就是积分饱和——累加过头了。

调I的时候,我建议从0开始,一点点加。加到飞机能稳稳定住,不再有静差,就停。再多一点,就会引入低频振荡。

微分(D):提前“刹车”

微分项,是PID里最聪明的一个。它预测未来

公式里是 Kd * de(t)/dt。de/dt就是误差的变化率。误差变化越快,微分输出越大。

举个例子:飞机快速回中时,P在用力拉,但惯性会让它冲过头。D这时候就会提前“踩刹车”,让飞机稳稳停在目标位置。

没有D的飞控,就像开车没有减震——过个坎能颠半天。

避坑指南:我曾经在调试一款大四轴时,D给大了,结果飞机一打舵就高频抖动,像得了帕金森。后来发现是D对噪声太敏感。解决办法是加滤波,或者降低D值。

调D的时候,我习惯先给一个很小的值,比如0.001。然后打舵看响应。如果回中时有轻微过冲,就加一点D。如果开始抖了,就减。

为什么飞控非用PID不可?

这个问题我当年也问过自己。后来想明白了:

  1. 简单可靠:PID不需要模型,调三个参数就能干活。对于飞控这种实时性要求极高的系统,太复杂的算法跑不过来。
  2. 物理意义清晰:P、I、D分别对应力度、纠偏、预判。出了问题,你知道该动哪个旋钮。
  3. 工程验证充分:从1950年代开始,PID就在工业界用了。飞控领域更是积累了无数经验。你遇到的坑,基本都有人踩过。

当然,PID不是万能的。比如强风干扰、大角度机动时,纯PID会力不从心。但作为基础,它足够用了。

下面这张图,是我自己画的PID控制逻辑框架,帮你理清思路:

目标角度 + 误差 e(t) PID控制器 P: Kp × e(t) I: Ki × ∫e(t)dt D: Kd × de/dt ∑ 求和 控制量 u(t) 无人机 反馈(传感器测量)

从图里能看出来,PID就是个闭环:目标→误差→PID计算→控制输出→无人机→反馈→再算误差。周而复始,每秒几百次。

三个参数怎么配合?

我总结了一个口诀:P定刚度,I消静差,D稳动态

参数 作用 调大后果 调小后果 典型场景
P 响应速度、刚度 抖动、振荡 反应迟钝、手感软 悬停、小幅度修正
I 消除稳态误差 积分饱和、低频振荡 有静差、抗风差 悬停、定高、抗风
D 抑制过冲、增加阻尼 高频抖动、噪声放大 过冲大、回中慢 快速机动、航向锁定

调参的顺序,我个人习惯是:先P,再D,最后I

为什么?因为P是基础,先把响应调出来。然后加D抑制过冲。最后用I消除静差。这个顺序,我在十几个项目里验证过,最不容易翻车。

一个小技巧:调P的时候,把I和D先设成0。调D的时候,P保持刚才的值,I还是0。等P和D配合好了,再加I。这样每一步的问题都清晰,不会互相干扰。

写在最后

PID说难不难,说简单也不简单。我见过有人调了一周还在抖,也见过老手十分钟搞定。区别就在于——你理不理解每个参数在干什么。

这一章的内容,说白了就是帮你建立这个理解。下次你调参的时候,脑子里能浮现出P在用力、I在算账、D在刹车,那就对了。

嗯,今天就到这儿。记住:飞控调参不是玄学,是科学。只是这门科学,需要一点手感。


公众号:蓝海资料掘金营,微信deep3321