Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
初级会员
注册日期: 2009-05-14
年龄: 37
帖子: 4
声望力: 0 ![]() |
![]() ![]() %卡尔曼滤波仿真 clear; clc; A=eye(4); T=0.5; A(5)=T; A(15)=T; %转移矩阵 xe=0,ve=5,xn=0,vn=5; X0=[xe;ve;xn;vn];%状态变量 X=[X0 zeros(4,99)]; H=[0 T*ve/sqrt(ve^2+vn^2) 0 T*vn/sqrt(ve^2+vn^2);0 vn/(vn^2+ve^2) 0 -ve/(vn^2+ve^2)]; P=[10 0 0 0;0 1 0 0;0 0 10 0;0 0 0 1];%初始的协方差 Q=[0.5 0 0 0;0 0.5 0 0;0 0 0.5 0;0 0 0 0.5]; R=[0.5 0;0 0.5]; Z=zeros(2,99); for n=1:99 if n==1 Z(:,1)=[5*sqrt(2)*0.5+wgn(1,1,1);pi/4+0.01*wgn(1,1,1)]; X(:,1)=[Z(1,1)*sin(Z(2,1));5;Z(1,1)*cos(Z(2,1));5] else n>1 t=n*T; Z(:,n)=[5*(2^0.5)*t+wgn(1,1,1);pi/4+0.01*wgn(1,1,1)]%观测信息 X2(:,n)=A*X(:,n-1);%求先验估计 P2=A*P*A'+Q;%求先验估计协方差 K=P2*H'*inv(H*P2*H'+R);%求最佳增益 X(:,n)=X2(:,n)+K*(Z(:,n)-H*X2(:,n));%求估计值 P=(eye(4)-K*H)*P2%求协方差 end end figure(1); t=0.5:0.5:50; plot(t,X(1, ![]() figure(2); plot(t,X(3, ![]() figure(3); n=1:99; plot(n,Z(1,n).*cos(Z(2,n)),'b*');title('ye的滤波前轨迹'); |
![]() |
![]() |
![]() |
#2 |
初级会员
注册日期: 2009-05-14
年龄: 37
帖子: 4
声望力: 0 ![]() |
![]()
怎么没有高手帮忙看下呢???
|
![]() |
![]() |