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

news2024/12/23 22:20:41

在前一节内容中,我们学习了二维匀加速运动目标的卡尔曼滤波问题,同时利用MATLAB进行了仿真验证,今天我们继续往下扩展一个维度,学习三维空间下的卡尔曼滤波问题
话不多说,开整!!!

状态方程

既然目标是在三维空间中做匀加速运动,那么自然其在x、y、z三个方向上均会产生位移和速度,并且每个方向都有着加速度,因此,根据运动学公式,其各个方向的位置、速度、加速度可由下式得出:
x k = x k − 1 + x ˙ k − 1 Δ t + 1 2 x ¨ k − 1 Δ t 2 ( 1 ) x_{k} =x_{k-1}+\dot{x}_{k-1}\Delta t+\frac{1}{2}\ddot{x}_{k-1}\Delta t^2 \quad(1) xk=xk1+x˙k1Δt+21x¨k1Δt2(1)
x ˙ k = x ˙ k − 1 + x ¨ k − 1 Δ t ( 2 ) \dot{x}_{k}=\dot{x}_{k-1}+\ddot{x}_{k-1}\Delta t\quad(2) x˙k=x˙k1+x¨k1Δt(2)
x ¨ k = x ¨ k − 1 ( 3 ) \ddot x_{k}=\ddot x_{k-1}\quad(3) x¨k=x¨k1(3)
y k = y k − 1 + y ˙ k − 1 Δ t + 1 2 y ¨ k − 1 Δ t 2 ( 4 ) y_{k} =y_{k-1}+\dot{y}_{k-1}\Delta t+\frac{1}{2}\ddot{y}_{k-1}\Delta t^2 \quad(4) yk=yk1+y˙k1Δt+21y¨k1Δt2(4)
y ˙ k = y ˙ k − 1 + y ¨ k − 1 Δ t ( 5 ) \dot{y}_{k}=\dot{y}_{k-1}+\ddot{y}_{k-1}\Delta t\quad(5) y˙k=y˙k1+y¨k1Δt(5)
y ¨ k = y ¨ k − 1 ( 6 ) \ddot y_{k}=\ddot y_{k-1}\quad(6) y¨k=y¨k1(6)
z k = z k − 1 + z ˙ k − 1 Δ t + 1 2 z ¨ k − 1 Δ t 2 ( 7 ) z_{k} =z_{k-1}+\dot{z}_{k-1}\Delta t+\frac{1}{2}\ddot{z}_{k-1}\Delta t^2 \quad(7) zk=zk1+z˙k1Δt+21z¨k1Δt2(7)
z ˙ k = z ˙ k − 1 + z ¨ k − 1 Δ t ( 8 ) \dot{z}_{k}=\dot{z}_{k-1}+\ddot{z}_{k-1}\Delta t\quad(8) z˙k=z˙k1+z¨k1Δt(8)
z ¨ k = z ¨ k − 1 ( 9 ) \ddot z_{k}=\ddot z_{k-1}\quad(9) z¨k=z¨k1(9)

其中:
x k x_k xk:目标在k时刻的x方向的位置;
x ˙ k \dot{x}_k x˙k:目标在k时刻的x方向的速度;
x ¨ k \ddot{x}_k x¨k:目标在k时刻的x方向的加速度;
x k − 1 x_{k-1} xk1:目标在k-1时刻的x方向的位置;
x ˙ k − 1 \dot{x}_{k-1} x˙k1:目标在k-1时刻的x方向的速度;
x ¨ k − 1 \ddot{x}_{k-1} x¨k1:目标在k-1时刻的x方向的加速度

y、z方向的各参数意义同上,不再叙述。
那么此时的目标状态可以表示为:
X k = [ x k x ˙ k x ¨ k y k y ˙ k y ¨ k z k z ˙ k z ¨ k ] X_k = [x_k \quad \dot x_k \quad \ddot x_k\quad y_k \quad \dot y_k \quad \ddot y_k \quad z_k \quad \dot z_k \quad \ddot z_k] Xk=[xkx˙kx¨kyky˙ky¨kzkz˙kz¨k]

