卡爾曼濾波的MATLAB實現(xiàn)_第1頁
卡爾曼濾波的MATLAB實現(xiàn)_第2頁
卡爾曼濾波的MATLAB實現(xiàn)_第3頁
卡爾曼濾波的MATLAB實現(xiàn)_第4頁
卡爾曼濾波的MATLAB實現(xiàn)_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、卡爾曼濾波的MATLAB實現(xiàn)一、實驗內容 一個系統(tǒng)模型為同時有下列條件:(1) 初始條件已知且有。(2) 是一個標量零均值白高斯序列,且自相關函數(shù)已知為。另外,我們有下列觀測模型,即且有下列條件:(3) 和是獨立的零均值白高斯序列,且有(4) 對于所有的j和k,與觀測噪聲過程和是不相關的,即我們希望得到由觀測矢量,即估計狀態(tài)矢量的卡爾曼濾波器的公式表示形式,并求解以下問題:(a) 求出卡爾曼增益矩陣,并得出最優(yōu)估計和觀測矢量之間的遞歸關系。(b) 通過一個標量框圖(不是矢量框圖)表示出狀態(tài)矢量中元素和估計值的計算過程。(c) 用模擬數(shù)據(jù)確定狀態(tài)矢量的估計值并畫出當k0,1,10時和的圖。(d)

2、 通常,狀態(tài)矢量的真實值是得不到得。但為了用作圖來說明問題,表P8.1和P8.2給出來狀態(tài)矢量元素得值。對于k0,1,10,在同一幅圖中畫出真實值和在(c)中確定的的估計值。對重復這樣過程。當k從1變到10時,對每一個元素i1,2,計算并畫出各自的誤差圖,即。(e) 當k從1變到10時,通過用卡爾曼濾波器的狀態(tài)誤差協(xié)方差矩陣畫出和,而,。(f) 討論一下(d)中你計算的誤差與(e)中方差之間的關系。二、實驗原理1、卡爾曼濾波簡介卡爾曼濾波是解決以均方誤差最小為準則的最佳線性濾波問題,它根據(jù)前一個估計值和最近一個觀察數(shù)據(jù)來估計信號的當前值。它是用狀態(tài)方程和遞推方法進行估計的,而它的解是以估計值(

3、常常是狀態(tài)變量的估計值)的形式給出其信號模型是從狀態(tài)方程和量測方程得到的??柭^濾中信號和噪聲是用狀態(tài)方程和測量方程來表示的。因此設計卡爾曼濾波器要求已知狀態(tài)方程和測量方程。它不需要知道全部過去的數(shù)據(jù),采用遞推的方法計算,它既可以用于平穩(wěn)和不平穩(wěn)的隨機過程,同時也可以應用解決非時變和時變系統(tǒng),因而它比維納過濾有更廣泛的應用。2、卡爾曼濾波的遞推公式(1) (2)(3)(4)3、遞推過程的實現(xiàn)如果初始狀態(tài)的統(tǒng)計特性及已知,并令 又 將代入式(3)可求得,將代入式(2)可求得,將此代入式(1)可求得在最小均方誤差條件下的,同時將代入式(4)又可求得;由又可求,由又可求得,由又可求得,同時由與又可

4、求得;以此類推,這種遞推計算方法用計算機計算十分方便。三、MATLAB程序%卡爾曼濾波實驗程序clc;y1=3.29691969,3.38736515,7.02830641,9.71212521,11.42018315,15.97870583,22.06934285,28.30212781,30.44683831,38.75875595; %觀測值y1(k)y2=2.10134294,0.47540797,3.17688898,2.49811140,2.91992424,6.17307616,5.42519274,3.05365741,5.98051141,4.51016361; %觀測值y2

5、(k)p0=1,0;0,1;p=p0; %均方誤差陣賦初值Ak=1,1;0,1; %轉移矩陣Qk=1,0;0,1; %系統(tǒng)噪聲矩陣Ck=1,0;0,1; %量測矩陣Rk=1,0;0,2; %測量噪聲矩陣x0=0,0'xk=x0; %狀態(tài)矩陣賦初值for k=1:10 Pk=Ak*p*Ak'+Qk; %濾波方程3 Hk=Pk*Ck'*inv(Ck*Pk*Ck'+Rk); %濾波方程2 yk=y1(k);y2(k); %觀測值 xk=Ak*xk+Hk*(yk-Ck*Ak*xk); %濾波方程1 x1(k)=xk(1); x2(k)=xk(2); %記錄估計值 p=(

6、eye(2)-Hk*Ck)*Pk; %濾波方程4 pk(:,k)=p(1,1),p(2,2)' %記錄狀態(tài)誤差協(xié)方差矩陣endfigure %畫圖表示狀態(tài)矢量的估計值subplot(2,1,1)i=1:10;plot(i,x1(i),'k')h=legend('x1(k)的估計值')set(h,'interpreter','none')subplot(2,1,2)i=1:10;plot(i,x2(i),'k')h=legend('x2(k)的估計值')set(h,'interpret

7、er','none')X1=0,1.65428714,3.50300702,5.997852924,9.15040740,12.50873910,16.92192594,21.34483352,25.89335144,31.54135330,36.93605670; %由模擬得到的實際狀態(tài)值X1(k)X2=0,1.65428714,1.84871988,2.47552222,3.17187816,3.35833170,4.41318684,4.42290758,4.54851792,5.64800186,5.394470340; %由模擬得到的實際狀態(tài)值X2(k)fig

8、ure %在同一幅圖中畫出狀態(tài)矢量的估計值與真實值subplot(2,1,1)i=1:10;plot(i,x1(i),'k',i,X1(i+1),'b')h=legend('x1(k)的估計值','x1(k)的真實值')set(h,'interpreter','none')subplot(2,1,2)i=1:10;plot(i,x2(i),'k',i,X2(i+1),'b')h=legend('x2(k)的估計值','x2(k)的真實值'

9、;)set(h,'interpreter','none')for i=1:10 %計算x(k)的誤差 e1(i)=X1(i+1)-x1(i); e2(i)=X2(i+1)-x2(i);endfigure %畫出誤差圖subplot(2,1,1)i=1:10;plot(i,e1(i),'r')h=legend('x1(k)的誤差')set(h,'interpreter','none')subplot(2,1,2)i=1:10;plot(i,e2(i),'r')h=legend('

10、;x2(k)的誤差')set(h,'interpreter','none')figure %通過用卡爾曼濾波器的狀態(tài)誤差協(xié)方差矩陣畫出E1(k/k)2和E2(k/k)2i=1:10;subplot(2,1,1)plot(i,pk(1,i),'r') h= legend('由狀態(tài)誤差協(xié)方差矩陣得到的E1(k/k)2')set(h,'Interpreter','none')subplot(2,1,2)plot(i,pk(2,i),'r')h= legend('由狀態(tài)誤差協(xié)方差矩陣得到的E2(k/k)2')set(h,'Interpreter','none')四、實驗結果分析(a)卡爾曼增益矩陣:估計值與觀

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論