【滤波跟踪】基于交互式多模型的UKF滤波机动目标跟踪问题研究附matlab代码

本文涉及的产品
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
模型训练 PAI-DLC,100CU*H 3个月
交互式建模 PAI-DSW,每月250计算时 3个月
简介: 【滤波跟踪】基于交互式多模型的UKF滤波机动目标跟踪问题研究附matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法  神经网络预测雷达通信 无线传感器

信号处理图像处理路径规划元胞自动机无人机 电力系统

⛄ 内容介绍

本文研究的实例是一个二维平面的雷达,雷达可以探测到目标的径向距离和

方位角(如下图所示)。这个问题属于单目标跟踪问题,一般来说,如果目标做

匀速直线运动时,跟踪问题十分容易;但当目标做机动时,由于无法准确预知目

标下一时刻的运动状态,使得跟踪变得很困难。这就需要发展合适的目标运动模

型,现在的各种模型大致分为单模型和多模型方法,由于多模型较为复杂,这里

我们仅对单模型方法进行讨论。常用的单模型有匀速模型(CV)、匀加速模型

CA)、Signer模型和均值自适应的“当前”统计模型(CS);多模型有交互式

多模型(IMM)。现实世界中的大部分运动目标都存在各种机动,目标做匀速直

线飞行的概率很小,采用CV模型一般是不可取的,只有当目标做匀速直线飞行

或者近似匀速直线飞行时才能取得很好的效果。机动强度不大时,可以采用CA

模型或者Singer模型;机动强度较大时,采用CS模型后IMM可以取得较好的效果。

这里我们采用CA模型和交互式多模型。

雷达对目标的量测并不真实准确,而是存在一定的随机噪声干扰,一般假设

噪声符合高斯分布。目标跟踪一般在混合坐标系下进行,此时雷达的量测值是距

离和角度信息,而状态量一般为位置、速度和加速度。那么量测方程就是非线性

的,这就需要采用非线性滤波方法,常用的非线性滤波方法有扩展卡尔曼滤波

EKF)、不敏卡尔曼滤波(UKF)和粒子滤波(PF)。EKF算法是较早发展的非

线性滤波算法,该算法是利用非线性方程在预测值附近泰勒展开,忽略高阶项得

到线性化的方程。UKF滤波的基本思想是认为近似非线性函数的分布要比近似非

线性函数本身要容易,该算法基于UT变换来近似非线性函数的分布然后采用标

准卡尔曼滤波算法的框架,相对于EKF算法,UKF具有以下优点:。PF算法采用

随机采样策略,需要的计算量较大,本文没有采用该算法

⛄ 部分代码

clear all;

clc

close all

load Measure.mat%加载量测数据

load Real.mat%加载真实值数据

Z=TimeRPhi(2:3,:);%量测值

Xr=TXYdXdYAxAyTPhi;%真值

 

T=0.1;

pai=[0.8 0.2;0.1 0.9];  %定义一步转移概率矩阵

miu_CV=0;            %匀速运动模型在初始时刻正确的概率

miu_CA=1;            %匀加速运动模型在初始时刻正确概率


%UKF滤波器初始化

alf=0.001;

beta=2;

i=6;

a=((alf)^2-1)*i;

Wm0=a/(i+a);

Wc0=a/(i+a)+(1-(alf)^2+beta);

Wm=1/(2*(i+a));  %求一阶统计特性时的权系数

Wc=1/(2*(i+a));  %求二阶统计特性时的权系数



X1=[10000;0;0;0;0;0];%状态变量初值

P1=diag([0.1,0.1,0.1,0.1,0.1,0.1]);%误差协方差初值

Rk1=diag([100,(0.1/57.3)^2]);%量测噪声方差

% Ta1=[T^2/2 0 T 0 1 0;

%     0 T^2/2 0 T 0 1];

% Ta1=Ta1';%噪声阵

% sigam1=10;

% Qk1=Ta1*Ta1'*sigam1^2;%系统噪声方差初值


