固定PID,第2部分

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

通过控制工程 2014年4月28日

本系列的第1部分控制工程, 2012年11月)研究了在反馈控制的实际应用中限制理论PID算法性能的几个问题。

不确定性加剧了所有这些问题。有时,控制器缺乏关于被控制过程的足够信息,无法了解应用控制工作的程度和时间。有时,当传感器放置、传感技术的物理限制或测量噪声使过程变量难以测量时,控制器甚至无法判断它是否做得很好,或者如何在未来做得更好。

对于PID控制器的微分动作,测量噪声尤其麻烦。为了计算下一次控制努力的“D”分量,控制器计算误差的最新变化(过程变量与设定值之间的差值),并将其乘以导数增益或速率参数。

当传感器输出中的随机电干扰或其他故障导致控制器看到过程变量的虚构变化时,控制器的导数动作不必要地增加或减少。如果噪声特别严重或导数增益特别高,控制器随后的混沌控制努力不仅可能是不必要的,而且可能对执行器甚至被控制过程本身造成损害。

过滤

解决这一问题的最简单的方法是在测量噪声较高时降低导数增益,但这样做限制了其有效性。测量噪声本身有时可以通过固定传感器或对测量过程变量进行数学滤波来降低。过程变量滤波器本质上是对传感器的最新输出进行平均,以更好地估计过程变量的实际值。

然而,过程变量过滤器有其局限性。它们只有在测量噪声确实是随机的情况下才能工作,有时增加有时减少传感器的输出。如果这些正的和负的光点也以相同的频率出现,那么滤波器的平均操作将倾向于将它们抵消掉。但是,如果测量噪声倾向于在一个方向或另一个方向上始终倾斜传感器的输出,则过滤后的过程变量将倾向于始终过高或过低,从而欺骗控制器,使其工作过于努力或过少。

过程变量过滤器也减慢了控制器的反应时间。如果过滤器被配置为平均一个特别长的传感器输出序列,它将更好地消除随机斑点,但它也往往会错过实际过程变量中最近的变化。在向控制器报告过程变量的新值之前,过滤器需要看到传感器输出的持续变化。控制器甚至看不到,更不用说对过程变量的快速、短期变化做出反应了,就像下面“过滤”一节中讨论的那样。

作为一种折衷,一些PID控制器可以配置为在计算比例、积分和导数动作时对过程变量进行不同程度的过滤。导数作用需要最多的滤波,因为这是测量噪声引起最多问题的地方。比例作用可以受益于较少的滤波(即,一个滤波器包含较短的传感器输出序列),以保持对过程变量的短期变化的响应。由于积分操作本身就是一个过滤器,它可能根本不需要过滤过程变量。

或者,可以将过滤器应用于控制工作,而不是过程变量。这样做允许测量噪声进入PID计算(特别是“D”),但结果噪声控制工作在到达执行器之前被滤波器平滑。过滤器还可以帮助减缓控制工作,以防止在进程对执行器的运动特别敏感的情况下进程行为的过度剧烈波动。

另一方面,对控制工作进行筛选会使流程看起来比实际情况更缓慢。寻求更快闭环性能的操作人员可能会尝试重新调整控制器,使其更具侵略性,而没有意识到问题是滤波器的阻尼效应,而不是过程。当不同的操作符实现了其中一个而没有检查另一个时,控制器调优和控制效果过滤器有时会不必要地相互争斗。

死区

测量噪声的影响也可以通过简单地忽略传感器输出中的无关紧要的变化来减轻,假设它们可能只是测量噪声的人工制品,并且太小,无论如何都不会对控制器的控制努力的选择产生影响。只要过程变量和设定值之间的误差保持在一个称为死区的范围内,控制器就什么也不做。

诀窍在于确定误差中有多少变化小到可以忽略。如果死区设置得太大,进程行为中的重要变化可能会被忽略。但是如果它设置得太小,即使实际过程变量已经达到设定值,控制器也会对传感器输出中的每一个虚构的光点做出不必要的反应。

不幸的是,死区也掩盖了设定值中的小变化。如果操作员试图将进程移动到位于当前死区内的更高或更低的操作范围,则错误所产生的变化将被忽略,控制器将不做任何事情。如果死区太大,控制器的精度将受到影响。也就是说,它可能会使冷藏空间降低5度,但不仅仅是1度。

