登錄

卡爾曼濾波

百科 > 決策預(yù)測(cè) > 卡爾曼濾波

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ù):

  hat{X}(k/j)=E[X(k)/Y^j]

  為狀態(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è)增益方程:

  b(k)=frac{F(k)Hp(k|k-1)}{H^2p(k|k-1)+R}  (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è)噪聲的方差,S^2_V;Q為過程噪聲的方差,S^2_W。

  卡爾曼濾波是以預(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)

  以矩陣的形式表示如下:。

  x(k)=[phi_1(k)phi_2(k)]begin{bmatrix}x(k-1)x(k-2)end{bmatrix}+omega(k-1)begin{bmatrix}(k)(k-1)end{bmatrix}=Hbegin{bmatrix}(k)(k-1)end{bmatrix}+begin{bmatrix}(k)(k-1)end{bmatrix}  (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)為begin{bmatrix}(k|k-1)(k-1|k-2)end{bmatrix},Y(k)為begin{bmatrix}(k)(k-1)end{bmatrix}

  由于每天用水量呈現(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ì)出由F1F2構(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種方法的利弊。

杭州市時(shí)用水量量測(cè)值圖

非季節(jié)模型與季節(jié)模型的預(yù)測(cè)誤差對(duì)比圖

  從圖中可以看出,對(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è)精度。

卡爾曼濾波常規(guī)模型與季節(jié)模型誤差分布比較圖

  采用基于卡爾曼濾波方法預(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)度的要求。

評(píng)論  |   0條評(píng)論