卡尔曼滤波——一种基于滤波的时序状态估计方法

news2024/11/18 6:04:35

文章目录

  • 1. Kalman滤波及其应用
  • 2. Kalman原理
    • 公式推导:
      • Step 1:模型建立
      • Step 2:开始Kalman滤波
      • Step 3:迭代滤波

本文是对 How a Kalman filter works, in pictures一文学习笔记,主要是提炼核心知识,方便作者快速回忆和复习,有需要的小伙伴欢迎收藏和讨论~

1. Kalman滤波及其应用

作用: 预测一个具有不确定信息(如:噪声)的动态系统的下一步状态。
应用: 无人系统导航、定位和跟踪等;毫米波雷达定位。

2. Kalman原理

卡尔曼滤波实质: 是将预测状态量的高斯分布和观测量的高斯分布做融合,生成一个新的高斯分布,其中新的高斯分布的均值和方差是两个独立的高斯分布的相关参量的加权,这个加权就是卡尔曼增益,但是预测状态量和观测量可能维度不同,需要将他们同时转换到一个向量空间中,所以观测量前面有线性变换矩阵。

公式推导:

Step 1:模型建立

式1表达的是每个 x k x_k xk都可以通过一个线性随机方程估计出来。任意 x k x_k xk都是其前一时刻的值与过程噪音的线性组合(这个很难概念化)。请记住,大部分情况下该式没有控制信号 u k u_k uk项。

式2告诉我们任何测量值 z k z_k zk(无法确定精确与否的测量值)都是信号值与测量噪声的线性组合。这两个分量符合高斯分布(这是可以使用Kalman滤波的前提) 进程噪声与测量噪声互相统计独立。 A A A B B B H H H是一般形式的矩阵。但在大多数信号处理问题中,这些量仅为数值。而且虽然这些值在状态变换时会改变,大多数情况下我们都可以假设他们为定值。
x k = A x k − 1 + B u k + w k − 1 z k = H x k + v k x_k = Ax_{k-1}+Bu_k+w_{k-1}\\ z_k = Hx_k + v_k xk=Axk1+Buk+wk1zk=Hxk+vk
如果我们十分确定我们的系统符合此模型,那么唯一剩下要做的事就是估计噪音函数 w k − 1 w_{k-1} wk1 v k v_k vk的平均值以及标准差。我们知道,在实际生活中没有信号满足高斯分布,但我们可以近似其为高斯分布。

Step 2:开始Kalman滤波

