调谐基础:比例-积分-导数控制基础

PID控制器是目前为止最流行的连续过程反馈控制器。让我们来看看它们是如何工作的。

通过万斯·j·万多伦 一九九八年三月一日
关键字
  • 过程控制与仪表

  • 过程控制系统

  • PID(比例积分/微分)

  • 控制器

设计了一个反馈控制器来生成一个输出这将导致一些纠正工作应用于过程从而带动一个可衡量的流程变量趋向于一个被称为定位点.控制器使用致动器影响过程和一个传感器来衡量结果。图1显示了一个典型的反馈控制系统,其中块表示系统的动态元素,箭头表示信息流,通常以电信号的形式。

实际上,所有的反馈控制器都是通过观察参数来决定输出的错误在设定值和过程变量的测量值之间。当操作符有意更改设定值时或当进程负载意外改变过程变量。

在温暖的天气里,家用恒温器是一个常见的控制器,试图纠正室内空气的温度。它用热电偶测量室内温度,当居住者降低所需的室温或随机热源提高实际室温时,它就会启动空调。在本例中,房子是过程,房子内部的实际室温是过程变量,期望的室温是设定值,热电偶是传感器,给空调的激活信号是控制器输出,空调本身是执行器,随机热源(如阳光和温暖的物体)构成了过程上的负载。

PID控制

比例-积分-微分或PID控制器执行与恒温器相同的功能,但具有更详细的算法来确定其输出。它查看误差的当前值,误差在最近一段时间间隔内的积分,以及误差信号的当前导数,以确定不仅要应用多少修正,而且要应用多长时间。这三个量都乘以了a调优常数并相加得到电流控制器输出CO(t),如公式[1]所示。在这个方程中,P是成比例的调优常数,I是积分调优常数,D是导数误差e(t)是设定值P(t)与时刻过程变量PV(t)之间的差值。如果当前误差较大,或者误差已经持续一段时间,或者误差变化较快,控制器将尝试通过产生大输出进行大修正。相反,如果过程变量与设定值匹配了一段时间,控制器将保持足够的稳定。

调优控制器

从概念上讲,这就是PID控制器的全部内容。棘手的部分是调优它;即,适当地设置P、I和D调优常数。其思想是对比例项、积分项和导数项的和进行加权,从而产生控制器输出,使过程变量朝着消除误差所需的方向稳定地驱动。

这个问题的强力解决方案是使用最大的调优常数来生成最大的输出。这样调优的控制器将放大每一个错误,并发起极其积极的努力,以消除设定值和过程变量之间即使是最微小的差异。然而,过度激进的控制器实际上会使情况变得更糟,因为它在试图纠正最近的错误时,会使过程变量超过设定值。在最坏的情况下,过程变量最终会比以前离设定值更远。

另一方面,PID控制器调优得过于保守,可能无法在下一个错误出现之前消除一个错误。一个调优的控制器的性能介于这两个极端之间。它积极地快速消除错误,但又不会做过头。

如何最好地调整PID控制器取决于进程如何响应控制器的纠正努力。即时和可预测的反应过程实际上根本不需要反馈。例如,汽车的大灯在司机按下开关时立即亮起。不需要后续的校正,以达到所需的照明。

另一方面,汽车的巡航控制器无法如此快速地将汽车加速到所需的巡航速度。由于摩擦和汽车的惯性,巡航控制器启动加速器的时间和汽车速度达到设定值的时间之间总是有一个延迟。PID控制器必须经过调整来考虑这种情况滞后

PID在工作

考虑一个滞后时间相对较长的缓慢过程——例如,一辆超载的汽车,发动机尺寸较小。这样的进程往往对控制者的努力反应缓慢。如果过程变量突然开始偏离设定值,控制器的即时反应将主要由方程[1]中的导数项的作用决定。这将导致控制器在错误从零改变的瞬间启动一系列纠正工作。当汽车遇到爬坡并突然开始减速时,带有衍生动作的巡航控制器就会启动。速度的变化也会启动比例动作,使控制器的输出持续,直到错误被消除。一段时间后,积分项也将开始对控制器的输出作出贡献,因为误差随着时间的推移而累积。事实上,积分作用最终会主导输出信号,因为在一个缓慢的过程中,误差减小得非常缓慢。即使在错误被消除之后,控制器将继续根据控制器积分器中累积的错误历史生成输出。过程变量可能会这样过度设定值,导致相反方向的误差。

