秦华阳 陈增强 孙明玮 孙青林
(1.南开大学人工智能学院,天津 300350;2.天津市智能机器人重点实验室,天津 300350)
随着各种先进控制技术的发展,系统对控制精度的要求越来越高.然而,任何系统都会受到扰动和噪声的影响.例如几乎在所有应用中,观测数据中都同时存在期望信号和噪声信号.噪声的产生原因有很多种:它可以从相邻信号源中,通过人为或者从观测过程中产生等[1].噪声的种类也有多种,例如常见的高斯白噪声和谐波噪声等.噪声的存在会降低系统的控制精度,影响系统的控制效果.在实际应用中,控制的核心问题是对过程或系统中存在的干扰和不确定性进行抑制,也就是如何抗扰[2].为了解决这类问题,自抗扰控制(active disturbance rejection control,ADRC)应运而生[3],其思想就是要在扰动明显影响系统的最终输出前,主动从被控对象的输入或输出信号中提取扰动信息,然后在控制信号中对扰动进行补偿,从而大大降低扰动对被控量的影响.为了便于调节参数,ADRC可以被简化为线性自抗扰控制(linear active disturbance rejection control,LADRC)[4],这大大促进了自抗扰控制器的实际应用[5—11].
ADRC是在控制算法的角度抑制扰动和噪声,然而,当系统中存在高频非平稳噪声信号时,LADRC存在难以选取合适的观测器带宽的问题:当带宽较小时,线性扩张状态观测器(linear extended state observer,LESO)难以及时补偿高频噪声,会造成时滞;当带宽较大时,LESO又会放大噪声对系统的影响.为了解决这一问题,需要在滤波的角度,为高频非平稳噪声选择合适的数学模型进行有效的降噪处理,最大限度地减少该类噪声对系统的负面影响,从而提高控制系统的性能.近年来,随着对小波理论研究的不断深入,利用小波变换进行信号降噪已经在图像处理,故障诊断,卫星导航以及股市分析等领域有了广泛应用.
由于小波变换的非因果性及不具备平移不变性,使它难以实现递推计算,影响了小波降噪的实时应用,目前大多数的小波降噪方法都是基于对测量数据的离线批量处理,以有效清除噪声为追求目标,至今鲜有将小波降噪应用于控制系统中的实时降噪[12].本文受文献[13]的启发,将小波降噪环节加入LADRC中,通过设计基于滑动窗实时小波降噪的LESO,对含噪输出信号进行实时降噪,以减少高频非平稳噪声对系统的负面影响.
对于任意f ∈L2(R)(R上的平方可积函数空间),取不同的小波基ψj,k(j,k均取整数),则f会有不同的小波系数bj,k.且当ψj,k选定时,有f ↔bj,k,即f被惟一地决定于dj,k.由投影理论
小波基函数ψj,k的对偶就是离散小波积分变换的积分核,每个基函数ψj,k通过小波变换的定积分式(1)对应于一个小波系数bj,k的数值.
在尺度空间中,同样也有称aj,k为尺度系数,上式为尺度函数积分变换,其中的积分核为尺度函数ϕj,k的对偶
由上述可知,为了求f的小波系数和尺度系数,就要使用式(1)—(2)的定积分来计算.每求一个小波系数bj,k,就要计算一次定积分(对相应的j,k),显然这会带来很大的计算量,给小波的应用造成很大障碍.1989年,Mallat则在多分辨分析(multi-resolution analysis,MRA)的基础上提出了一个小波系数的快速分解算法,大大简化了小波系数的计算,为小波的应用开辟了一条捷径.
对∀f ∈VJ,VJ ⊂L2(R),J为整数,有
式中:a为尺度系数,b为小波系数,ϕ为尺度函数,ψ为小波函数,j,k,l都为整数.考虑k的独立性,可以假设f=那么
其中
可以得出
写成矩阵形式有
其中:AJ-1,AJ分别为系数列{aJ-1,k}k∈Z,{aJ,k}k∈Z的列向量形式.H为由式(6)求得的hl-2k按特定形式排列而成的无穷矩阵.式(6)给出了两相邻尺度子空间中尺度系数之间的递推关系.类似地,
写成矩阵形式有
其中:BJ-1为小波系数bJ-1,k的列向量,G为由gl-2k按特定形式排列而成的无穷矩阵.式(8)给出了WJ-1中的小波系数与VJ中的尺度系数之间的递推关系.
将式(6)和式(8)合成Mallat算法:
把J推广到一般,式(9)给出由AJ分解出AJ-1和BJ-1的递推关系.其中的H和G在理论上是无穷矩阵,但在实际应用中总是取为有限的.式(9)也可写为
若已知分解后的系数,要重建原来的系数,则有重构式
其中H*,G*分别为H,G的共轭转置矩阵.
小波降噪的流程图如图1所示.
图1 小波降噪流程图Fig.1 Diagram of wavelet de-noising
含噪声信号的简化模型如下:
其中:时间t是等间隔的,s(t)是有用信号,n(t)是噪声.降噪的目的是抑制f(t)的噪声部分n(t),同时恢复至s(t).
离散信号经过小波变换或分解后,有用信号s(t)和噪声信号n(t)对应的小波系数特性不同,有用信号s(t)分解后的小波系数个数较少,但数值比较大,而噪声n(t)分解后的小波系数个数较多,但数值比较小.所以,可以通过在不同分解尺度上对这两种信号分量的小波系数进行恰当的阈值方法处理,以达到降噪的效果[14].因此,为了过滤噪声,需要对各尺度上的小波系数bj,k进行阈值处理.
小波阈值降噪有3个主要步骤:
步骤1确定小波基类型和分解层数,然后进行小波变换,得到与含噪信号f(t)对应的一组小波系数bj,k,其中j为小波分解层数;
步骤2应用阈值处理bj,k,得到估计小波系数以保证尽可能小,其中uj,k是s(t)的小波系数;
步骤3使用做小波重构,得到估计的信号,即降噪后的信号.
本文小波阈值降噪的方法采用的是文献[15]中提出的基于中值(median)阈值规则的经验贝叶斯降噪.
由于小波变换的非因果性和平移不变性,小波降噪不能实现时间序列的递归降噪,限制了该方法在实时系统中的应用.对于LADRC的降噪,含噪声的输出需要添加滑动窗口来实现递归降噪[13].假设降噪所需的数据长度为Lx,滑动窗口设计为
其中:Lx为窗口宽度,x(i)为i时刻的含噪输出.式(13)表示当已输出信号的长度小于窗口宽度时,不做降噪处理.当长度大于Lx时,总是使用最新的Lx个输出信号做降噪,并导出小波降噪结果但是,上述实时降噪算法总是将窗口最右端数据作为当前时刻降噪后的输出,会出现边界效应和伪吉布斯现象[16].因此单纯地添加窗口后,降噪效果并不理想.为了解决这一问题,可以利用窗口扩展来减少边界效应引起的信号失真.最常用的方法是对称窗口扩展
可以看出,窗口扩展部分的长度与原窗口的长度相同,而扩展的数据仍然是最新的Lx个输出信号,只是顺序颠倒了.这种设计可以在降噪前保证数据的连续性.由于降噪值位于窗口的中心,可以有效地减小边界效应的影响.但上述窗口设计的数据长度变为原来的两倍,计算量也会增加,实时性难以满足.鉴于此,采用下面的窗口扩展设计,可以在避免边界效应的基础上进一步减少计算量.设计滑动窗如下:
其中Le为窗口扩展部分的长度.与式(14)所示的2Lx长度的对称窗口设计相比,上述窗口的总长度为Lw=Lx+Le,只要选择合适的长度Le,就可以有效减少计算量.采用基于上述滑动窗口的小波降噪方法可以实现LADRC中含噪声输出的降噪.算法流程如图2所示.
图2 基于扩展滑动窗的实时降噪方法流程图Fig.2 Diagram of real-time wavelet de-noising based on extended sliding window
首先,当已输出信号的长度小于Lx时,方法处于初始化阶段,不进行降噪操作.当已有信号长度达到Lx时,使用式(15)设计的滑动窗口对含噪输出信号进行扩展.然后根据第2.1 节的描述,通过小波分解,阈值处理和小波重构3个步骤对含噪输出进行实时降噪.最后,输出在当前时刻进行小波降噪的结果
且对下一时刻含噪输出的处理方法也如上所述.以此类推,实现了在LADRC中对含噪声输出的实时降噪.
考虑二阶对象
其中:y,u分别为输出与输入;w为扰动;a1,a0以及w均未知;b部分已知(已知部分记为b0),则上式可写成
其中f=为包含了外扰与内扰的总扰动.
选取状态变量x1=y,,x3=f,则LESO可设计为
其中ωo为LESO的带宽,且
设计控制量为
其中:r是设定值,ξ为阻尼系数,ωc为状态反馈系统的带宽.
上述系统为LADRC.在含噪输出和线性扩张状态观测器之间,通过级联基于扩展滑动窗口的实时小波降噪环节(见第2.3节所述),设计了基于滑动窗实时小波降噪的扩张状态观测器,如图3所示.LADRC的稳定性分析已经在文献[17]中给出.
图3 带降噪的线性自抗扰控制结构图Fig.3 Diagram of LADRC with de-noising
对于实际二阶对象[17]
将高频非平稳噪声分别设置为高频谐波组合噪声n1(t),高频方波组合噪声n2(t),高频锯齿波组合噪声n3(t)和功率谱密度(power spectral density,PSD)为10-6的白噪声.
设T1=0.002,T2=0.006,T3=0.004,N取非负整数,则n1(t),n2(t)和n3(t)的数学表达式如下:
其中:
仿真结果如图4—15所示.
图4 含噪输出的降噪效果(加入高频噪声n1(t))Fig.4 De-noising effect of noisy output(add high frequency noise n1(t))
图5 降噪前后的控制信号比较(加入高频噪声n1(t))Fig.5 Comparison of control signals before and after denoising(add high frequency noise n1(t))
图6 降噪前后的跟踪误差比较(加入高频噪声n1(t))Fig.6 Comparison of tracking error before and after denoising(add high frequency noise n1(t))
图7 含噪输出的降噪效果(加入高频噪声n2(t))Fig.7 De-noising effect of noisy output(add high frequency noise n2(t))
图8 降噪前后的控制信号比较(加入高频噪声n2(t))Fig.8 Comparison of control signals before and after denoising(add high frequency noise n2(t))
图9 降噪前后的跟踪误差比较(加入高频噪声n2(t))Fig.9 Comparison of tracking error before and after denoising(add high frequency noise n2(t))
图10 含噪输出的降噪效果(加入高频噪声n3(t))Fig.10 De-noising effect of noisy output(add high frequency noise n3(t))
图11 降噪前后的控制信号比较(加入高频噪声n3(t))Fig.11 Comparison of control signals before and after denoising(add high frequency noise n3(t))
图12 降噪前后的跟踪误差比较(加入高频噪声n3(t))Fig.12 Comparison of tracking error before and after denoising(add high frequency noise n3(t))
图13 含噪输出的降噪效果(加入白噪声,PSD=10-6)Fig.13 De-noising effect of noisy output(add white noise,PSD=10-6)
图14 降噪前后的控制信号比较(加入白噪声,PSD=10-6)Fig.14 Comparison of control signals before and after denoising(add white noise,PSD=10-6)
图15 降噪前后的跟踪误差比较(加入白噪声,PSD=10-6)Fig.15 Comparison of tracking error before and after denoising(add white noise,PSD=10-6)
从结果图中可以看出,所提实时小波降噪方法,对于含非平稳高频噪声的信号具有更好的降噪效果,可以滤除约85%的高频噪声;带降噪的LADRC可使控制信号变化幅值明显变小,同等条件下,对系统的控制将更容易,能耗更低;所提方法比滑动平均法有更小的跟踪误差,即取得良好降噪效果的同时很大程度上提高了系统的控制精度.综合以上结果,验证了在LADRC中应用基于滑动窗实时小波降噪的LESO的有效性.
本文成功地将实时小波降噪方法应用于LADRC,设计了基于滑动窗实时小波降噪的线性扩张状态观测器.主要针对于系统中存在高频非平稳噪声,使原LADRC系统的控制效果大大降低的情况.数值仿真结果表明了该方法在取得良好降噪效果的同时,大大提高了系统的控制精度.虽然仿真实验是在二阶系统中进行的,但所提方法也适用于高阶系统,只需要在含噪输出和LESO之间串联该实时降噪算法.在未来工作中还可以进一步考虑滑动窗口宽度大小以及阈值的选取设计,并在算法的计算复杂度和实时性方面做进一步的改善提高.