【滤波跟踪】扩展卡尔曼滤波的无人机路径跟踪【含Matlab源码 2236期】

news2025/1/21 7:12:11

⛄一、EKF算法简介

扩展卡尔曼滤波是利用泰勒级数展开方法将非线性滤波问题转化成近似的线性滤波问题,利用线性滤波的理论求解非线性滤波问题的次优滤波算法。其系统的状态方程和量测方程分别如式(1)、式(2)所示:
在这里插入图片描述
式中,X(k)为n维的随机状态向量序列,Z(k)为n维的随机量测向量序列,f(k,x(k))为空气阻力,v(k)、w(k)为零均值的正态(高斯)白噪声序列,其方差分别满足:
在这里插入图片描述
协方差的一步预测为:
在这里插入图片描述
量测预测值为:
在这里插入图片描述
相应的协方差为:
在这里插入图片描述
增益为:
在这里插入图片描述
状态更新方程为:
在这里插入图片描述
协方差更新方程为:
在这里插入图片描述
式中,I为与协方差同维的单位矩阵。

二阶扩展卡尔曼滤波的泰勒展开保留到二阶项,其状态的一步预测为:
在这里插入图片描述
协方差的一步预测为:
在这里插入图片描述
量测预测值为:
在这里插入图片描述

协方差更新方程为:
在这里插入图片描述
式中,I为与协方差同维的单位矩阵。

⛄二、部分源代码

clc;clear
N=501;
T=0.1;
alpha=1/60;
% X=[0 0 0 47.8109 18.1173 47.8109 0 0 0]‘;%%%X初值
X=[10 10 10 47.8109 18.1173 47.8109 1 1 1]’;%状态向量初值
P=diag([1000;1000;1000;10;10;10;10;10;10]).^2;%%%%P初值
n=size(X,1);
% % % %
target=load(‘target.txt’);
% % % % % %
UAV1=load(‘UAV1.txt’);
UAV2=load(‘UAV2.txt’);
Xs1=UAV1(:,2);
Ys1=UAV1(:,3);
Zs1=UAV1(:,4);
Xs2=UAV2(:,2);
Ys2=UAV2(:,3);
Zs2=UAV2(:,4);
% % % % % % 量测信息
measurement=load(‘measurement.txt’);
gama1=measurement(:,2);
eta1=measurement(:,3);
gama2=measurement(:,4);
eta2=measurement(:,5);
% % % % %
v=0.3pi/180randn;
R=v^2eye(4);
% Q=diag([10;10;10;5;5;5;1;1;1]).^2;
O=zeros(3,3);
o=zeros(1,6);
I=eye(3);
E=eye(n);
% % % % % % %
%过程噪声矩阵
Q=diag([10;5;1]);
%%%
F=[I T
I (1/alpha)^2*(-1+alphaT+exp(-alphaT))I;
O I (1/alpha)
(1-exp(-alphaT))I;
O O exp(-alpha
T)I];
U=[(T2/2-(alpha*T-1+exp(-alpha*T))/alpha2)I;
(T-(1-exp(-alpha
T))/alpha)I;
(1-exp(-alpha
T))I];
G=[1/alpha2*((1-exp(-alpha*T))/alpha+alpha*T2/2-T)I;
(T-(1-exp(-alpha
T))/alpha)/alpha
I;
(1-exp(-alpha
T))/alpha
I];
% % % % 系统噪声 以下噪声导致不能收敛
% q11=1/(2alpha5)*(1-exp(-2*alpha*T)+2*alpha*T+2*alpha3T3/3-2*alpha2T^2-4alphaTexp(-alphaT));
% q12=1/(2
alpha4)*(1+exp(-2*alpha*T)-2*exp(-alpha*T)+2*alpha*T*exp(-alpha*T)-2*alpha*T+alpha2T^2);
% q13=1/(2
alpha^3)(1-2exp(-alphaT)+2alphaTexp(-alphaT));
% q22=1/(2
alpha^3)(4exp(-alphaT)-3-exp(-2alphaT)+2alphaT);
% q23=1/(2
alpha^2)(exp(-2alphaT)+1-2alphaT);
% q33=1/(2
alpha)(1-exp(-alphaT));
% Q=2alpha100^2*[q11 q12 q13;q12 q22 q23;q13 q23 q33];
% % % %
for k=1:N
%X=FX+UX(7:9)+Gw;
Z=[gama1(k) eta1(k) gama2(k) eta2(k)]';
H=cal_H(X(1),X(2),X(3),Xs1(k),Xs2(k),Ys1(k),Ys2(k),Zs1(k),Zs2(k));
X=F
X+UX(7:9);
P=F
PF’+GQG’;
K=P
H’/(HPH’+R);
Zpre=cal_Z(X(1),X(2),X(3),Xs1(k),Xs2(k),Ys1(k),Ys2(k),Zs1(k),Zs2(k));
X=X+K*(Z-Zpre);
P=(eye(9)-K*H)*P;
Xekf(k,:)=X;
end

