卡爾曼濾波
1.什么是卡爾曼濾波
最佳線性濾波理論起源于40年代美國科學家Wiener和前蘇聯(lián)科學家Kолмогоров等人的研究工作,后人統(tǒng)稱為維納濾波理論。從理論上說,維納濾波的最大缺點是必須用到無限過去的數(shù)據(jù),不適用于實時處理。為了克服這一缺點,60年代Kalman把狀態(tài)空間模型引入濾波理論,并導出了一套遞推估計算法,后人稱之為卡爾曼濾波理論。卡爾曼濾波是以最小均方誤差為估計的最佳準則,來尋求一套遞推估計的算法,其基本思想是:采用信號與噪聲的狀態(tài)空間模型,利用前一時刻地估計值和現(xiàn)時刻的觀測值來更新對狀態(tài)變量的估計,求出現(xiàn)時刻的估計值。它適合于實時處理和計算機運算。
卡爾曼濾波的實質(zhì)是由量測值重構(gòu)系統(tǒng)的狀態(tài)向量。它以“預測—實測—修正”的順序遞推,根據(jù)系統(tǒng)的量測值來消除隨機干擾,再現(xiàn)系統(tǒng)的狀態(tài),或根據(jù)系統(tǒng)的量測值從被污染的系統(tǒng)中恢復系統(tǒng)的本來面目。
2.卡爾曼濾波的形式
1、模型要求
卡爾曼濾波要求模型已知。即模型的結(jié)構(gòu)與參數(shù)已知,且隨機向量的統(tǒng)計特征已知。
2、卡爾曼濾波分類
記Yj的向量函數(shù):
為狀態(tài)X(k)的估計量,分三種情況:
當k>j時,稱為預測;
當k=j時,稱為濾波;
當k<j時,稱為平滑。
3.卡爾曼濾波特點
卡爾曼濾波是解決狀態(tài)空間模型估計與預測的有力工具之一,它不需存儲歷史數(shù)據(jù),且可以同過計算機程序到達對狀態(tài)空間模型的優(yōu)化擬合。
4.卡爾曼濾波案例分析
案例一:基于卡爾曼濾波方法的時用水量預測[1]
一、基于卡爾曼濾波方法的時用水量預測
在20世紀60年代以后,數(shù)學家卡爾曼提出了用一個狀態(tài)方程和一個量測方程來完整描述線性動態(tài)過程,從而形成了一種遞推濾波算法,卡爾曼濾波不要求保留使用過的觀測數(shù)據(jù),當測得新的使用數(shù)據(jù),可按照一套遞推公式算出新的估計量,不必重新計算,此外,他還打破了對平穩(wěn)過程的限制,可用于對時變隨機信號的濾波,卡爾曼濾波是一套基本的公式,可用于預測修正的評估,在最小化協(xié)方差估計誤差方面表現(xiàn)出眾。
一個動態(tài)系統(tǒng)的狀態(tài)變化,在沒有外部干擾時,系統(tǒng)的未來狀態(tài)可以根據(jù)現(xiàn)時狀態(tài)從已知的運動方程中確定出來,但是,遺憾的是總是存在各種外部干擾,同時人們對運動方程的描述不可能十分精確,例如方程的建立過程中忽略影響小的量或者將非線性形式簡化為線性形式,變參數(shù)近似表示成常參數(shù)等等[2]。當線性方程的描述在人們所需范圍內(nèi)足夠準確時,可以認為該線性系統(tǒng)的行為看作兩部分組成。一部分是由已知的運動方程正確的預測出來,另一部分是可以看作均值為零的隨機分量[3] [4]。
設(shè)每小時用水量為x(k)。對于不同時間值k,均有一值x(k)與之對應,當取樣時刻變化時,就得到一時用水量序列{x(k)},用水量預測序列{x(k)}為白噪聲序列{x(k)}驅(qū)動的一階遞歸模型,狀態(tài)方程如下:
x(k) = φ(k)x(k ? 1) + ω(k ? 1) (1)
西(_|})為七一1時刻和居時刻時用水量之間的相關(guān)系數(shù),本文中采用了時變模型,認為F是一個隨時間變化的系數(shù)塒為表示過程噪聲。
測量方程如下:y(k)=Hx(k)+v(k) (2)
y(k)為k時刻用水量的量測值;
日為量測參數(shù),它由測量系統(tǒng)和測量方法所確定。不隨時間變化的一個常量,取為1;v(k)為量測噪聲。
均方估計誤差為p(k) = E[x(k) ? x(k)]2,在均方估計誤差為最小的準則下加以推導,可以得出一套遞推公式如下:
預測估計方程:
x(k + 1 | k) = F(k)x(k | k ? 1) + b(k)[y(k) ? Hx(k | k ? 1)] (3)
預測增益方程:
(4)
均方預測誤差方程:
p(k | k + 1) = F(k)2p(k | k ? 1) ? F(k)Hb(k)p(k | k ? 1) + Q
式中: x(k+1|k)于后時刻的k+1時刻時用水量基礎(chǔ)的估計值;R為量測噪聲的方差,;Q為過程噪聲的方差,。
卡爾曼濾波是以預測加修正來實現(xiàn)其濾波遞推的,卡爾曼濾波的這個性質(zhì)使得我們很容易用計算機來實現(xiàn),從而完成我們對時用水量的預測。
二、基于卡爾曼濾波方法的季節(jié)預測模型
為了提高預測精度,引進了2個參數(shù)的預測采用如下狀態(tài)方程和量測方程:
x(k) = φ1(k)x(k ? 1) + φ2(k)x(k ? 2) + ω(k)x(k ? 1)
y(k)=Hx(k)+v(k) (6)
以矩陣的形式表示如下:。
(7)
在最小均方差準則[5](即p(k|k+1)=E[x(k+1)-x(k+1|k)]^2為最小)下得如下遞推公式。
預測估計方程:
x(k+1|k)=Ax(k|k-1)+G(k)[(k)-CX(k|k-1)] (8)
預測增益方程:
G(k) = AP(k | k ? 1)HT[HP(k | k ? 1)HT + R(k)1 (9)
預測協(xié)方差方程
P(k+1|k)=[A-G(k)H]P(k|k-1)A^T+Q(k) (10)
其中A為[F(k)1F(k)2],X(K | k ? 1)為,Y(k)為
由于每天用水量呈現(xiàn)一定的周期 ,現(xiàn)以過去一天同一時刻的時用水量作為沖擊序列[6],對 k 時刻時用水量做出修正,因此在 2個參數(shù)的基礎(chǔ)上加入季節(jié)模型。
狀態(tài)方程和量測方程如下:
x(k) = φ1(k)x(k ? 1) + φ2(k)u(k) + w(k ? 1)
y(k)=Hx(k)+v(k)
其中u(k)=x(k-24)
即將第2個參數(shù)x提前24h ,重新統(tǒng)計出由F1和F2構(gòu)成的A矩陣 ,進行相應的卡爾曼濾波預測。重新構(gòu)建的模型稱為卡爾曼濾波季節(jié)預測模型。
三、工程實例
杭州位于錢塘江畔,是一個人口密集城市,其設(shè)計供水量能力為140萬t/d。本文以杭州市的時用水量為例,分別采用卡爾曼濾波模型以及卡爾曼濾波季節(jié)模型進行預測,對結(jié)果進行比較分析(見二圖),研究上述2種方法的利弊。
從圖中可以看出,對于1h預測,非季節(jié)模型誤差有較大波動,改進后的模型,即卡爾曼濾波季節(jié)模型相對較為平穩(wěn)。
總體來說季節(jié)模型預測精度相對較高。
評價模型預測精度,還需查看其預測誤差分布特征[7]。
圖3為卡爾曼濾波常規(guī)模型與季節(jié)模型預測誤差分布比較,采用了1個月數(shù)據(jù),用2種方法進行了預測,從圖中可以看出,2種方法誤差都主要集中在-0.1至0.1區(qū)域,呈對稱分布。從1個月所有數(shù)據(jù)來看,誤差大致呈正態(tài)分布,季節(jié)模型較常規(guī)模型趨勢圖更為尖銳,表明季節(jié)模型比常規(guī)模型預測效果更為理想。綜合上圖和下圖,比較得出,卡爾曼濾波季節(jié)模型具有更高的預測精度。
采用基于卡爾曼濾波方法預測模型,進行時用水量預測。鑒于城市時用水量具有周期性、趨勢性及隨機擾動性,引入季節(jié)因子,形成卡爾曼濾波方法季節(jié)模型。以杭州市實測數(shù)據(jù)為例,分別采用卡爾曼濾波模型和卡爾曼濾波季節(jié)模型分別對該市時用水量進行預測,預測結(jié)果表明,卡爾曼濾波方法季節(jié)預測模型精度相對較高。從計算模型看,季節(jié)預測模型要求低,但預測精度較高,具有一定實用性,能夠滿足供水系統(tǒng)優(yōu)化調(diào)度的要求。