考虑目标在运动过程中的过程噪声 V k V_k Vk的影响,将式(1)~(9)写为矩阵相乘形式,则可以表示下式:
X k = [ 1 Δ t 1 2 Δ t 2 0 0 0 0 0 0 0 1 Δ t 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 Δ t 1 2 Δ t 2 0 0 0 0 0 0 0 1 Δ t 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 Δ t 1 2 Δ t 2 0 0 0 0 0 0 0 1 Δ t 0 0 0 0 0 0 0 0 1 ] X k − 1 + V k = F X k − 1 + V k X_{k} = \begin{bmatrix}1&\Delta t&\frac{1}{2}\Delta t^2&0&0&0&0&0&0\\[0.3em]0&1&\Delta t&0&0&0&0&0&0\\[0.3em]0&0&1&0&0&0&0&0&0\\[0.3em]0&0&0&1&\Delta t&\frac{1}{2}\Delta t^2&0&0&0\\[0.3em]0&0&0&0&1&\Delta t&0&0&0\\[0.3em]0&0&0&0&0&1&0&0&0 \\ 0&0&0&0&0&0&1&\Delta t&\frac{1}{2}\Delta t^2\\0&0&0&0&0&0&0&1&\Delta t\\0&0&0&0&0&0&0&0&1\end{bmatrix}X_{k-1} + V_k = FX_{k-1} +V_k Xk= 100000000Δt1000000021Δt2Δt1000000000100000000Δt1000000021Δt2Δt1000000000100000000Δt1000000021Δt2Δt1 Xk1+Vk=FXk1+Vk
至此,目标的状态方程便已介绍完成,其中F称为状态转移矩阵,下面介绍观测方程。

观测方程

同样,观测方程仍然是雷达测量过程的假设,那么在三维空间的背景下,此时的测量值 Z k Z_k Zk是三个方向的位置信息也即:
Z k = [ z x z y z z ] Z_k = [z_x \quad z_y\quad z_z] Zk=[zxzyzz]
量测值与真实值的关系即可以通过观测方程进行描述考虑量测过程中的不确定性即量测噪声 R k R_k Rk如下式:
Z k = [ 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 ] X k + W k = H X k + W k \begin{aligned} \\ Z_k&& =\begin{bmatrix}1&0&0&0&0&0&0&0&0\\ 0&0&0&1&0&0&0&0&0\\0&0&0&0&0&0&1&0&0\end{bmatrix}X_k+W_k=H X_k+W_k \end{aligned} Zk= 100000000010000000001000000 Xk+Wk=HXk+Wk

至此,量测方程也介绍完毕,下面进行仿真测试。

MATLAB仿真

在对二维匀加速运动目标建模完成后,即可对其进行MATLAB仿真,仿真背景如下:

  • 采样点数:200
  • 采样时间:0.1s
  • 初始位置:[7 11 21]
  • 初始速度:[10 20 15]
  • 初始加速度:[0.5 1 0.75]
  • 过程噪声方差:1e-6
  • 量测噪声方差:100

下面对其进行仿真,其中:

> 观测误差 = 观测值 - 真实值 
>  滤波误差 = 滤波值 - 真实值

x方向的位置滤波效果对比

在这里插入图片描述

x方向的距离滤波误差对比

在这里插入图片描述

x方向的速度滤波效果对比

在这里插入图片描述

x方向的速度滤波误差对比

在这里插入图片描述

x方向的加速度滤波效果

在这里插入图片描述
其余两个方向的滤波效果不在此处进行展示,从效果中我们发现,随着跟踪时间的递进,滤波的效果明显越来越好

上述内容即使今天的全部内容了,感谢大家的观看。
如果方便,辛苦大家点个赞和关注哦!
您的点赞或评论或关注是对我最大的肯定,谢谢大家!!!

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

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

相关文章

【深度学习】6-1 卷积神经网络 - 卷积层

卷积神经网络(Convolutional Neural Network,CNN)。 CNN 被用于图像识别、语音识别等各种场合,在图像识别的比赛中,基于深度学习的方法几乎都以 CNN 为基础。 首先,来看一下 CNN 的网络结构,了解 CNN 的大致框架。CNN…

算法程序设计 之 装载问题(6/8)

一、实验目的: 理解并掌握回溯法与分支限界法的联系与区别,学会构造不同问题的解空间树,用上述两种算法解决装载问题。 实验内容问题描述:有n个集装箱要装上2艘载重量分别为C1和C2的轮船,其中集装箱i的重量为wi&#…

论文浅尝 | DEER:解释实体关系的描述性知识图谱

笔记整理:王润哲,东南大学硕士,研究方向为多元关系抽取 链接:https://aclanthology.org/2022.emnlp-main.448.pdf 动机 实体关系是知识图谱中不可或缺的一层重要信息,它们描述了实体之间的语义关系,这种连接…

【力扣刷题 | 第十二天】

目录 前言: 104. 二叉树的最大深度 - 力扣(LeetCode) 111. 二叉树的最小深度 - 力扣(LeetCode) 前序遍历: 后序遍历: 总结: 前言: 今天还是对树的基础题进行刷题&am…

大数据Doris(四十七):开启Steam Load记录

文章目录 开启Steam Load记录 一、停止 Doris 集群 二、在 node3-node5 BE 节点上配置 be.conf 三、重新启动 Doris 集群 开启Steam Load记录 后续执行Stream Load 导入任务后,我们会在Doris集群中会查询对应Stream Load任务的情况,默认BE是不记录S…

【Rust日报】2023-06-20 使用Quickwit、Jaeger和Grafana监控您的Rust应用程序

