基于pid校正的控制系统实现
模拟PID控制器,仍然被认为是最强大的,可以修改为离散时间控制系统。下面是方程式和例子。
学习目标
- 研究在离散时间控制系统中使用PID的选项。
- 回顾了如何降低噪声,使用中断服务例程和更多关于PID控制传递函数。
- 理解z域的控制系统建模,无限脉冲响应滤波器,并知道不是每个PID实现都令人满意。
当被控系统连续(及时)运行时,在s域处理控制系统的综合是完全合理的,但是控制系统的实现是另一回事。今天,几乎所有的控制系统都是基于微处理器(微控制器)或数字信号处理器实现的数字系统图1.
一个离散控制系统的PID
模拟PID控制器,它仍然被认为是最强大的(图2),可以修改实现为离散时间控制系统,因为重写其微分并不困难方程1变成不同的形式(方程2)
在哪里u[n为当前的执行值n,e[n]当时的调节是否有误差n而且e[n - 1]为前一个采样时间的调节误差,n - 1.T是采样的时间段。在同一时期,T,用于处理,即用于u[n)计算。
对于实际应用方程2需要从集成成员开始进行某些修改。积分成员将调节误差的每个值加到一个和,然后将这个和乘以时间常数和积分常数。如果时间或积分常数的值突然变化(这是可能发生的,特别是在调优过程中),执行值将突然变化并引起问题。更好的方法是先将调节误差与这两个常数相乘,然后再累积它们的乘积。另一个改进是用梯形积分近似代替矩形积分近似。
如何减少噪音
的导数项方程2是问题的第二个来源。在它的简单形式中,这个成员往往相当嘈杂。为了降低噪声,可以使用两个以上(例如四个)连续采样的调节误差。结果就好像调节误差的差异通过一个微小的(4抽头)有限脉冲响应(FIR)滤波器。
修改后的PID公式如下所示方程3
上面的差分方程可以在任何编程语言和任何微处理器/微控制器上实现。
中断服务程序
不过,关于采样/处理周期,还有一个悬而未决的问题,T.什么是正确的控制过程周期(频率),它取决于什么?控制频率仅与闭环传递函数的时间常数有关。记住,这个时间常数可以比受控系统本身的时间常数短一个阶。最佳情况下,您应该比闭环时间常数τ的值多运行5到10倍左右的控制过程。在控制程序开始运行之前,您应该立即拥有的最新样本r[n),y[n准备就绪(见图1).
最好的安排是将控制过程作为中断服务程序(ISR)调用,由A/D转换器提供y[n)的价值。控制程序计算结果,执行变量u[n],应尽快送至D/A转换器。否则,被控系统的传递函数将受到运输延迟的影响,从而破坏(使其不稳定)控制系统。
为避免总能从外部渗透进控制系统的噪声(如电子部件引起的“板”噪声,主要是开关电源),所有被测变量——信号一样y(t),必须经过彻底过滤。它们应该“通过”一个适当的抗混叠滤波器,截止频率远低于采样频率的一半,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完全适合在任何微处理器(微控制器)或数字信号处理器上实现。如果你保持K1,K2而且K3.作为预先计算的常数(而不是变量),整个控制过程将需要三次乘法,四次加法,并记住四个先前计算的变量——两个调节错误,e[n- 1]和e[n- 2],两个驱动变量,u[n- 1]和u[n- 2](仅用于方程12).的e[n计算需要做一次减法。
无限脉冲响应滤波器
您还可以进一步优化控制过程。数字信号处理行业有非常流行的递归滤波器,即所谓的无限脉冲响应(IIR)滤波器。通常,它们被实现为级联的二阶滤波器。一个这样的二阶滤波器,通常称为“biquad”(双二次),转换为其规范形式,称为级联形式II,显示在图3.
实现这样的双四方需要更少的内存空间-而不是四个变量-延迟项e[n- 1),e[n- 2),u[n- 1]和u[n- 2],只需要记住两个状态变量,和d[n- 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.com,mhoske@cfemedia.com。
关键词:比例-积分-导数,PID,高级过程控制,APC
考虑一下这个
PID实现可以扩展到过程控制应用之外。
您是否具有本内容中提到的主题的经验和专业知识?你应该考虑为我们的CFE媒体编辑团队做出贡献,并获得你和你的公司应得的认可。点击在这里开始这个过程。