PID数学解密,第2部分

你已经看到了方程式,但你有没有想过这些元素是如何一起工作的?第二部分:在混合中加入积分和导数。

通过斯科特·海耶斯 2013年5月13日

上周我们开始讲比例。(阅读第一部分)现在让我们看看方程的下一部分,积分分量:

这个方程中最引人注目(也是最可怕)的部分是中间的大积分符号。如果你学过高中微积分,你会对自己说,“我得到了这个。积分吓不倒我。我只需要求出误差函数从0到t的曲线下的面积

但是,这是现实世界。时间0是多少?如何积分误差函数?好消息是,真正的定义比微积分简单得多。PID函数所做的是取错误的一部分,并将其加到运行总数中。这个运行总数(有时称为reset)被添加到输出中。由于复位一次增加或减少一点,它调整阀门的输出增量每次扫描。

对于PI控制器,到目前为止我们所涵盖的两个因素是Kp而且K但如果你看一下大多数工业系统的面板,就会发现只有一个K(增益),没有单位,和τ(积分时间常数)指定为秒或分钟每重复。因此,需要做一点翻译。大多数工业控制器不使用上述方程的独立形式。相反,他们使用了方程的依赖形式:

K通常与比例增益相同,Kp.的因素τ确定每次扫描时将有多少错误应用于累积重置。在这个大的数学方程中,K本质上可以被面板参数所取代:K⁄τ

重要的是要理解增益影响控制器的比例作用也影响积分作用。但是积分时间常数τ只影响积分作用。

在伪代码中,这看起来像:

错误:= Setpoint - ProcessValue;

重置:=重置+ K/tau_i *错误;

输出:= K *错误+复位;

对于积分时间常数,单位是每次重复的分钟数τ来自于这样一个事实,如果误差保持不变,这就是积分累加器重复输出的比例变化所需要的时间。

注意:指定积分调优参数的另一种方法是以秒为单位,然后是每次重复的秒的倒数。如果积分时间常数以秒为单位,则数值越大,响应越慢。如果积分单位是秒,则相反。

导数

现在我们来看看导数:

这又是一个数学方程,解释很简单。数学定义首先,输出将被误差函数的导数(或变化率)所改变。这意味着输出将受到从一次扫描到另一次扫描的误差变化的影响。将此添加到伪代码中会得到:

错误:= Setpoint - ProcessValue;

重置:=重置+ K/tau_i *错误;

输出:= K * Error + Reset + ((PreError - Error) * K/tau_d));

PreError:=错误;//为下次扫描保存错误

我们的目的是让输出在过程变量开始向设定值移动或偏离设定值时发生变化。结果可以非常快速地响应从一个扫描到另一个的错误变化。

衍生行为的目的是在变化开始发生时对其作出反应。例如,如果温度开始上升,阀门将在看到变化时立即开始打开,而不是等待它越过设定值。这可能导致对一个小变化的快速响应。如果过程变量中有噪声或设定值变化,这种快速响应可能变得不稳定。因此,导数作用通常被单独过滤,有时仅在PV上计算以忽略设定值的变化。

总结

现在我们已经回顾了PID算法的三个组成部分。它们被描述的一种方式是时间的流动。P依赖于当前误差,I依赖于过去误差的累积,D依赖于基于当前变化率对未来误差的预测。

本文由Scott Hayes撰写。Scott是MAVERICK Technologies的高级工程师,MAVERICK Technologies是一家领先的系统集成商,为制造和流程行业提供工业自动化、运营支持和控制系统工程服务。MAVERICK提供各种领域的专业知识和咨询,包括工业自动化控制,分布式控制系统制造执行系统操作策略,业务流程优化.该公司提供全方位的自动化和控制服务-从PID控制器整定而且人机界面编程成为一个主要的自动化承包商。另外MAVERICK提供工业和技术人员配备服务,配备现场自动化、仪器仪表和控制工程师。