朱日興,朱兆優(yōu),李建鋒
(1. 中國民航大學(xué)適航學(xué)院,天津 300300;2. 東華理工大學(xué)機(jī)械與電子工程學(xué)院,江西 南昌 330013;3. 中國民航大學(xué)中歐航空工程師學(xué)院,天津 300300)
復(fù)雜線性系統(tǒng)的自適應(yīng)控制需要在線的系統(tǒng)辨識技術(shù)[1]。通常所建的系統(tǒng)線性模型在系統(tǒng)穩(wěn)態(tài)工作點(diǎn)小鄰域范圍內(nèi)有比較高的精度,一旦系統(tǒng)環(huán)境發(fā)生變化,會產(chǎn)生系統(tǒng)參數(shù)估計(jì)偏差,進(jìn)而影響整個(gè)控制系統(tǒng)的穩(wěn)定性和精度。為了消除環(huán)境變化對系統(tǒng)估計(jì)參數(shù)的影響,需要一種能夠跟蹤時(shí)變參數(shù)的在線辨識算法。
最小二乘(RLS, Recursive Least Square Algorithm)及其改進(jìn)算法是目前使用非常廣泛的一種線性系統(tǒng)辨識方法,而隨著系統(tǒng)運(yùn)行時(shí)間的增大,參數(shù)辨識協(xié)方差矩陣會出現(xiàn)數(shù)據(jù)飽和的現(xiàn)象[2],協(xié)方差矩陣系數(shù)會逐漸趨近于零,算法漸漸失去對參數(shù)的修正和跟蹤能力。為了使RLS算法具有跟蹤時(shí)變線性系統(tǒng)的能力,常用的做法是在算法中加入遺忘因子。文獻(xiàn)[3]將推廣遺忘因子RLS算法應(yīng)用到GPS動(dòng)態(tài)目標(biāo)的軌跡追蹤中,驗(yàn)證了遺忘因子最小二乘算法優(yōu)于Kalman濾波算法。文獻(xiàn)[4]提出一種基于預(yù)測殘差的動(dòng)態(tài)調(diào)整遺忘因子的方法,對船舶航向模型進(jìn)行辨識。然而,基于殘差方法的遺忘因子在線調(diào)整策略只在系統(tǒng)為辨識信號的前提下才具有較好的時(shí)變參數(shù)跟蹤效果,一旦系統(tǒng)輸入的辨識信號不具有動(dòng)態(tài)激勵(lì)能力,辨識算法將不能保證參數(shù)估計(jì)的收斂性,此時(shí)傳統(tǒng)的參數(shù)估計(jì)算法將會對系統(tǒng)噪聲非常敏感[5]。另一方面,從信息論的角度分析,由于系統(tǒng)不同時(shí)刻輸入輸出數(shù)據(jù)具有不同的信息量,時(shí)變參數(shù)辨識算法應(yīng)該考慮系統(tǒng)不同維度數(shù)據(jù)的分布特點(diǎn),根據(jù)數(shù)據(jù)信息量的特點(diǎn)合理調(diào)整參數(shù)估計(jì)矩陣的大小以避免參數(shù)估計(jì)矩陣出現(xiàn)飽和現(xiàn)象[6]。文獻(xiàn)[7]通過最小二乘算法通過優(yōu)化定義的損失函數(shù),來確定系統(tǒng)參數(shù)估計(jì)值。通過引入遺忘因子[8],使得RLS算法具有跟蹤時(shí)變參數(shù)的能力。文獻(xiàn)[9]給出了一種指數(shù)遺忘算法,采用時(shí)變遺忘因子的方法解決了參數(shù)的估計(jì)對系統(tǒng)噪聲非常敏感的影響。文獻(xiàn)[10]提出了一種單獨(dú)遺忘部分參數(shù)空間的辨識算法。無論是卡爾曼濾波還是最小二乘算法,對參數(shù)估計(jì)器的收斂性進(jìn)行分析能夠?qū)烙?jì)器的動(dòng)態(tài)特性有更準(zhǔn)確的認(rèn)識[11],辨識參數(shù)的收斂性同樣也影響控制系統(tǒng)的穩(wěn)定性。
目前,還沒有相關(guān)理論對辨識算法遺忘因子的選擇問題進(jìn)行研究。本文基于目前應(yīng)用廣泛的RLS辨識算法,通過對算法的參數(shù)估計(jì)矩陣的有界性進(jìn)行分析,從理論上證明具有時(shí)變參數(shù)跟蹤能力的辨識算法需要滿足的數(shù)學(xué)條件,同時(shí)針對系統(tǒng)數(shù)據(jù)分布空間的不均勻性,基于選擇遺忘策略,構(gòu)造出一種特殊的參數(shù)估計(jì)矩陣特征值映射函數(shù),在線動(dòng)態(tài)調(diào)整遺忘因子的大小。仿真結(jié)果表明,相比于傳統(tǒng)辨識算法具有特征值映射的RLS辨識算法具有更強(qiáng)的時(shí)變參數(shù)跟蹤能力。
對于目前應(yīng)用非常廣泛的指數(shù)遺忘(EF-RLS, Exponential Forgetting)算法來說, λ常根據(jù)工程經(jīng)驗(yàn)常取0.95到1之間的常數(shù)。然而,很多情況下,{φ(t)}中不同參數(shù)維度的數(shù)據(jù)在時(shí)間上分布是不均勻的,因此需要一種根據(jù)不同維度數(shù)據(jù)特征動(dòng)態(tài)調(diào)整遺忘因子λ(t)的方法,以適應(yīng)估計(jì)參數(shù)數(shù)據(jù)空間分布的不均勻性。具有選擇遺忘機(jī)制(SF, Selective Forgetting)的動(dòng)態(tài)調(diào)整遺忘因子方法,最早由Parkum[12]提出,該算法能夠根據(jù)系統(tǒng)不同維度數(shù)據(jù)分布的差異動(dòng)態(tài)調(diào)整遺忘因子大小。本文對該方法做進(jìn)一步拓展,提出一種將選擇遺忘機(jī)制與RLS算法結(jié)合的新算法,稱為SF-RLS算法。首先矩陣P(t|t)進(jìn)行特征值分解如(1)式。
(1)
其中p為矩陣P(t|t)的維數(shù),α1(t|t),…,αp(t|t)為其特征值,v1(t),…,vp(t)為特征向量。對于指數(shù)遺忘算法EF-RLS,矩陣P(t+1|t) 的時(shí)間更新為如(2)式。
(2)
對于選擇遺忘算法SF-RLS有式(3)所示。
(3)
式中λi(t)為不同參數(shù)維度下時(shí)變的遺忘因子。由于矩陣特征向量vi(t)代表矩陣在不同變換維度的方向,λi(t)的大小與在vi(t)方向上接受的信息量有關(guān),隨著該維度特征值αi(t|t)的增大而增加。因此P(t+1|t)變?yōu)槭?4)所示。
(4)
接下來研究時(shí)間更新函數(shù)F{·}如何選擇。 假如e(t)為高斯白噪聲,對任意滿足遺忘算法,設(shè)αmin,αmax(αmin<αmax)為R+上的兩個(gè)實(shí)數(shù),如果存在連續(xù)函數(shù)f滿足f(0)=αmin,f(αmax)=αmax,且有
(5)
則
1) ?t≥0,P(t+1|t)≥P(t|t)
2) ?t≥0,αminI≤P(t+1|t)≤αmaxI
3) 如果φ(t)=0,則P(t+1|t)→αmaxI
此外,如果0<αi(t|t)<αj(t|t)<αmax,則有
4)αj(t+1|t)<αi(t+1|t)
6) 命題1)、2)和3)表明,通過選擇合適的函數(shù)f{·}能夠保證P(t|t)在任意時(shí)刻t>0都是有界的,其中f{·}的函數(shù)特性如式(5)所示。命題4)和5)表明,一旦系統(tǒng)輸入信號不能夠激發(fā)系統(tǒng)所有模態(tài),即φ(t)不滿足輸入信號必須為持續(xù)激勵(lì)信號的條件,具有式(5)特性的函數(shù)f{·},仍然能夠保證矩陣P(t|t)是有界的。
命題5)表明,矩陣P(t|t)的特征值αi可作為數(shù)據(jù)向量φ(t)在方向vi上信息的一種度量,在t時(shí)刻,在方向vi上的信息移除量可表示為
(6)
由于αi(t|t)代表參數(shù)估計(jì)方差,命題5)說明了,如果某維數(shù)據(jù)出現(xiàn)較大誤差時(shí),會增大該維度遺忘因子數(shù)值,矩陣P(t|t)中舊信息的移除量比較大,因此SE-RLS算法能夠根據(jù)不同維度信息量動(dòng)態(tài)調(diào)整遺忘因子大小。
圖1顯示的是RLS算法、EF-RLS算法和SF-RLS算法在矩陣特征值區(qū)間[αmin,αmax]上,矩陣P(t|t)時(shí)間更新上的差異。由于f(·)的特殊性質(zhì),SF-RLS算法能夠保證下一時(shí)刻矩陣P(t+1|t+1)的特征值αi(t+1|t+1)仍在區(qū)間[αmin,αmax]內(nèi)。而EF-RLS算法不能夠保證P(t+1|t+1)有界,由于函數(shù)斜率為常數(shù)λ∈[0.95,1],一旦αi(t+1|t+1)?[αmin,αmax],估計(jì)矩陣P(t+2|t+2)將不再有界,此時(shí)算法對噪聲非常敏感,造成較大的參數(shù)估計(jì)誤差。
圖1 不同遺忘算法矩陣P的時(shí)間更新對比
具有時(shí)變參數(shù)跟蹤能力的遺忘算法需要滿足的條件,一是辨識算法能夠保證參數(shù)估計(jì)矩陣P(t|t)在時(shí)間上有界[13];二是輸入信號必須為持續(xù)激勵(lì)信號[14]。而所設(shè)命題則說明了,即使算法不滿足條件,通過選擇合適的特征值更新函數(shù)f(·),依然能夠保持矩陣P(t|t)有界,從而保證算法具有時(shí)變參數(shù)的跟蹤能力,下面將通過3個(gè)實(shí)例分析帶有遺忘機(jī)制RLS辨識算法的優(yōu)勢。
選擇如下遺忘因子更新函數(shù)
(7)
其中αmin=0.01,αmax=1。上式對應(yīng)的遺忘因子動(dòng)態(tài)調(diào)整公式為
λi(t)=
(8)
可以證明上式定義的線性函數(shù)f(·)滿足命題,即當(dāng)輸入x>αmax時(shí),此時(shí)SF-RLS算法與RLS算法相同;當(dāng)x≤αmax時(shí),f(·)能夠保證P(t|t)的特征值始終在[αmin,αmax]區(qū)間內(nèi)。對于EF-RLS算法取遺忘因子λ=0.98。
考慮如下一階離散差分方程
y(k)+ay(k-1)=bu(k-1)+e(t)
(9)
其中e(t)~N(0,0.12)。
假設(shè)某一時(shí)刻待辨識系統(tǒng)參數(shù)發(fā)生突變,取
(10)
b=1.00t≥0
(11)
系統(tǒng)輸入采用4階M序列辨識信號,圖2顯示的是系統(tǒng)輸入和輸出信號波形。
圖2 參數(shù)突變下系統(tǒng)輸入與輸出信號波形
參數(shù)辨識過程如圖3所示,當(dāng)系統(tǒng)參數(shù)a在t=300s時(shí)刻由-0.80突變到-0.40過程中,EF-RLS算法和SF-RLS算法都能夠跟蹤參數(shù)的變化,但選擇遺忘算法的參數(shù)估計(jì)在很短的時(shí)間內(nèi)收斂,SF-RLS算法對突變過程的響應(yīng)很快,時(shí)變參數(shù)跟蹤能力更強(qiáng)。
圖3 參數(shù)突變下系統(tǒng)參數(shù)辨識過程
辨識過程中,參數(shù)估計(jì)矩陣P(t|t)的秩變化過程如圖4所示,說明了具有遺忘機(jī)制的辨識算法在辨識過程中能夠保證矩陣P(t|t)始終是有界的,SF-RLS算法參數(shù)估計(jì)誤差明顯低于EF-RLS算法。
圖4 參數(shù)突變下協(xié)方差矩陣P的秩變化過程
假設(shè)某一時(shí)刻待辨識系統(tǒng)參數(shù)發(fā)生漂移,取
(12)
b=1.00t≥0
(13)
系統(tǒng)參數(shù)a在300≤t<400s,以0.005/s的參數(shù)漂移速率改變。系統(tǒng)輸入輸出如圖5所示。
圖5 參數(shù)漂移下系統(tǒng)輸入與輸出信號波形
參數(shù)估計(jì)過程如圖6所示,由圖可以看出在參數(shù)發(fā)生緩慢漂移的情況下,相比于EF-RLS算法SF-RLS算法也有更好的參數(shù)跟蹤能力。
圖6 參數(shù)漂移下系統(tǒng)參數(shù)辨識過程
參數(shù)漂移過程中,矩陣P(t|t)的秩變化過程如圖7所示,可以看出兩種遺忘算法的參數(shù)估計(jì)誤差都能夠收斂到0,帶有遺忘機(jī)制的RLS算法誤差更小。
圖7 參數(shù)漂移下協(xié)方差矩陣P的秩變化過程
前面2種情況驗(yàn)證了,當(dāng)系統(tǒng)輸入為2N階持續(xù)激勵(lì)信號時(shí),系統(tǒng)數(shù)據(jù)向量φ(t)均滿足輸入信號必須為持續(xù)激勵(lì)信號的條件,進(jìn)而能夠保證參數(shù)估計(jì)協(xié)方差矩陣P(t|t)有界的。現(xiàn)在假設(shè)在某一時(shí)刻,系統(tǒng)輸入信號沒有完全激勵(lì)系統(tǒng)所有模態(tài),即向量φ(t)不滿足輸入信號為持續(xù)激勵(lì)信號。
參數(shù)a滿足
(14)
系統(tǒng)輸入激勵(lì)信號在第500s后取為常值
(15)
此時(shí)系統(tǒng)的輸入輸出信號波形如圖8所示
圖8 激勵(lì)失效下系統(tǒng)輸入與輸出信號波形
圖9 激勵(lì)失效下系統(tǒng)參數(shù)辨識過程
參數(shù)辨識過程如圖9所示,SF-RLS算法和EF-RLS算法都能檢測到系統(tǒng)參數(shù)在t=300s時(shí)發(fā)生了變化。在t=500s之后,由于系統(tǒng)輸入的信號u(t)=1,不再具有激勵(lì)系統(tǒng)模態(tài)的能力,大約在t=700s之后,EF-RLS算法開始受到系統(tǒng)噪聲的干擾,參數(shù)估計(jì)誤差被迅速放大,而SF-RLS算法由于能夠始終保證矩陣P(t|t)有界,因此算法仍然具較高的有時(shí)變參數(shù)跟蹤能力。
圖10 激勵(lì)失效下協(xié)方差矩陣P的秩變化過程
矩陣P(t|t)的秩變化過程如圖10所示,由圖可知,在t=500s之后,使用EF-RLS算法更新的矩陣P(t|t)的秩迅速增大,也意味著參數(shù)估計(jì)偏差逐漸增大,EF-RLS算法失去跟蹤時(shí)變參數(shù)的能力,而帶有選擇遺忘機(jī)制的辨識算法,即SF-RLS算法能夠保證參數(shù)辨識誤差較小。
遞推最小二乘算法具有對線性系統(tǒng)參數(shù)在線辨識的優(yōu)異性能,然而常用的遺忘因子RLS分解算法對時(shí)變參數(shù)辨識效果不理想而且對系統(tǒng)輸入信號要求較高。本文提出一種將選擇遺忘機(jī)制與遞推最小二乘算法結(jié)合的時(shí)變系統(tǒng)辨識算法,以拓展現(xiàn)有RLS算法在時(shí)變系統(tǒng)的適用范圍。通過對參數(shù)估計(jì)矩陣的特性進(jìn)行分析,證明了具有時(shí)變參數(shù)跟蹤能力的RLS算法需要參數(shù)辨識矩陣有界這一條件,并基于矩陣特征值變換的思想,對RLS算法遺忘因子進(jìn)行動(dòng)態(tài)調(diào)整,以保證RLS算法對時(shí)變系統(tǒng)參數(shù)跟蹤的能力。仿真實(shí)驗(yàn)表明,在時(shí)變參數(shù)跟蹤方面,帶有遺忘機(jī)制的遞推最小二乘算法其性能明顯優(yōu)于傳統(tǒng)的遺忘算法,且當(dāng)系統(tǒng)輸入不是2N階激勵(lì)信號時(shí),也能夠?qū)r(shí)變參數(shù)進(jìn)行良好的跟蹤。