抑制衍生踢

另一方面,在某些情况下,PID控制器的性能可以通过故意忽略设定值的变化来提高。再一次,控制器的衍生行为是这个问题的中心。

回想一下,当误差在设定值变化期间突然变化时,导数动作往往会给总体控制努力增加一个戏剧性的峰值或“kick”。这迫使控制器立即采取行动,而不是等待比例或积分动作生效。与两项PI控制器相比,完整的三项PID控制器甚至可以预测最终将过程变量维持在新设定值所需的努力水平,特别是当被控制的过程特别快时。

但是,在应用程序中,例如室温控制中,控制工作的过度剧烈峰值可能弊大于利,因为需要缓慢而稳定地改变过程变量。每次调节恒温器后都会有一阵热风,这不仅会让房间里的人感到不舒服,也会对炉子造成影响。

在这些情况下,完全放弃导数作用或从过程变量的负数而不是直接从设定值与过程变量之间的误差计算导数是有利的。如果设定值是常数,两个计算结果无论如何都是相同的。如果设定值仅以逐步方式改变,则除了开始每个步进改变的瞬间外,两个计算将保持相同,但在导数动作的计算中使用过程变量的负导数可以消除误差导数中存在的峰值。更多信息请参见下面的“衍生踢”部分。

由设定值更改引起的峰值也可以通过过滤设定值来缓解,就像过滤过程变量或控制效果一样。然而,设定值过滤器并没有去除太多的噪声,因为它利用了平均操作的倾向,使突变看起来更慢。经过过滤后,对控制器来说,设定值的逐步变化看起来更加渐进,从而消除了误差中的突然变化,否则会导致控制工作的峰值。

设定值过滤器在级联控制应用程序中也很有用。过滤内部循环的设定值也过滤外部循环的控制工作,具有上述所有优点。有关如何实现此类过滤器的详细信息,请参见“数值滤波基础”,控制工程2008年9月。

过滤

一个数值滤波器平均它的输入历史F(0)到F(k)生成下一个输出F(k + 1)。最基本的过滤算法,被称为“一阶”,将最近输入的一部分添加到最近输出的一部分,以创建一个运行总数:

α在0和1之间的分数决定了输入历史在平均运算中所占的比例,其等价公式如下:

在上面的过滤器a中选择一个接近0的α值使

这样输出序列就和输入序列很像了,只是进行了有限滤波。选择一个值α接近1,如在过滤器B

因此,输出变化特别慢,但将非常长的输入序列合并到其平均值中,以实现最大过滤。分数α被称为滤波器的时间常数,用于描述输入停止变化后输出达到稳定状态所需的时间。另一方面,α被称为平滑因子,用于描述沿途所完成的滤波量。当应用于PID控制器的过程变量、设定值或控制效果时,数值滤波器可以以闭环响应性为代价降低测量噪声的影响,反之亦然,这取决于为α选择的值。

导数踢

在这里,两个PID控制器应用于相同的过程,由相同的设定值序列驱动。在每个采样间隔,控制器A通过计算设定值与过程变量之间的误差的最新变化来计算其控制努力的导数分量(导数动作)。控制器B通过从零减去过程变量而不是从设定值减去过程变量来计算其导数作用。如果流程相对较慢,如本例所示,两种方法都将沿着大致相同的轨迹将流程变量推向设定值。然而,控制器A将倾向于在每次设定值变化后立即“踢”致动器至0%或100%容量,如时间1、2和3的绿色峰值所示。控制器B避免了这些潜在的破坏性峰值,但在其他方面产生的控制效果与控制器A大致相同。

有关修复PID问题的更多方法,包括时间延迟、建模、积分过程、多变量控制和循环整定,请参阅本系列的下一部分。

Vance VanDoren,博士,体育,是控制工程贡献内容专家。联络他的地址是controleng@msn.com

关键概念:

  • PID控制器被部署在许多过程应用中,但并不总是完全理解。
  • PID控制器制造商在不同的时间调整机构,以解决特定的控制挑战。

在线

阅读更多关于PID控制策略和调整下面。