傅惠民, 楊海峰, 付越帥, 崔 軼
(北京航空航天大學 小樣本技術(shù)研究中心, 北京 100191)
目前,Kalman濾波(Kalman Filter,KF)已廣泛用于人工智能、在線監(jiān)測、故障診斷、導航與控制等工程領域[1]。眾所周知,Kalman濾波要求狀態(tài)方程和量測方程均精確,其可以有偶然誤差而不能包含系統(tǒng)誤差,但是在工程實際中,由于受到環(huán)境因素、模型和參數(shù)的選取不當、測量設備的不穩(wěn)定性等影響,狀態(tài)方程或量測方程中往往含有未知輸入(系統(tǒng)誤差),這些未知輸入在濾波過程中會嚴重降低濾波精度[2-4]。如何補償和修正這些未知輸入的影響,進一步提高Kalman濾波精度,是當前濾波領域的研究難點和熱點問題。
為此,人們先后提出:
(1)自適應Kalman濾波方法(Adaptive Kalman Filter)[5],但是自適應Kalman濾波誤差大,甚至導致濾波發(fā)散;
(2)狀態(tài)擴維估計方法(Augmented-state Estimation),可通過將未知輸入作為狀態(tài)變量進行擴維估計,這既不準確、又徒增計算工作量[6];
(3)魯棒兩步Kalman濾波方法(Robust Two-stage Kalman Filter)[7],其本質(zhì)是僅用不含未知輸入的量測方程進行狀態(tài)估計,但這已不屬于Kalman濾波,因其無法通過狀態(tài)方程和量測方程之間的融合來減小濾波的偶然誤差。
傅惠民等人[8]通過建立相鄰兩次濾波之間未知輸入的縱向聯(lián)系和未知輸入與狀態(tài)變量的橫向聯(lián)系,提出了一種能夠自動消除系統(tǒng)誤差、減小偶然誤差的自識別自校準濾波方法(Self-Recognition Self-Calibration Filtering Methods),解決了干擾和噪聲引起的未知輸入(系統(tǒng)誤差)問題,有效地提高了濾波精度。本文將進一步針對工程領域遇到的緩慢變化的未知輸入(系統(tǒng)誤差)問題,建立一種含緩變未知輸入的數(shù)據(jù)自校準濾波方法,以簡化計算,便于工程應用,適合邊緣計算。
工程上,含未知輸入的線性量測方程組一般形式為:
Yk=HkXk+dk+Vk,
(1)
式中,Xk為m維狀態(tài)向量;Yk為n維量測向量;dk為n維量測未知輸入(系統(tǒng)誤差)向量;Hk為量測矩陣;Vk是均值為零,協(xié)方差矩陣為Rk的量測噪聲向量,并且滿足:
(2)
式中,E(·)為數(shù)學期望符號,δk, j為δ函數(shù),當k=j時,δk, j=1,當k≠j時,δk, j=0。
(3)
在未知輸入dk自校準估計完成后,可以對量測數(shù)據(jù)進行自校準濾波,基于加權(quán)最小二乘原理進行狀態(tài)估計,可得:
(4)
狀態(tài)估計對應的估計誤差協(xié)方差矩陣為:
(5)
工程中,含未知輸入的非線性量測方程組一般形式為:
Yk=hk(Xk)+dk+Vk,
(6)
式中,hk(·)為非線性量測函數(shù);Xk,Yk,dk和Vk的意義與式(1)一致。
(7)
Yk=HkXk+Uk+dk+Vk,
(8)
式中,
(9)
(10)
線性化完成后,基于加權(quán)最小二乘原理進行狀態(tài)估計,可得狀態(tài)估計值和估計誤差協(xié)方差矩陣為:
(11)
(12)
工程上,狀態(tài)方程含有未知輸入的線性離散系統(tǒng)一般形式為:
Xk=Φk-1Xk-1+bk-1+Wk-1,
(13)
Yk=HkXk+Vk,
(14)
式中,Φk為狀態(tài)矩陣;bk為狀態(tài)方程中的未知輸入;Hk,Xk,Yk的意義與式(1)一致;Wk是協(xié)方差矩陣為Qk的狀態(tài)噪聲向量;Vk是協(xié)方差矩陣為Rk的量測噪聲向量,并且滿足:
(15)
(16)
當狀態(tài)方程未知輸入bk-1自校準完成后,可對線性系統(tǒng)進行自校準濾波,計算步驟如下:
(17)
一步預測誤差協(xié)方差矩陣Pk/(k-1)為:
(18)
濾波初始化為:
(19)
(20)
(21)
狀態(tài)估計誤差協(xié)方差矩陣Pk為:
Pk=(I-KkHk)Pk/(k-1),
(22)
式中,Kk為濾波增益矩陣,由下式計算得到:
(23)
工程上,狀態(tài)方程含有未知輸入的非線性離散系統(tǒng)一般形式為:
Xk=fk-1(Xk-1)+bk-1+Wk-1,
(24)
Yk=hk(Xk)+Vk,
(25)
式中,fk(·)和hk(·)均為非線性向量函數(shù);Xk,Yk,bk,Wk,Vk定義與式(13)和(14)相同。
(26)
當狀態(tài)方程未知輸入bk-1自校準完成后,可按如下步驟進行非線性系統(tǒng)自校準濾波:
(1)一步自校準預測。非線性系統(tǒng)一步自校準預測為:
(27)
(28)
濾波初始化仍由式(19)和式(20)給出。
(29)
(30)
工程上,量測方程含有未知輸入的線性離散系統(tǒng)一般形式為:
Xk=Φk-1Xk-1+Wk-1,
(31)
Yk=HkXk+dk+Vk,
(32)
式中,Φk,Hk,Xk,Yk,Wk,Vk的意義與式(13)和(14)一致,dk的意義與式(1)一致。
當量測方程未知輸入dk自校準完成后,可對線性系統(tǒng)進行自校準濾波,計算步驟如下:
(33)
一步預測誤差協(xié)方差矩陣Pk/(k-1)由式(18)計算得到。
濾波初始化由式(19)和式(20)給出。
(34)
狀態(tài)估計誤差協(xié)方差矩陣Pk和濾波增益矩陣Kk分別由式(22)和(23)計算得到。
工程上,量測方程含有未知輸入的非線性離散系統(tǒng)一般形式為:
Xk=fk-1(Xk-1)+Wk-1,
(35)
Yk=hk(Xk)+dk+Vk,
(36)
式中,fk(·),hk(·),Xk,Yk,Wk,Vk意義與式(24)和(25)相同,dk的意義與式(1)一致。
當量測方程未知輸入dk自校準完成后,可按如下步驟進行非線性系統(tǒng)自校準濾波:
(1)一步預測。非線性系統(tǒng)一步預測為:
(37)
一步預測誤差協(xié)方差矩陣Pk/(k-1)由式(18)給出,其中Φk-1仍由式(28)計算。
濾波初始化仍由式(19)和式(20)給出。
(38)
狀態(tài)估計誤差協(xié)方差矩陣Pk和濾波增益矩陣Kk分別由式(22)和式(23)計算,其中Hk仍由式(30)計算。
工程上,狀態(tài)方程和量測方程均含有未知輸入的線性離散系統(tǒng)一般形式為:
Xk=Φk-1Xk-1+bk-1+Wk-1,
(39)
Yk=HkXk+dk+Vk,
(40)
式中,Φk,Hk,Xk,Yk,bk,Wk,Vk的意義與式(13)和(14)一致,dk的意義與式(1)一致。
當狀態(tài)方程未知輸入bk-1和量測方程未知輸入dk自校準完成后,可對線性系統(tǒng)進行自校準濾波,計算步驟如下:
濾波初始化由式(19)和式(20)給出。
工程上,狀態(tài)方程和量測方程中均含有未知輸入的非線性離散系統(tǒng)一般形式為:
Xk=fk-1(Xk-1)+bk-1+Wk-1,
(41)
Yk=hk(Xk)+dk+Vk,
(42)
式中,fk(·),hk(·),Xk,Yk,bk,Wk,Vk意義與式(24)和(25)相同,dk的意義與式(1)一致。
當雙未知輸入bk-1和dk自校準完成后,可按如下步驟進行非線性系統(tǒng)自校準濾波:
濾波初始化仍由式(19)和式(20)給出。
考慮如下的線性系統(tǒng):
(43)
狀態(tài)初值X0=1,wk和vk分別對應方差Qk=1和Rk=9,狀態(tài)方程未知輸入bk-1的取值為:
bk-1=1.2+0.01(k-1).
(44)
圖1 均方根誤差比較
表1 均方根誤差均值比較
可以看到,當狀態(tài)方程受到未知輸入影響時,本文方法可以對其進行估計和補償,其濾波精度比魯棒兩步Kalman濾波方法提高了22%,比線性Kalman濾波方法提高了47%,比自適應Kalman濾波方法提高了59%。
(1)由于工程實際中存在干擾和噪聲,采集的信號往往含有緩慢變化的未知輸入(系統(tǒng)誤差),Kalman濾波方法能夠有效地減小偶然誤差,但無法解決系統(tǒng)誤差問題。本文方法則既能消除系統(tǒng)誤差,又能減小偶然誤差。
(2)量測自校準濾波方法和量測擴展自校準濾波方法,能夠自動對量測數(shù)據(jù)中事先無法校準的系統(tǒng)誤差進行估計、補償和修正,從而減小系統(tǒng)誤差的影響。
(3)狀態(tài)方程含未知輸入自校準Kalman濾波、量測方程含未知輸入自校準Kalman濾波、狀態(tài)方程和量測方程均含有未知輸入的自校準Kalman濾波等方法,則能夠自動對狀態(tài)方程或量測方程中的未知輸入進行估計、補償和修正,從而提高濾波精度。
(4)理論分析、實例計算和仿真驗證表明,本文方法能夠?qū)徛兓奈粗斎脒M行補償,消除系統(tǒng)誤差,并通過數(shù)據(jù)融合減小偶然誤差,比傳統(tǒng)方法具有更高的濾波精度。并且計算簡單,便于邊緣計算和工程應用。
(5)對于工程實際中不知道有沒有未知輸入,但如果有的話必為緩慢變化的未知輸入的情況,可以先采用文獻[8]中自識別方法進行判斷,然后再采用本文方法濾波。