4. PID参数整定实战:Ziegler-Nichols法、试凑法、自整定技术

说到PID整定,很多刚入行的朋友总觉得这是门玄学。其实不然。我做了十几年暖通自控,调过的PID回路少说也有上千个。说白了,整定就是找到三个数字——比例增益Kp、积分时间Ti、微分时间Td——让系统跑得稳、跑得快。

今天咱们就聊三种最实用的方法:Ziegler-Nichols法、试凑法、自整定技术。这三种方法我都在项目里用过,各有各的脾气。

4.1 Ziegler-Nichols法:经典的开环整定

Ziegler-Nichols法,圈里人常叫它ZN法。这是1942年两位工程师搞出来的方法,到现在还在用。为什么?因为它简单、有效。

ZN法分两种:开环阶跃响应法和临界比例度法。暖通空调里,我推荐用开环阶跃响应法。

4.1.1 开环阶跃响应法

操作步骤其实就三步:

  1. 把PID控制器切到手动模式,让系统稳定下来
  2. 给执行器一个阶跃信号(比如阀门开度从30%跳到50%)
  3. 记录被控量(比如温度、压力)的变化曲线

拿到曲线后,画一条切线,找到两个关键参数:滞后时间L和时间常数T。然后查表算Kp、Ti、Td。

核心公式:

  • P控制器:Kp = T / L
  • PI控制器:Kp = 0.9 × T / L,Ti = 3.3 × L
  • PID控制器:Kp = 1.2 × T / L,Ti = 2 × L,Td = 0.5 × L

我在一个大型商业综合体的空调项目中用过这个方法。当时新风机组送风温度老是震荡,用ZN法整定后,温度波动从±2℃降到了±0.3℃。嗯,效果立竿见影。

注意:ZN法算出来的参数偏激进。系统容易超调。我建议算完后,把Kp乘以0.6~0.8,Ti乘以1.2~1.5。这是经验,你试试看。

4.1.2 临界比例度法

这个方法适合不允许开环测试的场合。操作是这样的:

  1. 把积分和微分关掉(Ti=∞,Td=0)
  2. 慢慢增大Kp,直到系统出现等幅振荡
  3. 记录临界增益Ku和临界周期Tu

然后查表:

控制器类型KpTiTd
P0.5 × Ku
PI0.45 × Ku0.83 × Tu
PID0.6 × Ku0.5 × Tu0.125 × Tu

说实话,暖通系统里我很少用临界比例度法。为什么?因为让系统等幅振荡,对设备不太友好。风机、水泵、阀门都受不了。你想想看,温度一会儿高一会儿低,末端用户早就投诉了。

4.2 试凑法:工程师的直觉

试凑法,说白了就是凭经验调。别小看它,很多老工程师就靠这一手吃饭。

我的习惯是这样的:

  1. 先调P:把I和D关掉,Kp从0开始慢慢加。直到系统出现轻微的振荡,然后把Kp往回退一点,让振荡消失。
  2. 再加I:加入积分作用,消除静差。Ti从大到小调。Ti太大,消除静差慢;Ti太小,系统容易振荡。
  3. 最后加D:微分作用能抑制超调,但暖通系统里D要慎用。因为温度、压力信号噪声大,微分会把噪声放大。

我的经验口诀:

  • P太小,响应慢;P太大,振荡猛
  • I太小,静差消不掉;I太大,系统来回跳
  • D能压超调,但噪声受不了

我曾经调试一个恒温恒湿空调系统,试凑法调了整整一个下午。最后发现问题是传感器安装位置不对,离出风口太近。换了位置后,参数基本没动,系统就稳了。所以啊,整定之前先检查硬件,别在错误的方向上使劲。

4.3 自整定技术:让控制器自己干活

现在的DDC控制器和PLC,很多都带自整定功能。说白了,就是控制器自己做个测试,自动算出PID参数。

自整定的原理其实不复杂:

  • 控制器给系统一个激励信号(阶跃或脉冲)
  • 采集响应数据
  • 用算法识别出系统模型
  • 根据模型算出最优参数

常见的自整定算法有:

  • 继电器法:用继电器代替PID,让系统产生极限环振荡,然后算出Ku和Tu
  • 模式识别法:分析系统对阶跃信号的响应,提取特征参数
  • 自适应法:在线实时调整参数,系统变了参数也跟着变

实际项目中的建议:

自整定不是万能的。我在一个数据中心项目中用过霍尼韦尔的控制器自整定功能。第一次整定出来的参数,系统跑起来超调量达到了15%。后来我手动微调了一下,才降到5%以内。

所以我的建议是:自整定作为初值,然后手动微调。别完全依赖它。

4.4 三种方法的对比与选择

方法优点缺点适用场景
Ziegler-Nichols法有理论依据,可重复参数偏激进,需要开环测试新系统调试,有测试条件
试凑法灵活,不需要数学模型依赖经验,耗时较长系统微调,现场快速优化
自整定技术自动化,省时省力结果不一定最优,可能不稳定简单系统,或作为初值

我个人习惯是:新项目先用自整定跑一遍,拿到初值。然后用ZN法验证一下,看看差距大不大。最后用试凑法微调。三管齐下,基本不会出大问题。

4.5 实战案例:空调水系统压差控制

讲个真实案例吧。某医院空调水系统,压差控制一直不稳。压差设定值100kPa,实际值在80~120kPa之间来回跳。

我过去一看,PID参数是厂家设的默认值。Kp=2.0,Ti=60s,Td=0。这明显不对。

我的操作步骤:

  1. 先做开环阶跃测试。阀门开度从40%跳到60%,记录压差变化曲线。
  2. 画切线,得到L=3s,T=45s。
  3. 用ZN法计算:Kp=1.2×45/3=18,Ti=2×3=6s,Td=0.5×3=1.5s。
  4. 考虑到系统惯性大,我把Kp乘以0.7,得到Kp=12.6,取整Kp=12。
  5. 投入运行,压差稳定在98~102kPa之间。

小技巧:暖通系统的时间常数通常比较大(几十秒到几分钟)。所以Ti和Td的单位是秒,别设成毫秒。我见过有人把Ti设成0.1s,结果系统直接发散。嗯,那场面挺壮观的。

4.6 避坑指南

最后,分享几个我踩过的坑:

  • 传感器噪声:我曾经调试一个风系统,微分作用一加上去,执行器就来回动。查了半天,发现是风速传感器噪声太大。后来加了滤波,问题解决。
  • 执行器死区:阀门或风阀有死区,小信号变化时执行器不动。这时候PID积分作用会一直累积,产生积分饱和。解决办法是加死区补偿,或者用积分分离算法。
  • 系统非线性:暖通系统是非线性的。同样的PID参数,在低负荷和高负荷下表现不一样。我建议做分段PID,或者用增益调度。
  • 不要追求完美:暖通系统不是精密仪器。±0.5℃的波动完全可以接受。别为了那0.1℃的精度,把系统调得神经兮兮的。

好了,PID整定就聊到这儿。记住一句话:理论是基础,实践出真知。多调、多试、多总结,你也能成为整定高手。