卡尔曼滤波增益推导

该文章主要是记录温习卡尔曼滤波算法理论时的一些理解,重点讲解卡尔曼增益的推导过程。其中忽略了部分基础知识和详细的推导过程,阅读该文章需要本身已具备卡尔曼滤波基础。文章内容摘取自网络博客的部分内容,因为原文章的逻辑不是很通顺,所以这里根据自己的理解进行整理。

前置概念:

1)正态分布

2)期望:对随机变量可能取值的加权平均值,其中权重是取值的概率。用期望去理解均值的计算就是均值计算中可能取值的概率均为1。

3)服从正态分布的随机变量,其期望为均值。

4)服从正态分布的随机变量,其方差为

5)先验估计:根据上一时刻的最优估计(先验值)得到当前时刻的估计值。

6)后验估计:根据先验估计,当前时刻的测量值,卡尔曼增益计算当前最优估计值。

7)协方差矩阵:用来度量估计值的不确定性,代表这个估计值的误差。其对角线是单个变量的方差。先验估计和后验估计都对应一个协方差矩阵。

首先通过数据融合的例子来理解卡尔曼增益:设目标真实值为Z,GPS测量值为 Z1 ,加速度计测量值为 Z2。两传感器都受噪声的影响,不失一般性,让两个测量信号的误差都服从正态分布:

通过组合两个测量值来得到真实值的最优估计:

其中K是需确定的权重因子,为求得最优K,尝试最小化估计误差的方差。

真实值为z ,那么估计误差为:

估计误差的方差为:

展开方差:

最小化方差,我们对K求导数并令其等于零:

得到最优K值:

最后通过最优K值计算得到最优估计值。当K=0时表示只相信GPS的测量值,当K=1时表示加速度计测量值。对应到卡尔曼滤波中,卡尔曼增益就是预测值与观测值之间的权重因子卡尔曼滤波的原理就是利用卡尔曼增益和测量值来修正预测值,使其逼近真实值。

根据上面的例子来考虑线性卡尔曼滤波增益的推导。先回顾一下卡尔曼滤波的整体步骤,总体有两步(预测和校正),具体的步骤如下图:

类比上面叙述的数据融合的思想将预测值和测量值表示出来。预测值为:

(1)

其中k表示当前时刻,k-1表示上一时刻。这个式子的意义就是利用上一时刻的最优估计预测当前时刻的状态量。测量值为:

(2)

H矩阵是将预测向量与测量向量的转换矩阵,这个式子代表的意思是将当前时刻的测量值转成状态空间的状态向量。

融合两个数据计算当前最优估计值:

G是权重因子,取值在[0, 1]之间,要想得到最优估计,只需要找到最优G值。

为方便计算引入卡尔曼增益K:

则K的取值为:

将K代入上式以消除H逆矩阵:

   (3)

所以要想求得最优估计,则需要找到最优K值。思路是通过构建最优估计误差方程,将K引入误差方程,然后求误差方程的协方差矩阵,对协方差矩阵求K的偏导,偏导等于0时即表示误差最小,此时导数方程含有K值,即可求得最优K值。具体如下:

1)引入测量噪声并计算估计误差

上面对于预测值和测量值的表示没有引入误差,实际中测量值和预测值均存在噪声。

将式子(2)变换到测量空间并引入测量噪声得到新的测量方程:

(4)

求得最优估计即表示最优估计与真实值的误差最小,即后验估计误差最小,如下:

(5)

同理先验估计误差为:

(6)

其中Xk表示当前时刻的真实值(这个是不知道的),表示当前最优估计(后验估计)。

       2)消除误差方程中的中间值,得到误差传递方程,计算误差的协方差矩阵

将式子(3)代入式子(5)中消除,接着继续将式子(4)代入其中消除Zk,得到后验估计误差方程:

(7)

该方程是误差传递方程,根据该方程可以得到其后验估计误差的协方差矩阵:

(8)

