朱日興,朱兆優,李建鋒
(1. 中國民航大學適航學院,天津 300300;2. 東華理工大學機械與電子工程學院,江西 南昌 330013;3. 中國民航大學中歐航空工程師學院,天津 300300)
復雜線性系統的自適應控制需要在線的系統辨識技術[1]。通常所建的系統線性模型在系統穩態工作點小鄰域范圍內有比較高的精度,一旦系統環境發生變化,會產生系統參數估計偏差,進而影響整個控制系統的穩定性和精度。為了消除環境變化對系統估計參數的影響,需要一種能夠跟蹤時變參數的在線辨識算法。
最小二乘(RLS, Recursive Least Square Algorithm)及其改進算法是目前使用非常廣泛的一種線性系統辨識方法,而隨著系統運行時間的增大,參數辨識協方差矩陣會出現數據飽和的現象[2],協方差矩陣系數會逐漸趨近于零,算法漸漸失去對參數的修正和跟蹤能力。為了使RLS算法具有跟蹤時變線性系統的能力,常用的做法是在算法中加入遺忘因子。文獻[3]將推廣遺忘因子RLS算法應用到GPS動態目標的軌跡追蹤中,驗證了遺忘因子最小二乘算法優于Kalman濾波算法。文獻[4]提出一種基于預測殘差的動態調整遺忘因子的方法,對船舶航向模型進行辨識。然而,基于殘差方法的遺忘因子在線調整策略只在系統為辨識信號的前提下才具有較好的時變參數跟蹤效果,一旦系統輸入的辨識信號不具有動態激勵能力,辨識算法將不能保證參數估計的收斂性,此時傳統的參數估計算法將會對系統噪聲非常敏感[5]。另一方面,從信息論的角度分析,由于系統不同時刻輸入輸出數據具有不同的信息量,時變參數辨識算法應該考慮系統不同維度數據的分布特點,根據數據信息量的特點合理調整參數估計矩陣的大小以避免參數估計矩陣出現飽和現象[6]。文獻[7]通過最小二乘算法通過優化定義的損失函數,來確定系統參數估計值。通過引入遺忘因子[8],使得RLS算法具有跟蹤時變參數的能力。文獻[9]給出了一種指數遺忘算法,采用時變遺忘因子的方法解決了參數的估計對系統噪聲非常敏感的影響。文獻[10]提出了一種單獨遺忘部分參數空間的辨識算法。無論是卡爾曼濾波還是最小二乘算法,對參數估計器的收斂性進行分析能夠對估計器的動態特性有更準確的認識[11],辨識參數的收斂性同樣也影響控制系統的穩定性。
目前,還沒有相關理論對辨識算法遺忘因子的選擇問題進行研究。本文基于目前應用廣泛的RLS辨識算法,通過對算法的參數估計矩陣的有界性進行分析,從理論上證明具有時變參數跟蹤能力的辨識算法需要滿足的數學條件,同時針對系統數據分布空間的不均勻性,基于選擇遺忘策略,構造出一種特殊的參數估計矩陣特征值映射函數,在線動態調整遺忘因子的大小。仿真結果表明,相比于傳統辨識算法具有特征值映射的RLS辨識算法具有更強的時變參數跟蹤能力。
對于目前應用非常廣泛的指數遺忘(EF-RLS, Exponential Forgetting)算法來說, λ常根據工程經驗常取0.95到1之間的常數。然而,很多情況下,{φ(t)}中不同參數維度的數據在時間上分布是不均勻的,因此需要一種根據不同維度數據特征動態調整遺忘因子λ(t)的方法,以適應估計參數數據空間分布的不均勻性。具有選擇遺忘機制(SF, Selective Forgetting)的動態調整遺忘因子方法,最早由Parkum[12]提出,該算法能夠根據系統不同維度數據分布的差異動態調整遺忘因子大小。本文對該方法做進一步拓展,提出一種將選擇遺忘機制與RLS算法結合的新算法,稱為SF-RLS算法。首先矩陣P(t|t)進行特征值分解如(1)式。