Kalman滤波核心公式有5个
时间更新方程组(用于预测
x k ^ = A x k − 1 ^ + B u k P k ˉ = A P k − 1 A T + Q \hat{x_k} = A\hat{x_{k-1}} + Bu_k\\ \bar{P_k} = AP_{k-1}A^T+Q xk^=Axk1^+BukPkˉ=APk1AT+Q
测量更新方程组(用于修正
$$
K_k = \bar{P_k}HT(H\bar{P_k}HT+R)^{-1}\
\hat{x_k} = \bar{\hat{x_k}}+K_k(z_k-H\bar{\hat{x_k}})\
P_k = (I-K_kH)\bar{P_k}在这里插入图片描述

$$
建模部分已经在步骤一完成了,所以矩阵 A A A B B B H H H已知。这些矩阵很可能是一个常数,而且大部分情况下会等于1。
最让人难受的部分就是决定 R R R Q Q Q的值了。 R R R的值还是很容易找的,因为一般情况下我们对环境中的噪音还是能够确认的。(起码能用仪器测一下)。但是找 Q Q Q的值就没那么直观了。为了使滤波器能够运行,我们还需要知道 x 0 x_0 x0 P 0 P_0 P0的估计值。

Step 3:迭代滤波

在获得了滤波器运行所需的所有信息后,我们就可以估值迭代了。记住:前一状态的估值将成为当前状态的输入。

在这里插入图片描述
一般超过50次迭代后,就会比较好的收敛了。

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

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

相关文章

已解决pip install wxPython模块安装失败

已解决(pip install wxPython安装失败)error: legacy-instal1-failure Encountered error while trying to install package.wxPython note: This is an issue with the package mentioned above,not pip. hint : See above for output from …

如何用AST还原某音的JSVMP

1. 什么是JSVMP vmp简单来说就是将一些高级语言的代码通过自己实现的编译器进行编译得到字节码,这样就可以更有效的保护原有代码,而jsvmp自然就是对JS代码的编译保护,具体的可以看看H5应用加固防破解-JS虚拟机保护方案。 如何区分是不是jsv…

OpenFeign 切换HttpClient遇到的问题

背景 OpenFeign支持三种Http请求方式,默认情况下通过jdk中的HttpURLConnection向下游服务发起http请求(详见下图,源码详见feign.Client.Default), 默认的Client 采用 HttpURLConnection, 这种是无法复用的…

为什么一定要做集成测试?

集成测试,我们都不陌生,几乎我们产品每天都在进行。但是我们真的有好好思考:为什么一定要做集成测试吗?只是为了简单的将“积木”搭起来就行,还是有什么其他的深意? 深意可能不一定会有,但是意…

qt5.15 快速安装 国内源

1 qt5.15 安装问题 最大的问题就是需要在线下载与安装。即使挂了科学上网,国外的服务器下载速度也还是超级慢。 在网上找了各种解决办法后,终于找到一个快速下载安装的办法。 2 安装器下载 阿里源、清华源都没有Windows的安装器了,在腾讯…

IPv4地址细讲

文章目录一、IPv4地址简介二、IPv4地址的表示方法点分十进制记法三、IP地址的分类四、特殊IPv4地址:全 “0” 和全 “1”五、常用的三类IP地址使用范围六、五类IP地址的范围一、IPv4地址简介 IPv4地址分5类,每一类地址都由固定长度的字段组成&#xff1…

软件项目管理简答题复习(1)

1.项目:创造唯一的产品,唯一的服务临时性的努力 2.项目特征:不可见性,复杂性,一致性,变更性,特殊性 3.项目和日常活动的区别? 项目具有特殊性,负责人是项目经理&#…

软件项目管理计算题复习(1)

软件项目管理计算题复习(1) 1.关键路径:决定项目最早完成的一系列的活动。网络图中最长的路,最少的时差,总是差为0,也是关键路径。 2.最短路径也是最短工期 3.总时差:最晚开始-最早开始最晚结…

激光共聚焦显微镜在材料生产领域中的应用

在材料生产领域中,如需要分析金属材料/部件粗糙度的时候,不管是使用原子力显微镜还是台阶仪,都没有办法同时兼顾分辨率、扫描区域以及扫描速度。而基于激光共聚焦显微测量技术的共聚焦激光扫描显微镜,配备了真彩相机并提供还原的3…

NVIDIA CUDA初级教程视频学习笔记1

周斌老师 课程链接: 目录第一课内容生态环境第一课 CPU体系架构的概述什么是CPU指令存储器架构CPU内部的并行性第一课 预修课程: Cuda c programming guide 参考内容 1,2,3查找一下。 内容 CPU体系架构概述 并行程序设计概述 CUDA开发环境…

二叉树——二叉搜索树的最近公共祖先

二叉搜索树的最近公共祖先 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大&#…

design\project\学习 OAuth 读书笔记(一)

OAuth(一) 原文链接:OAuth 2.0 tutorial | OAuth flows 目录OAuth(一)应用场景分析问题1:代表用户授予有限访问权限OAuth 代表用户授权问题2:允许第三方应用程序有限的访问API(服务…

TPS74525PQWDRVRQ1典型应用TPS62992QRYTRQ1汽车用稳压器 规格参数

TPS74525PQWDRVRQ1线性稳压器 IC 2.5V 500MA 6WSON明佳达电子【概述】TPS745/TPS745-Q1可调节500mA LDO稳压器具有极低的静态电流,并可提供快速的线路和负载瞬态性能。TPS745/TPS745-Q1具有130mV的超低压差(500mA电流),这有助于提…

EEP封装?METS封装?还是ZIP封装?

档案信息化行业的老兵想必对10多年前的EEP封装包印象深刻,其自包含、自描述、自证明的“洋葱结构”曾经火遍大江南北,为电子文件的真实性和完整性保证提供了一种重要手段,但其过分严谨刻板的封装结构也曾让很多档案从业人员抓狂。笔者曾经主导…

Java开发 - 分页查询初体验

前言在上一篇,我们对es进行了深入讲解,相信看过的小伙伴已经能基本掌握es的使用方法,我们知道,es主要针对的是搜索条件,在这方面es具有无可比拟的优势,但我们也会注意到,有时候搜索条件过于宽泛…

基于JavaWeb实现的学生选课系统(源码+数据库+文档)

一、项目简介 本项目是一套基于JavaWeb实现的学生选课系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者。 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,e…

基于开源IM即时通讯框架MobileIMSDK:RainbowChat-iOS端v6.2版已发布

关于MobileIMSDK MobileIMSDK 是一套专门为移动端开发的开源IM即时通讯框架,超轻量级、高度提炼,一套API优雅支持UDP 、TCP 、WebSocket 三种协议,支持iOS、Android、H5、标准Java平台,服务端基于Netty编写。 工程开源地址是&…

Nuxt.js项目开发过程遇到的问题以及对Nuxt.js的学习与总结

文章目录📋前言💻Nuxtjs3快速了解🎯nuxtjs是什么?官网是这样介绍它的。🎯关于nuxtjs的SSR开发🧩SSR应用场景🧩nuxtjs的特性💻nuxtjs的初始目录结构🎯关于各个目录的解释&…

智能家居控制系统

🥁作者: 华丞臧. 📕​​​​专栏:【项目经验】 各位读者老爷如果觉得博主写的不错,请诸位多多支持(点赞收藏关注)。如果有错误的地方,欢迎在评论区指出。 推荐一款刷题网站 👉 LeetCode刷题网站…

MIGO 物料过账 创建物料凭证 BAPI_GOODSMVT_CREATE

文章目录1.前台操作2.需求分析2.1调用方式2.2分为两大概括:2.3业务逻辑细节图3.BAPI_GOODSMVT_CREATE4.RFC接口代码5.总结1.前台操作 SAP CO01(创建生产订单)/MIGO(发货投料)前台操作 这里面有migo的前台操作,首先了解前台操作后再去写RFC接口是比较容易理解的.!! 2.需求分析…