首页 理论教育 时频二维自适应阈值优化算法

时频二维自适应阈值优化算法

时间:2023-06-28 理论教育 版权反馈
【摘要】:从式(5-2)可以看出,输入指令的幅值和频率直接影响自适应阈值的变化。式就是“时频二维自适应阈值”算法的核心公式,其中随机干扰不可测,但可以通过小波分析剔除干扰噪声,建模误差可以通过充分样本的神经网络学习弥补。为了对输入信号和输出信号进行时频分解,用了小波包分解,时频二维自适应阈值算法细化如图5-6所示。图5-5 阈值泛化图5-6 时频二维自适应阈值算

时频二维自适应阈值优化算法

为了全面考虑影响液压伺服控制系统故障阈值的因素,因此在选择阈值的时候不能不考虑这些因素,下面逐步将影响因素加到阈值中。

(1)仅考虑建模误差

εs)=[Gss)-Gms)]×Rs) (5-2)

式中,εs)为阈值的拉普拉斯变换;Gss)为子系统的传递函数Gms)为该子系统所对应模型的传递函数;Rs)为该子系统输入的拉普拉斯变换。

从式(5-2)可以看出,输入指令的幅值和频率直接影响自适应阈值的变化。

(2)添加干扰对子系统参数的影响产生的误差

εs)={[Gsd)](s)-Gms)}×Rs) (5-3)

式中,d为干扰;[Gsd)](s)表示首先子系统参数受到扰动,然后经过拉普拉斯变换得到的传递函数。注意:[Gsd)](s)与Gsds)含义是不同的,前者表示系统首先受到干扰,然后再求拉普拉斯变换,后者表示Gs是一个二元函数,既与d相关,也与s相关。

由式(5-3)可以看出来,干扰通过影响系统的参数而影响阈值。

(3)添加元器件参数漂移产生的误差

εs)={[GsdΔt))](s)-Gms)}×Rs) (5-4)

式中,[GsdΔt))](s)表示首先子系统参数受到扰动且参数发生漂移,然后经过拉普拉斯变换得到的传递函数;Δt)为发生漂移的参数所构成的向量。

由式(5-4)可以看出,系统的温漂、零漂等通过影响系统的参数而影响阈值。

(4)系统输入、输出(状态)受到干扰后的形式 以[Rd)](s)表示系统输入受到干扰后的拉普拉斯变换、[Yd)](s)表示系统输出受到干扰后的拉普拉斯变换,式(5-4)变成:

εs)={[GsdΔt))](s)-Gms)}×[Rd)](s) (5-5)

式中,[Yd)](s)隐含在微分项内,改写成离散方程后即可显现。

由式(5-5)可知,干扰还通过影响系统的输入和系统的输出来影响阈值。

上述分析表明,自适应阈值与系统的输入、系统的输出、干扰、随时间漂移的参数等各因素有关,而这些因素对自适应阈值的影响关系又是一个非常复杂的函数关系,故将式(5-5)抽象化后表示成函数映射关系:

εs)=F[dΔt),Rs),Ys)] (5-6)

式中,F表示频域内各种影响因素到阈值的映射函数。

实际计算阈值的过程中,由于干扰,系统参数漂移等都是难以测量的量。因此,通常采用的办法是首先忽略这些影响,计算出阈值,然后再将阈值进行适当的修正:

εs)=F[Rs),Ys)] (5-7)

式(5-7)用于故障诊断时,由于发生故障后系统的输出Ys)是未知的,且自适应阈值与系统的故障情况无关,此时想用Ys)计算自适应阈值是不可行的;由于之前已经辨识出了系统的模型,而辨析模型的输出Yms)与正常系统的输出Ys)是非常接近的,故采用Yms)代替Ys)来计算自适应阈值是可行的,此时式(5-7)化作:

εs)=F[Rs),Yms)] (5-8)

为方便表述,公式中仍采用Ys),而实际采用的是Yms)。考虑到阈值不仅仅与输入和输出信号的幅值有关,还与输入和输出信号的频率有关,因此必须同时使用输入和输出信号的幅值和频率来计算阈值。为此,将式(5-7)中的Rs)和Ys)按照频带分成若干项的和形式:

εs)=F[R1s),R2s),…,Rps),Y1s),Y2s),…,Yqs)] (5-9)

式中,Ris)为输入信号Rs)对应在频带i内的分量;Yis)为输出信号Ys)对应在频带i内的分量。

式(5-9)的时域表示形式为

εt)=f[r1t),r2t),…,rpt),y1t),y2t),…,yqt)] (5-10)(www.xing528.com)

式中,εt)为自适应阈值序列;f为时域内各种影响因素到阈值的映射函数;rit)为输入信号r在频带i内的分量;yit)为输出信号y在频带i内的分量。

这表明,系统在正常的情况下,若已知系统的输入、模型输出和残差序列,则可用神经网络辨识出f,从而解决自适应阈值的计算问题。

由式(5-10)可知,需要同时获得f[rt),yt)]分解后的幅值和频率信息,而最好的方法就是使用小波分析将f[rt),yt)]分解成几个频带内的时域信号。这样,每个信号中含有的就是幅值信息,而信号在小波分解中所处的位置就代表了该信号的频率信息。由于式(5-10)中的f是一个普通的映射关系,不包含系统的任何特征信息,所以对非线性系统同样是适用的。

式(5-10)就是“时频二维自适应阈值”算法的核心公式,其中随机干扰不可测,但可以通过小波分析剔除干扰噪声,建模误差可以通过充分样本的神经网络学习弥补。排除以上两种因素后,自适应阈值只需要考虑系统的输入和输出即可,将输入输出信号进行小波包分解输入神经网络,综合计算可获得一个自适应阈值,该方法原理如图5-4所示。

