【笔记】自适应卡尔曼滤波 Adaptive Extended Kalman Filter

2023-05-16

0 阅读文章

《Adaptive Adjustment of Noise Covariance in Kalman Filter for Dynamic State Estimation》

1 主要内容

一般情况下,kalman中的Q、R都是根据经验、实验或数据手册得到的,但是有些参数是无法获得的,尤其是过程噪声,就需要通过不断试凑确定参数,显然是不靠谱的。
这个文章提供一种自适应调整Q、R的方法,不需要精确的初值,就可以获得较高的滤波精度。

2 思路

2.1 状态方程

image.png

2.2 预测

image.png

2.3 校正

image.png

2.4 Q、R的估计

1)R 的估计
image.png
为了使R平滑变化,使用低通滤波。
image.png

[16] Online Stochastic Modelling for Network-Based GPS Real-Time Kinematic Positioning

2)Q的估计
image.png
image.png

2.5 算法流程图

下图中,划红线地方是相对于常规的EKF增加的部分,也就是测量协方差和过程协方差的更新。
image.png

3 仿真实验验证

MSE:mean squared error,计算估计值误差的均方差,用于评定滤波器效果好坏的指标。
下面给出了2个表,第一个是常规的EKF( CEKF),第二个是本文中提到的自适应AEKF。
image.png
这个表怎么看呢。Qtrue和Rtrue 分别是Q、R的真值,仿真中把Q、R进行不同比例的缩放,验证不同组合条件下滤波器的精度。

从第1个表,可以得出:

  • 只要Q、R的比值和Qtrue、Rtrue相等,就能获得最优的性能,并不需要保证Q、R和真实值接近。

比如,对角线上的值都是相同的。
比如0.1Rtrue、Qtrue和0.01Rtrue、0.1Qtrue的MSE相同,都是0.083。
比如10Rtrue、10Qtrue和Rtrue、Qtrue的MSE相同,都是0.051。

