卡尔曼滤波与组合导航原理(五)序贯Kalman滤波

news2024/11/25 0:55:00

量测维数很高,而且能写成很多分量,每一个分量可以看成一个小量测,可以序贯进行量测更新

  • 优点是:计算快,数字稳定性更好,我们知道矩阵求逆是和维数的三次方成正比,分成小矩阵求逆快(都分解成一维的,求逆就变为求导)
  • 缺点是:如果量测相关且每一时刻变化,每一时刻要做 Cholesky分解。(其实很多时候量测噪声都是定常数矩阵,只要在启动的时候做一次分解就行)

函数模型
{ X k = Φ k / k − 1 X k − 1 + Γ k − 1 W k − 1 Z k = H k X k + V k \left\{\begin{array}{l} \boldsymbol{X}_{k}=\boldsymbol{\Phi}_{k / k-1} \boldsymbol{X}_{k-1}+\boldsymbol{\Gamma}_{k-1} \boldsymbol{W}_{k-1} \\ \boldsymbol{Z}_{k}=\boldsymbol{H}_{k} \boldsymbol{X}_{k}+\boldsymbol{V}_{k} \end{array}\right. {Xk=Φk/k1Xk1+Γk1Wk1Zk=HkXk+Vk
其中
[ Z k ( 1 ) Z k ( 2 ) ⋮ Z k ( N ) ] = [ H k ( 1 ) H k ( 2 ) ⋮ H k ( N ) ] X k + [ V k ( 1 ) V k ( 2 ) ⋮ V k ( N ) ] R k = [ R k ( 1 ) R k ( 2 ) ⋱ R k ( N ) ] \begin{array}{l} {\left[\begin{array}{c} \boldsymbol{Z}_{k}^{(1)} \\ \boldsymbol{Z}_{k}^{(2)} \\ \vdots \\ \boldsymbol{Z}_{k}^{(N)} \end{array}\right]=\left[\begin{array}{c} \boldsymbol{H}_{k}^{(1)} \\ \boldsymbol{H}_{k}^{(2)} \\ \vdots \\ \boldsymbol{H}_{k}^{(N)} \end{array}\right] \boldsymbol{X}_{k}+\left[\begin{array}{c} \boldsymbol{V}_{k}^{(1)} \\ \boldsymbol{V}_{k}^{(2)} \\ \vdots \\ \boldsymbol{V}_{k}^{(N)} \end{array}\right]} \\ \boldsymbol{R}_{k}=\left[\begin{array}{cccc} \boldsymbol{R}_{k}^{(1)} & & & \\ & \boldsymbol{R}_{k}^{(2)} & & \\ & & \ddots & \\ & & & \boldsymbol{R}_{k}^{(N)} \end{array}\right] \end{array} Zk(1)Zk(2)Zk(N) = Hk(1)Hk(2)Hk(N) Xk+ Vk(1)Vk(2)Vk(N) Rk= Rk(1)Rk(2)Rk(N)
序贯滤波执行框图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2muFB9hy-1685974534667)(卡尔曼滤波与组合导航原理(五)序贯滤波.assets/1685973791594.png)]

如果历元间量测噪声相关,量测噪声不是对角阵,它总可以作平方根分解(Cholesky分解)
R k = L k L k T \boldsymbol{R}_{k}=\boldsymbol{L}_{k} \boldsymbol{L}_{k}^{\mathrm{T}} Rk=LkLkT
使用 L k − 1 \boldsymbol{L}_{k}^{-1} Lk1 同时左乘量测方程两边, 得:
L k − 1 Z k = L k − 1 H k X k + L k − 1 V k \boldsymbol{L}_{k}^{-1} \boldsymbol{Z}_{k}=\boldsymbol{L}_{k}^{-1} \boldsymbol{H}_{k} \boldsymbol{X}_{k}+\boldsymbol{L}_{k}^{-1} \boldsymbol{V}_{k} Lk1Zk=Lk1HkXk+Lk1Vk
得到新的量测方程:
Z k ∗ = H k ∗ X k + V k ∗ \boldsymbol{Z}_{k}^{*}=\boldsymbol{H}_{k}^{*} \boldsymbol{X}_{k}+\boldsymbol{V}_{k}^{*} Zk=HkXk+Vk
其中:
Z k ∗ = L k − 1 Z k , H k ∗ = L k − 1 H k , V k ∗ = L k − 1 V k \quad \boldsymbol{Z}_{k}^{*}=\boldsymbol{L}_{k}^{-1} \boldsymbol{Z}_{k}, \quad \boldsymbol{H}_{k}^{*}=\boldsymbol{L}_{k}^{-1} \boldsymbol{H}_{k}, \quad \boldsymbol{V}_{k}^{*}=\boldsymbol{L}_{k}^{-1} \boldsymbol{V}_{k} Zk=Lk1Zk,Hk=Lk1Hk,Vk=Lk1Vk
从而可以将量测方差阵对角化(单位阵!):
R k ∗ = E [ V k ∗ ( V k ∗ ) T ] = E [ ( L k − 1 V k ) ( L k − 1 V k ) T ] = L k − 1 E [ V k V k T ] ( L k − 1 ) T = L k − 1 R k ( L k − 1 ) T = I \begin{aligned} \boldsymbol{R}_{k}^{*} & =\mathrm{E}\left[\boldsymbol{V}_{k}^{*}\left(\boldsymbol{V}_{k}^{*}\right)^{\mathrm{T}}\right]=\mathrm{E}\left[\left(\boldsymbol{L}_{k}^{-1} \boldsymbol{V}_{k}\right)\left(\boldsymbol{L}_{k}^{-1} \boldsymbol{V}_{k}\right)^{\mathrm{T}}\right] \\ & =\boldsymbol{L}_{k}^{-1} \mathrm{E}\left[\boldsymbol{V}_{k} \boldsymbol{V}_{k}^{\mathrm{T}}\right]\left(\boldsymbol{L}_{k}^{-1}\right)^{\mathrm{T}}=\boldsymbol{L}_{k}^{-1} \boldsymbol{R}_{k}\left(\boldsymbol{L}_{k}^{-1}\right)^{\mathrm{T}}=\boldsymbol{I} \end{aligned} Rk=E[Vk(Vk)T]=E[(Lk1Vk)(Lk1Vk)T]=Lk1E[VkVkT](Lk1)T=Lk1Rk(Lk1)T=I
满足序贯滤波模型 { X k = Φ k l k − 1 X k − 1 + Γ k − 1 W k − 1 Z k ∗ = H k ∗ X k + V k ∗ \left\{\begin{array}{l}\boldsymbol{X}_{k}=\boldsymbol{\Phi}_{k l k-1} \boldsymbol{X}_{k-1}+\boldsymbol{\Gamma}_{k-1} \boldsymbol{W}_{k-1} \\ \boldsymbol{Z}_{k}^{*}=\boldsymbol{H}_{k}^{*} \boldsymbol{X}_{k}+\boldsymbol{V}_{k}^{*}\end{array}\right. {Xk=Φklk1Xk1+Γk1Wk1Zk=HkXk+Vk

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

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

相关文章

自学大语言模型之Bert和GPT的区别

Bert和GPT的区别 起源 2018 年,Google 首次推出 BERT(Bidirectional Encoder Representations from Transformers)。该模型是在大量文本语料库上结合无监督和监督学习进行训练的。 BERT 的目标是创建一种语言模型,可以理解句子中…

(Day1)配置云开发提供的模板

创建云开发项目 打开微信开发者工具;点击“项目”->“新建项目”;输入项目名称和选择项目所要保存的目录;输入自己的AppID; AppID的获取,需要登陆微信公众平台,并点击“开发管理”->"开发设置…

凸优化系列——凸函数

1.凸函数的定义 凸函数直观上来说,就是两点之间的函数值小于两点连线的函数值 常见凸函数 线性函数既是凸函数,也是凹函数 对于二次函数,如果Q矩阵是半正定矩阵,那么它的二阶导为Q为半正定矩阵,根据凸性判定的二阶条…

SpringCloud微服务架构 --- 高级篇

一、初识Sentinel 1.1、雪崩问题及解决方案 1.1.1、雪崩问题 微服务调用链路中的某个服务故障,引起整个链路中的所有微服务都不可用,这就是雪崩。 1.1.2、解决雪崩问题的常见方式有四种 1.1.2.1、超时处理 设定超时时间,请求超过一定时间…

Swagger原理

最近在基于Swagger进行二次开发, 来对项目的接口进行管理,功能实现了,但是不清楚swagger的工作原理,为了后续能更好利用Swagger来管理接口,而且能借鉴Swagger的原理,将项目中其他信息可视化展示&#xff0c…

什么是测试驱动开发?测试驱动开发有什么优点?

目录 前言 什么是TDD或测试驱动开发? 什么是软件单元测试? 什么是TDD? 测试驱动开发的好处 最后的想法 前言 测试是任何软件开发项目中最重要的步骤之一。如果跳过此过程,则结果可能是灾难性的-对项目和公司而言。但是什么时…

K8s in Action 阅读笔记——【11】Understanding Kubernetes internals

K8s in Action 阅读笔记——【11】Understanding Kubernetes internals 11.1 Understanding the architecture Kubernetes集群分为两个部分: k8s控制平面工作节点 控制平面的组件 构成控制平面的组件有: etcd:etcd是一个分布式的持久化键…

javascrip基础二十八:说说函数节流和防抖?有什么区别?如何实现?

一、是什么 本质上是优化高频率执行代码的一种手段 如:浏览器的 resize、scroll、keypress、mousemove 等事件在触发时,会不断地调用绑定在事件上的回调函数,极大地浪费资源,降低前端性能 为了优化体验,需要对这类事…

类与对象知识总结+构造函数和析构函数 C++程序设计与算法笔记总结(二) 北京大学 郭炜

类和对象 结构化程序设计 C语言使用结构化程序设计: 程序 数据结构 算法 程序由全局变量以及众多相互调用的函数组成。 算法以函数的形式实现,用于对数据结构进行操作。 结构化程序设计的不足: 结构化程序设计中,函数和其所…

《嵌入式系统》知识总结11:STM32串口

串行通信vs并行通信 • 并行:使用8根数据线一次传送一个字节(或使用16根数据线一次传送2个字节,...) • 串行:使用少量数据信号线(8根以下),将数据逐位分时传送 • 并行vs串行&…

路径规划算法:基于秃鹰优化的路径规划算法- 附代码

路径规划算法:基于秃鹰优化的路径规划算法- 附代码 文章目录 路径规划算法:基于秃鹰优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要:本文主要介绍利用智能优化算法秃鹰…

【三维编辑】Removing Objects From Neural Radiance Fields论文解读

题目:Removing Objects From NeRF 从神经辐射场中移除对象 论文:https://arxiv.org/abs/2212.11966 作者:Silvan Weder,Guillermo Niantic, ETH Zurich, University College London, nianticlabs.github.ionerf-object-removal 文章目录 摘要一、前言二、…

Batch Normalization原理

首先我们提出一个问题,为什么要有Batch Normalization这样神奇的操作?原有的深度神经网络是有什么问题吗? 还真有问题,那就要提到各位炼丹师们的困境,在深度学习中,模型的层数往往非常的巨大,尤…

SpringBootWeb AOP(下)

3. AOP进阶 AOP的基础知识学习完之后,下面我们对AOP当中的各个细节进行详细的学习。主要分为4个部分: 通知类型通知顺序切入点表达式连接点 我们先来学习第一部分通知类型。 3.1 通知类型 在入门程序当中,我们已经使用了一种功能最为强大…

磁盘配额与进阶文件系统管理(二)

逻辑卷管理(Logical Volume Manager) 简介:lvm可以弹性调节filesystem容量;lvm可以整合多个实体partion在一起,使得多个partion看起来像一个磁盘。 LVM基本概念 PV:物理卷 PE:实体范围区块 VG:卷组 …

前端食堂技术周刊第 85 期:5 月浏览器更新、TypeScript 5.1、Rspack 0.2.0、Parcel v2.9.0、Next.js 企业级模板

美味值:🌟🌟🌟🌟🌟 口味:龙井酥 食堂技术周刊仓库地址:https://github.com/Geekhyt/weekly 本期摘要 5 月登陆浏览器的新功能TypeScript 5.1Rspack 0.2.0Parcel v2.9.0Next.js 企…

DINO代码学习笔记(四)

DINO代码学习笔记(一)中已经将输入transformer之前的参数处理给捋了一遍 DINO代码学习笔记(二)中将encoder部分给捋了一遍 DINO代码学习笔记(三)中将decoder部分给捋了一遍,以上将DINO的主体部…

聊一聊Spring Security的那些事

一.什么是Spring Security S[ing Security是一个基于Java EE框架Spring的安全性框架,它提供了身份认证和授权功能,用于保护应用程序中的资源。同时,它也支持许多常见的身份验证机制,并提供了预防常见攻击,如跨站请求伪…

[230603]托福听力精听|TPO66C2|Financial Advice

tuition bill 学费 add up 加总 allowance 补贴 budget 预算 document 文件 expense 费用;开销 semester 学期 dorm 宿舍 own 拥有;自己的 bulletin board…

SpringCloud微服务架构 --- 基础篇

一、认识微服务 1.1、服务架构演变 1.1.1、单体架构 单体架构:将业务的所有功能集中在一个项目中开发,打成一个包部署。 单体架构的优缺点如下: 优点: 架构简单部署成本低 缺点: 耦合度高(维护困难、…