这里之所以采用神经网络来拟和非线性映射f,是利用了神经网络的优点,即:①神经网络能够拟和任何的非线性函数,当然也包括f;②神经网络适合从高维空间到低维空间的映射;③神经网络具有较好的泛化能力。

978-7-111-44233-2-Chapter05-9.jpg

图5-4 时频二维自适应阈值方法原理

阈值泛化如图5-5所示。学习阈值所使用的样本空间和影响阈值因素的整个空间相比是非常小的,这就要求最后的自适应阈值映射关系不但能够对已经学习过的阈值进行映射,而且对于没有学习过的阈值也能够进行映射;另外,由式(5-10)可以看出,这个映射关系的确是一个由高维空间到低维空间的映射关系。因此,采用神经网络也是最好的选择。

对于非线性映射的拟合过程,有人采用过“多项式拟合”,但是,我们知道,多项式拟合的公式在应用时要求输入的数据空间必须在样本学习空间内,否则输出是不可预知的;同时,多项式拟合往往很少用到高维,一般到二维或者三维就很复杂了,而且高维空间的拟合结果中由于多项式次数非常高,因此波动也非常严重。

为了对输入信号和输出信号进行时频分解,用了小波包分解(小波包分解算法见第四章),时频二维自适应阈值算法细化如图5-6所示。下面对该算法作进行具体说明。

978-7-111-44233-2-Chapter05-10.jpg

图5-5 阈值泛化

978-7-111-44233-2-Chapter05-11.jpg

图5-6 时频二维自适应阈值算法细化

1)模型状态序列的获取。由于自适应阈值本身也是判断系统故障与否的标准,因此,它不应该与系统故障有任何联系。所以,该算法中使用的系统状态都是模型的状态,而不是真实系统的状态,以避免系统的故障信息影响自适应阈值的正确计算。实际上在采用神经网络形式的模型时,难以确定哪个状态是系统的状态,因此,采用神经网络模型的输出yk)作为模型状态序列的估计。

2)数据分析长度的确定。该算法是采用小波包分析进行信号处理的算法,而小波包分析需要的是一个信号序列,因此,该算法采用了“每128个采样点进行一次阈值计算”。至于采用多长的序列,可以根据系统的实际情况进行自由设定,具体可由式(5-11)计算:

978-7-111-44233-2-Chapter05-12.jpg

式中,n为小波包最小分解层数;ΔT为控制周期;fd为小波包分析中子频带最大允许宽度;fs为控制系统采样频率。

最小数据序列长度m=2n,实际使用的序列长度往往是最小序列长度的4~10倍。

按照式(5-11),假设采样时间选为10ms,最大允许频带宽度为3.5Hz,计算得n>5,也就是说,最少要取32个点的序列进行分析。综合考虑后,取m=128,小波包的分析层数为5,此时频带的分辨率为3.125Hz。

3)输入频带个数的确定。考虑到实际系统中,采样频率远远高于系统的工作频率,小波包分解后的n个频带数据包含了整个采样频带内的所有数据,因此没有必要将小波包分解后的所有数据全部作为神经网络的输入端。

例如液压舵机,一般工作频带在0~10Hz,经过前面的小波包分解后,每个子频带的宽度是3.125Hz,所以我们取低频部分的6个子频带作为神经网络的输入,此时这6个子频带的涵盖频率是18.75Hz,已经远远超出了舵机的工作频带,可以满足要求。

4)具体计算过程。图5-7给出了具体计算过程。首先,采集128个点模型状态数据和128个点系统的输入指令。这128个点的数据按照时间先后依次记作kk+1,k+2,…,k+127时刻的点。然后,对128个点的输入指令进行小波包分解,分解层数为5层,获得32个子频带的数据,每个子频带分别有128个数据。将时刻k+ii=0,1,2,…,127的数据依次输入神经网络,这样,每个时刻的数据输入神经网络后都能够计算获得一个该时刻的阈值,因此,这样的阈值一共有128个。

5)神经网络和学习过程。自适应阈值计算中使用BP神经网络进行映射,该神经网络也是需要学习的[11]。BP算法参见第4章,系统辨识过程中用到的系统输入数据和无故障情况下系统和模型之间的残差数据作为训练该网络的数据。此时,训练网络得到的是系统的辨识误差模型。该辨识误差范围内的残差实际上是系统辨识不准确造成的,因此,当残差在该范围内的时候不能看做系统故障。BP网络的算法采用标准的BP算法,详见4.2.2。

6)神经网络输出阈值的修正。在实际应用中,一方面为了降低虚警率,有必要对神经网络输出的阈值进行放大;另一方面由于自适应阈值算法未考虑偶然干扰对系统的影响,为了剔除偶然干扰对残差的影响,也有必要对神经网络输出的阈值进行一定的放大。在实际修正中,常用的修正方法有两种:①常值修正,就是把计算得到的自适应阈值加上一个常值,从而扩大阈值;这种方法适合在输出端进来的干扰,这种干扰一般是均值为0的白噪声,幅值往往有上界。②比例修正,就是把自适应阈值乘上一个比例系数,从而扩大阈值;这种方法适合在模型输入端进来的干扰,这种干扰相当于是系统的输入信号,经过系统后,信号幅值变成了原来的幅值乘以系统的增益,因此,这种信号会被系统进行缩放。

通常情况下都是将两种方法结合在一起使用。

978-7-111-44233-2-Chapter05-13.jpg

图5-7 自适应阈值计算过程

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