3、经典PID控制:PID控制原理、位置式与增量式PID、PID参数整定方法(Ziegler-Nichols)
各位工程师朋友,今天我们来聊聊控制领域最经典、也最实用的算法——PID控制。说实话,我入行十几年,从单片机到大型PLC,从温度控制到电机伺服,PID几乎无处不在。你想想看,一个算法能火将近百年,一定有它的道理。
3.1 PID控制原理:为什么它这么能打?
PID,全称比例-积分-微分控制。说白了,就是三个环节各司其职,共同把被控量拉到目标值。
- 比例(P):看当前偏差有多大,偏差大就猛推,偏差小就轻推。但光有比例,系统容易震荡,而且会有静差——就是永远差那么一点点到不了目标。
- 积分(I):专门对付静差。它把过去的偏差累积起来,只要还有偏差,积分项就会一直增加,直到把偏差彻底消除。我在做恒温槽项目时,就靠积分项把温度稳定在±0.1℃。
- 微分(D):预测未来。它看偏差的变化趋势,如果偏差正在快速增大,微分项会提前输出一个反向力,抑制超调。嗯,这里要注意:微分对噪声非常敏感,信号不干净时慎用。
核心公式(连续形式):
u(t) = Kp * e(t) + Ki * ∫e(t)dt + Kd * de(t)/dt
其中 e(t) = 目标值 - 当前值,也就是偏差。
我个人习惯把PID比作一个「老司机开车」:P是看当前离前车多远,I是记住之前一直没追上,D是预判前车会不会急刹。三者配合,才能开得又稳又快。
3.2 位置式PID vs 增量式PID:怎么选?
在实际工程中,我们用的是离散化的PID,也就是每隔一个采样周期计算一次。这里有两种主流实现方式。
位置式PID
直接计算当前时刻应该输出的控制量绝对值。公式如下:
u(k) = Kp * e(k) + Ki * Σe(i) + Kd * [e(k) - e(k-1)]
特点:输出是绝对值,直接对应执行器的位置(比如阀门开度0~100%)。
我曾经踩过的坑:位置式PID的积分项是累加所有历史偏差。如果执行器饱和了(比如阀门已经全开),积分还在累加,就会产生「积分饱和」现象。等偏差反向时,积分需要很长时间才能退回来,导致系统响应迟钝。解决办法是加积分限幅或抗积分饱和算法。
增量式PID
只计算当前时刻相对于上一时刻的控制量增量。公式:
Δu(k) = Kp * [e(k) - e(k-1)] + Ki * e(k) + Kd * [e(k) - 2e(k-1) + e(k-2)]
u(k) = u(k-1) + Δu(k)
特点:输出是增量,适合控制步进电机、伺服电机这类需要「走一步算一步」的执行器。
| 对比项 | 位置式PID | 增量式PID |
|---|---|---|
| 输出形式 | 绝对值 | 增量 |
| 积分饱和风险 | 高 | 低(无累加积分项) |
| 执行器类型 | 阀门、加热器等 | 步进/伺服电机 |
| 手动/自动切换 | 需做冲击处理 | 无冲击 |
我个人建议:如果执行器是比例阀或加热器,用位置式;如果是电机驱动,用增量式更省心。
3.3 PID参数整定方法:Ziegler-Nichols
参数怎么调?这是新手最头疼的问题。Ziegler-Nichols法(简称ZN法)是1942年提出的经典方法,虽然老,但非常实用。我至今在项目初期都用它快速找到一组「能用的参数」。
方法一:阶跃响应法(开环整定)
适用于系统开环阶跃响应呈S形的对象。步骤:
- 断开PID,给系统一个阶跃输入,记录响应曲线。
- 在曲线上找到拐点,画切线,得到延迟时间L和时间常数T。
- 查表计算参数:
| 控制器类型 | Kp | Ti | Td |
|---|---|---|---|
| P | T / L | ∞ | 0 |
| PI | 0.9 * T / L | L / 0.3 | 0 |
| PID | 1.2 * T / L | 2L | 0.5L |
我的经验:ZN法给出的参数通常偏激进,系统会有20%~30%的超调。如果对超调敏感,可以把Kp乘以0.6~0.8,再微调。我在调一个温度炉时,ZN法算出来Kp=12,实际用8.5就稳了。
方法二:临界比例度法(闭环整定)
适用于不允许开环测试的系统。步骤:
- 只保留比例环节(Ki=0, Kd=0),从小到大增加Kp。
- 直到系统输出出现等幅振荡,记录此时的临界增益Ku和振荡周期Tu。
- 查表计算:
| 控制器类型 | Kp | Ti | Td |
|---|---|---|---|
| P | 0.5 * Ku | ∞ | 0 |
| PI | 0.45 * Ku | Tu / 1.2 | 0 |
| PID | 0.6 * Ku | Tu / 2 | Tu / 8 |
注意:临界比例度法会让系统进入等幅振荡,对某些设备(如大型风机、反应釜)可能有危险。我建议先在仿真或小功率设备上试,确认安全再上真机。
3.4 知识体系框架
下面这张图是我自己整理的PID控制知识结构,方便你快速建立全局认知:
这张图把PID的核心脉络理清了:原理是基础,实现方式看场景,整定方法靠经验加公式。三者缺一不可。
最后说句实在话:PID调参没有「万能公式」,ZN法只是给你一个起点。真正的好参数,是在现场一点一点「磨」出来的。我当年调一个伺服电机,光Kp就试了20多个值,最后发现比ZN法算出来的小一半才最稳。所以,多动手,多记录,慢慢就有感觉了。
可可精品资料库