固定PID,第1部分

比例-积分-导数控制器可能无处不在,但它们并不完美。

通过控制工程 2012年11月30日

尽管PID算法在一个多世纪前首次应用于反馈控制问题,并且自20世纪40年代以来一直作为过程控制的事实上的标准,但PID回路多年来已经看到了许多改进。机械PID机构已依次被气动、电子和基于计算机的装置所取代;PID计算本身也被调整以提供更严格的控制。

当反馈控制器只配备比例动作时,积分动作或自动复位是第一个用于改善反馈控制器性能的修复。基本的“P-only”控制器根据所需设定值与当前过程变量测量值之间的差异或误差,按比例对过程施加校正努力。

当设定值上升或过程变量下降时,它们之间的误差在正方向上增长,导致P-only控制器以正控制努力响应,使过程变量回到设定值。在相反的情况下,误差在负方向上增长,控制器用负的控制努力来响应,使过程变量回落。

P-only控制器直观且易于实现,但它往往会达到收益递减的点。当误差随着每次新的控制努力而减小时,下一个控制努力也会减小。这反过来又减缓了误差减小的速度,直到它完全停止变化。不幸的是,稳态误差永远不会为零。P-only控制器总是使过程变量稍微偏离设定值。请参阅“稳态误差”图形,以演示为什么会发生这种情况。

在这个通用控制回路的简单示例中,增益为2的纯比例控制器驱动稳态增益为3的过程。也就是说,控制器将误差放大2倍以产生控制努力,而过程将控制努力乘以3倍(并添加一些瞬态振荡)以产生过程变量。如果设定值为70%,则在瞬态消失后,过程变量将最终为60%。误差仍然是非零的,但是控制器不再尝试进一步减小它。

积分作用与比例作用并行,消除了稳态误差。它按运行总数或所有先前错误的积分的比例增加控制工作量,并且只要错误仍然存在,控制工作量就会继续增加。因此,比例加积分或“PI”控制器永远不会放弃。它继续施加不断增加的控制努力,直到过程变量达到设定值。

不幸的是,引入积分行为会导致其他问题,这些问题需要它们自己解决。可以说,最重要的是闭环不稳定性的风险增加,在这种情况下,积分动作的持续存在弊大于利。它可以变得如此之大,以至于它迫使过程变量超过设定值。

如果被控过程恰好对控制器的努力特别敏感,那么超调将在相反方向上导致更大的误差。控制器最终会改变路线,努力消除新的误差,但最终会将过程变量推向另一个方向,最终离设定值更远。最终,控制器将开始振荡,从完全打开到完全关闭,徒劳无功地达到稳定状态。

这个问题最简单的解决方法是减小放大系数或增益,使控制器乘以积分误差来产生积分作用。另一方面,降低积分增益会增加闭环系统达到零误差稳态所需的时间。多年来,已经开发了数百种分析和启发式技术,以确定适合特定应用程序的积分和比例增益值。

重置终结

当执行器太小而无法实现控制器要求的特别大的控制努力时,积分动作也可能导致复位绕组。当燃烧器不够大,无法提供必要的热量,阀门太小,无法产生足够高的流量,或者泵达到最大转速时,就会发生这种情况。执行器被认为在某个限制值饱和——要么是它的最大输出,要么是最小输出。

当执行器饱和阻止过程变量进一步上升时,控制器继续看到设定值和过程变量之间的正误差。综合误差继续上升,综合行动继续要求越来越积极的控制努力。然而,执行器仍然停留在其最大输出上,无法进一步影响过程,因此过程变量不会更接近设定点。

操作人员可以尝试通过将设定值降低到执行器能够达到的范围来解决这个问题,但是控制器将不会响应,因为在执行器完全饱和的时间内,总集成误差将达到巨大的值。无论当前的误差值是多少,这个总数在很长一段时间内都会保持很大。因此,整体动作将保持很高,控制器将继续推动执行器达到其上限。

幸运的是,如果操作者将设定值降得足够低,误差将变为负值,因此总积分误差最终将开始下降。尽管如此,仍需要一长串负误差来抵消积分器运行总数中累积的一长串正误差。在此之前,无论同时的比例作用是什么,积分作用将保持足够大,以继续饱和致动器。请参阅“Reset windup”图形。

已经设计了几种技术来防止复位绕组。显而易见的解决方案是将尺寸过小的执行器替换为一个更大的执行器,该执行器能够将过程变量一直驱动到设定值或选择现有执行器实际可以达到的设定值。否则,当执行器饱和时,积分器可以简单地关闭。

在这个例子中,操作员试图将设定值提高到一个高于执行器能够达到的值。在观察到控制器已经无法驱动那么高的过程变量之后,操作员将设定值返回到一个较低的值。注意,控制器直到设定值降低后才开始降低其控制努力,因为在控制器徒劳地试图达到更高的设定值期间,积分作用变得非常大。相反,控制器继续要求最大控制努力,即使误差已经变为负值。只要正误差在设定值变化之前持续存在(或者更准确地说,直到负误差的积分达到与正误差的积分相同的大小),那么在设定值变化之后的负误差持续存在之前,控制努力不会开始下降。

