%**********利用Singer模型算法对机动目标进行跟踪*************
function [xx5,yy5,ex5,exv5]=singer(T,r,N)
clc
clear
close all
% %***************仿真条件********************
T=2; %雷达扫描周期
r=10000; %量测误差方差
N=50;%Monte Carlo仿真次数
%alpha=1/60;%机动时间常数的倒数,即机动频率
F=[1 T (1/2)*T^2 0 0 0;
0 1 T 0 0 0;
0 0 1 0 0 0;
0 0 0 1 T (1/2)*T^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];%量测矩阵
sigmax=r;%X方向量测噪声方差
sigmay=r;%Y方向量测噪声方差
R=[sigmax 0;
0 sigmay];%量测噪声协方差
%sigmaax=0.01;%X方向目标加速度方差
%sigmaay=0.01;%Y方向目标加速度方差
qq11=T^5/20;
qq12=T^4/8;
qq13=T^3/6;
qq22=T^3/3;
qq23=T^2/2;
qq33=T;
qq44=T^5/20;
qq45=T^4/8;
qq46=T^3/6;
qq55=T^3/3;
qq56=T^2/2;
qq66=T;
Q=[qq11 qq12 qq13 0 0 0;
qq12 qq22 qq23 0 0 0;
qq13 qq23 qq33 0 0 0;
0 0 0 qq44 qq45 qq46;
0 0 0 qq45 qq55 qq56;
0 0 0 qq46 qq56 qq66];%过程噪声协方差
for j=1:N
[x,y,zx,zy,NN]=target_movement;
load target_movement_out
z=[zx';zy'];
X=[z(1,3) (z(1,3)-z(1,2))/T (z(1,3)-2*z(1,2)+z(1,1))/T^2 z(2,3) (z(2,3)-z(2,2))/T (z(2,3)-2*z(2,2)+z(2,1))/T^2]';%状态向量初始化
%滤波协方差初始化
P11=R(1,1);
P12=R(1,1)/T;
P13=R(1,1)/T^2;
P22=2*R(1,1)/T^2;
P23=3*R(1,1)/T^3;
P33=6*R(1,1)/T^4;
P44=R(2,2);
P45=R(2,2)/T;
P46=R(2,2)/T^2;
P55=2*R(2,2)/T^2;
P56=3*R(2,2)/T^3;
P66=6*R(2,2)/T^4;
P=[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];
MX(:,3)=X;
EX(j,3)=(X(1)-x(3)).^2;%x方向位置初始方差
EXv(j,3)=(X(2)-vvx(3)).^2;%x方向速度初始方差
EY(j,3)=(X(4)-y(3)).^2;%y方向位置初始方差
EYv(j,3)=(X(5)-vvy(3)).^2;%y方向速度初始方差
for i=4:NN
x1=F*X;
z1=H*x1;
P1=F*P*F'+Q;
S=H*P1*H'+R;
v=z(:,i)-z1;
W=P1*H'*inv(S);
X=x1+W*v;
P=P1-W*S*W';
Mv=v'*inv(S)*v;
MX(:,i)=X;
MEX(:,i,j)=MX(:,i);
EX(j,i)=(X(1)-x(i)).^2;%x方向位置初始方差
EXv(j,i)=(X(2)-vvx(i)).^2;%x方向速度初始方差
EY(j,i)=(X(4)-y(i)).^2;%y方向位置初始方差
EYv(j,i)=(X(5)-vvy(i)).^2;%x方向速度初始方差
end
end
EEX=sqrt(sum(EX)/N);
EEY=sqrt(sum(EY)/N);
exv5=sqrt(sum(EXv)/N);
eyv5=sqrt(sum(EYv)/N);
xx5=MX(1,:);
yy5=MX(4,:);
ex5=EEX;
ey5=EEY;
% ex5=EEY;
i=1:NN;
k=3:1:NN;
l=4:1:NN;
figure(1)
plot(x,y,'--r');
hold on
plot(zx,zy,'-b');
hold on
plot(xx5(k),yy5(k),'-g');
title('动目标跟踪Singer')
xlabel('x方向')
ylabel('y方向')
legend('目标运动真实轨迹','目标运动量测轨迹','跟踪轨迹Singer')
figure(2)
hold on
plot(k,EEX(k),'-r');
title('x方向位置协方差Singer')
xlabel('跟踪步数')
ylabel('x方向')
figure(3)
hold on
plot(k,EEY(k),'-r');
title('y方向位置协方差Singer')
xlabel('跟踪步数')
ylabel('y方向')
figure(4)
hold on
plot(k,exv5(k),'-r');
title('x方向速度协方差Singer')
xlabel('跟踪步数')
ylabel('x方向')
figure(5)
hold on
plot(k,eyv5(k),'-r');
title('y方向速度协方差Singer')
xlabel('跟踪步数')
ylabel('y方向')
Matlab领域
- 粉丝: 3w+
- 资源: 3674
最新资源
- 永磁同步电机无传感,高频脉振注入,采用如图观测器,结果如图,可以跟踪上给定
- 光伏并网逆变器设计方案,附有相关的matlab电路文件,以及DSP的程序代码,方案、仿真文件、代码三者结合使用效果好,事半功倍 备注:赠送逆变器并联环流matlab文件,基于矢量控制的环流抑制策略和
- 西门子1214PLC博图程序例程,版本V16及以上,加KTP700Basic PN触摸屏画面,双相机四轴多工位检测设备案例 程序主要有: 上下双工位4轴脉冲控制步进电机; 与上位机双相机的TCP I
- 计及碳捕集电厂低碳特性需求响应综合能源系统多时间尺度调度模型 关键词:碳捕集电厂 综合灵活运行方式 需求响应 日前调度 实时调度 多时间尺度 参考文档:计及碳捕集电厂低碳特性的含风电电力系统源
- 电力系统随机潮流概率潮流计算MATLAB程序包含蒙特卡洛模拟法、半不变量法+级数展开(Gram-Charlie,Cornish-Fisher); 考虑光伏不确定性(Beta分布),以IEEE34节点为
- 西门子1200伺服步进FB块程序 程序内含两个FB,一个是scl写的,一个是梯形图,可以多轴多次调用,中文注释详细 真实可用,经过在专用设备真实调试运行,可以直接应用到实际项目中 此FB块适合PTO
- 基于单片机家庭安全监控 安全防护设计-仿真原理图程序 主要功能:温度检测、火焰报警、PM2.5检测、按键设置 仿真、原理图、程序
- MATLAB代码:基于主从博弈理论的共享储能与综合能源微网优化运行研究 关键词:主从博弈 共享储能 综合能源微网 优化调度 参考文档:《基于主从博弈理论的共享储能与综合能源微网优化运行研究》完全复现
- 三相两电平并网逆变器仿真模型,电流环双闭环控制,单位功率因数,锁相环
- MATLAB代码:基于概率距离快速削减法的风光场景生成与削减方法 关键词:风光场景生成 场景削减 概率距离削减法 蒙特卡洛法 参考文档:《含风光水的电厂与配电公司协调调度模型》完全复现场景削减部分 仿
- MATLAB代码:含电热联合系统的微电网运行优化 关键词:微网 电热联合系统 优化调度 火参考文档:《含电热联合系统的微电网运行优化》完全复现 仿真平台:MATLAB yalmip+cplex
- MATLAB代码:含冰蓄冷空调的冷热电联供型微网多时间尺度优化调度 关键词:冰蓄冷空调 CCHP-MG 多时间尺度优化 冷热电联供 参考文档:《含冰蓄冷空调的冷热电联供型微网多时间尺度优化调度》完全
- BLDC有感仿真模型 双闭环控制,带霍尔传感器,其中霍尔处理,相逻辑用代码实现的,容易理解,为方便转化到代码
- 基于ISODATA改进算法的负荷场景曲线聚类(适用于风光场景生成) 摘要:代码主要做的是一种基于改进ISODATA算法的负荷场景曲线聚类,代码中,主要做了四种聚类算法,包括基础的K-means算法、I
- 转速、电流双闭环直流调速系统控制器设计 额定功率185w,电压220v,转速1600,电枢电流1.1A 电源电压为5或10v 分别用工程设计法和超前校正发进行仿真,均对空载、额定负载、突加负载(
- 基于PSO算法的光伏MPPT的Simulink仿真实现,可以定制其他算法优化的MPPT,比如:GWO,SSA等 代码质量极高,方便学习
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