資源描述:
《控制系統(tǒng)仿真課程》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。
1、控制系統(tǒng)仿真課程設(shè)計(jì)(2010級)題目控制系統(tǒng)仿真課程設(shè)計(jì)學(xué)院專業(yè)班級學(xué)號學(xué)生姓名指導(dǎo)教師完成日期控制系統(tǒng)仿真課程設(shè)計(jì)一、題目基于Kalman濾波的信息融合算法設(shè)計(jì)1)學(xué)習(xí)并掌握線性系統(tǒng)Kalman濾波的基本原理和基本公式;2)學(xué)習(xí)并掌握一種常用的融合算法;3)學(xué)習(xí)并利用Matlab軟件實(shí)現(xiàn)基本的Kalman濾波和信息融合算法的仿真。二、主要要求1)具備基本的概率與數(shù)理統(tǒng)計(jì)知識;2)熟悉并掌握基本的Matlab軟件編寫能力;3)學(xué)習(xí)并掌握正交投影定理和矩陣求逆定理;4)了解Kalman濾波的功能、來源和基本原理;5)掌握Kalman濾波的推導(dǎo)過程和基本運(yùn)行公式;6)了解信息融
2、合的基本概念和方法;7)掌握一種典型的多傳感器信息融合算法:分布式局部估計(jì)值加權(quán)融合。三、主要內(nèi)容一)線性系統(tǒng)的Kalman濾波考慮如下一類單傳感器線性動(dòng)態(tài)估計(jì)系統(tǒng)(1)(2)其中,是離散的時(shí)間變量;是系統(tǒng)的狀態(tài)向量,是系統(tǒng)的狀態(tài)轉(zhuǎn)移矩陣;是狀態(tài)的觀測向量,是相應(yīng)的觀測矩陣;和是零均值的高斯白噪聲過程,且滿足如下條件:,(3)初始狀態(tài)為一隨機(jī)向量,且滿足(4)那么,線性系統(tǒng)的Kalman濾波基本公式如下:①計(jì)算狀態(tài)的一步預(yù)測值(5)②計(jì)算一步預(yù)測誤差協(xié)方差陣(6)③計(jì)算增益陣(7)④計(jì)算狀態(tài)估計(jì)值(8)和估計(jì)誤差協(xié)方差陣(9)其中和為時(shí)刻的狀態(tài)估計(jì)以及相應(yīng)的估計(jì)誤差協(xié)方差陣。
3、那么,Kalman濾波仿真程序執(zhí)行方案如下:i)確定初始狀態(tài)、初始狀態(tài)估計(jì)和相應(yīng)的協(xié)方差矩陣;給定狀態(tài)轉(zhuǎn)移矩陣、過程噪聲方差、測量矩陣和測量噪聲方差(這些量均可認(rèn)為是常量)ii)產(chǎn)生仿真信號數(shù)據(jù)從開始循環(huán)(L為給定的仿真時(shí)刻長度)a)當(dāng)時(shí)a1)利用和隨機(jī)函數(shù)產(chǎn)生一個(gè)高斯白噪聲;a2)根據(jù)式(1)有;a3)利用和隨機(jī)函數(shù)產(chǎn)生一個(gè)高斯白噪聲;a4)根據(jù)式(2)有。a)當(dāng)時(shí)b1)利用和隨機(jī)函數(shù)產(chǎn)生一個(gè)高斯白噪聲;b2)根據(jù)式(1)有;b3)利用和隨機(jī)函數(shù)產(chǎn)生一個(gè)高斯白噪聲;b4)根據(jù)式(2)有。i)開始Kalman濾波估計(jì)從開始循環(huán)(L為給定的仿真時(shí)刻長度)a)當(dāng)時(shí)a1)根據(jù)式(5
4、)和式(6)有,a2)利用式(7)-(9)計(jì)算估計(jì)和相應(yīng)的估計(jì)誤差協(xié)方差矩陣。b)當(dāng)時(shí)b1)根據(jù)式(5)和式(6)計(jì)算和;b2)利用式(7)-(9)計(jì)算估計(jì)和相應(yīng)的估計(jì)誤差協(xié)方差矩陣。問題:給定相應(yīng)參數(shù)(也鼓勵(lì)采用其他參數(shù)),進(jìn)行Kalman濾波估計(jì)算法程序的編寫,并進(jìn)行繪圖和分析1)標(biāo)量情形:,,,,,,(1)請利用Matlab軟件進(jìn)行Kalman濾波估計(jì)仿真程序編寫;%mykf.m%producesystemclear;A=1;P0=100;X0=10;C=1;Q=0.1;R=10;%realstatesandmeasurestatesfork=1:150W(k)=sqr
5、t(Q)*randn(1,1);V(k)=sqrt(R)*randn(1,1);ifk==1X(k)=A*X0+W(k);Z(k)=C*X(k)+V(k);elseX(k)=A*X(k-1)+W(k);Z(k)=C*X(k)+V(k);endend%predictstatesandestimatestatesfork=1:150ifk==1X_yc(k)=A*X0;Z_yc(k)=C*X_yc(k);P_yc(k)=A*P0*A'+Q;K(k)=P_yc(k)*C'/(C*P_yc(k)*C'+R);X_gj(k)=X_yc(k)+K(k)*(Z(k)-Z_yc(k));P_
6、gj(k)=(eye(1)-K(k)*C)*P_yc(k);elseX_yc(k)=A*X(k-1);Z_yc(k)=C*X_yc(k);P_yc(k)=A*P_yc(k-1)*A'+Q;K(k)=P_yc(k)*C'/(C*P_yc(k)*C'+R);X_gj(k)=X_yc(k)+K(k)*(Z(k)-Z_yc(k));P_gj(k)=(eye(1)-K(k)*C)*P_yc(k);endend%createfigurefiguret=1:150;plot(t,Z(1,t),'-og')holdonplot(t,X_gj(1,t),'r')holdonplot(t,X(1
7、,t),'b')holdofflegend('觀測','估計(jì)','狀態(tài)')xlabel('仿真次數(shù)')ylabel('數(shù)值')figureplot(abs(Z-X),'-og');holdonplot(abs(X_gj-X));holdofflegend('預(yù)測與真實(shí)之差','估計(jì)與真實(shí)之差')xlabel('仿真次數(shù)')ylabel('數(shù)值')(2)繪出狀態(tài)預(yù)測值和狀態(tài)估計(jì)值的曲線圖;(3)繪出預(yù)測誤差協(xié)方差和估計(jì)誤差協(xié)方差的曲線圖;(4)對仿真結(jié)果進(jìn)行分析。預(yù)測值和估計(jì)值都能夠在一定程度上反應(yīng)真實(shí)值