⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 kalman.m

📁 KALMAN滤波源程序
💻 M
字号:
clear all
A= [1 1 0 0;0 1 0 0;0 0 1 1;0 0 0 1];
B=[0.5 0; 1 0;0 0.5; 0 1];
C=[1 0 0 0;0 0 1 0];
q=1000;
Q=q*eye(2);
I=eye(4);
R=[1 0;0 1];
P(:,:,1)=[1 1 0 0;1 2 0 0;0 0 1 1;0 0 1 2];
W=randn(2,50)*q^0.5;
V=randn(2,50); 
X(:,1)=[5 1 7 2]';  %X(:,1)表示矩阵X的第一列
for i=1:50
    X(:,i+1)=A*X(:,i)+B*W(:,i);	
    Y(:,i)=C*X(:,i)+V(:,i);         %仿真数据产生
end
Xg(:,1)=[5 1 7 2]';
P(:,:,1)=[1 1 0 0;1 2 0 0;0 0 1 1;0 0 1 2];
for k=1:49
    P1(:,:,k+1)=A*P(:,:,k)*A'+B*Q*B';
    H(:,:,k+1)=P1(:,:,k+1)*C'*inv(C*P1(:,:,k+1)*C'+R);
    P(:,:,k+1)=(I-H(:,:,k+1)*C)*P1(:,:,k+1);
    Xg(:,k+1)=A*Xg(:,k)+H(:,:,k+1)*(Y(:,k+1)-C*A*Xg(:,k));
end
t=1:50;
u=1:51;
figure(1);
plot(t,Xg(1,:),'b',u,X(1,:),'r');
title('???¨?á??');
figure(2);
plot(t,Xg(2,:),'b',u,X(2,:),'r');
title('???¨?á??');
figure(3);
plot(t,Xg(3,:),'b',u,X(3,:),'r');
title('???¨?á??');
figure(4);
plot(t,Xg(4,:),'b',u,X(4,:),'r');
title('???¨?á??');


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -