扩展卡尔曼滤波在目标跟踪中的应用(2)

news2025/1/4 9:57:13

上一节的内容中,我们对于扩展卡尔曼EKF算法进行了讲解,今天我们对上一节的内容进行仿真。
话不多说,开整!!!

仿真背景

我们以一个目标的位置信息为例,其状态方程如下所示:
X k = 0.5 X k − 1 + 2.5 X k − 1 1 + X k − 1 2 + 8 cos ⁡ ( 1.2 k ) + V k ( 1 ) X_k=0.5X_{k-1}+\frac{2.5X_{k-1}}{1+X^2_{k-1}}+8\cos(1.2k)+V_k \quad(1) Xk=0.5Xk1+1+Xk122.5Xk1+8cos(1.2k)+Vk(1)
其观测方程为:
Z k = X k 2 20 + W k ( 2 ) Z_k=\frac{X_{k}^{2}}{20}+W_k\quad(2) Zk=20Xk2+Wk(2)

其中:
V k V_k Vk W k W_k Wk分别为过程噪声和量测噪声;
X k − 1 X_{k-1} Xk1: k-1时刻的状态值;
X k X_{k} Xk: k时刻的状态值;

从上述的两个公式中,我们可以看到和之前研究的线性方程不一样,此时的状态转移不再是线性转移,因此需要使用EKF进行数据滤波

那么状态值的预测方程量测值的预测方程为:
X k , k − 1 = 0.5 X k − 1 + 2.5 X k − 1 1 + X k − 1 2 + 8 cos ⁡ ( 1.2 k ) ( 3 ) X_{k, k-1}=0.5X_{k-1}+\frac{2.5X_{k-1}}{1+X^2_{k-1}}+8\cos(1.2k) \quad(3) Xk,k1=0.5Xk1+1+Xk122.5Xk1+8cos(1.2k)(3)
Z k , k − 1 = X k ∣ k − 1 2 20 ( 4 ) Z_{k,k-1}=\frac{X^2_{k|k-1}}{20} \quad(4) Zk,k1=20Xkk12(4)
其中:
X k , k − 1 X_{k, k-1} Xk,k1:k-1时刻对k时刻的状态预测值;
Z k , k − 1 Z_{k, k-1} Zk,k1:k-1时刻对k时刻的观测预测值;

一阶线性化

根据上一节的内容,我们先对状态方程(1)线性化,得到状态转移矩阵:
在这里插入图片描述

我们对 f ( k , X k ) f(k,X_k) f(k,Xk)关于 X k X_k Xk求导,可以得到:
Φ ( k ) = ∂ f ∂ X = 0.5 + 2.5 [ 1 − X k , k − 1 2 ] [ 1 + X k , k − 1 2 ] 2 \Phi(k)=\frac{\partial f}{\partial X}=0.5+\frac{2.5[1-X^2_{k, k-1}]}{[1+X^2_{k, k-1}]^2} Φ(k)=Xf=0.5+[1+Xk,k12]22.5[1Xk,k12]
然后对量测方程线性化,得到量测矩阵:
在这里插入图片描述
求导,得到量测矩阵 H H H:
H ( k ) = ∂ h ∂ X = X k ∣ k − 1 10 H(k)=\frac{\partial h}{\partial X}=\frac{X_{k|k-1}}{10} H(k)=Xh=10Xkk1

MATLAB仿真

仿真背景

对于一维模型,进行MATLAB仿真,仿真参数设置如下:

  • 处置位置X(0) = 11;
  • 过程噪声方差:10;
  • 量测噪声方差:1
  • 仿真次数:50

仿真效果

在这里插入图片描述
通过仿真效果可以看到,EKF对于非线性模型的滤波具有较好的滤波效果

如果方便,辛苦大家点个赞和关注哦!
您的点赞或评论或关注是对我最大的肯定,谢谢大家!!!

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

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

相关文章

黑马程序员前端 Vue3 小兔鲜电商项目——(二)初始化项目

文章目录 了解 Vue3初始化项目创建项目启动项目添加目录Git 管理项目jsconfig.json 配置别名路径 ElementPlus 引入安装配置按需导入测试组件 定制 elementPlus 主题安装sass准备定制化的样式文件自动导入配置 Axios 安装并简单封装安装 Axios基础配置封装请求函数并测试 路由整…

数据血缘分析

引入 做过大数据或者接触过数仓的同学,相信都有听到过数据治理、血缘分析的专业术语。不知道大家有没有思考过以下几个问题: 1、什么是血缘分析?主要分析什么东西? 2、为什么要做血缘分析,主要是为了解决什么痛点?做出来之后有什么价值?如何衡量这些价值? 3、如何做血…

mysql存储过程与函数

文章目录 存储过程概述:创建存储过程调用存储过程存储函数的使用对比存储函数和存储过程存储过程和函数的查看、修改、删除查看修改删除 存储过程概述: 它的思想很简单,就是一组经过 预先编译 的 SQL 语句 的封装。 执行过程:存储过程预先存储在 MySQL …

相对路径与绝对路径(以javaweb项目的html文件为例)

相对路径和绝对路径是用于在文件系统中定位文件或目录的两种方式。 1、两者的概念 绝对路径:是指文件或目录在文件系统中的完整路径,从文件系统的根目录开始一直到文件的具体位置。绝对路径所包含的所有目录都是从根目录开始的,因此&#x…

vue源码理解之Vue批量异步更新和虚拟DOM和Diff算法

一:异步更新队列 1、Vue高效的秘诀是一套批量、异步的更新策略 概念: 事件循环 事件循环:浏览器为了协调事件处理、脚本执行、网络请求和渲染等任务而制定的一套工作机制。 宏任务 代表一个个离散的、独立工作单元。浏览器完成一个宏任务&…

【Visual Studio】Qt 的实时绘图曲线功能,使用 C++ 语言,配合 Qt 开发串口通信界面

知识不是单独的,一定是成体系的。更多我的个人总结和相关经验可查阅这个专栏:Visual Studio。 战斗背景:做了个串口接收界面,用来接收传输过来的信号。但是光用数字显示太单调,需要用图线显示出来。 战略目标&#x…

Java 从入门到精通(续集6)——集合框架

Java 从入门到精通(续集6)——集合框架 在 Java 中,集合是一种用于存储对象的容器,可以方便地进行增删改查等操作。Java 提供了一套完整的集合框架,并且在 Java 5 中引入了泛型,使得集合变得更加灵活。 一、…

Redis哨兵部署

Redis哨兵 单机安装部署 yum install epel-release -yYum install redis -yMkdir /root/redisCd /root/rediscp /etc/redis.conf .cp redis.conf redis_6379.confcp redis.conf redis_6380.confcp redis.conf redis_6381.conf vim redis_6379.conf 1.配置redis.conf文件中的…

极致呈现系列之:Echarts水球图的灵动魅力

目录 水球图简介什么是水球图水球图的特点和用途水球图的安装和引入水球图的常用配置项创建基本的水球图自定义水球图样式水球图中的shape属性使用SVG代码自定义水球图水球图简介 什么是水球图 水球图是一种通过一个圆形的容器来展示数据的图表类型。它以水球作为图形的基本元…

【C++篇】封装类和对象

友情链接:C/C系列系统学习目录 知识总结顺序参考C Primer Plus(第六版)和谭浩强老师的C程序设计(第五版)等,内容以书中为标准,同时参考其它各类书籍以及优质文章,以至减少知识点上的…

【机器学习】十大算法之一 “逻辑回归”

作者主页:爱笑的男孩。的博客_CSDN博客-深度学习,活动,python领域博主爱笑的男孩。擅长深度学习,活动,python,等方面的知识,爱笑的男孩。关注算法,python,计算机视觉,图像处理,深度学习,pytorch,神经网络,opencv领域.https://blog.csdn.net/Code_and516?typeblog个…

MindSpore-FCOS模型权重迁移推理对齐实录

准备工作 环境: wsl2 Ubuntu 20.04 mindspore 2.0.0 python 3.8 pytorch 2.0.1 cpu 基于已有的mindspore FCOS项目和FCOS官方pytorch权重来做迁移, FCOS官方pytorch实现 FCOS_imprv_R_50_FPN_1x权重 MindSpore FCOS项目链接 该代码是mindspore1.6实现…

【加强版】SAX解析XML返回对应格式的Map对象(解决元素递归嵌套)

SAX解析XML返回对应格式的Map对象_辛丑年正月十五的博客-CSDN博客 前言 上篇文章实现了xml元素节点的解析并返回了对应格式的Map对象,但是遗留了一个问题,就是当xml中的元素存在递归嵌套时就解析不了,因为qname属性会重复,导致后…

DDD软件架构领域驱动设计

目录 1. DDD概述1.1 软件开发的困境1.2 DDD的来源及简介1.2.1 DDD设计方法 1.3 DDD解决了什么问题1.3.1 沟通问题1.3.2 代码质量问题 1.4 模型和建模1.4.1 什么是模型 1.5 统一语言(UBIQUITOUS LANGUAGE)1.6 什么是DDD 2. 传统开发模式2.1 基础知识回顾2…

Debian12.0.0更换系统语言中文到英文

6月10号,Debian12.0.0更新,想尝尝鲜,在虚拟机里安装好,想将中文改为英文,因为Terminal下输入命令,中文切换麻烦。 一、步骤如下 #1、查看当前语言环境 env | grep LANG #2、en表示语言,US表示…

欧科云链在GEF论坛发起圆桌:监管科技与Web3合规发展图景与展望

6月15日,欧科云链在格林威治经济论坛发起了一场题为“监管科技与Web3合规发展图景与展望”的圆桌会议,此次会议由中国香港贸易发展局副执行董事PatrickLau博士主持。Stratford Finance首席执行官Angelina Kwan,BC科技集团有限公司董事会副主席…

[Web前端] Servlet及应用

文章目录 前言1、简介1.1、Servlet 架构1.1.1、Servlet 任务1.1.2、Servlet 包 1.2、Servlet 环境设置1.2.1、设置 Web 应用服务器:Tomcat 1.3、Servlet 生命周期1.3.1、init() 方法1.3.2、service() 方法1.3.3、doGet() 方法1.3.4、doPost() 方法1.3.5、destroy() …

采集发布到WordPress 特色图片(缩略图)无法显示

采集的数据发布到wordpress系统网站,文章内容是正常的,但是在列表页的缩略图(特色图片)却是显示失败。 这种情况有多种问题都可以造成的,可按照以下步骤逐一排查: 目录 1. 发布映射值是否正确 2. 与主题…

【Python 基础篇】Python 字符串以及字符串常用函数

文章目录 导言一、字符串基础二、字符串操作1、字符串拼接2、字符串格式化3、字符串常用函数len()lower()upper()strip()split()join()replace()find()count() 三、条件控制与字符串总结 导言 字符串是计算机编程中常用的数据类型之一。在 Python 中,字符串是由字符…

切换SVN登录的账号

更换SVN的账号 1、找到已登录的用户信息2、删除已登录的用户信息3、获取重输用户信息弹窗4、使用新的用户信息登录 1、找到已登录的用户信息 (1)在任何文件夹里面右键,找到TortoiseSVN,然后选择里面的Settings (2&am…