基于pid校正的控制系统实现

模拟PID控制器,仍然被认为是最强大的,可以修改为离散时间控制系统。下面是方程式和例子。

通过彼得•加 2022年4月12日
提供:Peter Galan,退休控制软件工程师

学习目标

  • 研究在离散时间控制系统中使用PID的选项。
  • 回顾了如何降低噪声,使用中断服务例程和更多关于PID控制传递函数。
  • 理解z域的控制系统建模,无限脉冲响应滤波器,并知道不是每个PID实现都令人满意。

当被控系统连续(及时)运行时,在s域处理控制系统的综合是完全合理的,但是控制系统的实现是另一回事。今天,几乎所有的控制系统都是基于微处理器(微控制器)或数字信号处理器实现的数字系统图1

图1,封面:框图显示了一个数字闭环控制系统。提供:Peter Galan,退休控制软件工程师

图1,封面:框图显示了一个数字闭环控制系统。提供:Peter Galan,退休控制软件工程师

一个离散控制系统的PID

模拟PID控制器,它仍然被认为是最强大的(图2),可以修改实现为离散时间控制系统,因为重写其微分并不困难方程1变成不同的形式(方程2

在哪里un为当前的执行值nen当时的调节是否有误差n而且en - 1]为前一个采样时间的调节误差,n - 1T是采样的时间段。在同一时期,T,用于处理,即用于un)计算。

对于实际应用方程2需要从集成成员开始进行某些修改。积分成员将调节误差的每个值加到一个和,然后将这个和乘以时间常数和积分常数。如果时间或积分常数的值突然变化(这是可能发生的,特别是在调优过程中),执行值将突然变化并引起问题。更好的方法是先将调节误差与这两个常数相乘,然后再累积它们的乘积。另一个改进是用梯形积分近似代替矩形积分近似。

如何减少噪音

的导数项方程2是问题的第二个来源。在它的简单形式中,这个成员往往相当嘈杂。为了降低噪声,可以使用两个以上(例如四个)连续采样的调节误差。结果就好像调节误差的差异通过一个微小的(4抽头)有限脉冲响应(FIR)滤波器。

修改后的PID公式如下所示方程3

上面的差分方程可以在任何编程语言和任何微处理器/微控制器上实现。

图2:PID控制器通过比例、积分和导数分量计算执行值。提供:Peter Galan,退休控制软件工程师

图2:PID控制器通过比例、积分和导数分量计算执行值。提供:Peter Galan,退休控制软件工程师

中断服务程序

不过,关于采样/处理周期,还有一个悬而未决的问题,T.什么是正确的控制过程周期(频率),它取决于什么?控制频率仅与闭环传递函数的时间常数有关。记住,这个时间常数可以比受控系统本身的时间常数短一个阶。最佳情况下,您应该比闭环时间常数τ的值多运行5到10倍左右的控制过程。在控制程序开始运行之前,您应该立即拥有的最新样本rn),yn准备就绪(见图1).

最好的安排是将控制过程作为中断服务程序(ISR)调用,由A/D转换器提供yn)的价值。控制程序计算结果,执行变量un],应尽快送至D/A转换器。否则,被控系统的传递函数将受到运输延迟的影响,从而破坏(使其不稳定)控制系统。

为避免总能从外部渗透进控制系统的噪声(如电子部件引起的“板”噪声,主要是开关电源),所有被测变量——信号一样yt),必须经过彻底过滤。它们应该“通过”一个适当的抗混叠滤波器,截止频率远低于采样频率的一半,1 / T如果由于某种原因,它们不能被适当的模拟滤波器过滤,那么至少应该对它们进行过采样和数字滤波。

更多关于PID控制传递函数

方程3并不是PID控制器离散实现的唯一方法。另一种可能是将PID控制传递函数从s域(方程4)到z域。在实践中,这种转换有两种方式。两者都来自离散时间积分的不同近似。离散时间积分最常见的近似是一个矩形(方程5)和梯形(方程6)近似。

如果你表达在z域,对于矩形近似,你会得到

