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

本文主要是介绍【滤波跟踪】基于matlab扩展卡尔曼滤波的无人机路径跟踪【含Matlab源码 2236期】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

✅博主简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,Matlab项目合作可私信。
🍎个人主页:海神之光
🏆代码获取方式:
海神之光Matlab王者学习之路—代码获取方式
⛳️座右铭:行百里者,半于九十。

更多Matlab仿真内容点击👇
Matlab图像处理(进阶版)
路径规划(Matlab)
神经网络预测与分类(Matlab)
优化求解(Matlab)
语音处理(Matlab)
信号处理(Matlab)
车间调度(Matlab)

⛄一、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 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除

🍅 仿真咨询
1 各类智能优化算法改进及应用

生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化

2 机器学习和深度学习方面
卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断

3 图像处理方面
图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知

4 路径规划方面
旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划、天线线性阵列分布优化、车间布局优化

5 无人机应用方面
无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配

6 无线传感器定位及布局方面
传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化

7 信号处理方面
信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化

8 电力系统方面
微电网优化、无功优化、配电网重构、储能配置

9 元胞自动机方面
交通流 人群疏散 病毒扩散 晶体生长

10 雷达方面
卡尔曼滤波跟踪、航迹关联、航迹融合

这篇关于【滤波跟踪】基于matlab扩展卡尔曼滤波的无人机路径跟踪【含Matlab源码 2236期】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/839543

相关文章

Java汇编源码如何查看环境搭建

《Java汇编源码如何查看环境搭建》:本文主要介绍如何在IntelliJIDEA开发环境中搭建字节码和汇编环境,以便更好地进行代码调优和JVM学习,首先,介绍了如何配置IntelliJIDEA以方... 目录一、简介二、在IDEA开发环境中搭建汇编环境2.1 在IDEA中搭建字节码查看环境2.1.1 搭建步

python获取当前文件和目录路径的方法详解

《python获取当前文件和目录路径的方法详解》:本文主要介绍Python中获取当前文件路径和目录的方法,包括使用__file__关键字、os.path.abspath、os.path.realp... 目录1、获取当前文件路径2、获取当前文件所在目录3、os.path.abspath和os.path.re

csu 1446 Problem J Modified LCS (扩展欧几里得算法的简单应用)

这是一道扩展欧几里得算法的简单应用题,这题是在湖南多校训练赛中队友ac的一道题,在比赛之后请教了队友,然后自己把它a掉 这也是自己独自做扩展欧几里得算法的题目 题意:把题意转变下就变成了:求d1*x - d2*y = f2 - f1的解,很明显用exgcd来解 下面介绍一下exgcd的一些知识点:求ax + by = c的解 一、首先求ax + by = gcd(a,b)的解 这个

Open3D 基于法线的双边滤波

目录 一、概述 1.1原理 1.2实现步骤 1.3应用场景 二、代码实现 2.1关键函数 输入参数: 输出参数: 参数影响: 2.2完整代码 三、实现效果 3.1原始点云 3.2滤波后点云 Open3D点云算法汇总及实战案例汇总的目录地址: Open3D点云算法与点云深度学习案例汇总(长期更新)-CSDN博客 一、概述         基于法线的双边

hdu2544(单源最短路径)

模板题: //题意:求1到n的最短路径,模板题#include<iostream>#include<algorithm>#include<cstring>#include<stack>#include<queue>#include<set>#include<map>#include<stdio.h>#include<stdlib.h>#include<ctype.h>#i

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟&nbsp;开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚&nbsp;第一站:海量资源,应有尽有 走进“智听

科研绘图系列:R语言扩展物种堆积图(Extended Stacked Barplot)

介绍 R语言的扩展物种堆积图是一种数据可视化工具,它不仅展示了物种的堆积结果,还整合了不同样本分组之间的差异性分析结果。这种图形表示方法能够直观地比较不同物种在各个分组中的显著性差异,为研究者提供了一种有效的数据解读方式。 加载R包 knitr::opts_chunk$set(warning = F, message = F)library(tidyverse)library(phyl

poj 1734 (floyd求最小环并打印路径)

题意: 求图中的一个最小环,并打印路径。 解析: ans 保存最小环长度。 一直wa,最后终于找到原因,inf开太大爆掉了。。。 虽然0x3f3f3f3f用memset好用,但是还是有局限性。 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#incl

Java ArrayList扩容机制 (源码解读)

结论:初始长度为10,若所需长度小于1.5倍原长度,则按照1.5倍扩容。若不够用则按照所需长度扩容。 一. 明确类内部重要变量含义         1:数组默认长度         2:这是一个共享的空数组实例,用于明确创建长度为0时的ArrayList ,比如通过 new ArrayList<>(0),ArrayList 内部的数组 elementData 会指向这个 EMPTY_EL

如何在Visual Studio中调试.NET源码

今天偶然在看别人代码时,发现在他的代码里使用了Any判断List<T>是否为空。 我一般的做法是先判断是否为null,再判断Count。 看了一下Count的源码如下: 1 [__DynamicallyInvokable]2 public int Count3 {4 [__DynamicallyInvokable]5 get