⛄三、运行结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

⛄四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1]宁倩慧,张艳兵,刘莉,陆真,郭冰陶.扩展卡尔曼滤波的目标跟踪优化算法[J].探测与控制学报. 2016,38(01)

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/40768.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【图像处理】基于图像聚类的无监督图像排序问题(Matlab代码实现)

👨‍🎓个人主页:研学社的博客 💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜…

推荐算法高级案例-通过WideDeep算法进行特征组合的商品推荐详细教程 代码+数据

案例知识点 推荐系统任务描述:通过用户的历史行为(比如浏览记录、购买记录等等)准确的预测出用户未来的行为;好的推荐系统不仅如此,而且能够拓展用户的视野,帮助他们发现可能感兴趣的却不容易发现的item;同时将埋没在长尾中的好商品推荐给可能感兴趣的用户。 方法概述:…

R语言与RStudio的下载与安装方法

本文介绍R语言及其集成开发环境RStudio的下载、安装方法。 R语言是一个属于GNU操作系统的开源软件,在数据统计与分析、可视化等方面具有优秀的表现;而RStudio则是R语言的集成开发环境(IDE),可以帮助我们更好地编辑、调…

《PyTorch深度学习实战》学习小结

前言 PyTorch是Facebook发布的一款非常具有个性的深度学习框架,它和Tensorflow,Keras,Theano等其他深度学习框架都不同,它是动态计算图模式,其应用模型支持在运行过程中根据运行参数动态改变,而其他几种框架…

【Mysql】内置函数

文章目录内置函数日期函数字符串函数数学函数其他函数内置函数 内置函数一般放在SQL语句里帮助我们执行一些逻辑. 日期函数 函数名称描述current date()获取当前日期current time()获取当前时间current_timestamp()获取当前时间戳date(datetime)返回 datetime 参数的日期部分…

Unity演示Leetcode开香槟过程

文章目录Unity演示Leetcode开香槟过程示意图一:示意图二(速度变为上图的5倍)主要步骤与难点C#脚本代码:香槟杯子液体页面变化以及杯子边缘的绘画Shader代码杯子边缘液体流出的效果的Shader代码:Unity演示Leetcode开香槟…

shell中的printf实践:美颜的九九乘法表

一 简介 Linux系统中除了echo命令可以输出信息,还可以使用printf命令实现相同的效果。功能描述:printf命令可以格式化输出数据。printf命令的语法格式如下。 printf [格式] 参数 常用的格式字符串及功能描述下表: 应用案例: 输出…

配置anaconda环境变量

conda环境变量的配置配置环境变量找到anaconda安装位置打开环境变量配置设置输入python命令跳入商店问题总结配置环境变量 找到anaconda安装位置 首先下载好conda环境,例如我下载在D盘 打开环境变量配置设置 可以按winS进入搜索框,输入环境变量&…

PyQt5学习笔记--摄像头实时视频展示、多线程处理、视频编解码