(1)
其中p為矩陣P(t|t)的維數,α1(t|t),…,αp(t|t)為其特征值,v1(t),…,vp(t)為特征向量。對于指數遺忘算法EF-RLS,矩陣P(t+1|t) 的時間更新為如(2)式。

(2)
對于選擇遺忘算法SF-RLS有式(3)所示。
(3)
式中λi(t)為不同參數維度下時變的遺忘因子。由于矩陣特征向量vi(t)代表矩陣在不同變換維度的方向,λi(t)的大小與在vi(t)方向上接受的信息量有關,隨著該維度特征值αi(t|t)的增大而增加。因此P(t+1|t)變為式(4)所示。

(4)
接下來研究時間更新函數F{·}如何選擇。 假如e(t)為高斯白噪聲,對任意滿足遺忘算法,設αmin,αmax(αmin<αmax)為R+上的兩個實數,如果存在連續函數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)表明,通過選擇合適的函數f{·}能夠保證P(t|t)在任意時刻t>0都是有界的,其中f{·}的函數特性如式(5)所示。命題4)和5)表明,一旦系統輸入信號不能夠激發系統所有模態,即φ(t)不滿足輸入信號必須為持續激勵信號的條件,具有式(5)特性的函數f{·},仍然能夠保證矩陣P(t|t)是有界的。
命題5)表明,矩陣P(t|t)的特征值αi可作為數據向量φ(t)在方向vi上信息的一種度量,在t時刻,在方向vi上的信息移除量可表示為

(6)
由于αi(t|t)代表參數估計方差,命題5)說明了,如果某維數據出現較大誤差時,會增大該維度遺忘因子數值,矩陣P(t|t)中舊信息的移除量比較大,因此SE-RLS算法能夠根據不同維度信息量動態調整遺忘因子大小。
圖1顯示的是RLS算法、EF-RLS算法和SF-RLS算法在矩陣特征值區間[αmin,αmax]上,矩陣P(t|t)時間更新上的差異。由于f(·)的特殊性質,SF-RLS算法能夠保證下一時刻矩陣P(t+1|t+1)的特征值αi(t+1|t+1)仍在區間[αmin,αmax]內。而EF-RLS算法不能夠保證P(t+1|t+1)有界,由于函數斜率為常數λ∈[0.95,1],一旦αi(t+1|t+1)?[αmin,αmax],估計矩陣P(t+2|t+2)將不再有界,此時算法對噪聲非常敏感,造成較大的參數估計誤差。

圖1 不同遺忘算法矩陣P的時間更新對比
具有時變參數跟蹤能力的遺忘算法需要滿足的條件,一是辨識算法能夠保證參數估計矩陣P(t|t)在時間上有界[13];二是輸入信號必須為持續激勵信號[14]。而所設命題則說明了,即使算法不滿足條件,通過選擇合適的特征值更新函數f(·),依然能夠保持矩陣P(t|t)有界,從而保證算法具有時變參數的跟蹤能力,下面將通過3個實例分析帶有遺忘機制RLS辨識算法的優勢。
選擇如下遺忘因子更新函數

(7)
其中αmin=0.01,αmax=1。上式對應的遺忘因子動態調整公式為
λi(t)=

(8)
可以證明上式定義的線性函數f(·)滿足命題,即當輸入x>αmax時,此時SF-RLS算法與RLS算法相同;當x≤αmax時,f(·)能夠保證P(t|t)的特征值始終在[αmin,αmax]區間內。對于EF-RLS算法取遺忘因子λ=0.98。
考慮如下一階離散差分方程
y(k)+ay(k-1)=bu(k-1)+e(t)
(9)
其中e(t)~N(0,0.12)。
假設某一時刻待辨識系統參數發生突變,取

(10)
b=1.00t≥0
(11)
系統輸入采用4階M序列辨識信號,圖2顯示的是系統輸入和輸出信號波形。