使用Quickwit、Jaeger和Grafana监控您的Rust应用程序 你可能已经看过了Lucas Palmieri的博客文章Are we observable yet? An introduction to Rust telemetry。如果你还没有看过,我们建议阅读一下,因为它提供了一个全面的介绍,介绍了如何处理…

【Python 基础篇】Python 函数:代码重用的利器

文章目录 导言一、创建函数二、函数参数1、位置参数2、关键字参数3、默认参数 三、函数返回值四、函数的高级用法1、递归函数2、匿名函数3、内置函数 总结 导言 函数是一种在Python中定义和封装可重用代码的重要机制。它们使我们能够将复杂的任务分解为更小的部分,…

【算法与数据结构】15、LeetCode三数之和

文章目录 一、题目二、双指针法三、完整代码 所有的LeetCode题解索引,可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、双指针法 思路分析:我们使用双指针法,但这道题因为要求数组三个元素的和,一共用到了三个指…

新人拿到一个web项目如何使用idea发布运行

本文描述的是一个新手,拿到一个web项目,使用idea如何发布运行。项目中没有非常复杂的元素,只是试着描述应该如何配置相关内容。 内容描述前提,首先请您确认tomcat已经安装,其次确认jdk已经安装,并明确他们在…

基于Java农产品仓库管理系统设计实现(源码+lw+部署文档+讲解等)

博主介绍: ✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精…

管理类联考——逻辑——技巧篇——论证推理(10-12 道左右)——五大秒杀思路

逻辑考试出题思路分类 论证推理(10-12 道左右) 论证推理细分思路 假设——补全逻辑假设——引入前提前真后假 - 前假后真建立联系型支持由果推因的削弱由因推果 / 直接引入他因指出不同 / 指出相同五大固定秒杀思路解释类题目评价类题目 论证推理题目…

C语言学习(二十四)---递归与冒泡排序法

在前面几节的内容中,我们学习了指针的相关概念,至此,指针的内容就暂时告一段落了,今天我们将继续向下学习,主要内容为递归和冒泡排序法,好了,话不多说,开整!!…

【AndroidUI设计】主界面设计-Toolbar的简单使用

文章目录 一、引言二、了解三、编码1、UI设计2、编码 一、引言 描述:需要设计一个主界面,菜单通过主界面的左边界划入,实现点击跳转修改主界面内容的一个效果,并且点击非内容区域恢复原界面的一个效果。做到菜单的弹出&#xff0…

Vue3 One Piece Study

目录 脚手架安装vue3 使用vue-cli创建 使用vite创建 setup 介绍 示例使用 ref函数 介绍 代码示例 reactive函数 介绍 代码示例 脚手架安装vue3 使用vue-cli创建 vue create 项目名 安装完成 进入到刚才创建的项目目录中 cd vue3_test 输入npm run serve测试 使用…

基于Java健康综合咨询问诊平台设计实现(源码+lw+部署文档+讲解等)

博主介绍: ✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精…

STM32 HAL库开发——入门篇(2):定时器

目录 一、TIMER定时器概述 1.1 软件定时原理 1.2 定时器定时原理 1.3 STM32定时器分类 1.4 STM32定时器特性表 1.5 STM32基本、通用、高级定时器功能整体的区别 二、基本定时器 2.1 基本定时器简介 2.3 STM32定时器计数模式及溢出条件 2.4 定时器中断实验相关寄存器 …

MySQL创建商品订单数据库

目录 一、商品分类表 ProductClass1. 创建 ProductClass表2. 插入数据3. 展示 二、客户表 Customer记录1. 创建 Customer表2. 插入数据3. 展示 三、商品表 Product1. 创建 Product表2. 插入数据3. 展示 四、员工表Employee1. 创建 Employee表2. 插入数据3. 展示 五、订单主表 O…

kubernetes_核心组件_KubeProxy_KubeProxy三种模式和参数解析

系列文章目录 文章目录 系列文章目录前言一、kube-proxy三种服务负载模式1.1 userspace 模式1.2 iptables 模式1.3 ipvs 模式 二、kube-proxy 启动参数基本参数目录挂盘kubeproxy配置项(ConfigMap)kube-proxy 启动参数 三、kube-proxy 常用命令四、宿主机上的iptables规则&…

数据结构链表(C语言实现)

绪论 机遇对于有准备的头脑有特别的亲和力。本章将讲写到链表其中主要将写到单链表和带头双向循环链表的如何实现。 话不多说安全带系好,发车啦(建议电脑观看)。 附:红色,部分为重点部分;蓝颜色为需要记忆的…

【微服务】一文了解Nginx网关搭建教程

一文了解Nginx网关搭建教程 Nginx网关搭建nginx配置Nginx网关搭建 那么什么是Nginx呢? nginx是一个高性能HTTP服务器,反向代理服务器,邮件代理服务器,TCP/UDP反向代理服务器。 单个系统主要用于处理客户端请求,一个系统处理客户端的请求量是有限的,当客户端的并发量超…