第二章:PID参数整定方法——试凑法、Ziegler-Nichols法、Cohen-Coon法、衰减曲线法
好,咱们直接进入正题。PID参数整定,说白了就是找三个数:Kp、Ki、Kd。找对了,系统稳如老狗;找不对,要么震荡得像抽风,要么慢得像蜗牛。
我这些年调试过的系统,从温度到压力,从流量到液位,几乎每种方法都试过。今天把这四种最经典的方法掰开揉碎了讲给你听。
2.1 试凑法——最原始,也最实用
试凑法,就是靠经验一点点试。别觉得它土,很多老工程师一辈子就用这一招。
基本思路:先调比例,再加积分,最后上微分。
- 先纯比例:把Ki和Kd设成0,只调Kp。从小到大慢慢加,直到系统出现等幅震荡。然后往回退一点,留点余量。
- 加积分:保持Kp不变,慢慢加Ki。目的是消除静差。注意别加太多,否则系统会低频震荡。
- 加微分:如果系统响应太慢或者超调大,加点Kd。微分能预测未来,但噪声大的场合慎用。
举个例子,我调过一个水箱液位系统。纯比例时Kp=2.5开始震荡,我退到2.0。然后加Ki=0.1,静差从5%降到0.5%。最后加Kd=0.3,超调从20%降到8%。整个过程不到半小时。
2.2 Ziegler-Nichols法——经典中的经典
Z-N法,搞控制的没人不知道。它分两种:频域法和时域法。这里讲最常用的频域法,也叫临界比例度法。
步骤很简单:
- 把Ki和Kd设成0,只留Kp。
- 慢慢增大Kp,直到系统出现等幅震荡。记下此时的Kp为Ku,震荡周期为Tu。
- 按下面表格计算参数:
| 控制器类型 | Kp | Ki | Kd |
|---|---|---|---|
| P | 0.5 Ku | - | - |
| PI | 0.45 Ku | 1.2 / Tu | - |
| PID | 0.6 Ku | 2.0 / Tu | Tu / 8 |
举个例子:我调一个温度系统,Ku=4.2,Tu=30秒。用PID的话,Kp=0.6*4.2=2.52,Ki=2/30≈0.067,Kd=30/8=3.75。直接填进去,系统响应就挺好了。
为什么说它经典?因为它有理论依据,而且操作简单。我当年第一次用Z-N法调一个压力系统,从开始到结束只用了10分钟。但要注意,有些系统根本调不出等幅震荡,比如纯滞后大的系统,这时候就别硬用Z-N法了。
2.3 Cohen-Coon法——对付大滞后的一把好手
Cohen-Coon法,专门针对自衡对象。什么叫自衡?就是系统自己能稳定在一个新值上,比如液位、压力。
前提条件:你得先做开环阶跃响应实验,得到三个参数:
- K:过程增益(稳态变化量 / 输入变化量)
- τ:纯滞后时间
- T:时间常数
然后按下面公式算:
// 对于PID控制器
Kp = (1.35 / K) * (T/τ + 0.185)
Ti = 2.5 * τ * (T/τ + 0.185) / (T/τ + 0.611)
Td = 0.37 * τ * (T/τ + 0.185) / (T/τ + 0.185)
// 注意:Ti是积分时间,Ki = 1/Ti
// Td是微分时间,Kd = Kp * Td
看着有点复杂是吧?其实你写个脚本算就行。我当年在电厂调一个蒸汽温度系统,滞后时间长达40秒,用Z-N法根本不行,换成Cohen-Coon法,一次就成功了。
这个方法有个缺点:对噪声敏感。因为开环实验需要系统稳定,如果现场干扰大,测出来的τ和T就不准。我吃过这个亏,后来学乖了,做实验前先让系统稳定10分钟以上。
2.4 衰减曲线法——现场最常用的方法
衰减曲线法,也叫4:1衰减法。它不需要系统达到等幅震荡,只要出现4:1的衰减比就行。
操作步骤:
- 纯比例运行,从小到大调Kp。
- 给一个阶跃信号,观察响应曲线。
- 直到相邻两个波峰的比值接近4:1(第二个波峰高度是第一个的1/4)。
- 记下此时的Kp和震荡周期Ts。
然后查表:
| 控制器类型 | Kp | Ki | Kd |
|---|---|---|---|
| P | Kp | - | - |
| PI | 0.83 Kp | 0.5 / Ts | - |
| PID | 1.25 Kp | 0.3 / Ts | 0.1 Ts |
这个方法的好处是:系统不需要震荡到极限,对设备友好。我调一个风机风量系统时,用Z-N法震荡太剧烈,操作工都跑来看。换成衰减曲线法,温和多了,参数也够用。
2.5 四种方法怎么选?
我总结一下:
- 试凑法:适合新手入门,或者系统简单、要求不高的情况。缺点是费时间。
- Z-N法:经典方法,适合大多数线性系统。但超调大,对执行器冲击大。
- Cohen-Coon法:对付大滞后系统的利器。但需要做开环实验,对噪声敏感。
- 衰减曲线法:现场最实用,对设备友好。但需要人工观察波形,有点主观。
我个人习惯是:先试衰减曲线法,不行再换Cohen-Coon法。Z-N法我一般只用来做参考上限。试凑法嘛,最后微调用。
记住一句话:没有最好的方法,只有最合适的方法。你调得多了,自然就有感觉了。