资源简介
二维卡尔曼滤波,使用singer模型。
这是目标作机动时,卡尔曼滤波模型采用singer模型的matlab 程序.
代码片段和文件信息
clc;close all;clear;
T = 2; %采样周期
% sigmaQ = 100;
sigmaR = 200;
N = 100;
F=[1 T T^2/2 0 0 0;
0 1 T 0 0 0;
0 0 1 0 0 0;
0 0 0 1 T T^2/2;
0 0 0 0 1 T;
0 0 0 0 0 1];%状态转移矩阵
H = [1 0 0 0 0 0;
0 0 0 1 0 0];%量测矩阵
R = [sigmaR^2 0;
0 sigmaR^2];%量测协方差
qq11 = T^5/20;
qq12 = T^4/8;
qq13 = T^3/6;
qq22 = T^3/3;
qq23 = T^2/2;
qq33 = T;
Q=[qq11 qq12 qq13 0 0 0;
qq12 qq22 qq23 0 0 0;
qq13 qq23 qq33 0 0 0;
0 0 0 qq11 qq12 qq13;
0 0 0 qq12 qq22 qq23;
0 0 0 qq13 qq23 qq33];%过程噪声协方差
%初始化跟踪曲线
X = track2D(0.1N);
X = [X(1:2:);0.1*randn(1N);X(3:4:);0.14*randn(1N)];
Z = [X(1:);X(4:)];
% Z = X;
% X = reshape(X61100);
% %直角坐标转极坐标
% for i = 1:N
% d = sqrt(X(1i)^2+X(4i)^2);
% sita = atan(X(4i)/X(1i));
% end
% %极坐标测量误差
% d = d + sigmaR*randn(1N);
% sita = sita + 0.001*randn(1N);
% %极坐标转直角坐标
% for i = 1:N
% Z(1i) = d(1i)*cos(sita(1i));
% Z(2i) = d(1i)*sin(sita(1i));
% end
X = reshape(X61N);
Z = Z + sigmaR*randn(2N);
Z = reshape(Z21N);%测量数据
for i = 1:N
xtr(i) = Z(11i);
ytr(i) = Z(21i);
end
plot(xtrytr‘.-‘);
% xe(::1) = Z(::1);
xe(::2) = [Z(112)(Z(112)-Z(111))/T2*(Z(112)-Z(111))/T^2...
Z(212)(Z(212)-Z(211))/T2*(Z(212)-Z(211))/T^2]‘;
xp(::1) = zeros(61);
xp(::2) = zeros(61);
%滤波协方差初始化
P11=R(11);
P12=R(11)/T;
P13=R(11)/T^2;
P22=2*R(11)/T^2;
P23=3*R(11)/T^3;
P33=6*R(11)/T^4;
P44=R(22);
P45=R(22)/T;
P46=R(22)/T^2;
P55=2*R(22)/T^2;
P56=3*R(22)/T^3;
P66=6*R(22)/T^4;
p(::2)=[P11 P12 P13 0 0 0;
P12 P22 P23 0 0 0;
P13 P23 P33 0 0 0;
0 0 0 P44 P45 P46;
0 0 0 P45 P55 P56;
0 0 0 P46 P56 P66];
for k = 3:N
xp(::k) = F*xe(::k-1);
a(::k) = Z(::k)-H*xp(::k);%新息
pt(::k) = F*p(::k-1)*F‘+Q;
A(::k) = H*pt(::k)*H‘+R;
K(::k) = pt(::k)*H‘*inv(A(::k));
xe(::k) = xp(::k)+K(::k)*a(::k);
p(::k) = (eye(6)-K(::k)*H)*pt(::k);
end
for i = 1:N;
xtr(i) = xe(11i);
ytr(i) = xe(41i);
end
plot(xtrytr‘.-‘);
legend(‘真轨迹‘‘测量轨迹‘‘跟踪轨迹‘);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2318 2018-09-08 10:42 main.m
文件 531 2018-09-08 10:41 track2D.m
----------- --------- ---------- ----- ----
2849 2
相关资源
- Matlab+GUIDE使用总结--Matlab+GUI界面
- SVPWM整流器matlab仿真
- 自己用matlab写的jpeg压缩,解压程序
- matlab中实现遗传算法求解旅行商问题
- isight调用matlab
- 利用matlab实现H-infinity鲁棒控制
- 强化学习matlab代码
- 光伏电池输出特性曲线MATLAB代码
- 基于LMS算法的均衡器MATLAB实现代码
- 蚁群、粒子群、GA、TS等算法解决Job
- matlab关于商场人数的泊松随机过程仿
- 脉冲编码调制PCM调制与解调
- 64QAM调制解调
- matlab遗传算法程序以求解函数的极值
- 毕业论文 基于matlab的PSK通信系统仿真
- matlab 代码实现 信号 数字 变频
- KUKA六关节机器人matlab仿真
- hurst指数的MATLAB实现
- PSO-RBF的MATLAB程序实现
- 商人过河MATLAB.rar
- MatlabR2017aWin64Crack.rar
- Student_5_BDS_Positioning.m
- IEEE-6 14 30节点系统 MATLAB 潮流计算
- 飞行器六自由度建模 线性化 matlab程序
-
三相电压不平衡度计算 simuli
nk模型 - PMSM矢量控制
- xPC target
- MATLAB与DSP进行UDP通信的简单程序
- 内点法最优潮流MATLAB算法
- Logistic曲线的三种参数估计方法及ma
评论
共有 条评论