3. PID控制基础:比例、积分、微分作用原理、PID参数整定方法

聊到暖通空调的自动控制,PID绝对是个绕不开的话题。说实话,我入行头三年,一直觉得PID就是个黑盒子——设定个温度,它自己在那儿算,调好了万事大吉,调不好就抓瞎。后来被一个老法师带了一段时间,才真正搞明白这玩意儿到底在干什么。

说白了,PID就是一个「纠偏」的算法。你希望房间26℃,实际28℃,差了2℃——这就是偏差。PID的任务就是算出该给阀门开多大、风机转多快,把这个偏差干掉。但怎么干、干多快、会不会干过头,这就是P、I、D三个参数的事了。

3.1 比例作用(P)—— 看当下

比例作用最简单。偏差越大,输出越大。你想想看,温度差2℃的时候,阀门开50%;差1℃的时候,开25%。这就是线性关系。

但比例有个硬伤——它永远追不上设定值。为什么?因为当偏差趋近于零时,输出也趋近于零了。阀门都快关死了,还怎么升温?所以系统会稳定在一个「有静差」的状态。比如你设26℃,它可能稳定在26.8℃就动不了了。

我在项目中遇到过一个新风机组,纯比例控制,夏天送风温度死活差1.5℃。后来加了积分项,问题才解决。

关键点:比例系数Kp越大,响应越快,但容易震荡。Kp太小,系统反应迟钝。

3.2 积分作用(I)—— 看历史

积分就是用来干掉静差的。它把过去所有的偏差累加起来,只要还有偏差,积分项就一直在增长,直到偏差完全消失。

嗯,这里要注意:积分是把双刃剑。积分时间Ti太短,积分作用太强,系统容易超调、震荡。我见过一个空调水系统,调试人员把积分时间设成了5秒,结果阀门像抽风一样来回摆动,整个房间温度像过山车。

我曾经在调试一个恒温恒湿实验室时,积分时间从120秒开始往下试,最后定在45秒才稳定。这个参数没有标准答案,完全看系统惯性。

我的习惯:先调好P,让系统稳定但有静差。然后慢慢加I,一点点消除静差。别一上来就三个参数一起调,容易乱。

3.3 微分作用(D)—— 看未来

微分看的是偏差的变化趋势。偏差突然变大,说明系统正在跑偏,微分项会提前输出一个较大的修正信号,把趋势扼杀在摇篮里。

但微分对噪声极其敏感。传感器信号稍微抖一下,微分项就会放大这个抖动。暖通系统里,温度传感器本身就有0.1~0.3℃的波动,微分用不好,系统反而更不稳定。

我个人建议:大多数暖通空调系统,用PI就够了。除非你遇到大滞后系统(比如风管很长、水系统很大),才考虑加D。我做过一个区域供冷项目,管道长度超过500米,不加微分根本稳不住。

参数 作用 常见问题
P(比例) 快速响应当前偏差 存在静差,无法完全消除
I(积分) 消除静差 积分饱和、超调、震荡
D(微分) 抑制超调、预测趋势 对噪声敏感,易引入抖动

3.4 PID参数整定方法

整定方法很多,但真正在工地上好用的,就那么几种。我按实用程度排个序:

3.4.1 试凑法(最常用)

先纯比例,调Kp到系统临界震荡(就是开始有规律地波动了)。然后记录震荡周期Tu,按经验公式算Ti和Td。这个方法我用了十年,90%的项目都能搞定。

// 临界比例度法经验公式
// Tu: 临界震荡周期
// Kpu: 临界比例增益

// 纯P控制
Kp = 0.5 * Kpu

// PI控制
Kp = 0.45 * Kpu
Ti = 0.85 * Tu

// PID控制
Kp = 0.6 * Kpu
Ti = 0.5 * Tu
Td = 0.125 * Tu

3.4.2 阶跃响应法

给系统一个阶跃输入(比如突然把阀门开大10%),记录温度变化曲线。根据曲线的滞后时间、上升时间、稳态值,查表算出PID参数。这个方法适合大惯性系统,比如冷水机组群控。

3.4.3 自整定(现代控制器)

现在很多DDC控制器都带自整定功能。按一下按钮,控制器自己震荡几次,自动算出参数。但说实话,我从来不完全相信自整定结果。它算出来的参数往往偏激进,我会在此基础上手动微调,把Kp降个20%,Ti加个30%。

避坑指南:我曾经在一个项目上完全依赖自整定,结果系统在部分负荷下疯狂震荡。后来发现自整定是在满负荷工况下做的,参数不适合低负荷。所以,整定一定要在典型工况下进行,最好在50%~70%负荷时做。

3.5 实际调试中的几个坑

  • 积分饱和:阀门已经全开了,但偏差还在,积分项继续累加。等偏差反向时,积分项需要很长时间才能退回来。解决办法:加积分限幅,或者用抗积分饱和算法。
  • 正反作用搞反:夏天制冷时,温度升高应该开大阀门;冬天制热时,温度升高应该关小阀门。这个搞反了,系统会越调越乱。
  • 采样周期太慢:暖通系统一般1~5秒采样一次就够了。但有些项目设成30秒一次,等控制器反应过来,温度早就跑偏了。

最后说一句:PID参数没有「最优解」,只有「最合适」。同一个系统,夏天和冬天的参数可能都不一样。我习惯在调试记录表上记下每个季节的参数,方便后续运维人员参考。你想想看,一个系统跑十年,参数调三次,每次都有据可查,这才是真正的工程素养。