目录 1--前言 2--基于Qt Designer设计ui文件 3--视频的编解码操作 4--完整代码 5--结果展示 6--存在的问题 7--参考 1--前言 ① 创建两个线程,主线程为ui线程,子线程用于读取摄像头视频,将处理后的图像帧数据(处理操作可以…

开放域类型发现:Open Relation and Event Type Discovery with Type Abstraction

1 什么是type discovery? “relation discovery” (Yao et al., 2011; Marcheggiani and Titov, 2016),“open relation extraction” (Wu et al., 2019; Hu et al., 2020) and “event type induction” (Huang and Ji, 2020; Shen et al., 2021). In this paper, we unify …

[项目](美多商城)(数据库课设/软件工程大作业/软件工程课设)项目的创建、配置、说明文档与源码

文章目录💘 相关说明💘 美多商城前台前端项目创建与配置💖 项目的创建💖 配置UI组件库💝 安装💝 全局引入与全局注册💝 局部引入与局部注册💝 定制主题💖 配置axios&…

【并发】Java并发线程池底层原理详解与源码分析(上)

【并发】Java并发线程池底层原理详解与源码分析(上) 线程池与线程对比 使用线程的方式运行 使用线程池的方式运行 分析 单线程、多线程、线程池效率问题 详细代码 结果分析 单线程为什么是最快的? 单线程都这么快了,我…

第四周 牛背山云海——拍拍大场景,自拍延时片段

目录4.1 面对广阔云海拍张全景照片,再来一组延时片段4.2 认识镜头滤镜4.3 补充技术基础知识:白平衡、色温4.4 小博士课堂——延时摄影课件4.1 面对广阔云海拍张全景照片,再来一组延时片段 云海 雪山 雅安境内的牛背山拍摄云海 牛背山可以看到…

java刷题day 04

一. 单选题: 解析:队列:先到先服务解析:final不能修饰接口,成员变量可以用final修饰 解析: A: 算法是指解题方案的准确而完整的描述,算法不等于程序,也不等于计算方法 BC…

Linux 时间同步 ntpdchrony 内网

Linux 时间同步 ntpd&chrony 在任何服务器集群中,为了更好的协同工作,除了一些互信机制外,需要的就是时间同步功能,如果时间不同步,就好比让在中国的同事与美国的同事进行沟通,会造成各种奇奇怪怪的时…

excel笔记

1.快速填充 当需要提取出电子邮件里的名称,可以在第一行里手动输入Nancy后,直接按快捷键ctrl e进行快速填充,可以直接获得预期数据 如果不用快捷键,也可以点击指定位置的图标,实现这一功能 快速填充不仅可以将进行…

大数据中的R语言——中国大学MOOC课程笔记

第一章 R语言简介 1.1 简介 R的特性: • 免费的 • 一个全面的统计研究平台 • 拥有顶尖水准的制图功能 • 一个可进行交互式数据分析和探索的强大平台 • 轻松地从各种类型的数据源导入数据,包括文本文件、数据库管理系统、统计软件,乃…

rabbitMQ 消息顺序性、消息幂等性、消息不丢失、最终一致性、补偿机制、消息队列设计

一、消息顺序性 消息队列中的若干消息如果是对同一个数据进行操作,这些操作具有前后的关系,必须要按前后的顺序执行,否则就会造成数据异常。 举例:   比如通过mysql binlog进行两个数据库的数据同步,由于对数据库的…

内存和函数

程序的内存布局 Linux默认情况下将高地址的1GB空间分配给内核,用户进程使用剩下2GB或者3GB的内存空间。在用户空间里,也有很多地址区间有特殊的地位,一般来讲,应用程序使用的内存空间里有如下"默认"的区域 1、栈&#…

疫情可视化part2

前言 这是疫情可视化最开始的文章,有需要了解的可前往查看:https://blog.csdn.net/xi1213/article/details/126824752。 本来说有时间就把这个项目完结了的,结果后面一直有事拖着,直到现在十一月份了才搞完。老样子,先…