第1章:PID控制基础——比例(P)、积分(I)、微分(D)的作用与数学表达式
各位同学,欢迎来到《差速驱动系统PID调参全流程》的第一课。
我是你们的老朋友,一个在机器人堆里摸爬滚打了十几年的工程师。今天咱们聊点最基础,但也最核心的东西——PID控制。
你可能会说:“PID?太简单了吧,不就是调三个参数吗?”
嗯,我当年也是这么想的。直到有一次,我调试一台AGV小车,比例系数给大了,小车原地疯狂抖动,差点把货架上的零件全晃下来。从那以后,我再也不敢小看这三个字母了。
1.1 什么是PID控制?
说白了,PID就是一个“纠错”的算法。
你想想看,我们想让机器人走直线,但轮子有摩擦、电机有延迟、地面还不平。这时候,你需要一个东西,能实时告诉你:“嘿,偏了!赶紧往回调!”
PID干的就是这个活。
它根据“目标值”和“实际值”之间的偏差,计算出应该给电机多大的控制量。这个计算过程,就是比例、积分、微分三个环节的加权求和。
核心公式:
u(t) = Kp * e(t) + Ki * ∫e(t)dt + Kd * de(t)/dt
其中:
- u(t):控制输出(比如给电机的PWM值)
- e(t):当前偏差 = 目标值 - 实际值
- Kp:比例增益
- Ki:积分增益
- Kd:微分增益
这个公式,我建议你背下来。不是死记硬背,而是理解它背后的物理意义。咱们一个一个拆开讲。
1.2 比例控制(P)—— 最直接的“纠偏”
比例控制,就是“偏差越大,纠正力度越大”。
数学表达式很简单:
P_out = Kp * e(t)
举个例子:你的机器人目标速度是1m/s,现在实际只有0.5m/s。偏差是0.5m/s。如果Kp=10,那比例输出就是5。这个5会直接加到电机上,让电机加速。
我在项目中遇到过一个问题:只用了比例控制,小车永远到不了目标位置。为什么?因为当偏差变得很小的时候,比例输出也很小,小到不足以克服摩擦力。这就产生了“稳态误差”。
我的经验:
Kp调得太大,系统会震荡。调得太小,响应太慢。我一般先给一个保守值,然后慢慢往上加,直到系统开始出现轻微震荡,再回调20%。
1.3 积分控制(I)—— 消除“历史欠账”
积分控制,说白了就是“算总账”。
它把过去所有的偏差都累加起来。只要偏差一直存在,积分项就会一直增长,直到把那个顽固的稳态误差消除掉。
I_out = Ki * ∫e(t)dt
你想想看,如果只用比例控制,小车停在离目标还有0.1米的地方不动了。这时候积分项开始起作用:它看到“过去这段时间,偏差一直没消失”,于是它不断加大输出,直到小车挪到目标位置。
注意!这里有个坑:
我曾经吃过一次大亏。积分项太强,导致系统出现“积分饱和”。什么意思呢?就是小车启动时,偏差很大,积分项疯狂累积。等小车到达目标时,积分项里还存着一大堆“旧账”,导致小车冲过头,然后来回震荡,半天稳不下来。
解决办法:加一个积分限幅,或者用“积分分离”策略——偏差大的时候,先不让积分起作用。
1.4 微分控制(D)—— 预测“未来趋势”
微分控制,看的是偏差的变化率。说白了,就是“刹车”或者“提前加速”。
D_out = Kd * de(t)/dt
举个例子:你的小车正在快速接近目标位置。比例项说“还有偏差,继续走”,但微分项看到“偏差正在快速减小”,它会给出一个反向的力,让小车提前减速,防止冲过头。
我个人习惯,在差速驱动系统里,微分项用得比较谨慎。因为微分对噪声特别敏感。轮子稍微颠簸一下,微分项就会剧烈跳动,反而把系统搞得不稳定。
避坑指南:
我曾经在一条粗糙的水泥路上调试机器人,微分项一加上去,电机就开始“吱吱”乱叫。后来发现是编码器信号有噪声,微分项把噪声放大了。解决办法:要么加一个低通滤波器,要么干脆把Kd设成0,只用PI控制。
1.5 三个环节的协同工作
好了,三个环节都讲完了。它们是怎么配合的呢?
我画了一张图,帮你理解:
1.6 三个参数的直观感受
为了让你更直观地理解,我整理了一个表格:
| 参数 | 作用 | 调大后的效果 | 调小后的效果 |
|---|---|---|---|
| Kp | 响应速度 | 响应变快,但容易震荡 | 响应变慢,系统更稳定 |
| Ki | 消除稳态误差 | 消除误差更快,但可能超调 | 消除误差变慢,甚至无法消除 |
| Kd | 抑制震荡 | 系统更稳定,但对噪声敏感 | 震荡抑制能力减弱 |
记住这个口诀:
比例调响应,积分消误差,微分压震荡。
先调P,再调I,最后加D保稳定。
好了,这一章的内容就到这里。PID的三个环节,说白了就是“现在、过去、未来”三个维度的纠偏策略。理解了这个,后面的调参你就能游刃有余了。
我的一个小习惯:
每次调参前,我都会在脑子里过一遍这三个环节的物理意义。不是背公式,而是想:“现在偏差多大?过去累积了多少?未来趋势是变好还是变坏?”想清楚了再动手调,事半功倍。
公众号:蓝海资料掘金营,微信deep3321