卡尔曼滤波MATLAB代码Word格式.docx

上传人:b****3 文档编号:15406976 上传时间:2022-10-30 格式:DOCX 页数:2 大小:15.72KB
下载 相关 举报
卡尔曼滤波MATLAB代码Word格式.docx_第1页
第1页 / 共2页
卡尔曼滤波MATLAB代码Word格式.docx_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

卡尔曼滤波MATLAB代码Word格式.docx

《卡尔曼滤波MATLAB代码Word格式.docx》由会员分享,可在线阅读,更多相关《卡尔曼滤波MATLAB代码Word格式.docx(2页珍藏版)》请在冰豆网上搜索。

卡尔曼滤波MATLAB代码Word格式.docx

%系统噪音和观测噪音的设定

Q=1;

R=1;

%数据个数

N=300;

%噪音生成

v=randn(N,1)*sqrtm(Q);

w=randn(N,1)*sqrtm(R);

%真值x和观测数据y的生成

x=zeros(N,2);

y=zeros(N,1);

y

(1)=H*x(1,:

)'

+w

(1);

fork=2:

N

x(k,:

)=F*x(k-1,:

+G'

*v(k-1);

y(k)=H*x(k,:

+w(k);

end

%推测值的保存内存生成

xest=zeros(N,2);

%初始推测值设定

V=[1,0;

0,1];

xest(1,:

)=[0,0];

卡尔曼滤波主函数

function[xest_a,V_a,K]=KF(F,G,H,Q,R,y,xest,V)

%KF(F,G,H,Q,R,y,xest,V)

%x(t)=Fx(t-1)+Gv(t)

%y(t)=Hx(t)+w(t)

%y:

观测数据

%xest:

状态的初始推测值

%xest_a:

状态的推定値

%行向量变列向量

xest=xest(:

);

%预测阶段

xest_f=F*xest;

%状态的预测值

V_f=F*V*F'

+G*Q*G'

;

K=V_f*H'

/(H*V_f*H'

+R);

%推测阶段

xest_a=xest_f+K*(y-H*xest_f);

%状态的推测值

V_a=V_f-K*H*V_f;

时刻2开始调用主函数

[xest(k,:

),V,K]=KF(F,G,H,Q,R,y(k),xest(k-1,:

),V);

输出图plot

figure

(1),clf

plot(1:

N,x(:

2),'

black'

1:

N,xest(:

b--'

xlabel('

时刻t'

),ylabel('

状态向量x的第二行'

),legend('

真值'

'

状态的推测值'

有疑问群里找我

By刹那恍惚

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 公共行政管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1