比例-积分-微分控制器在引入控制界60多年以后,仍保留了它们在工业过程控制中的主导地位。
自18世纪以来,负反馈一直被用于连续过程控制。James Watt曾用飞球调速器来控制其著名的蒸汽机的运转速度,当蒸汽机速度降得太低时利用飞球调速器来自动增加蒸汽,而当速度升得太高时则用飞球调速器来减少蒸汽。
这种简单的平衡动作保留了当今过程控制的一些基本功能即:测量过程变量、从设置点上减去变量以获得误差、以及在误差为正时运用控制量来驱动过程变量增加或在误差为负时驱动过程变量减少,这种过程重复进行直至误差消除。
控制器设计中的精妙之处在于计算出每种情况下控制器需向过程施加多少校正量。比例控制器只是简单地将误差乘以一个常数来计算它的下一步输出,而Watt设计的飞球调速器CONTROL ENGINEERING China版权所有,则是根据由设备几何尺寸及可调固定螺丝位置所确定的常数,并以机械方式来完成这种控制。
但不幸的是,当比例控制器驱动过程变量足够接近设置点时它往往退出工作,并停留在一个使误差很小但却为非零值的固定输出上。有关此种稳态误差现象的更详细解释,请参见CONTROL ENGINEERING 2000年6月刊“了解PID控制”一
积分作用
20世纪30年代的控制工程师们发现,误差可通过自动将设置点重设为一个人为高值而得以完全消除。这一概念是让比例控制器具有一个人工设置点,从而使实际误差在控制器停止工作时为零,这实际上是在实际误差不为零时,通过缓慢提升(或降低)该人工设置点来使误差为零。
当发生时CONTROL ENGINEERING China版权所有,这种自动重设操作对于对误差积分、或将其全部增加到控制器比例项输出中而言,在数学上具有同样的效果CONTROL ENGINEERING China版权所有,其结果即为一种可继续保持误差增加输出、直至误差完全消除的“比例积分”(PI)控制器。
图1:传统的PID公式通过对误差信号进行微分来计算微分项:e(t) = SP(t) - PV(t),其中PV(t)为t时刻的过程变量,SP(t)是设置值,CO(t)为控制器的全部输出控制工程网版权所有,P、TI及TD 则分别为定义比例、积分及微分项的“整定常数”。
但不幸的是,积分作用并不能保证实现完美的反馈控制。如果积分作用过强,则PI控制器可能引起 “闭环不稳定”(参见CONTROL ENGINEERING 2000年5月刊 “控制器必须以闭环稳定性来平衡性能”一文)。控制器也可能对误差进行“过校正”,从而引起新的、甚至更大的反向误差。当发生这种情况时,控制器最终将在“完全开”及“完全关”之间来回驱动其输出,即开始出现所谓的“振荡”现象。
图2:在此例中,如果设置点仅以步进的方式改变,则微分无论怎样都几乎总是为零,因此可通过对过程变量负增长求导来计算微分作用。
微分作用
振荡有时可通过向混合信号增加微分作用来予以矫正。全“比例-积分-微分”(PID)控制器中的微分项,只有在误差改变时才起作用。如果设置点为常数,则只有在过程变量开始移向(或离开)设置点时误差才开始改变,而这在前面的控制量使过程变量接近设置点太快时尤其有用。因此,微分作用所提供的减速作用可减少产生超调及振荡的可能性。
图3:只要设置点突变,从误差信号来计算微分项均将在微分作用中造成尖峰。
不幸的是,如果微分作用过强,则可能由于减速太快而由其自身引起振荡。这种现象在一些对控制反应非常灵敏的过程控制中(比如电机或机器人等)尤为明显。
当新设置点使误差发生突变时,微分作用也趋向于使控制器输出中产生明显的“尖峰”或“突跳”,而这迫使控制器无需等待积分或比例作用生效即开始立刻采取校正行动。与只有两项的PI控制器相比,全PID控制器甚至能预测将过程变量保持在新设置点上所需控制量的大小。事实上,当Tayor公司著名的Fulscope控制器首次以全三项推出时,还只将微分项标为“预-作用”。
图4:利用修正后的微分项CONTROL ENGINEERING China版权所有,可消除设置点改变时微分作用中所出现的尖峰。但如果设置点在步进改变之间波动,则修改后的微分项将产生错误的结果。
微分的缺陷
另一方面,控制量的剧烈摆动,在一些要求控制器输出进行缓慢而稳定变化的应用(例如室温控制等)中变得非常烦人。自动调温器每次调整后所产生的热风,不仅使房屋居住者很不舒服,而且也会缩短采暖炉(或空调)的使用寿命。
对于此类应用,最好是事先完成所有微分作用,或者从负过程变量(而不是直接从误差)中来计算微分项。如果设置点为常数,则两种计算结果相同;如果设置点仅以步进方式来改变,则除每一步进开始时刻外,两种计算结果仍将一致。过程变量负导数(负微分)将不会在误差微分中造成尖峰,关于此点,请参见“更平滑的微分作用”一图。目前大多数现代控制器都能为经不起“突跳”的应用提供此类选项。
微分作用对于一些对噪声抑制有较高要求的应用来说也是一个问题。当过程变量每次准备改变时,微分项都会对控制器的输出产生影响