如果积分调谐常数不是太大,这个后续的误差将比原来的小,随着负误差加入到正误差的历史中,积分作用将开始减弱。整个操作可以重复几次,直到误差和累积误差都消除。同时,基于振荡误差信号的导数,导数项将继续增加到控制器输出中。比例作用也会随着误差的增大和减小而变化。

现在假设进程有很小的延迟,因此它可以快速响应控制器的努力。方程[1]中的积分项将不会在控制器的输出中起主导作用,因为误差将是如此短暂。另一方面,在没有长滞后的情况下,由于误差变化很快,导数作用将趋于更大。

显然,控制器输出中每个项的相对重要性取决于被控制进程的行为。确定适合特定应用的最佳组合是控制器调优的本质。

对于缓慢的过程,较大的导数调谐常数D可能是可取的,以加速控制器对突然出现的错误的反应。然而,对于快速作用过程,同样大的D值可能会导致控制器的输出剧烈波动,因为误差的每一个变化(包括由测量噪声引起的无关变化)都被控制器的导数动作放大。

三种调优技术

关于如何选择P、I和D值以达到可接受的控制器性能水平,基本上有三种思想流派。第一种方法是简单的试错-调整调优常数并观察控制器处理下一个错误。如果能及时消除错误,就退出。如果它被证明过于保守或过于激进,则增加或减少一个或多个调优常数。

有经验的控制工程师似乎知道要加或减多少比例、积分和导数动作才能纠正一个调优不良的控制器的性能。不幸的是,直观的调优过程可能很难开发,因为一个调优常数的变化往往会影响控制器输出中所有三个项的性能。例如,调低积分动作可以减少超调。这反过来又减缓了误差的变化率,从而也减少了导数的作用。

解析方法对调谐问题更为严格。它涉及到数学模型将过程变量的当前值与其当前变化率加上控制器输出的历史记录联系起来的过程。来自控制器以外的源对过程变量的随机影响都可以归结为负载变量LV(t)。见公式[2]。这个特定的模型描述了一个具有获得K, a时间常数T和a空载时间过程增益表示控制器对过程变量影响的大小。K的大值对应于一个过程,该过程将小的控制努力放大为过程变量的大变化。

公式[2]中的时间常数T表示过程滞后的严重程度。大的T值对应于缓慢进程中的长滞后。死区时间d表示在许多过程中存在的另一种延迟,其中控制器的传感器位于其执行器的一定距离。执行器的效果到达传感器所需的时间是死区时间。在此期间,过程变量完全不响应执行器的活动。只有在死时间过去之后,延迟时间才开始。

在恒温器的例子中,空调和恒温器之间的管道系统会造成死区,因为每一段冷空气都需要时间通过管道。直到第一股冷空气从管道中出来,室温才会开始下降。

流程行为的其他特征也可以考虑到流程模型中,但公式[2]是最简单且应用最广泛的之一。它适用于任何过程变量随其当前值成比例变化的过程。例如,一辆质量为m的汽车加速时,它的巡航控制器要求发动机施加一个力F引擎(t)到驱动桥。但是加速度a(t)与摩擦力F相反摩擦(t)与汽车当前速度v(t)成K倍的比例摩擦.如果所有其他阻碍汽车加速的力都集中成F负载(t)和发动机F施加的力引擎(t)与控制器输出成K倍的比例引擎,则v(t)服从方程[2],如公式[3]到[5]所示。

在公式[5]中,过程变量v(t),负载变量LV(t) = -F负载(t) / K摩擦.过程增益为K = K引擎/ K摩擦过程时间常数为T = m/K摩擦.在这个例子中,没有死时间,因为只要巡航控制器激活加速器,汽车的速度就开始改变。汽车将无法到达它的最后速度需要一段时间,但它会的开始几乎立即加速。

