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