设定值滤波型四参数二自由度PID算法研究
2022-02-25殷华文
殷华文
(南阳理工学院智能制造学院,河南 南阳 473004)
0 引言
在工业控制领域广泛应用的回路比例积分微分(proportional integral derivative,PID)控制器和Smith预估控制器等常规控制器,都只能设定一组控制器参数,属于一自由度控制器。一般而言,如果按干扰抑制特性最优来整定参数,则设定值跟随特性差;如果按设定值跟随特性最优来整定参数,则干扰抑制特性差。所以常规控制器的设计和参数整定通常采用折中或试凑的办法解决[1]。这样可以满足大多数控制系统的要求。但对于高性能控制系统而言,该方法难以达到期望的控制性能。这时,就需要采用二自由度PID控制。
二自由度控制是指:采用适当的设计方法,找到两组独立的参数并设计出两个独立的控制器,分别用优化系统的设定值跟随特性和干扰抑制特性[1]。二自由度PID的基本概念是由I.M.Horowitz在1963年提出的[2]。抑制外部干扰用微分先行PID控制算法,调节Kp、Ti与Td参数,可有效地改善系统动态响应,实现最优的干扰抑制特性。而对于设定值干扰,在PID算法之前叠加设定值滤波器以调节滤波器参数α,可减缓设定值的快速变化,从而实现最优的设定值跟随特性。这就是四参数二自由度PID算法。
近年来,随着各种新型先进控制技术的出现,为了更好地发挥二自由度控制的优势,一些研究者已将新的控制思想与PID控制器或者控制结构相结合,提出了不同的二自由度控制器的设计方法。如:基于内模控制原理的二自由度控制、基于模糊控制理论的二自由度控制等[3]。虽然二自由度控制方法研究已取得较大进展,但大多仅限于利用仿真试验进行理论验证。因此,将理论研究成果推广应用于实际工业过程还有待实现。
本文针对大小惯性不同的四种典型过程对象,进行二自由度控制算法研究。
1 二自由度PID算法设计
1.1 二自由度PID算法思想
二自由度PID算法是在微分先行PID算法的基础上加上设定值滤波环节,实现设定值跟随性和抗干扰性同时最优。
通常的PID算法是基于偏差补偿原理的,即PID运算是基于偏差e的。偏差值为设定值和反馈值的差值,即:
e=r-y
(1)
式中:e为偏差;r为设定值;y为反馈值。
由式(1)可以看出,e受r和y双因素变化的影响。PID控制器既要抑制r变化的影响,又要抑制y变化的影响。干扰d会直接影响到y的变化。r往往是阶跃变化的。d是现场扰动信号,既可能是一种信号,也可能是几种信号的混合。因此,用一组PID参数难以兼顾对设定值阶跃的跟随和抗干扰。为了抑制设定值阶跃的影响,需要弱化微分作用;而为了捕捉干扰对被控变量的影响,又需要强化微分作用。为了抑制干扰,需要增强比例积分作用以消除余差。但增强比例作用会增强设定值阶跃对控制系统的冲击,而增强积分作用会引起积分饱和。设定值滤波型六参数二自由度PID控制结构如图1所示。
图1 设定值滤波型六参数二自由度PID控制结构图
二自由度PID的算法思想就是对引起e变化的双因素采用不同的策略分别进行抑制。图1所示的设定值滤波型六参数二自由度PID控制结构需要六个参数,即设定值滤波器三个参数α、β、γ和三个PID参数[4]。
六参数二自由度PID算法结构比较复杂。图2所示的是简化的设定值滤波型四参数二自由度PID控制结构[5-6]。这种结构只对设定值作惯性滤波,只有一个二自由度系数α。
图2 设定值滤波型四参数二自由度PID控制结构图
1.2 滤波器提高系统的设定值跟随能力
设定值滤波器用于缓冲设定值阶跃对系统的冲击、减轻控制器的工作压力,即主要考虑式(1)中r因素对偏差e的影响。
设计目标值滤波器H(s),如式(2)所示:
(2)
对式(2)作推导,得:
(3)
由式(3)可知,设定值滤波器实际是一个比例环节和惯性环节的迭加。当0<α<1时,比例环节对设定值阶跃的初始值进行了衰减,惯性环节则缓冲了设定值阶跃对系统的冲击。滤波器可以使设定值阶跃时被控变量有一个平稳的变化空间,从而更好地跟随设定值变化,不影响系统的稳定性。
1.3 微分先行的干扰抑制能力
在控制系统的实际运行过程中,设定值是阶跃变化的。这将使微分项输出产生极大的突变(比例项输出也会跳变,但没有微分项跳变幅度大)。微分突变一方面会使控制变量产生很大的变化,对于有些生产过程(如化学反应、燃烧等过程)是不允许的;另一方面,还会使被控变量产生很大的超调。为了避免设定值变化引起的微分突变,本文提出了微分先行的概念。微分先行是指将控制器的微分部分前移至测量通道中[7]。
微分先行算法只对测量值作微分处理,而不影响比例积分(proportional integral,PI)的调节。微分先行PID的控制结构如图1中去除目标值滤波器的部分。
微分先行可以减轻设定值阶跃引起的微分突变。但是对于二自由度PID而言,加上设定值滤波器后减弱了设定值阶跃时的微分跳变。这时的微分先行主要起抑制干扰的作用,即主要用来抑制y因素对偏差e的影响。这是由于微分先行是对被控变量y作微分,可以直接捕捉扰动d导致的被控变量y的变化,从而使控制系统能够抑制干扰。
微分环节对广义对象形成局部反馈,相当于对广义对象引入反馈校正。反馈校正可以消除广义对象非线性、变参数的影响和抑制干扰[8]。微分运算加了微分延迟,所以对干扰信号有滤波和缓冲作用。
1.4 微分先行运算的极性
对于一般的PID运算来说,微分部分的运算是:
(4)
式中:Kp为比例系数;Td为微分系数。
式(4)的离散化形式为:
(5)
式中:Ts为采样周期;e(k)为当前采样时刻偏差;e(k-1)为上一采样时刻偏差。
微分运算捕捉的是偏差的变化,PID算法的输出为:
u(k)=up(k)+ui(k)+ud(k)
(6)
式中:up(k)为比例运算项;ui(k)为积分运算项;ud(k)为微分运算项。
(7)
式中:y(t)为被控变量。
式(7)的离散化形式为:
(8)
式中:y(k)为当前时刻被控变量采样值;y(k-1)为上一采样时刻被控变量。
由式(8)可以看出,微分项运算已经不受设定值r的影响了。微分运算项只捕捉被控变量y的变化。
(9)
结合式(6)和式(9),微分先行运算和正常的微分运算极性相反,所以图1和图2中标“*”处为“-”而不是“+”。
1.5 二自由度PID公式离散化
把系统分成两个部分:①设定值滤波器部分;②标准PID加微分先行部分。
①把目标值滤波器H(s)看成一个简单的控制系统,对式(2)作拉氏反变换,得:
(10)
离散化之后,得:
(11)
整理之后,得:
(12)
m(k)、y(k)分别是PID运算的输入和被控变量,则:
e(k)=m(k)-y(k)
(13)
②将微分先行PID部分离散化,则整个控制算法为:
(14)
其中,微分项为:
[y(k)-y(k-1)]
(15)
式中:η为微分延迟系数或不完全微分系数,是为了抑制微分突变而加的惯性延迟环节的时间常数Td的系数,η取值一般为0.1~0.2。
2 MATLAB/Simulink中的仿真研究
2.1 设定值滤波器研究
在MATLAB/Simulink中搭建设定值滤波器进行仿真:输入信号r为阶跃信号;α和Ti的取值用四组不同的参数。滤波器输出信号曲线如图3所示。
图3 滤波器输出信号曲线图
由图3可知,滤波器输出信号曲线是叠加了α值的惯性环节单调上升曲线。
当0<α<1时,相当于把设定值阶跃的初始值进行了缩小。但由于惯性环节的作用,滤波器信号输出m最终都将上升到设定值r。α决定了滤波器信号输出曲线的初始值,即设定值将被缩小的程度。而另一个参数Ti则决定了曲线上升速度的快慢。Ti越小则上升速度越快。由于惯性环节的相位滞后影响,滤波器输出信号曲线相对于原始设定值曲线相位滞后0~90°。
2.2 一自由度PID算法和二自由度PID算法的比较研究
图4 一自由度PID和二自由度PID控制仿真比较(α=0.35)
由图4可知,一自由度PID控制有比较大的超调,二自由度PID控制既无超调也无振荡,响应曲线能够很好地跟踪滤波器输出信号曲线,体现了二自由度PID控制的优点。但一自由度PID控制响应速度快,而二自由度PID控制响应速度慢。
图5 正极性微分运算控制仿真曲线(α=0.35)
3 大小惯性对象二自由度PID控制
3.1 试验研究对象
本文对水泵压力、管道流量、水箱液位、锅炉温度这四个惯性大小不同的对象进行二自由度PID算法控制效果研究。经过实际测试,这四个对象的数学模型如下。
3.2 水泵压力二自由度PID控制
水泵压力对象的惯性小,不容易稳定。通过响应曲线法和经验试凑法,整定出调节效果较好的PID参数(即Kp=0.67、Ti=20 s、Td=1 s),再整定α参数。水泵压力一自由度PID算法和二自由度PID算法控制曲线如图6所示,可见二自由度PID控制效果优于一自由度PID控制效果。
图6 水泵压力一自由度PID算法和二自由度PID算法控制曲线
通过改变出水口调节阀改变出水流量施加扰动,二自由度PID控制能抑制压力的波动。
由于水泵压力是小惯性对象,比例参数Kp和微分参数Td不要设置得过大,约1 s即可,否则系统会出现振荡现象。设置α=0.01时,调节时间、最大偏差和稳态误差都比较小。
3.3 管道流量二自由度PID控制
管道流量是典型的过程对象,具有惯性小、非线性的特点[9],所以不容易稳定。通过响应曲线法和经验试凑法,整定出调节效果较好的PID参数(即Kp=0.11、Ti=30 s、Td=0 s),再整定α参数。α=0.1时,管道流量二自由度PID控制曲线如图7所示。
图7 管道流量二自由度PID控制曲线(α=0.1)
由于管道流量是小惯性对象,比例参数Kp和微分参数Td不宜设置得过大,否则系统会出现振荡现象。设置α=0.1时,调节时间、最大偏差和稳态误差都比较小。
3.4 水箱液位二自由度PID控制
通过响应曲线法和经验试凑法,整定出调节效果较好的PID参数(即Kp=3.45、Ti=200 s、Td=15 s),再整定α参数。α=0.35时,水箱液位二自由度PID控制曲线如图8所示。
图8 水箱液位二自由度PID控制曲线(α=0.35)
水箱液位是大惯性对象,比水泵压力和管道流量对象的惯性大。如果没有超调问题,而需要快速稳定,则需要增大比例参数Kp。但Kp过大时也会产生振荡。α越大,设定值滤波后曲线的上升时间越短,但超调量也越大。
3.5 锅炉温度二自由度PID控制
锅炉温度是典型的过程对象,具有大惯性、大滞后和非线性等特点[10]。
此处锅炉温度为非自衡积分对象,加热过程散热较慢,具有较大的滞后。锅炉温度控制既要求快速升温,又要避免超调,所以控制难度大。
本文先整定出PID参数(即Kp=20、Ti=50 s、Td=10 s),再整定α参数。α=0.5时,锅炉温度二自由度PID控制曲线如图9所示。
图9 锅炉温度二自由度PID控制曲线(α=0.5)
由于锅炉温度控制有积分环节,即大惯性环节,为了提高执行器的能力,α取值应偏大。
3.6 二自由度PID的参数整定
二自由度PID的参数整定应先整定PID参数,通过响应曲线法、继电反馈振荡法和经验试凑法等,整定出调节效果较好的PID参数。然后施加扰动,修正所得的PID参数,使调节器的抗干扰性最佳。四种对象的参数设置规律为:水泵压力对象Kp=0.67,管道流量对象Kp=0.11,水箱液位对象Kp=3.45,锅炉温度对象Kp=20。由此可知,大惯性对象的Kp参数要大,而小惯性对象的Kp参数要小。
然后,根据对象惯性大小进行α参数整定,使设定值跟踪特性最佳。四种对象的α参数设置规律为:管道压力对象α=0.01,管道流量对象α=0.1,水箱液位对象α=0.35,锅炉温度对象α=0.5。由此可知,大惯性对象的α参数要大,而小惯性对象的α参数要小。
α参数一般不要超过0.5。若大于0.5,虽然有缓冲设定值的功能,但缓冲效果随α的增大的变化并不明显。当α=1时,无设定值缓冲效果。
4 结论
二自由度PID相当于两个调节器的串联。第一个调节器是设定值滤波器,实际是一个比例环节和惯性环节的迭加,相当于对设定值作了一次PI调节。第二个调节器是对系统偏差作了一次微分先行PID调节。两个调节器共用一个积分参数Ti。
设定值滤波器对设定值阶跃幅值的衰减降低了设定值阶跃扰动对系统造成的冲击,惯性环节的缓冲也减小了系统超调的可能性,比例和惯性环节的迭加使系统具有良好的跟随性。微分先行是对测量值作微分,可以直接捕捉扰动导致的被控变量的变化,从而更好地实现控制系统的干扰抑制性。二自由度PID能实现设定值跟随和扰动抑制的双优控制。但由于设定值滤波器中惯性环节的相位滞后作用,设定值跟随性是以牺牲响应速度为代价的。
在整定控制参数时,被控对象惯性大,则Kp和α参数设置要大,使得设定值滤波器和PID运算输出增大。被控对象惯性小,则Kp和α参数设置要小,使得设定值滤波器和PID运算输出减小。