4. 控制系统基础:PID控制器原理、串级PID结构与参数整定

飞控的核心,说白了就是“怎么让飞机听话”。你给它一个指令——比如“悬停在原地”——它得能对抗风、震动、重心偏移这些乱七八糟的干扰,稳稳地待住。这件事靠的就是控制系统。而PID控制器,就是飞控系统里最基础、也最实用的工具。

我记得刚入行那会儿,总觉得PID这东西太简单,不就是比例、积分、微分三个系数嘛。直到第一次调四旋翼,飞机在地上疯狂抽搐,我才意识到——纸上谈兵和实际调参,完全是两码事。今天我们就从原理到实战,把PID和它的串级结构彻底讲透。

4.1 PID控制器原理

PID控制器由三个环节组成:比例(P)、积分(I)、微分(D)。它们各自干一件事,合起来就能让系统又快又稳地到达目标值。

环节 作用 通俗理解
P(比例) 根据当前误差大小,输出一个成比例的控制量 误差越大,推得越猛
I(积分) 累积历史误差,消除稳态偏差 一直有偏差就一直加力,直到偏差消失
D(微分) 根据误差变化趋势,提前抑制超调 看到误差在变小,就提前收力,防止冲过头

数学表达式很简单:

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

其中 e(t) 是目标值与实际值的偏差。你想想看,如果只有P,飞机会在目标位置来回震荡,永远停不下来。加上D,就像加了阻尼,震荡慢慢收敛。再加上I,就能把因为重心偏移或风扰造成的静态误差彻底吃掉。

我的经验:在飞控里,I项不能太大。我曾经在一个项目中把Ki设得偏高,结果积分项越积越大,飞机起飞时直接朝一边猛冲过去——这就是所谓的“积分饱和”。后来我加了积分限幅和抗饱和逻辑,才彻底解决。

4.2 串级PID结构:位置环/速度环/姿态环

单级PID在飞控里基本不够用。为什么?因为无人机是一个多自由度、强耦合的系统。你给一个位置指令,它需要先调整姿态,姿态变化产生加速度,加速度积分成速度,速度积分成位置。这个过程有延迟、有惯性,单级PID根本扛不住。

所以飞控里普遍采用串级PID结构。说白了,就是“大环套小环”。外环输出给内环做目标,内环执行得更快、更准。

串级PID的核心逻辑:
外环(位置环)→ 输出期望速度 → 中环(速度环)→ 输出期望姿态角 → 内环(姿态环)→ 输出电机控制量

我画了一张图,帮你理清这个层级关系:

串级PID结构图 位置环 PID 输入:期望位置 速度环 PID 输入:期望速度 姿态环 PID 输入:期望姿态角 期望速度 期望姿态角 位置反馈 速度反馈 姿态反馈 说明:外环频率低(10-50Hz),内环频率高(200-400Hz)。姿态环最快,位置环最慢。

你看,位置环的输出是速度环的期望值,速度环的输出是姿态环的期望值,姿态环最终输出给电机。每一层只管自己的事,但合在一起就能实现精准的位置控制。

4.3 各环的职责与频率

三个环的运行频率不一样,这是由物理特性决定的:

  • 姿态环(内环):200-400Hz。姿态变化最快,必须高频控制。我习惯跑400Hz,这样对震动和突风的响应更及时。
  • 速度环(中环):50-100Hz。速度变化比姿态慢一些,频率可以降下来。
  • 位置环(外环):10-50Hz。位置变化最慢,频率最低。太高了反而容易引入噪声。
注意:三个环的频率必须保持整数倍关系。比如姿态环400Hz,速度环100Hz(4倍降频),位置环50Hz(8倍降频)。这样能避免采样抖动造成的控制不平滑。

4.4 PID参数整定方法

参数整定是飞控调试里最磨人的环节。我见过不少新手,上来就调P,结果飞机抖得像筛糠。其实整定是有套路的。

4.4.1 手动调参

手动调参的核心原则:先内后外,先P后I再D。具体步骤:

  1. 调姿态环P:只给P,从小到大加。直到飞机出现轻微震荡,然后回调20-30%。
  2. 调姿态环D:加D抑制震荡。D太小,飞机软绵绵;D太大,电机发烫、高频抖动。我一般调到用手推飞机能感到“阻尼感”为止。
  3. 调姿态环I:加I消除稳态误差。I太大,积分饱和;I太小,悬停时慢慢漂移。
  4. 调速度环:同样的逻辑,但目标变成了速度响应。注意速度环的P不能太大,否则飞机会“点头”。
  5. 调位置环:位置环的P决定了飞机回到目标点的“拉力”大小。P太大,飞机会在目标点附近来回冲。
我的习惯:调参时先用遥控器切到增稳模式(只跑姿态环),把姿态环调稳了,再切到定高或定点模式调外环。一步到位最容易炸机。

4.4.2 自动调参

手动调参太依赖经验,而且不同机型差异很大。所以现代飞控都支持自动调参。常用的方法有两种:

方法 原理 适用场景
继电器法 让系统产生等幅振荡,根据振荡周期和幅值计算PID参数 线性度较好的系统,快速粗调
模型辨识+极点配置 先辨识系统模型(如ARX模型),再根据期望响应配置极点 需要精确控制的场景,计算量大

我在PX4和ArduPilot上都跑过自动调参。说实话,自动调参出来的参数通常能用,但未必最优。尤其是遇到大桨距、重载或者特殊机架时,自动调参的结果往往偏保守。我建议把自动调参的结果作为初值,再手动微调。

避坑指南:我曾经在自动调参时没注意电池电压——低电量时电机响应变慢,自动调参算出来的P偏大。换上新电池一飞,飞机直接翻了个跟头。所以自动调参一定要在标准工况下进行,电池要满电,风要小,重心要调好。

4.5 小结

PID控制器是飞控的基石。单级PID不够用,串级PID才是工程实践的标准答案。位置环、速度环、姿态环各司其职,频率从低到高,形成一套完整的控制链路。调参时记住“先内后外、先P后I再D”,手动和自动结合,才能又快又稳地把飞机调好。