3、PID控制基础:比例(P)控制原理、积分(I)控制原理、微分(D)控制原理、PID控制器结构
各位同学,今天我们来聊聊飞控里最核心的东西——PID控制。说实话,我入行那会儿,第一次调PID也是满头包。但搞懂了这三个字母背后的逻辑,你会发现飞控调参其实没那么玄乎。
咱们先看一张图,把PID的整体结构搞清楚,再一个一个拆开讲。
比例(P)控制原理
比例控制,说白了就是「有多大错,使多大劲」。你想想看,无人机偏了10度,你给它一个纠正力;偏了20度,纠正力翻倍。这就是P的本质——误差乘以一个系数Kp。
公式很简单:P_out = Kp × e(t)
我个人习惯把Kp比作「弹簧刚度」。刚度越大,飞机回正越快。但刚度过大呢?飞机就会在目标位置来回震荡,像弹簧拉过头又弹回来。
关键点:P控制永远存在稳态误差。为什么?因为当误差变得很小时,P输出的力也很小,可能刚好被重力或风阻抵消,飞机就停在那了,永远到不了目标位置。
我在项目中遇到过一架四轴,悬停时总是偏东。我加大Kp,它确实回正快了,但风一来又开始抖。后来发现是重心偏了,P再大也救不了物理上的不平衡。
积分(I)控制原理
积分控制,就是用来干掉稳态误差的。它会把过去所有的误差累加起来,只要误差一直存在,积分项就会越来越大,直到把飞机推回正确位置。
公式:I_out = Ki × ∫e(t)dt
嗯,这里要注意。积分项是个「记仇」的家伙。你想想看,如果飞机被风吹偏了,积分项会一直累积,等风停了,它还在那使劲推,结果飞机就冲过头了。这就是我们常说的「积分饱和」。
避坑指南:我曾经在调试一款固定翼时,积分系数设得太大,结果飞机在巡航时出现低频晃动,像喝醉了酒。后来把积分限幅加上,问题才解决。记住:积分不是越大越好,它需要「限幅」和「防饱和」。
积分还有个好处——消除静差。比如你的无人机重心偏了,P控制永远差那么几度,积分项会慢慢补上这个差值。我一般先调好P,再一点点加I,加到飞机能稳定在目标位置就行。
微分(D)控制原理
微分控制,看的是误差的变化趋势。说白了,它是个「预言家」。误差在快速增大?微分项会提前输出一个反向力,阻止它继续恶化。
公式:D_out = Kd × de(t)/dt
我个人觉得,微分是PID里最「聪明」的一环。它不关心你现在偏了多少,只关心你偏得有多快。比如飞机突然被阵风吹歪,微分项会瞬间给出一个很大的阻尼力,把震荡压下去。
实战技巧:我调D的时候有个习惯——先让飞机轻微晃动,然后一点点加D,直到晃动被「吸住」。但D太大会引入高频噪声,因为传感器数据本身就有抖动,微分会把噪声放大。所以一般要配合低通滤波使用。
你想想看,如果没有D,飞机就像没有减震器的汽车,过个坎能颠半天。有了D,就像装了高级悬挂,晃一下就稳住了。
PID控制器结构
把上面三个合在一起,就是完整的PID控制器:
u(t) = Kp × e(t) + Ki × ∫e(t)dt + Kd × de(t)/dt
这个公式看着简单,但实际飞控里有很多变种。我常用的结构有几种:
| 结构类型 | 特点 | 适用场景 |
|---|---|---|
| 标准PID | P、I、D都作用于误差 | 一般位置控制 |
| PI控制器 | 去掉D,只有P和I | 速度控制、噪声大的场景 |
| PD控制器 | 去掉I,只有P和D | 角度控制、快速响应场景 |
| 串级PID | 内环角速度、外环角度 | 多旋翼姿态控制(最常用) |
实际飞控里,我几乎不用标准PID直接控制姿态。为什么?因为角度环和角速度环的响应速度差太多。我习惯用串级PID——内环控制角速度(响应快),外环控制角度(响应慢),这样内外环互不干扰,调参也方便。
我的调参顺序:先调内环D(阻尼),再调内环P(响应),然后调外环P,最后加一点点I消除静差。这个顺序我用了十年,基本没翻过车。
最后说一句,PID不是万能的。遇到强风、大负载变化,PID可能力不从心。但作为飞控的基础,搞懂它,你就能解决90%的飞行问题。