从第2个表,可以看出:

  • 不管Q、R的初值是多少,最终的MSE都能取得比较好的效果。
  • 相对于CEKF,即使用Q、R的真值,MSE也略大于CEKF中的MSE,这是正常的,因为R、Q会存在波动,并能保证在所有时间都保持和Rtrue、Qtrue比值保持一致。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【笔记】自适应卡尔曼滤波 Adaptive Extended Kalman Filter 的相关文章

  • Powershell Get-ChildItem -Filter 的操作方式与具有相同值的Where 子句不同

    我的服务器上有一个名为 MyFolder 的文件夹 还有其他文件夹称为 MyFolder 1 MyFolder 2 MyFolder 3 等 如果我运行 gci C Sample Name like MyFolder 我得到预期的输出 Di
  • Javascript array.filter 按子元素中的元素

    我有一个像这样的对象 客户端 数组 client id AAA1 contracts contract id CON1 AAA1 revisions date 2018 07 30 status First Sign 我可以按 client
  • 如何使用java实现低通滤波器

    我正在尝试用 Java 实现低通滤波器 我的要求很简单 我必须消除超出特定频率 单维 的信号 看起来巴特沃斯滤波器可以满足我的需要 现在重要的是 CPU 时间应该尽可能低 过滤器必须处理近一百万个样本 而我们的用户不喜欢等待太久 是否有任何
  • 如何在自定义模板标签上使用模板过滤器?

    我有一个关于模板标签的 Django 问题 我有一个名为的模板标签modal form有 4 个参数 该模板标签与基本变量完美配合 例如 modal form clients contact form Contacts contact 但当
  • ExpandableListView、OnChildClickListener

    我有组列表 每个组内都有填充的子项目 我已经实现了searchview with filtered ressults and myExpandableListView 可以展开和折叠 问题是 我不知道如何处理 OnChildClickLis
  • 使用Windows powershell从实时(更新)日志文件中过滤字符串

    我有一台计算机正在通过串行端口记录来自设备的事件 Putty 正在将它们记录到文件中 我曾经在 Linux 机器上运行过这个 基本上会tail f event log gt gt script sh 这是 nix 脚本 bin bash o
  • 使用嵌套数组过滤对象数组

    所以我试图在对象数组上设置嵌套过滤器 问题是过滤器应用在对象内部的另一个对象数组的键上 这是代码 const items name 123 id 1 value true arr id 1 name 456 id 2 value false
  • Solr距离过滤

    我正在尝试使用 Solr 进行距离范围搜索 我知道在5公里范围内进行搜索过滤很容易 q fq geofilt pt 45 15 93 85 sfield store d 5 我所追求的是如果我正在寻找一系列的说法 如何做同样的事情5至10公
  • C 中带有通配符的目录列表

    有现成的功能吗C可以使用列出目录的内容wildcards过滤掉文件名 例如 相当于 echo b 它显示四个字符长且不以 b 开头的目录条目的名称 我知道我可以使用scandir 但是 我需要提供自己的过滤功能 include
  • 使用组合框过滤文本框

    好吧 我必须创建一个表单 它获取文件夹的内容并将其列出在文本框中 是的 文本框不是列表框 然后 我必须使用包含文件夹所有扩展名的组合框来过滤此文本框 例如 如果我在组合框中选择 txt 则文本框应过滤以仅显示所有文本文件 除了让组合框过滤文
  • php 如何使用 getimagesize() 检查上传时的图像类型[重复]

    这个问题在这里已经有答案了 可能的重复 GetImageSize 在应该返回 FALSE 时没有返回 FALSE https stackoverflow com questions 10464948 getimagesize not ret
  • 根据另一个 csv 文件过滤 csv 文件中的行并将过滤后的数据保存在新文件中

    大家好 所以我试图根据file1过滤file2 其中file1是file2的子集 但 file2 有一个描述列 我需要能够分析 file1 中的数据 我想做的是过滤 file2 并仅获取 file1 中的标题及其描述 我尝试了这个 但我不太
  • 如何根据开始和结束条件过滤数据?

    我试图根据依赖于连续日期的两个条件来过滤数据 我在寻找对于 5 个以上的连续日期 值低于 2 with a 缓冲期 of 值 2 到 5 最多连续 3 天 它看起来像这样 很抱歉这里的 Excel 尝试很糟糕 第 1 天到第 10 天将包括
  • 删除特定值之前和之后的特定值的运行

    我有一个包含几列的数据框 基于 activity 列 我想删除特定值 pt 的整个连续运行 但前提是它们紧邻 outside 运行之前或之后发生 在下面的简化数据中 有一次运行的 activity 为 outside 并且前后都有大块 pt
  • 如何根据给定的过滤器返回并获取对象属性的总和?

    我有以下对象 var data Name ABC Dept First FY 2016 Quarter 1 Month April Total 100 Name ABC Dept Second FY 2017 Quarter 2 Month
  • 如何在java中的组合框之间使用过滤器?

    我的数据库中有两个表 分别是学期表和课程表 学期表中有学期 ID 课程 ID 课程名称和 Sdepartment 部门名称 课程表有课程 ID 和课程名称 我的 jframe 有两个组合框 第一个用于选择部门 第二个用于选择课程 我想选择所
  • R - 过滤器坐标

    我是 R 新手 我有一个简单的问题 据我看来 但到目前为止我还没有找到解决方案 我有一组 长 2D x y 坐标 只是 2D 空间中的点 如下所示 ID x y 1 1758 56 1179 26 2 775 67 1197 14 3 29
  • 使用 TextBox 过滤 Datagridview 行

    我有一个绑定的 datagridView 我想使用 TextBox 值对其进行过滤 我使用了这段代码 private void ChercheStextBox TextChanged object sender EventArgs e tr
  • Android ListView数组索引过滤后越界

    我认为这是专家的问题 我接到电话getView with positon 出界来自ListView数据列表 当我使用适配器过滤器时会发生这种情况 过滤器publishResults 方法使用小于原始列表的过滤列表填充数据 当新的过滤列表时似
  • 需要从数组中删除字符串[重复]

    这个问题在这里已经有答案了 我在 for 循环中有一个数组 如下所示 var arr abc 5 city 2 area 2 max choice 我只需要这样的数字 var arr 5 2 2 有人可以在这里帮忙吗 另一种方法是使用转换后