圖2 參數突變下系統輸入與輸出信號波形
參數辨識過程如圖3所示,當系統參數a在t=300s時刻由-0.80突變到-0.40過程中,EF-RLS算法和SF-RLS算法都能夠跟蹤參數的變化,但選擇遺忘算法的參數估計在很短的時間內收斂,SF-RLS算法對突變過程的響應很快,時變參數跟蹤能力更強。

圖3 參數突變下系統參數辨識過程
辨識過程中,參數估計矩陣P(t|t)的秩變化過程如圖4所示,說明了具有遺忘機制的辨識算法在辨識過程中能夠保證矩陣P(t|t)始終是有界的,SF-RLS算法參數估計誤差明顯低于EF-RLS算法。

圖4 參數突變下協方差矩陣P的秩變化過程
假設某一時刻待辨識系統參數發生漂移,取

(12)
b=1.00t≥0
(13)
系統參數a在300≤t<400s,以0.005/s的參數漂移速率改變。系統輸入輸出如圖5所示。

圖5 參數漂移下系統輸入與輸出信號波形
參數估計過程如圖6所示,由圖可以看出在參數發生緩慢漂移的情況下,相比于EF-RLS算法SF-RLS算法也有更好的參數跟蹤能力。

圖6 參數漂移下系統參數辨識過程
參數漂移過程中,矩陣P(t|t)的秩變化過程如圖7所示,可以看出兩種遺忘算法的參數估計誤差都能夠收斂到0,帶有遺忘機制的RLS算法誤差更小。

圖7 參數漂移下協方差矩陣P的秩變化過程
前面2種情況驗證了,當系統輸入為2N階持續激勵信號時,系統數據向量φ(t)均滿足輸入信號必須為持續激勵信號的條件,進而能夠保證參數估計協方差矩陣P(t|t)有界的。現在假設在某一時刻,系統輸入信號沒有完全激勵系統所有模態,即向量φ(t)不滿足輸入信號為持續激勵信號。
參數a滿足

(14)
系統輸入激勵信號在第500s后取為常值

(15)
此時系統的輸入輸出信號波形如圖8所示

圖8 激勵失效下系統輸入與輸出信號波形

圖9 激勵失效下系統參數辨識過程
參數辨識過程如圖9所示,SF-RLS算法和EF-RLS算法都能檢測到系統參數在t=300s時發生了變化。在t=500s之后,由于系統輸入的信號u(t)=1,不再具有激勵系統模態的能力,大約在t=700s之后,EF-RLS算法開始受到系統噪聲的干擾,參數估計誤差被迅速放大,而SF-RLS算法由于能夠始終保證矩陣P(t|t)有界,因此算法仍然具較高的有時變參數跟蹤能力。

圖10 激勵失效下協方差矩陣P的秩變化過程
矩陣P(t|t)的秩變化過程如圖10所示,由圖可知,在t=500s之后,使用EF-RLS算法更新的矩陣P(t|t)的秩迅速增大,也意味著參數估計偏差逐漸增大,EF-RLS算法失去跟蹤時變參數的能力,而帶有選擇遺忘機制的辨識算法,即SF-RLS算法能夠保證參數辨識誤差較小。
遞推最小二乘算法具有對線性系統參數在線辨識的優異性能,然而常用的遺忘因子RLS分解算法對時變參數辨識效果不理想而且對系統輸入信號要求較高。本文提出一種將選擇遺忘機制與遞推最小二乘算法結合的時變系統辨識算法,以拓展現有RLS算法在時變系統的適用范圍。通過對參數估計矩陣的特性進行分析,證明了具有時變參數跟蹤能力的RLS算法需要參數辨識矩陣有界這一條件,并基于矩陣特征值變換的思想,對RLS算法遺忘因子進行動態調整,以保證RLS算法對時變系統參數跟蹤的能力。仿真實驗表明,在時變參數跟蹤方面,帶有遺忘機制的遞推最小二乘算法其性能明顯優于傳統的遺忘算法,且當系統輸入不是2N階激勵信號時,也能夠對時變參數進行良好的跟蹤。