其中R是测量噪声的协方差矩阵。该协方差矩阵表示后验估计误差的不确定性。

       3)求协方差矩阵的迹

考虑后验估计误差的协方差矩阵的迹,如下:

(9)

其等于后验估计状态变量的各个元素方程的和,所以它的值就表示了后验估计的准确性,其值越小表示后验估计误差越小。那么求解目标就变成了寻找最优的卡尔曼增益K从而使得(9)最小。式子(9)的展开式为:

       4)求K的偏导,得到K的表达式

求K的偏导,得到目标函数J:

令J=0得到卡尔曼增益:

参考文章:

卡尔曼滤波:基本原理、算法推导、实践应用与前沿进展 - 知乎

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

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

相关文章

pandas中,DataFrame.sample 的理解:

DataFrame.sample 是 pandas 库中 DataFrame 对象的方法,用于从数据框中抽取随机样本。 DataFrame.sample(nNone, fracNone, replaceFalse, weightsNone, random_stateNone, axisNone)n(int或None): 指定要抽取的样本数量。如果指…

NLP论文阅读记录 - 2021 | WOS 基于多头自注意力机制和指针网络的文本摘要

文章目录 前言0、论文摘要一、Introduction1.1目标问题1.2相关的尝试1.3本文贡献 二.问题定义和解决问题的假设问题定义解决问题的假设 三.本文方法3.1 总结为两阶段学习3.1.1 基础系统 3.2 重构文本摘要 四 实验效果4.1数据集4.2 对比模型4.3实施细节4.4评估指标4.5 实验结果4…

python222网站实战(SpringBoot+SpringSecurity+MybatisPlus+thymeleaf+layui)-帖子详情页实现

