鐘鴻豪 白文艷 黃萬(wàn)偉
北京航天自動(dòng)控制研究所,北京100854
由于建模在實(shí)際情況下不可避免地存在誤差,特別是某些參數(shù)隨著實(shí)際系統(tǒng)的工作條件、構(gòu)型、故障等情況而發(fā)生變化,這些變化通常無(wú)法預(yù)知或測(cè)量,需要通過(guò)在線參數(shù)辨識(shí)來(lái)獲得[1]。
在線辨識(shí)受到算法計(jì)算時(shí)間和復(fù)雜程度的限制,目前只有少數(shù)幾種辨識(shí)方法可用于實(shí)時(shí)在線辨識(shí)。典型的有遞推最小二乘法、卡爾曼濾波法等,其中遞推最小二乘方法又分為時(shí)域和頻域2種形式[2]。時(shí)域的辨識(shí)方法,在測(cè)量噪聲較小的情況下,能夠得到較好的辨識(shí)結(jié)果,但是如果辨識(shí)方程中的微分項(xiàng)存在較大的測(cè)量噪聲,由于數(shù)值微分的影響,辨識(shí)效果會(huì)很差。頻域的遞推辨識(shí)方法的噪聲抑制能力強(qiáng)、計(jì)算量小、內(nèi)存需求固定,在處理信號(hào)的微分時(shí)也非常簡(jiǎn)便。但是,由于頻域方法辨識(shí)參數(shù)需要一定數(shù)據(jù)量的累積,以往的頻域辨識(shí)方法,都假定參數(shù)在辨識(shí)過(guò)程中固定不變,對(duì)于參數(shù)時(shí)變的情形適應(yīng)性相對(duì)較差[3]。
本文提出的基于線性調(diào)頻Z變換(CZT)的變時(shí)間窗時(shí)變參數(shù)在線辨識(shí)方法,在保證有效減小測(cè)量噪聲影響的基礎(chǔ)上,利用滑動(dòng)時(shí)間窗設(shè)計(jì),提高了頻域方法對(duì)參數(shù)變化的敏感程度,使系統(tǒng)能夠較快地敏感參數(shù)變化,增強(qiáng)了頻域辨識(shí)方法對(duì)于參數(shù)時(shí)變情形的適應(yīng)性,有效提高了傳統(tǒng)辨識(shí)方法對(duì)時(shí)變參數(shù)的在線辨識(shí)能力。最后,針對(duì)飛機(jī)系統(tǒng)執(zhí)行機(jī)構(gòu)的故障情況進(jìn)行了仿真驗(yàn)證,驗(yàn)證了方法的有效性。
考慮如下的系統(tǒng)模型:
(1)
其中x(t)=[x1(t),x2(t),…,xn(t)]T為狀態(tài)變量,可以通過(guò)計(jì)算得到,w(t)為過(guò)程噪聲。y(t)為量測(cè)量,v(t)為量測(cè)噪聲,θ(t)=[θ1(t),θ2(t),…,θn(t)]T表示待辨識(shí)的時(shí)變參數(shù)向量。
實(shí)際應(yīng)用中,是在各個(gè)離散采樣時(shí)刻tk(k=1,2,…,N),進(jìn)行采樣計(jì)算。則對(duì)于每個(gè)采樣時(shí)刻tk,式(1)可以改寫(xiě)為
Δxn(k)=θ1(k)x1(k)+θ2(k)x2(k)+
…+θn(k)xn(k)+w(k)
y(k)=xn(k)+v(k)
(2)
在時(shí)域辨識(shí)方法中,一般需要通過(guò)數(shù)值微分得到等式中的微分項(xiàng),即
Δxn(k)≈(y(k)-y(k-1))/2Δt=
(xn(k)+v(k)-xn-1(k-1)-v(k-1))/2Δt=
(xn(k)-xn-1(k-1))/2Δt+
(v(k)-v(k-1))/Δt
(3)
其中Δt為采樣時(shí)間步長(zhǎng)。因此可知,數(shù)值微分對(duì)于測(cè)量噪聲會(huì)有一個(gè)近似1/Δt倍的放大作用。
而在頻域中,對(duì)于在有限時(shí)間區(qū)間[t1,tk]內(nèi)的信號(hào)x(k),它的有限傅里葉變換可以定義為
(4)
可以近似為
而它的微分為
(5)
可以避免進(jìn)行數(shù)值微分,進(jìn)而避免數(shù)值微分對(duì)測(cè)量噪聲的放大作用。
另外,使用線性調(diào)頻Z變換,可以細(xì)化待分析頻段的頻譜,獲得很高的頻譜分辨率。因此,可以選擇一個(gè)離噪聲較遠(yuǎn)的關(guān)心頻帶,進(jìn)一步減弱噪聲的影響,從而獲得更好的辨識(shí)效果[4]。
然而傳統(tǒng)頻域方法,由于頻域方法本身需要數(shù)據(jù)量的累積,限制了頻域方法的辨識(shí)速度,導(dǎo)致辨識(shí)速度較慢。
本文的工作就是針對(duì)時(shí)變參數(shù)的在線辨識(shí)中,傳統(tǒng)時(shí)域和頻域辨識(shí)方法的問(wèn)題,提出基于CZT的變時(shí)間窗時(shí)變參數(shù)在線辨識(shí)方法,實(shí)時(shí)準(zhǔn)確地辨識(shí)待辨識(shí)參數(shù)。
為了保證算法的去噪能力和計(jì)算的穩(wěn)定,基于CZT的變時(shí)間窗時(shí)變參數(shù)在線辨識(shí)方法,需要預(yù)設(shè)一個(gè)較大的時(shí)間窗,作為缺省時(shí)間窗,比如4s的時(shí)間窗。這樣在參數(shù)變化不大的情況下,使用缺省的時(shí)間窗,可以利用較大的數(shù)據(jù)量,提高辨識(shí)算法的去噪能力和穩(wěn)定性。
另一方面,為了提高頻域方法的辨識(shí)速度,在參數(shù)發(fā)生變化時(shí),快速更新辨識(shí)結(jié)果,本方法設(shè)計(jì)了基于方差閾值的重啟算法。
首先,設(shè)定一個(gè)關(guān)心頻段[f0,f1),并在頻段內(nèi)選擇等間隔分布的M個(gè)頻率點(diǎn),即fi=f0+iΔf,i=0,1,…,M-1。在基于時(shí)間窗的遞推CZT的基礎(chǔ)上,對(duì)于每個(gè)時(shí)刻tk=kΔt,首先計(jì)算出每個(gè)量的CZT:
(6)
(7)
(8)
(9)
(10)
否則認(rèn)為該時(shí)刻參數(shù)發(fā)生了改變。下一個(gè)時(shí)刻重啟參數(shù)辨識(shí)。
此處,為了保證數(shù)據(jù)的穩(wěn)定,設(shè)定一個(gè)較小的休眠時(shí)間tso,比如ts0=0.2s,使得參數(shù)值在[iΔt,iΔt+ts0]時(shí)間內(nèi),不發(fā)生變化,沿用上一刻的參數(shù)估計(jì)值,并且系統(tǒng)不再判斷方差變化,保證系統(tǒng)不會(huì)在休眠時(shí)間內(nèi)再次重啟。
具體的基于CZT的變時(shí)間窗時(shí)變參數(shù)在線辨識(shí)流程如下:
step1:初始化參數(shù)。
step2: 判斷是否為初次啟動(dòng)或重啟動(dòng)時(shí)刻(startf的值是否為1)。
如果startf的值為1,進(jìn)入step3,否則進(jìn)入step4。
step3:啟動(dòng)時(shí)刻的初始化。
首先記錄啟動(dòng)時(shí)刻,令p=i。然后對(duì)每個(gè)頻率點(diǎn)(fi=f0+iΔf,i=0,1,…,M-1)的CZT變換賦初值。將startf置為0,計(jì)算休眠時(shí)間ts=Δt,累加序列長(zhǎng)度length=1。
step4:判斷累加序列長(zhǎng)度是否小于L。
如果累加序列長(zhǎng)度小于L,進(jìn)入step5,否則進(jìn)入step6。
step5:利用CZT的遞推算法,累加計(jì)算,并根據(jù)休眠時(shí)間進(jìn)行判斷。
累加求解每個(gè)頻率點(diǎn)(fi=f0+iΔf,i=0,1,…,M-1)的CZT變換值。計(jì)算休眠時(shí)間ts=ts+Δt,累加序列長(zhǎng)度length=length+1。
然后判斷當(dāng)前休眠時(shí)間和設(shè)定休眠總時(shí)間ts0的大小關(guān)系。
如果當(dāng)前休眠時(shí)間大于設(shè)定休眠總時(shí)間ts0,則進(jìn)入step7。
step6: 更新時(shí)間窗。
由于時(shí)間窗的長(zhǎng)度為L(zhǎng),則CZT變換只采用最近L次采樣數(shù)據(jù),在上一時(shí)刻的基礎(chǔ)上,舍棄記憶中最老的信息,加入當(dāng)前最新的數(shù)據(jù),進(jìn)而更新每個(gè)頻率點(diǎn)的CZT變換值。然后,進(jìn)入step7。
step7:計(jì)算方差,并進(jìn)行判斷。
為了驗(yàn)證所提出方法的有效性,針對(duì)F-16[6]飛機(jī)執(zhí)行機(jī)構(gòu)故障的條件下,對(duì)氣動(dòng)參數(shù)進(jìn)行了辨識(shí)。
下面簡(jiǎn)要列出用于辨識(shí)的飛機(jī)縱向短周期運(yùn)動(dòng)的狀態(tài)空間模型,具體推導(dǎo)過(guò)程可參見(jiàn)文獻(xiàn)[7]:
(11)
其中,C1(t)、C2(t)與C3(t)為飛機(jī)氣動(dòng)力系數(shù),B1(t)、B2(t)與B3(t)為飛機(jī)氣動(dòng)力矩系數(shù);α(t)為飛機(jī)的攻角,ωz1(t)為飛機(jī)繞z1軸旋轉(zhuǎn)的角速度,δφ(t)為飛機(jī)的舵偏,這幾個(gè)狀態(tài)量和控制輸入均可測(cè)量或計(jì)算得到;e(t)為測(cè)量噪聲。
試驗(yàn)選取子系統(tǒng),進(jìn)行辨識(shí):
(12)
4s前氣動(dòng)參數(shù)的真值為:
C1=-0.5709,C2=0.9638,C3=-0.0692
B2=-4.8765,B1=-0.9552,B3=-9.0689
4s時(shí),執(zhí)行機(jī)構(gòu)突然出現(xiàn)故障,控制能力下降50%,即此時(shí)B3=-4.5344,其他條件不變。實(shí)驗(yàn)中,時(shí)域帶遺忘因子的最小二乘法,遺忘因子選取為0.98,基于CZT的時(shí)間窗傳統(tǒng)頻域辨識(shí)方法,時(shí)間窗選取為L(zhǎng)=400,即為2s。
在無(wú)噪聲情況,將基于CZT的變時(shí)間窗時(shí)變參數(shù)在線辨識(shí)方法與基于CZT的時(shí)間窗傳統(tǒng)頻域辨識(shí)方法對(duì)比,結(jié)果如圖1~3。
圖1 無(wú)噪聲情況下氣動(dòng)參數(shù)B1(t)辨識(shí)結(jié)果
圖2 無(wú)噪聲情況下氣動(dòng)參數(shù)B2(t)辨識(shí)結(jié)果
圖3 無(wú)噪聲情況下氣動(dòng)參數(shù)B3(t)辨識(shí)結(jié)果
為了驗(yàn)證方法的去噪聲能力,在輸出信號(hào)中加入頻率為20Hz、信噪比為17dB的正弦噪聲,同樣可以得到2種方法的辨識(shí)結(jié)果如圖4~6。
圖4 噪聲情況下氣動(dòng)參數(shù)B1(t)辨識(shí)結(jié)果
圖5 噪聲情況下氣動(dòng)參數(shù)B2(t)辨識(shí)結(jié)果
圖6 噪聲情況下氣動(dòng)參數(shù)B3(t)辨識(shí)結(jié)果
可以看出,在參數(shù)突變(系統(tǒng)發(fā)生故障)的情況下,仍能快速平滑地得到參數(shù)辨識(shí)結(jié)果(1s時(shí)誤差均在10%以?xún)?nèi)),而且穩(wěn)定時(shí)的誤差均在1%以?xún)?nèi),驗(yàn)證了方法的快速性和去噪性。
提出了一種基于CZT的變時(shí)間窗時(shí)變參數(shù)在線辨識(shí)方法,不但能夠有效減小測(cè)量噪聲的影響,而且能夠較快地敏感參數(shù)變化,增強(qiáng)了頻域辨識(shí)方法對(duì)于參數(shù)時(shí)變情形的適應(yīng)性,可以實(shí)現(xiàn)時(shí)變參數(shù)的在線辨識(shí)。并且針對(duì)飛機(jī)系統(tǒng)的執(zhí)行機(jī)構(gòu)故障情況下的氣動(dòng)參數(shù),進(jìn)行了辨識(shí),驗(yàn)證了方法的適應(yīng)性和準(zhǔn)確性。