4、PID控制律设计:从原理到工程实践
各位同学好,今天我们聊聊PID控制。说实话,我在飞控领域摸爬滚打这么多年,PID是我用得最多的控制器,没有之一。你想想看,从简单的姿态稳定到复杂的轨迹跟踪,PID几乎无处不在。今天我就把它的原理、每个环节的作用,以及我最常用的参数整定方法,掰开了讲给你听。
4.1 PID控制器原理——一个简单的闭环故事
PID控制器的核心思想,说白了就是三个字:看偏差,算控制。
我们想要飞行器保持某个姿态角,比如俯仰角10度。传感器告诉你当前是8度,偏差就是2度。PID控制器就是根据这个偏差,算出一个控制量,让舵面或电机去修正。嗯,就这么简单。
数学上,PID控制器的输出u(t)可以写成:
u(t) = Kp * e(t) + Ki * ∫e(τ)dτ + Kd * de(t)/dt
其中e(t)是偏差,Kp、Ki、Kd分别是比例、积分、微分系数。这三个系数,就是我们今天要重点搞明白的东西。
核心要点:PID的本质就是根据偏差的现在、过去和未来趋势,综合决定控制量。比例看现在,积分看过去,微分看未来。
我在项目中遇到过不少新手,一上来就调三个参数,调得满头大汗。其实你只要理解了每个环节的作用,调参就有方向了。
4.2 比例环节——最直接的响应
比例环节的输出就是Kp乘以当前偏差。偏差大,控制量大;偏差小,控制量小。很直观对吧?
但比例环节有个问题:稳态误差。比如你要保持10度,比例控制可能只能到9.5度,剩下0.5度怎么都消不掉。为什么?因为偏差小了,控制量也小了,刚好被外界干扰抵消了。
我个人习惯是先调Kp,让系统响应速度差不多,再去处理稳态误差。Kp太大,系统会震荡;Kp太小,响应太慢。这个平衡点,需要你慢慢找。
我的经验:对于飞行器姿态控制,Kp的初始值可以从0.5开始试。如果系统震荡,减半;如果响应太慢,加倍。别一次调太多。
4.3 积分环节——消除稳态误差的利器
积分环节看的是偏差的累积。只要偏差存在,积分项就会一直增长,直到把偏差消除。这就是为什么积分能消除稳态误差。
但积分也有副作用——积分饱和。我记得有一次做无人机试飞,积分项太大,导致起飞时舵面一直偏,差点炸机。后来我加了抗积分饱和处理,才稳定下来。
积分系数Ki一般设得比较小。我建议Ki = Kp / Ti,Ti是积分时间常数。对于飞控,Ti通常在0.5到5秒之间。
注意:积分项不要加在有大延迟的系统上,否则容易引起震荡。我曾经在一个舵机响应很慢的飞机上试过,结果飞机像喝醉了一样左右摇摆。
4.4 微分环节——提前预判,抑制超调
微分环节看的是偏差的变化率。偏差变化快,说明系统正在快速偏离目标,微分项会给出一个反向控制力,把系统拉回来。说白了,就是提前刹车。
微分对高频噪声很敏感。你想想看,传感器噪声会导致偏差瞬间跳变,微分项就会放大这个噪声。所以实际工程中,我们通常不会直接用纯微分,而是用一阶低通滤波后的微分。
Kd的整定要小心。Kd太大,系统会高频抖动;Kd太小,又起不到抑制超调的作用。我个人习惯是先设Kd=0,调好P和I,再加一点点D。
避坑指南:我曾经在一个项目中,微分项没加滤波,结果控制信号全是毛刺,电机嗡嗡响。后来加了截止频率10Hz的低通滤波,问题就解决了。
4.5 PID参数整定方法——Ziegler-Nichols法
说到参数整定,Ziegler-Nichols法是我最常用的方法之一。它不需要精确的数学模型,只需要做几个实验就能得到不错的参数。特别适合工程现场调试。
Ziegler-Nichols法分两种:阶跃响应法和临界比例度法。我重点讲临界比例度法,因为它在飞控中更实用。
4.5.1 临界比例度法步骤
- 先把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 |
嗯,这里要注意:这个表给出的参数是初始值,实际应用中还需要微调。我一般会在计算值的基础上,再手动调一下,让响应更符合要求。
我的习惯:对于飞行器,我通常先用临界比例度法算出参数,然后手动微调。Kp减10%~20%让系统更稳定,Ki加一点消除稳态误差,Kd保持不动或稍微减小。
4.5.2 阶跃响应法
如果系统不允许做临界震荡实验(比如怕损坏设备),可以用阶跃响应法。给系统一个阶跃输入,记录响应曲线,提取出延迟时间L和时间常数T,然后查表计算。
这个方法在飞控中不太常用,因为飞行器在空中做阶跃响应实验风险较大。我一般在地面测试时用这个方法。
4.6 知识体系总览
下面这张图,是我自己整理的PID控制律设计核心逻辑。你看一遍,应该就能把今天的内容串起来了。
4.7 工程实践中的几点建议
最后,我把自己这些年用PID的一些心得分享给你:
- 先P后I再D:这是最稳妥的调参顺序。先把比例调好,再加积分消除稳态误差,最后加微分抑制超调。
- 注意采样时间:数字PID的采样时间要足够快,一般至少是系统带宽的10倍以上。飞控中常用100Hz到400Hz。
- 输出限幅:一定要对PID输出做限幅,防止积分饱和导致控制量过大。我一般限幅在最大控制量的80%。
- 手动模式切换:从手动模式切到PID控制时,要注意输出平滑过渡。我习惯用增量式PID,切换时不会跳变。
最后提醒一句:PID不是万能的。对于强非线性、大延迟的系统,PID可能力不从心。这时候就要考虑更高级的控制方法了。但作为入门和基础,PID绝对值得你花时间吃透。
好了,今天的内容就到这里。记住,调参没有捷径,多试、多观察、多总结,你也能成为PID高手。
公众号:蓝海资料掘金营,微信deep3321