锋哥原创的SpringbootLayui python222网站实战: python222网站实战课程视频教程(SpringBootPython爬虫实战) ( 火爆连载更新中... )_哔哩哔哩_bilibilipython222网站实战课程视频教程(SpringBootPython爬虫实战) ( 火…

PiflowX组件-OracleCdc

OracleCdc组件 组件说明 Oracle CDC连接器允许从Oracle数据库读取快照数据和增量数据。 计算引擎 flink 组件分组 cdc 端口 Inport:默认端口 outport:默认端口 组件属性 名称展示名称默认值允许值是否必填描述例子hostnameHostname“”无是Or…

解决一个mysql的更新属性长度问题

需求背景: 线上有一个 platform属性,原有长度为 varchar(10),但是突然需要填入一个11位长度的值;而偏偏这个属性在线上100张表中有50张都存在,并且名字各式各样,庆幸都包含 platform;例如 platf…

JavaSE核心基础-方法-笔记

1.方法概述 将一些代码抽取出来,放到单独的代码块中,形成方法,可以反复调用。 2.方法的定义格式以及解释 格式: 修饰符 返回值类型 方法名 (参数列表){ //方法主…

非科班转码的秋招复盘:地理信息科学GIS专业到后端研发、软件开发

本文介绍地理信息科学(GIS)专业的2024届应届生,在研三上学期期间,寻找后端研发、软件开发等IT方向工作的非科班转码秋招情况。 首先,这篇文章一开始写于2023年年底,当时为了参加一个征文活动,所…

Python爬虫的9个具体应用场景案例分析与具体应用。

文章目录 前言一、新闻采集二、数据挖掘三、网站监测四、舆情分析五、爬虫定制化开发六、数据采集与处理七、网络安全八、网络营销九、自动化测试关于Python技术储备一、Python所有方向的学习路线二、Python基础学习视频三、精品Python学习书籍四、Python工具包项目源码合集①P…

嵌入式学习-网络编程-Day6

嵌入式学习-网络编程-Day6 一、思维导图 二、作业 1.基于UDP的网络聊天室(2024.1.21号前上交) 项目需求: 1.如果有用户登录,其他用户可以收到这个人的登录信息 2.如果有人发送信息,其他用户可以收到这个人的群聊信…

LabVIEW振动数据采集与分析系统

在这个项目中, LabVIEW软件配合精确的硬件组件,以实现高效的振动数据采集和复杂信号分析。硬件方面,系统采用了PCB振动加速度传感器的高灵敏度传感器,以及NI9234型号的数据采集卡,确保了数据采集的高精度和可靠性。软件…

Leetcode刷题-(6~10)-Java+Python+JavaScript

算法题是程序员的基本功,也是各个大厂必考察的重点,让我们一起坚持写算法题吧 遇事不决,可问春风,春风不语,即是本心。 我们在我们能力范围内,做好我们该做的事,然后相信一切都事最好的安排就…

2024年对我懒这件事的弥补

一、回顾、前言 时光飞逝转眼2023年就“溜”走了,还记得我最后一次发博客是在2023.7.12 距离现在已经n天了,原因尽是懒! 拜拜,我继续偷懒去咯。 咳咳,显然这不可能,当然为了弥补大家我这个大好人也是憋…

前端包管理工具

一、代码共享方案 npm 进行发布上传 npmregistrynpm 进行安装 二、npm 包管理工具 2.1 介绍 安装 node 的时候自动安装 node package manager:Node 包管理工具 可以通过 npm 安装说明已经上传到这个仓库里面了 npm 官网查看是否有发布:npmjs.org …

JAVAEE出街 网络编程(一)

网络编程 一. 网络编程二. 客户端与服务器2.1 一问一答2.2 一问多答2.3 多问一答2.4 多问多答 三. TCP与UDP的特点 一. 网络编程 网络编程本质上就是学习传输层给应用层提供的API,把数据交给传输层,通过一层层的封装将数据通过网卡传输出去。 二. 客户端…

html5实现好看的年会邀请函源码模板

文章目录 1.设计来源1.1 邀请函主界面1.2 诚挚邀请界面1.3 关于我们界面1.4 董事长致词界面1.5 公司合作方界面1.6 活动流程界面1.7 加盟支持界面1.8 加盟流程界面1.9 加盟申请界面1.10 活动信息界面 2.效果和源码2.1 动态效果2.2 源码目录结构 源码下载 作者:xcLei…

《WebKit 技术内幕》之四(4): 资源加载和网络栈

4.实践:高效的资源使用策略 4.1 DNS和TCP连接 DNS解析和TCP连接占用大量的时间,可以从以下几个方面优化: 减少连接的重定向,有些网页中使用了大量的重定向,可能还会有很多次重定向,这不仅要求浏览器建立…

使用 FFmpeg 轻松调整视频的大小/缩放/更改分辨率

在此 FFmpeg 教程中,我们学习使用 FFmpeg 的命令行工具更改视频的分辨率(或调整视频的大小/缩放)。 更改视频的分辨率(也称为调整大小或缩放)是视频编辑、处理和压缩中非常常见的操作。对于 ABR 视频流尤其如此&#…

HCIP BGP选路实验

拓扑图&IP划分如下: 第一步,配置IP&环回地址 以R1为例,R2~R8同理 interface GigabitEthernet 0/0/0 ip address 12.0.0.1 24 interface LoopBack 0 ip address 10.0.0.1 24 第二步:对AS200网段配置OSPF协议 以R2为例&a…

[C#]C# winform部署yolov8目标检测的openvino模型

【官方框架地址】 https://github.com/ultralytics/ultralytics 【openvino介绍】 OpenVINO(Open Visual Inference & Neural Network Optimization)是由Intel推出的,用于加速深度学习模型推理的工具套件。它旨在提高计算机视觉和深度学…

【使用 UCF101 数据集】C3D 模型准备与模型训练

一、前言 本文章将对 C3D 模型进行解析,对里面的模型结构进行详解,最后使用UCF101 数据集对该模型进行实战,在进行推理时能够正确识别出未知视频中里面正确的类别。 二、目录 三、相关内容 四、详细介绍 【使用 UCF101 数据集】C3D 模型准…