✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,代码获取、论文复现及科研仿真合作可私信。
🍎个人主页:Matlab科研工作室
🍊个人信条:格物致知。
🔥 内容介绍
信息融合技术是指通过对多源信息进行有效整合和处理,从而获取比单一信息源更完整和精确的信息的一种技术。随着传感器技术的发展,多源信息融合成为信息获取的主流手段。雷达和红外传感器都是重要的目标检测传感器,它们具有不同的工作原理,可以互补各自的不足。将两者数据进行融合可以提升目标检测的精度和可靠性。
扩展卡尔曼滤波(Extended Kalman Filter, EKF)是一种非线性状态估计技术,它通过线性化处理,将卡尔曼滤波推广应用于非线性系统。EKF可以很好地处理雷达和红外传感器测量值之间的非线性关系,实现两者信息的有效融合。
本文采用EKF实现雷达和红外数据的融合过程如下:
-
建立系统动力学模型。这里将目标的运动状态量定义为状态变量,采用常规动力学模型描述目标的运动规律。
-
建立测量模型。其中雷达测量模型考虑了距离和角度信息,红外测量模型考虑了目标像素坐标和强度信息。两者测量值与状态变量之间存在非线性关系。
-
预测阶段。根据系统动力学模型,利用上次估计状态对当前状态进行预测。
-
更正阶段。当有新测量值时,通过EKF对预测状态进行线性化,并利用卡尔曼增益对预测误差进行修正,得到当前最优估计状态。
-
迭代运算。以预测-更新循环的方式重复执行上述步骤,实时追踪和修正目标状态估计值。
通过实验验证,与单一传感器相比,基于EKF的雷达和红外数据融合方法可以有效提升目标检测和跟踪的精度,尤其是在目标部分特征失效或遮挡的情况下,融合后系统的鲁棒性能得到很大提升。该方法具有广泛的应用前景,可以用于航空航天、自动驾驶等多源信息融合领域。
📣 部分代码
Pasyn=zeros(6,6,TimesOut);
nCount=0;
j=0;
q=0.01; % q是系统噪声标准差
Q=q^2*eye(3); % 系统各方向的状态噪声方差
for i=1:times
%-------------同步-------------
Ks=fix((Tf-Tao0_Radar)/T0Radar)+1;
nCount=nCount+1;
if nCount>=Ks
nCount=0;
j=j+1;
delt_t=Tf-(Ks-1)*T-Tao0_Radar;%计算融合同步时间差
phi_t=[1 delt_t 0 0 0 0;
0 1 0 0 0 0;
0 0 1 delt_t 0 0;
0 0 0 1 0 0;
0 0 0 0 1 delt_t;
0 0 0 0 0 1];
Xasyn(:,:,j)=phi_t*X2(:,:,i);%预测(次优滤波)
% Xasyn(:,:,j)=phi_t*XTrueRadar(:,:,i);%预测(次优滤波)
G=[delt_t^2/2 0 0;
delt_t 0 0;
0 delt_t^2/2 0;
0 delt_t 0;
0 0 delt_t^2/2;
0 0 delt_t];
Q1=G*Q*G';
Pasyn(:,:,j)=phi_t*P2(:,:,i)*phi_t'+Q1';%预测(次优滤波)误差阵
Tao0_Radar=Ks*T+Tao0_Radar-Tf;%计算下一个融合周期内的时标差
end
end
%-------------同步结束-------------
%-------------转换为极坐标下值---------------------------------------------------------------
for i=1:TimesOut
%模型观测距离
% range=(X2(1,1,i)^2+X2(3,1,i)^2+X2(5,1,i)^2)^0.5;
%模拟观测方位角度
azimuth=atan(Xasyn(1,1,i)/Xasyn(3,1,i)); %%%%% 这里采用的是孙忠康的雷达数据处理中323页的公式 注意其方位角的公式与一般不同!!!!!!!
%
if azimuth>2*pi
azimuth=azimuth-2*pi;
else if azimuth < 0
azimuth=azimuth+2*pi;
end;
end;
%观测俯仰角度
pitching=atan(Xasyn(5,1,i)/(Xasyn(1,1,i)^2+Xasyn(3,1,i)^2)^0.5);
if pitching>pi/2
pitching=pitching-pi;
else if pitching<-pi/2
pitching=pitching+pi;
end;
end;
%观测方位角速度
%观测方位角速度
azimuth_w=(Xasyn(3,1,i)*Xasyn(2,1,i)-Xasyn(1,1,i)*Xasyn(4,1,i))/(Xasyn(1,1,i)^2+Xasyn(3,1,i)^2) ;
Zasyn(:,:,i)=[azimuth;
pitching;
azimuth_w;
pitching_w];
end;
%-------------转换为极坐标系下值结束-------------
% p=1:TimesOut;
% for i=1:TimesOut
% A(i)=Zasyn(1,1,i);
% end
% plot(p,A);
⛳️ 运行结果
🔗 参考文献
[1] 郑志刚.基于扩展Kalman滤波的ADS和雷达的数据融合的研究[D].中国民用航空学院 中国民航大学,2003.
[2] 张翊安,刘世前,敬忠良,et al.雷达和红外融合对高机动目标跟踪仿真研究[J].计算机仿真, 2011, 28(10):5.DOI:CNKI:SUN:JSJZ.0.2011-10-007.
[3] 付亚平.信息融合技术在移动机器人定位中的应用研究[D].南京邮电大学,2013.