这就是梯形近似的结果:

方程7而且8对应于积分项,在s域中表示为1 / s.如果取右边的倒数表达式方程7(表达年代),然后分别用它代替年代的运算符方程4,得到PID补偿的传递函数(在z域中):

同样地,如果取右边的倒数表达式方程8然后分别代入年代的运算符方程4时,得到的传递函数如下PID补偿(在z域):

z域控制系统建模

方程9/10可以适用于z域控制系统的建模,例如在Matlab中,但不能直接由任何控制器实现。然而,在对方程9时,得到如下方程

的z逆变换方程10

方程11而且方程12完全适合在任何微处理器(微控制器)或数字信号处理器上实现。如果你保持K1K2而且K3.作为预先计算的常数(而不是变量),整个控制过程将需要三次乘法,四次加法,并记住四个先前计算的变量——两个调节错误,en- 1]和en- 2],两个驱动变量,un- 1]和un- 2](仅用于方程12).的en计算需要做一次减法。

无限脉冲响应滤波器

您还可以进一步优化控制过程。数字信号处理行业有非常流行的递归滤波器,即所谓的无限脉冲响应(IIR)滤波器。通常,它们被实现为级联的二阶滤波器。一个这样的二阶滤波器,通常称为“biquad”(双二次),转换为其规范形式,称为级联形式II,显示在图3

图3:二阶正则IIR滤波器部分作为PID控制器。提供:Peter Galan,退休控制软件工程师

图3:二阶正则IIR滤波器部分作为PID控制器。提供:Peter Galan,退休控制软件工程师

实现这样的双四方需要更少的内存空间-而不是四个变量-延迟项en- 1),en- 2),un- 1]和un- 2],只需要记住两个状态变量,和dn- 1),d[n - 2]。典型IIR滤波器部分最好由以下两个差分方程描述

你有一些,虽然有限的选择一个1而且一个2值的选择。然而,有两个规则必须遵守:的和一个1而且一个2Values必须始终为1.0,并且没有任何值可以大于1.0。你可以用as一个1而且一个2系数,例如,像1.0和0,或0.5和0.5,或0和1.0,或介于两者之间的任何值。

最后一个组合将产生相同的响应方程12越低一个2值越大,控制系统的响应越快。这样可以简化调优过程,而不是频繁地修改K值(需要重新计算KP而且KD值,如果您想使它们最优,即取消控制的系统极点),您可以设置K常量(和KP而且KD例如,值)一次到某个合理的值K值(其中τ1和τ2是被控系统的主要时间常数),并通过调整来进行最终的调谐一个1而且一个2值。

并不是每个PID实现都令人满意

当必须实现任何算法问题时,有一个选择总是好的,但并不是每个实现都能提供令人满意的结果。这同样适用于所描述的PID控制程序。这三个过程在纸上都能很好地工作,但在实施时,就会出现问题。

首先,方程3.与剩下的两个相比,它的实现需要更多的数学运算(乘法,加法)和记住更多先前的结果,它提供了非常流畅的结果。的行为方程11是相似的。

然而,执行方程12将无法提供令人满意的结果,因为它运行在稳定的边界上,并且它的输出将永久振荡。的方程13/14实现将正常工作,但是一个1系数必须保持> 0否则它就会像方程12实现并产生永久振荡。

彼得•加是一位退休的控制软件工程师;由内容经理马克·霍斯克编辑,控制工程、www.globalelove.com, CFE媒体与技术,www.cfemedia.commhoske@cfemedia.com。

关键词:比例-积分-导数,PID,高级过程控制,APC

考虑一下这个

PID实现可以扩展到过程控制应用之外。


作者简介:Peter Galan是一名(已退休)控制系统设计师,在电子、控制系统和软件设计方面拥有丰富的经验。他曾在ZTS, GE, Husky,北电,JDSU,艾默生(加拿大和美国)等多家公司工作,此前在科希塞(前捷克斯洛伐克)的技术大学工作。他拥有布拉格捷克技术大学自动化控制系统博士学位和应用控制论硕士学位。