随机推荐

  • Vue系列之—Vue-router详解

    目录 一 简介 1 1 单页面应用 1 2 路由管理器 二 起步 2 1 动态路由匹配 2 2 路由组件传参 2 3 嵌套路由 声明式 编程式导航 命名路由 命名视图 重定向和别名 三 进阶 导航守卫 全局的守卫 路由独享的守卫 一 简介
  • vscode 代码格式化及快捷键

    VSCode 代码格式化 快捷键 On Windows Shift 43 Alt 43 F On Mac Shift 43 Option 43 F On Ubuntu Ctrl 43 Shift 43 I 代码格式化 vscode默认启用了
  • ORB-SLAM2添加稠密建图线程

    注 xff1a 本篇文章只是对高翔博士稠密点云代码进行的简述 xff0c 内容主要包括的是在ORB SLAM2基础上怎么添加稠密建图线程 xff0c 并未对高翔博士代码进行改动 本文章仅用于自己学习记录 xff0c 若有侵权麻烦私聊联系删除
  • ubuntu挂载sd卡到分区目录+修改docker镜像存储位置

    ubuntu挂载sd卡到分区目录 43 修改docker镜像存储位置 一 挂载SD卡到 data 1 查看Linux硬盘信息 lsblk 或 fdisk l lsblk 新的硬盘 xff0c 最好删除之前的分区 xff0c 再新建分区 de
  • Ubuntu虚拟机安装EDA工具:VCS+Verdi+dve2018方法教程

    上个月刚完成Ubuntu虚拟机的安装 xff0c 本教程的基础是你已经安装好了Ubuntu的虚拟机 xff0c 最好是和笔者版本接近的Ubuntu xff0c 具体安装方法已在之前的文章中介绍过了 xff1a https blog csdn
  • 基于deepstream-test3添加跟踪插件和4类sinkType输出(包括rtsp)

    基于deepstream test3添加目标跟踪插件和4类sinkType输出 xff08 包括rtsp输入输出 xff09 deepstream C C 43 43 deepstream官方示例没有给出一个单管道的多类输入和4类sinkT
  • 国外学位论文查找

    转自 xff1a http blog chinaunix net uid 20517852 id 1936377 html 国外博士论文下载的网站 xff0c 不知道以前发过没有 http search ohiolink edu etd i
  • DirectShow播放器(LAVFilter + EVR)开发例子

    LAVFilter是一套著名的DirectShow插件 xff0c 包括Demux xff0c Video Decoder xff0c AudioDecoder xff0c 播放文件所需要的几个重要插件都包含进去了 xff0c 并且支持播放
  • 关于最新版的keil5不能正常调试或者调试过程自动停止的解决方法

    适用范围 1 在进入debug的功能中提示J link is defective xff0c 大概意思就是最新版的J LINK驱动跟正在用的硬件不匹配 xff0c 要你更换驱动或者更换硬件 xff08 其实是使用盗版的J LINK会出现的问
  • C++11变参模板的参数包

    Parameter pack 原文来自这里 A template parameter pack is a template parameter that accepts zero or more template arguments non
  • Linux socket 关闭场景

    测试环境 root 64 centos192 168 1 12 cat etc system release CentOS release 6 9 Final 工具 xff1a 服务器 192 168 1 12 ipython Python
  • QGroundControl地面站二次开发环境搭建(win+linux+android)

    更新时间 xff1a 2017 6 19 大家好 xff0c 我是learn xff0c 下面主要介绍一下QGroundControl地面站的环境搭建 网上也有好多教程 xff0c 我就不再麻烦了 xff0c 补充一下好了 http blo
  • std::vector用法

    vector 是C 43 43 标准模板库中的部分内容 xff0c 它是一个多功能的 xff0c 能够操作多种数据结构和算法的模板类和函数库 vector之所以被认为是一个容器 xff0c 是因为它能够像容器一样存放各种类型的对象 xff0
  • Linux串口(serial、uart)驱动程序设计

    一 核心数据结构 串口驱动有3个核心数据结构 xff0c 它们都定义在 lt include linux serial core h gt 1 uart driver uart driver包含了串口设备名 串口驱动名 主次设备号 串口控制
  • Xshell 5 评估过期,需要采购,不能使用的解决办法

    Xshell 5 当然 xff0c 现在我们可以直接撸 Xshell 6 了 卸载原来的 Xshell 5进入 Xshell 5 官网 xff1a https www netsarang com页面上点导航栏的 Free Licence x
  • mapreduce编程(一)-二次排序

    mr自带的例子中的源码SecondarySort xff0c 我重新写了一下 xff0c 基本没变 这个例子中定义的map和reduce如下 xff0c 关键是它对输入输出类型的定义 xff1a xff08 java泛型编程 xff09 p
  • Android apk执行shell脚本 工具类

    在做Android应用时 xff0c 经常需要执行shell脚本 xff0c 以快速实现某些功能 xff1b 在Android应用程序中执行shell脚本可以省去一大堆繁琐的代码 xff0c 还可以避免不必要的错误 xff1b 比如 xff
  • Python最强装逼神技!微信远程控制电脑,想让你电脑关机就关机!

    今天带给大家一个非常有意思的 python 程序 xff0c 基于 itchat 实现微信控制电脑 你可以通过在微信发送命令 xff0c 来拍摄当前电脑的使用者 xff0c 然后图片会发送到你的微信上 甚至你可以发送命令来远程关闭电脑 程序
  • 基于ESKF的IMU姿态融合【附MATLAB代码】

    目录 0 前言1 什么是ESKF2 系统方程2 1 状态变量2 2 imu的测量值2 3 预测方程及雅克比矩阵2 4 测量方程及雅克比矩阵 3 kalman filter loop计算4 Show me the code5 代码下载链接 0
  • 【笔记】自适应卡尔曼滤波 Adaptive Extended Kalman Filter

    0 阅读文章 Adaptive Adjustment of Noise Covariance in Kalman Filter for Dynamic State Estimation 1 主要内容 一般情况下 xff0c kalman中的