




全文預(yù)覽已結(jié)束
下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
% EKF UKF PF三種算法對(duì)比clcclose allclear;% tic;x = 0.1; % 初始狀態(tài) x_estimate = 1;%狀態(tài)的估計(jì)e_x_estimate = x_estimate; %EKF的初始估計(jì)u_x_estimate = x_estimate; %UKF的初始估計(jì)p_x_estimate = x_estimate; %PF的初始估計(jì)Q = 10;%input(請(qǐng)輸入過(guò)程噪聲方差Q的值: ); % 過(guò)程狀態(tài)協(xié)方差 R = 1;%input(請(qǐng)輸入測(cè)量噪聲方差R的值: ); % 測(cè)量噪聲協(xié)方差 P =5;%初始估計(jì)方差e_P = P; %UKF方差u_P = P;%UKF方差pf_P = P;%PF方差tf = 50; % 模擬長(zhǎng)度 x_array = x;%真實(shí)值數(shù)組e_x_estimate_array = e_x_estimate;%EKF最優(yōu)估計(jì)值數(shù)組u_x_estimate_array = u_x_estimate;%UKF最優(yōu)估計(jì)值數(shù)組p_x_estimate_array = p_x_estimate;%PF最優(yōu)估計(jì)值數(shù)組u_k = 1; %微調(diào)參數(shù)u_symmetry_number = 4; % 對(duì)稱(chēng)的點(diǎn)的個(gè)數(shù)u_total_number = 2 * u_symmetry_number + 1; %總的采樣點(diǎn)的個(gè)數(shù)linear = 0.5;N = 500; %粒子濾波的粒子數(shù)close all;%粒子濾波初始 N 個(gè)粒子for i = 1 : N p_xpart(i) = p_x_estimate + sqrt(pf_P) * randn;endfor k = 1 : tf % 模擬系統(tǒng) x = linear * x + (25 * x / (1 + x2) + 8 * cos(1.2*(k-1) + sqrt(Q) * randn; %狀態(tài)值 y = (x2 / 20) + sqrt(R) * randn; %觀測(cè)值 %擴(kuò)展卡爾曼濾波器 %進(jìn)行估計(jì) 第一階段的估計(jì) e_x_estimate_1 = linear * e_x_estimate + 25 * e_x_estimate /(1+e_x_estimate2) + 8 * cos(1.2*(k-1); e_y_estimate = (e_x_estimate_1)2/20; %這是根據(jù)k=1時(shí)估計(jì)值為1得到的觀測(cè)值;只是這個(gè)由我估計(jì)得到的 第24行的y也是觀測(cè)值 不過(guò)是由加了噪聲的真實(shí)值得到的 %相關(guān)矩陣 e_A = linear + 25 * (1-e_x_estimate2)/(1+e_x_estimate2)2);%傳遞矩陣 e_H = e_x_estimate_1/10; %觀測(cè)矩陣 %估計(jì)的誤差 e_p_estimate = e_A * e_P * e_A + Q; %擴(kuò)展卡爾曼增益 e_K = e_p_estimate * e_H/(e_H * e_p_estimate * e_H + R); %進(jìn)行估計(jì)值的更新 第二階段 e_x_estimate_2 = e_x_estimate_1 + e_K * (y - e_y_estimate); %更新后的估計(jì)值的誤差 e_p_estimate_update = e_p_estimate - e_K * e_H * e_p_estimate; %進(jìn)入下一次迭代的參數(shù)變化 e_P = e_p_estimate_update; e_x_estimate = e_x_estimate_2; % 粒子濾波器 % 粒子濾波器 for i = 1 : N p_xpartminus(i) = 0.5 * p_xpart(i) + 25 * p_xpart(i) / (1 + p_xpart(i)2) + 8 * cos(1.2*(k-1) + sqrt(Q) * randn; %這個(gè)式子比下面一行的效果好% xpartminus(i) = 0.5 * xpart(i) + 25 * xpart(i) / (1 + xpart(i)2) + 8 * cos(1.2*(k-1); p_ypart = p_xpartminus(i)2 / 20; %預(yù)測(cè)值 p_vhat = y - p_ypart;% 觀測(cè)和預(yù)測(cè)的差 p_q(i) = (1 / sqrt(R) / sqrt(2*pi) * exp(-p_vhat2 / 2 / R); %各個(gè)粒子的權(quán)值 end % 平均每一個(gè)估計(jì)的可能性 p_qsum = sum(p_q); for i = 1 : N p_q(i) = p_q(i) / p_qsum;%各個(gè)粒子進(jìn)行權(quán)值歸一化 end % 重采樣 權(quán)重大的粒子多采點(diǎn),權(quán)重小的粒子少采點(diǎn), 相當(dāng)于每一次都進(jìn)行重采樣; for i = 1 : N p_u = rand; p_qtempsum = 0; for j = 1 : N p_qtempsum = p_qtempsum + p_q(j); if p_qtempsum = p_u p_xpart(i) = p_xpartminus(j); %在這里 xpart(i) 實(shí)現(xiàn)循環(huán)賦值;終于找到了這里! break; end end end p_x_estimate = mean(p_xpart); % p_x_estimate = 0;% for i = 1 : N% p_x_estimate =p_x_estimate + p_q(i)*p_xpart(i);% end %不敏卡爾曼濾波器 %采樣點(diǎn)的選取 存在x(i) u_x_par = u_x_estimate; for i = 2 : (u_symmetry_number+1) u_x_par(i,:) = u_x_estimate + sqrt(u_symmetry_number+u_k) * u_P); end for i = (u_symmetry_number+2) : u_total_number u_x_par(i,:) = u_x_estimate - sqrt(u_symmetry_number+u_k) * u_P); end %計(jì)算權(quán)值 u_w_1 = u_k/(u_symmetry_number+u_k); u_w_N1 = 1/(2 * (u_symmetry_number+u_k); %把這些粒子通過(guò)傳遞方程 得到下一個(gè)狀態(tài) for i = 1: u_total_number u_x_par(i) = 0.5 * u_x_par(i) + 25 * u_x_par(i)/(1+u_x_par(i)2) + 8 * cos(1.2*(k-1); end %傳遞后的均值和方差 u_x_next = u_w_1 * u_x_par(1); for i = 2 : u_total_number u_x_next = u_x_next + u_w_N1 * u_x_par(i); end u_p_next = Q + u_w_1 * (u_x_par(1)-u_x_next) * (u_x_par(1)-u_x_next); for i = 2 : u_total_number u_p_next = u_p_next + u_w_N1 * (u_x_par(i)-u_x_next) * (u_x_par(i)-u_x_next); end % %對(duì)傳遞后的均值和方差進(jìn)行采樣 產(chǎn)生粒子 存在y(i)% u_y_2obser(1) = u_x_next;% for i = 2 : (u_symmetry_number+1)% u_y_2obser(i,:) = u_x_next + sqrt(u_symmetry_number+k) * u_p_next);% end% for i = (u_symmetry_number + 2) : u_total_number% u_y_2obser(i,:) = u_x_next - sqrt(u_symmetry_number+u_k) * u_p_next);% end%另外存在y_2obser(i) 中; for i = 1 :u_total_number u_y_2obser(i,:) = u_x_par(i); end %通過(guò)觀測(cè)方程 得到一系列的粒子 for i = 1: u_total_number u_y_2obser(i) = u_y_2obser(i)2/20; end %通過(guò)觀測(cè)方程后的均值 y_obse u_y_obse = u_w_1 * u_y_2obser(1); for i = 2 : u_total_number u_y_obse = u_y_obse + u_w_N1 * u_y_2obser(i); end %Pzz測(cè)量方差矩陣 u_pzz = R + u_w_1 * (u_y_2obser(1)-u_y_obse)*(u_y_2obser(1)-u_y_obse); for i = 2 : u_total_number u_pzz = u_pzz + u_w_N1 * (u_y_2obser(i) - u_y_obse)*(u_y_2obser(i) - u_y_obse); end %Pxz狀態(tài)向量與測(cè)量值的協(xié)方差矩陣 u_pxz = u_w_1 * (u_x_par(1) - u_x_next)* (u_y_2obser(1)-u_y_obse); for i = 2 : u_total_number u_pxz = u_pxz + u_w_N1 * (u_x_par(i) - u_x_next) * (u_y_2obser(i)- u_y_obse); end %卡爾曼增益 u_K = u_pxz/u_pzz; %估計(jì)量的更新 u_x_next_optimal = u_x_next + u_K * (y - u_y_obse);%第一步的估計(jì)值 + 修正值; u_x_estimate = u_x_next_optimal; %方差的更新 u_p_next_update = u_p_next - u_K * u_pzz * u_K; u_P = u_p_next_update; %進(jìn)行畫(huà)圖程序 x_array = x_array,x; e_x_estimate_array = e_x_estimate_array,e_x_estimate; p_x_estimate_array = p_x_estimate_array,p_x_estimate; u_x_estimate_array = u_x_estimate_array,u_x_estimate; e_error(k,:) = abs(x_array(k)-e_x_estimate_array(k); p_error(k,:) = abs(x_array(k)-p_x_estimate_array(k); u_error(k,:) = abs(x_array(k)-u_x_estimate_array(k); end t = 0 : tf; figure; plot(t,x_array,k.,t,e_x_estimate_array,r-,t,p_x_estimate_array,g-,t,u_x_estimate_array,b:); set(gca,FontSize,10); set(gcf,color,White); xlabel(時(shí)間步長(zhǎng));% lable -label 我的神 ylabel(狀態(tài)); legend(真實(shí)值,EKF估計(jì)值,PF估計(jì)值,UKF估計(jì)值); figure; plot(t,x_array,k.,t,p_x_estimate_array,g-, t, p_x_estimate_array-1.96*sqrt(P), r:, t, p_x_estimate_array+1.96*sqrt(P), r:); set(gca,FontSize,10); set(gcf,color,White); xlabel(時(shí)間步長(zhǎng));% lable -label 我的神 ylabel(狀態(tài)); legend(真實(shí)值,PF估計(jì)值, 95% 置信區(qū)間); %root mean square 平均值的平方根 e_xrms = sqrt(norm(x_array-e_x_estimate_array)2)/tf); disp(EKF估計(jì)誤差均方值=,num2str(e_xrms); p_xrms = sqrt(norm(x_array-p_x_estimate_array)2)/tf); disp(PF估計(jì)誤差均方值=,num2str(p_xrms); u_xrms = sqrt(norm(x_array-u_x_estimate_array)2)/tf); disp(UKF估計(jì)誤差均方值=,num2str(u_
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 供電公司外委管理辦法
- 虛擬展覽技術(shù)-洞察及研究
- 智慧教室材料管理辦法
- 養(yǎng)蜂管理辦法(試行)
- 村級(jí)資金使用管理辦法
- 農(nóng)村便利設(shè)施管理辦法
- 使用軟件考勤管理辦法
- 數(shù)字技術(shù)在工作變革和家庭平衡中的應(yīng)用與影響研究
- 環(huán)境適應(yīng)性培訓(xùn)-洞察及研究
- 新疆汽車(chē)轉(zhuǎn)讓管理辦法
- 計(jì)劃開(kāi)、竣工日期和施工進(jìn)度網(wǎng)絡(luò)圖112
- 2024初中數(shù)學(xué)競(jìng)賽七年級(jí)競(jìng)賽輔導(dǎo)講義七年級(jí)專(zhuān)題01 質(zhì)數(shù)那些事
- JJG 693-2011可燃?xì)怏w檢測(cè)報(bào)警器
- 德宏傣族景頗族自治州緬籍“三非”人員管理問(wèn)題研究的開(kāi)題報(bào)告
- 手繪pop海報(bào)制作
- 干濕交替環(huán)境下混凝土受硫酸鹽侵蝕劣化機(jī)理
- 統(tǒng)計(jì)職業(yè)道德規(guī)范內(nèi)容和要求
- GB/T 16886.12-2023醫(yī)療器械生物學(xué)評(píng)價(jià)第12部分:樣品制備與參照材料
- 糞便無(wú)害化處理廠建設(shè)方案
- 智慧的光芒普照每位學(xué)生 論文
- 銷(xiāo)售行業(yè)跑業(yè)務(wù)計(jì)劃書(shū)
評(píng)論
0/150
提交評(píng)論