在这种情况下,操作员重复了相同的设定值移动序列,但这次使用配备复位发条保护的PID控制器。额外的逻辑添加到PID算法关闭控制器的积分器当执行器达到其上限。过程变量仍然不能达到更高的设定点,但控制器的积分动作在尝试过程中没有结束。这允许控制器在设定值降低时立即响应。

预加载

当执行器关闭但控制器未关闭时,也会发生复位绕组。例如,在级联控制器中,当内环处于手动模式时,外环控制器将看不到对其控制努力的响应。如果外环控制器在该间隔内继续工作,则其积分动作将随着误差保持不变而“上紧”。

同样,当燃烧器、阀门或泵在批处理操作周期之间关闭时,过程变量被阻止更接近设定值,再次导致停机。当执行器处于关闭状态时,这不是问题,但是一旦执行器在下一批开始时重新激活,控制器将立即调用100%的控制努力并使执行器饱和。

这个问题的明显解决方案是在执行器关闭时关闭控制器的积分器,或者通过将设定值调整为过程变量在批次之间的任何值来人为地消除错误。但是还有另一种方法,不仅可以防止批次之间的重置结束,而且实际上可以在下一个批次中提高控制器的性能。

预加载冻结了控制器的成分器在批次之间的输出,因此积分操作开始下一个批次时,其累积的总积分误差在前一个批次结束时。这种技术假设控制器最终需要相同数量的积分动作来达到与前一批相同的稳态,因此将积分误差从零开始是没有意义的。有了预加载,整体动作就会在前一批结束时重新开始,从而缩短在下一批中达到稳定状态所需的时间。

如果每个连续的批与前一批或多或少相同,则预加载效果最好,这样控制器每次都试图在相同的负载条件下达到相同的设定值。但是,即使这些批次不相同,有时也可以使用过程的数学模型来预测最终需要什么水平的整体作用才能达到稳定状态。然后可以推导出所需的积分误差,并在每批开始时预加载到控制器的积分器中。如果可以在初始启动之前对连续过程进行建模,这种方法也适用于连续过程。

无扰转移

预加载的一个潜在缺点是它在每批开始时可能导致执行器输出的突然变化。虽然执行器不会立即猛击所有的方式打开,如果使用预加载防止复位绕组,它将尝试启动下一批或接近它在上一批结束时的位置。如果这导致可能损坏执行器的突然变化,控制器的积分器可以逐渐增加到其预加载值。

当控制器从自动模式切换到手动模式再切换回来时,也会出现类似的问题。如果操作员在该间隔内手动修改控制努力,控制器将在自动模式恢复时突然将控制努力切换到PID算法所要求的任何控制努力。

无碰撞传输解决了这个问题,它通过人为地预先加载集成器所需的任何值来重新启动自动操作,而无需改变操作人员离开时的控制努力。当控制器处于手动模式时,如果操作员的动作、过程变量的变化或设定值的变化产生了错误,控制器仍然必须进行调整,但当控制器“转移”回自动模式时,将产生较少的“颠簸”。

还有更多的发条问题

所有这些与缠绕相关的问题都与死区时间有关,死区时间是指过程变量在控制工作发生变化后发生变化所需的时间间隔。当过程变量传感器位于距离执行器下游太远时,通常会发生死区时间。无论控制器如何努力工作,它都不能开始减少过程变量和设定值之间的误差,直到执行器修改的材料到达传感器。

由于控制器正在等待其努力生效,过程变量和误差将保持固定,导致整体动作结束,就像执行器饱和或关闭一样。解决这个问题最常见的方法是调整控制器;即通过减小积分增益来减小由上发条引起的最大积分作用。

通过为积分动作配置自己的死时间也可以达到同样的效果,这样,至少在一些进程死时间过去之前,才会开始预热。这反过来又降低了控制器在误差固定期间可以累积的总积分误差。

通过使整体动作间歇,也可以改善死时引起的上卷。让比例作用完成所有的工作,直到过程变量稳定在接近设定值的某个地方,然后打开积分作用,直到足够长的时间来消除剩余的稳态误差。这种方法不仅延迟了上卷的开始时间,而且使积分动作只需要处理很小的误差,从而降低了最大上卷效果。

但是等等,还有更多

这只是工程师们试图改善控制性能的许多方法的冰山一角。PID算法也被修改,以处理速度有限的执行器、时变过程模型、过程变量测量中的噪声、设定点变化期间的过度导数作用等等。本系列的后续文章将探讨这些问题造成的影响以及如何避免这些问题。

万斯·范多伦,博士,体育博士控制工程贡献内容专家。打电话给他。controleng@msn.com