I1(:,ii)-X1)*((zk1(:,ii)-Zk1)');

   end

  %计算UKF增益,更新状态向量和方差

   zk1=Z(:,k)-Zk1;

   K1=Pxz1*(inv(Pzz1));

   X1=X1+K1*(Z(:,k)-Zk1);

   P1=Pk1-K1*Pzz1*(K1)';


   Xe1(:,k)=X1;                                  

   

                                                                 %%%%%UKF滤波器开始滤波%%%%%

   %%%%%%计算Sigma点%%%%%%%

   si2(:,1)=X2;

   for ii=2:7

       si2(:,ii)=X2+((i+a)^(0.5))*A2(:,ii-1);

   end

   for ii=8:13

       si2(:,ii)=X2-((i+a)^(0.5))*A2(:,ii-7);

   end

   %%%%%%时间更新%%%%%%%

   %利用状态方程传递取样点

 for ii=1:13

     SI2(:,ii)=FX2(si2(:,ii));

 end

%     %利用预测取样点,权值计算预测均值和协方差

   X2=Wm0*SI2(:,1);

   for ii=2:13

       X2=X2+Wm*SI2(:,ii);

   end

   

   Xk2=X2;

   

   Pk2=Wc0*(SI2(:,1)-X2)*((SI2(:,1)-X2)');

   for ii=2:13

       Pk2=Pk2+Wc*(SI2(:,ii)-X2)*((SI2(:,ii)-X2)');

   end

   Pk2=Pk2+Qk2;

   

   %利用预测取样点预测测量取样点

    for ii=1:13

     zk2(:,ii)=FZ(SI2(:,ii));

    end

   

   %预测测量值

   Zk2=Wm0*zk2(:,1);

   for ii=2:13

       Zk2=Zk2+Wm*zk2(:,ii);

   end

   %%%%%%量测更新%%%%%%%

   %预测协方差

   Pzz2=Wc0*(zk2(:,1)-Zk2)*((zk2(:,1)-Zk2)');

   for ii=2:13

       Pzz2=Pzz2+Wc*(zk2(:,ii)-Zk2)*((zk2(:,ii)-Zk2)');

   end

   Pzz2=Pzz2+Rk2;

 

   Pxz2=Wc0*(SI2(:,1)-X2)*((zk2(:,1)-Zk2)');

   for ii=2:13

       Pxz2=Pxz2+Wc*(SI2(:,ii)-X2)*((zk2(:,ii)-Zk2)');

   end

  %计算UKF增益,更新状态向量和方差

    zk2=Z(:,k)-Zk2;

   K2=Pxz2*(inv(Pzz2));

   X2=X2+K2*(Z(:,k)-Zk2);

   P2=Pk2-K2*Pzz2*(K2)';

   Xe2(:,k)=X2;                                  

   %----------------------------------------------------------------------

   %第三步 模型概率更新

    %计算模型匹配函数

   like1=exp(-0.5*zk1'*inv(Pzz1)*zk1)/(sqrt(det(2*3.1415926*Pzz1)));

   like2=exp(-0.5*zk2'*inv(Pzz2)*zk2)/(sqrt(det(2*3.1415926*Pzz2)));  

   

   c_1=pai(1,1)*miu_CV+pai(2,1)*miu_CA;

   c_2=pai(1,2)*miu_CV+pai(2,2)*miu_CA;

   c=like1*c_1+like2*c_2;

   miu_CV=like1*c_1/c;

   miu_CA=like2*c_2/c;

   

   %----------------------------------------------------------------------

   %第四步 估计融合  

   X=X1*miu_CV+X2*miu_CA;

   

   Xe(:,k)=X;

   X11=X1;

   X22=X2;

   P11=P1;

   P22=P2;

   

end



figure(1)

plot(Xr(2,:)-Xe(1,:),'r')



figure(2)

plot(Xr(3,:)-Xe(2,:),'r')


figure(3)

plot(Xr(4,:)-Xe(3,:),'r')


figure(4)

plot(Xr(5,:)-Xe(4,:),'r')


figure(5)

plot(Xr(6,:)-Xe(5,:),'r')


figure(6)

plot(Xr(7,:)-Xe(6,:),'r')

⛄ 运行结果

⛄ 参考文献

[1]崇阳, 张科, 吕梅柏. 基于"当前"模型的IMM-UKF机动目标跟踪融合算法研究[J]. 西北工业大学学报, 2011, 29(6):8.

❤️ 关注我领取海量matlab电子书和数学建模资料
❤️部分理论引用网络文献,若有侵权联系博主删除



相关实践学习
使用PAI-EAS一键部署ChatGLM及LangChain应用
本场景中主要介绍如何使用模型在线服务(PAI-EAS)部署ChatGLM的AI-Web应用以及启动WebUI进行模型推理,并通过LangChain集成自己的业务数据。
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
相关文章
基于GARCH-Copula-CVaR模型的金融系统性风险溢出效应matlab模拟仿真
本程序基于GARCH-Copula-CVaR模型,使用MATLAB2022A仿真金融系统性风险溢出效应。核心功能包括计算违约点、资产价值波动率、信用溢价及其直方图等指标。GARCH模型用于描述资产收益波动性,Copula捕捉依赖结构,CVaR度量极端风险。完整代码无水印输出。 具体步骤:首先通过GARCH模型估计单个资产的波动性,再利用Copula方法构建多资产联合分布,最后应用CVaR评估系统性风险。程序展示了详细的运行结果和图表分析,适用于金融市场风险量化研究。
基于CS模型和CV模型的多目标协同滤波跟踪算法matlab仿真
本项目基于CS模型和CV模型的多目标协同滤波跟踪算法,旨在提高复杂场景下多个移动目标的跟踪精度和鲁棒性。通过融合目标间的关系和数据关联性,优化跟踪结果。程序在MATLAB2022A上运行,展示了真实轨迹与滤波轨迹的对比、位置及速度误差均值和均方误差等关键指标。核心代码包括对目标轨迹、速度及误差的详细绘图分析,验证了算法的有效性。该算法结合CS模型的初步聚类和CV模型的投票机制,增强了目标状态估计的准确性,尤其适用于遮挡、重叠和快速运动等复杂场景。
分别通过LS和RML进行模型参数辨识matlab仿真
本程序通过最小二乘法(LS)和递归最大似然估计(RML)进行模型参数辨识,并在MATLAB2022A中仿真。仿真输出包括参数辨识误差及收敛值。程序展示了两种方法的参数估计值及其误差收敛情况,适用于控制系统设计与分析。最小二乘法适合离线批量处理,而RML则适用于实时在线处理。核心代码实现了LS辨识,并绘制了参数估计值和误差变化图。
数据链中常见电磁干扰matlab仿真,对比噪声调频,线性调频,噪声,扫频,灵巧五种干扰模型
本项目展示了用于分析和模拟电磁干扰对数据链系统影响的算法。通过Matlab 2022a运行,提供无水印效果图预览。完整代码包含详细中文注释及操作视频。理论部分涵盖五种常见干扰模型:噪声调频、线性调频、噪声、扫频和灵巧干扰,详细介绍其原理并进行对比分析。灵巧干扰采用智能技术如认知无线电和机器学习,自适应调整干扰策略以优化效果。
基于Adaboost模型的数据预测和分类matlab仿真
AdaBoost(Adaptive Boosting)是一种由Yoav Freund和Robert Schapire于1995年提出的集成学习方法,旨在通过迭代训练多个弱分类器并赋予分类效果好的弱分类器更高权重,最终构建一个强分类器。该方法通过逐步调整样本权重,使算法更关注前一轮中被误分类的样本,从而逐步优化模型。示例代码在MATLAB 2022A版本中运行,展示了随着弱分类器数量增加,分类错误率的变化及测试数据的分类结果。
303 13
基于HMM隐马尔可夫模型的金融数据预测算法matlab仿真
本项目基于HMM模型实现金融数据预测,包括模型训练与预测两部分。在MATLAB2022A上运行,通过计算状态转移和观测概率预测未来值,并绘制了预测值、真实值及预测误差的对比图。HMM模型适用于金融市场的时间序列分析,能够有效捕捉隐藏状态及其转换规律,为金融预测提供有力工具。
基于HASM模型的高精度建模matlab仿真
本课题使用HASM进行高精度建模,介绍HASM模型及其简化实现方法。HASM模型基于层次化与自适应统计思想,通过多层结构捕捉不同尺度特征,自适应调整参数,适用于大规模、高维度数据的分析与预测。MATLAB2022A版本运行测试,展示运行结果。
|
8月前
|
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
本文介绍了2023年高教社杯数学建模竞赛D题的圈养湖羊空间利用率问题,包括问题分析、数学模型建立和MATLAB代码实现,旨在优化养殖场的生产计划和空间利用效率。
310 6
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
本文提供了2022年华为杯数学建模竞赛B题的详细方案和MATLAB代码实现,包括方形件组批优化问题和排样优化问题,以及相关数学模型的建立和求解方法。
191 3
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
本文介绍了2023年五一杯数学建模竞赛B题的解题方法,详细阐述了如何通过数学建模和MATLAB编程来分析快递需求、预测运输数量、优化运输成本,并估计固定和非固定需求,提供了完整的建模方案和代码实现。
230 0
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等