如果可以为流程定义像[2]或[5]这样的模型,则可以通过分析模型的参数来量化其行为。模型的参数反过来指示了使用反馈控制器修改过程行为所需的调优常数。实际上,有数百种分析技术可以将模型参数转换为调谐常数。每种方法都使用不同的模型、不同的控制器目标和不同的数学工具。

解决调优问题的第三种方法是纯粹的启发式试错技术和更严格的分析技术之间的一种妥协。它最初是由泰勒仪器公司的John G. Ziegler和Nathaniel B. Nichols在1942年提出的,因为它的简单性和适用于任何由方程[2]形式的模型控制的过程,所以直到今天仍然很受欢迎。Ziegler-Nichols调谐技术将是“回归基础”(CE、1998年8月)。

应用程序问题

有经验的PID用户会注意到,到目前为止,没有一个讨论直接适用于目前运行90%以上工业过程的商业PID控制器。在过去50年的实际应用中,基本PID理论中发现了几个微妙的缺陷。

例如,考虑的影响执行机构饱和.当控制器产生的输出信号超过执行器的容量时,就会发生这种情况。在上面的巡航控制示例中,PID公式可能在某个点上要求将100万16 lbf-ft扭矩应用到驱动桥上。至少在数学上,要达到特别快的加速度可能需要这么大的力。

当然,真正的发动机只能施加这个力的一小部分,所以控制器输出的实际效果将受到发动机在全速时所能做的任何事情的限制。直接的结果是加速速度远低于预期,因为发动机在最大容量时已经“饱和”了。

然而,这是执行器饱和的长期后果,有必要修复方程[1],称为antiwindup保护.每当错误信号卡在正或负区域时,控制器的积分项就会“结束”,如本例所示。这导致积分作用随着误差的累积而越来越大。由此产生的控制努力也会变得越来越大,直到误差最终改变符号,累积的误差开始减小。

不幸的是,饱和的执行器可能无法扭转误差。发动机可能无法将汽车加速到期望的速度,因此期望速度与实际速度之间的误差可能永远保持为正。即使实际速度最终超过设定值,累积的误差将如此之大,以至于控制器将继续产生非常大的校正努力。当累积了足够多的负误差,使积分项归零时,控制器很可能已经使汽车的速度大大超过设定值。

解决这个问题的办法是首先防止积分器破产。当执行器饱和时,必须人为地限制控制器的积分动作,直到误差信号改变符号为止。最简单的方法是将积分项保持在检测到饱和时的最后一个值。

选择实现

PID公式本身也进行了修改。方程[1]的几个变体已经开发用于商业PID控制器;最常见的是方程[6]。这个版本涉及对过程变量PV(t)求导,而不是误差e(t) = SP(t) - PV(t)。这里的想法是防止每次设定值改变时控制器输出的突然变化。注意,当设定值SP(t)为常数时,结果是相同的。

方程[6]中的调谐常数与方程[1]中的调谐常数也不相同。控制器的比例增益现在适用于所有三个项,而不仅仅是误差e(t)。这使得控制器的整体“强度”可以通过操纵P(或P的逆函数)来增加或减少。

对方程[6]中的另外两个调谐常数进行了修改,使它们都可以用时间单位表示。这也给了一些物理意义积分时间T.请注意,如果误差e(t)可以以某种方式保持不变,总积分作用将增加到恰好t的比例作用水平秒。虽然在控制器工作时误差不应该保持不变,但这个公式确实让用户感受到积分和比例项的相对强度;即,较长的积分时间意味着相对较弱的积分作用,反之亦然。

有关将PID控制器应用于现实生活控制问题的实际问题的更多详细信息,请参阅F. Greg Shinskey的“过程控制系统”,可从Foxboro培训学院通过1-888-FOXBORO获得。作者非常感谢Shinskey先生在本文准备过程中的帮助。