日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

Matlab之Kalman:用线性系统状态方程,通过系统输入输出观测数据,对系统状态进行最优估计的算法

發布時間:2025/3/21 windows 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Matlab之Kalman:用线性系统状态方程,通过系统输入输出观测数据,对系统状态进行最优估计的算法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Matlab之Kalman:用線性系統狀態方程,通過系統輸入輸出觀測數據,對系統狀態進行最優估計的算法

?

?

目錄

問題探究

卡爾曼濾波及數據濾波

代碼實現


?

?

?

問題探究

用線性系統狀態方程,通過系統輸入輸出觀測數據,對系統狀態進行最優估計的算法。

?

?

?

卡爾曼濾波及數據濾波

? ? ? ?卡爾曼濾波(Kalman filtering)一種利用線性系統狀態方程,通過系統輸入輸出觀測數據,對系統狀態進行最優估計的算法。由于觀測數據中包括系統中的噪聲和干擾的影響,所以最優估計也可看作是濾波過程。
? ? ? ?斯坦利·施密特(Stanley Schmidt)首次實現了卡爾曼濾波器。卡爾曼在NASA埃姆斯研究中心訪問時,發現他的方法對于解決阿波羅計劃的軌道預測很有用,后來阿波羅飛船的導航電腦使用了這種濾波器。 關于這種濾波器的論文由Swerling (1958), Kalman (1960)與 Kalman and Bucy (1961)發表。
? ? ? ?數據濾波是去除噪聲還原真實數據的一種數據處理技術, Kalman濾波在測量方差已知的情況下能夠從一系列存在測量噪聲的數據中,估計動態系統的狀態. 由于, 它便于計算機編程實現, 并能夠對現場采集的數據進行實時的更新和處理, Kalman濾波是目前應用最為廣泛的濾波方法, 在通信, 導航, 制導與控制等多領域得到了較好的應用

?

?

代碼實現

clear all; clc; close all;N=2000; gv=0.0332; m=500; a=[-1.6 1.46 -0.616 0.1525]; Q2=0.005;%觀測噪聲方差 w=zeros(m*4,N); alpher=zeros(m,N);for j=1:mv=randn(1,N)*sqrt(gv);u=filter(1,a,v);F=eye(4,4); d=u; C=zeros(4,N); for i=5:NC(:,i)=[u(i-1);u(i-2);u(i-3);u(i-4)]; end C(:,1)=[0;0;0;0]; C(:,2)=[d(1);0;0;0]; C(:,3)=[d(2);d(2);0;0]; C(:,4)=[d(3);d(2);d(1);0];p_esti=eye(4,4);%狀態誤差自相關矩陣for i=2:Nw([4*j-3,4*j-2,4*j-1,4*j],i)=w([4*j-3,4*j-2,4*j-1,4*j],i-1);%一步預測誤差alpher(j,i)=d(i)-C(:,i)'*w([4*j-3,4*j-2,4*j-1,4*j],i).'';%計算信息過程p_pre=p_esti;%一步預測誤差自相關矩陣A=C(:,i)'*p_pre*C(:,i)+Q2;%新息過程自相關矩陣k=p_pre*C(:,i)/A;w([4*j-3,4*j-2,4*j-1,4*j],i)=w([4*j-3,4*j-2,4*j-1,4*j],i)+k*alpher(j,i);%狀態估計p_esti=p_pre-k*C(:,i)'*p_pre;%狀態估計誤差自相關矩陣 endendMSE=sum(alpher.^2)/m; MSE=MSE/max(MSE); MSE=10*log10(MSE); figure(1) plot(MSE); title(' 均方誤差變化曲線'); xlabel('迭代次數n');ylabel('MSE');w_aver=zeros(4,N); for i=1:mw_aver(1,:)=w_aver(1,:)+w(4*i-3,:);w_aver(2,:)=w_aver(2,:)+w(4*i-2,:);w_aver(3,:)=w_aver(3,:)+w(4*i-1,:);w_aver(4,:)=w_aver(4,:)+w(4*i,:); endw_aver=w_aver/m; figure(2) hold on; plot(w_aver(1,:),'b'); plot(w_aver(2,:),'b'); plot(w_aver(3,:),'b'); plot(w_aver(4,:),'b'); title('權向量的估計'); xlabel('迭代次數n');ylabel('抽頭權值'); hold off;

?

?

?

總結

以上是生活随笔為你收集整理的Matlab之Kalman:用线性系统状态方程,通过系统输入输出观测数据,对系统状态进行最优估计的算法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。