Kalman滤波参数、调整原则

2023-05-16

1.Q、P、R关系

P的迭代为P=QTPQ;R为观测的协方差;

状态延时高,说明收敛速度慢。
估计参数P越大,收敛的越快。
测量误差R越小,收敛的越快。
调整这两个参数即可,从状态更新上说,测量误差越小,估计参数误差越大,说明我们越相信测量值,自然收敛的快。缺点就是会让系统变化过快,如果测量值更加不准,则精度会下降,系统不够稳定。

2.K与Q、R关系

k~Q/(R+Q)

P0/(Q+R),收敛的快慢程度。

总结下自己之前整理过的关于卡拉曼滤波器的相关资料
主要包括滤波器的发散问题、Kalman1D滤波器...

滤波的发散问题

定义:当滤波的实际误差远远超过滤波误差的允许范围,甚至于趋向无穷大,使得滤波器推动作用,这种现象叫做滤波的发散。

产生发散现象主要有以下两个原因:

  1. 系统的数学模型和噪声的统计模型不准确,这些模型不能反映真实的物理过程,使得观测值与模型不相对应。
  2. 计算机字长有限,因而存在着计算误差,如舍入误差,这些误差积累起来,降低了滤波精度。严重时,会使计算误差的方差阵逐渐推动正定性,甚至失去对称性,使得增益矩阵的计算值与理论之间的偏差越来越大,因而造成发散。这种发散叫做计算发散。

解决方法:克服由于模型不准确或模型变化所引起的滤波发散问题,可用衰减记忆滤波和限定记忆滤波等方法。当滤波模型不准确时,滤波值中的旧数据比重太大,新数据的比重太小,这是引起发散的重要原因。因此逐渐减小旧数据的权,相对地增加新数据的权,或者截去旧数据,只保留在观测时刻以前的有限个较新的数据,这是克服滤波发散的一个有效方法,根据前一观点设计的滤波器这是克服滤波发散的一个有效方法,根据前一观点设计的滤波器叫做衰减记忆滤波器,根据后一观点设计的滤波器叫做限定记忆滤波器。这两种滤波器都是次最优滤波器。

 举例:在许多实际问题中,系统噪声方差阵和测量噪声方差阵事先都是不知道的。有时,状态转移矩阵或测量矩阵也不能确切知道。在系统运行过程中,模型还可能不断变化,具体地说,Q,R,A,H不断变化。这些都会引起滤波发散。自适应滤波是在利用测量数据进行滤波的同时,不断地对未知的或不确切知道的系统模型参数和噪声统计特性进行估计或修正,以便改进滤波。因此自适应滤波也是克服滤波发散的重要方法。

 由于计算机的舍入误差,使得估计误差协方差P的计算值失去非负定性,甚至失去对称性,因而导致K的计算失真,造成滤波发散现象。平方根滤波方法可用来克服由于计算机舍入误差所引起的滤波发散。

利用Kalman1D 处理信号数据总结

其中可调参数有:P(0)协方差矩阵的初始值;

                R 测量噪声

                Q 过程噪声

此外需要给出一个估计值的初始值.

在卡尔曼滤波器实际实现时,测量噪声R一般可以观测得到,是滤波器的已知条件。观测测量噪声协方差R可以通过离线试验获取。

而过程激励噪声协方差Q值比较难以确定,因为我们无法直接观测到过程状态。有时候可以通过Q的手动选择,人为的为过程“注入”一个足够的不确定因素,来产生一个可以接受的结果。

整个滤波公式中:

P(0)是需要确定的初始值;X(i)是系统需要处理的数据;x是kalman滤波处理的数据;Y是系统预测值;

  P(k+1)=A*P(K)*A’+Q;

  K=P(k+1)./(P(k+1)+R);

  测量更新:

  Y=x+K(X(i)-x);

  P=(1-K)*P(k+1);

过程噪声Q对于滤波效果的影响:

Q为对模型的信任度,Q越大,滤波后的曲线跟测量曲线跟的越紧密,滤波后噪声越大;

Q>1 时,滤波效果差;值越大,效果越差;

Q值越小,滤波效果越明显,太小滤波后效果趋于一条直线;

选取Q=0.0001;

P(0)协方差矩阵对于滤波效果的影响

  P(0)决定初始增益的大小,影响初始时刻的收敛效果;在整体参数选取合适的时候,初始时刻滤波收敛效果影响不明显。

测量噪声R对滤波效果的影响

R>0:决定稳态噪声,小了初始增益大,但是稳态容易引入噪声;R越大对噪声越不敏感,即滤波后的数据跳动越小,但R越大, kalman滤波输出收敛的越慢。

随着R值越大,R=50时,滤波收敛效果越明显;R=100;收敛效果特别快;并且滤波效果也趋于一条直线;

      

整个滤波过程都有延迟,具体影响看不出;需要分析;
Kalman调试本质上是追求系统的收敛和卡尔曼滤波本身收敛过程的平衡点。数学上很难从理论上追求最优解;

Q表示对模型的信任程度,R表示对量测的信任程度,卡尔曼滤波是在模型和量测之间进行均衡。

Kalman1D与低通滤波器比较

Q值不能过小,否则跟踪收敛效果不好;在Q=0.0001时,发生改变是,收敛效果差;Q=0.001,稍微得到改善(图参考另篇文章);

dt采样时间对滤波器效果的影响比较明显,即传感器连续两次采样的时间间隔,这个Dt(积分时间)必须要非常精确,如Dt=2ms 5ms 10ms等,此处没有用到,无法观察;

P0是初始化最优角度估计的协方差(初始化最优角度估计可设为零),它是一个初值。

Q是预测值的协方差,

R是测量值的协方差。对Q和R的设定只需记住,Q/(Q+R)的值就是卡尔曼增益的收敛值,比如其值为0.2,那么卡尔曼增益会向0.2收敛(对于0.2的含义解释一下,比如预测角度值是5度,角度测量值是10度,那么最优化角度为:5+0.2*(10-5)=6。从这里可以看出,卡尔曼增益越大,说明测量值越可靠。

最优化角度越接近测量值;卡尔曼增益越小,说明预测值越可靠,最优化角度越接近预测值)。

P0/(Q+R)反映收敛的快慢程度,该值设定越小,收敛越快,该值越大,收敛越慢。因为卡尔曼增益收敛总的来说是很快的,所以该值设定大一点或小一点都没什么关系。

理论上卡尔曼滤波对状态的估计是这样一个过程。
卡尔曼滤波估计的状态减去状态真实值是一个误差状态。
滤波器增益是对这个误差状态的系统方程进行配根,目标是使得根位于虚轴的左半部分,这样系统就是稳定收敛且趋于零的。
但是,系统收敛只是最低要求,我们同时要求系统的收敛速度。卡尔曼滤波增益的收敛过程就是黎卡提方程动态收敛的过程。黎卡提方程只要系统可观则动态收敛,且方差正定。
滤波器稳态后,滤波增益稳定,这时收敛的也慢了。
一开始,方差设置大了,滤波器处于动态变化状态,系统配根大,因此收敛快。
对于动态响应要求高的系统,不能使用稳态增益。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Kalman滤波参数、调整原则 的相关文章

  • rosbag2csv

    1 record bag rosbag record O topic name group 2 rosbag to csv rostopic echo b bag name bag p topic name gt csv name csv
  • ubuntu18.04使用anaconda3配置yolov5

    ubuntu18 04使用anaconda3配置yolov5 1 anaconda官网下载相关的sh文件 在sh文件所在的文件夹里打开终端 使用bash命令 运行sh文件安装anaconda 在安装的过程中首先有一个确定anaconda的安
  • 无人机仿真搭建:ROS,Gazebo,SITL,MAVROS,PX4

    写在前面 最近一直在搭建无人机仿真的环境 xff0c 系统都卸载安装了很多次才安装好 xff0c 所以写下这篇博客来记录一下 xff0c 万一以后还要再搭也可以有个参考 xff0c 也可以给大家做个参考 这个是结合我自己系统来安装的 xff
  • C++ 类的构造函数之冒号初始化语法

    在实现类的时候往往需要写一个构造函数用于初始化对象 xff0c 出去一般的函数语法之外 xff0c 还有一种冒号语法 比如 xff0c 下面两种构造函数的写法近似相同 xff1a 常规方法 class A private int index

随机推荐

  • educoder--MapReduce基础实战各关卡通关答案

    第1关 xff1a 成绩统计 任务描述 相关知识 什么是MapReduce 如何使用MapReduce进行运算 代码解释 编程要求 测试说明 任务描述 本关任务 xff1a 使用Map Reduce计算班级中年龄最大的学生 相关知识 为了完
  • Could NOT find ddynamic_reconfigure

    下载ddynamic reconfigure的package 链接https github com pal robotics ddynamic reconfigure tree kinetic devel 解压到catkin ws src空
  • 一位工作了10年的C++程序员总结出这些忠告

    1 可以考虑先学习C 大多数时候 xff0c 我们学习语言的目的 xff0c 不是为了成为一个语言专家 xff0c 而是希望成为一个解决问题的专家 做一个有用的程序员 xff0c 做一个赚钱的程序员 我们的价值 xff0c 将体现在客户价值
  • 新手程序员必学的代码编程技巧

    程序员往往渴望加入的是一支 30 的时间在写代码 xff0c 而70 的时间在喝着咖啡讨论着如何将产品做好 的团队 软件工作应该成为一项技术和艺术融合的高智力活动 xff0c 而项目经理应该是一个高度理解质量 范围和进度客观规律的明白人 x
  • 数学之美—细数 傅里叶变换 原理

    目录 一 傅里叶级数 xff08 Fourier Series FS xff09 的实数域表示 二 傅里叶级数 xff08 Fourier Series FS xff09 的复数域表示 三 傅里叶变换 xff08 FT xff09 的引出
  • C++小知识01 —— 0、‘0’、“0”、“\0”、‘\0’、NULL和nullptr

    可能对于才学完C 的初学者来说 这些概念都很简单 但是把它们放在一起 就真的真的给整不会了 其中最容易混淆的有单引号与双引号的用法 还有NULL与nullptr的用法 下面我会依次用代码文字结合的形式给大家讲解 0 这个就很简单 它就是数字
  • 如何解决Git代码冲突?

    本文主要用的是vscode工具 1 为什么会出现代码冲突问题呢 xff1f 可以理解为就是同一时间几个人更改同一个文件 xff0c git 不知道该听谁的 xff0c 所以就报冲突 xff0c 让开发者自己去选择 xff0c 选取到底用哪个
  • 算法优化工程师

    嵌入式算法移植优化 嵌入式算法移植优化 CUDA编程 嵌入式算法移植优化 CPU GPU TPU NPU都是什么 嵌入式算法移植优化 模型压缩与剪枝 嵌入式算法移植优化 pthread 嵌入式算法移植优化 SIMD编程 xff08 单指令流
  • Elasticsearch7.8.0启动报jdk版本错误

    因为7 8 0版本自带jdk12 xff0c 就可能会出现自己linux环境下的jdk版本较低 启动时老报错 xff0c 这时候就需要干掉当前jdk xff0c 然后启动elasticsearch xff0c 让他去匹配自带的jdk 使用命
  • 2-2进程管理-处理机调度

    文章目录 一 调度的层次二 进程调度的时机 切换与过程 调度方式三 调度器 闲逛进程四 调度算法的评价指标五 调度算法 xff08 一 xff09 先来先服务SCFS xff08 二 xff09 短作业优先算法SJF xff08 三 xff
  • 百度ai开放平台使用方法(附带例子详细步骤)

    百度ai开放平台 1 百度ai开放平台内有众多功能 xff0c 如文字识别 xff0c 语音技术等等内容 xff0c 本文章以身份证识别为例子 xff0c 教大家怎么使用它啦 链接走起 xff1a https cloud baidu com
  • 树莓派4b装完系统后,外接的显示屏刚开始蓝屏,过一会就不亮了是什么原因

    有可能是显示屏的连接或设置问题 xff0c 以下是一些可能导致这种情况的原因及相应的解决方法 xff1a 1 连接问题 xff1a 请确保显示屏与树莓派4B连接的正确 xff0c 建议检查接头是否牢固 另外 xff0c 如果你是通过 HDM
  • Maven报错:The packaging for this project did not assign a file to the build arti fact

    https blog csdn net gao zhennan article details 89713407
  • YOLO-MASK对图像数据集进行清洗

    一 前情介绍 之前在捣鼓yolo系列模型 xff0c 尝试着对coco的羊数据集进行训练 xff0c 可是发现不管怎么调参 xff0c Map一直在60几 xff0c 死活上不了70 后来在一位资深老算法师的指点下 xff0c 才明白 xf
  • 进程,文件,内存简述

    1 进程 一个程序一旦在操作系统里动起来 xff0c 他就成为了一个进程 进程表 xff1a 存放有进程的运行情况以及信息 进程核 xff1a 一个时刻 xff0c 一个进程占用的所有资源 核快照 xff1a 进程在某一时刻的状态 当产生了
  • GNURadio中运行ofdm_rx报错:gr::log :INFO: packet_headerparser_b0 - Detected an invalid packet at item ××

    修改方法 xff1a 减小发送端的乘数因子 但是本着知其然还要知其所以然的学习态度 xff0c 下面就解释下出现这种现象的原因 xff1a 2021 10 28 更新 xff1a 在实际的测试中发现 xff0c 引起该问题的原因还有可能是接
  • 关于改进邮政编码的建议 2018-03-08

    关于改进邮政编码的建议 2018 03 08 邮政法 第二十三条规定 xff1a 用户交寄邮件 xff0c 应当清楚 准确地填写收件人姓名 地址和邮政编码 邮政企业应当在邮政营业场所免费为用户提供邮政编码查询服务 邮政编码由邮政企业根据国务
  • Chapter5 MapReduce

    5 1概述 5 1 1分布式并行编程 MapReduce是一种分布式并行编程框架 在计算机发展史上的 34 摩尔定律 34 xff1a CPU的性能每隔18个月就可以翻一番 然而 xff0c 从2005年起 xff0c 摩尔定律逐渐失效 x
  • 解决Hadoop集群hdfs无法启动DataNode的问题

    问题描述 xff1a 在hadoop启动hdfs的之后 xff0c 使用jps命令查看运行情况时发现hdfs的DataNode并没有打开 笔者出现此情况前曾使用hdfs namenode format格式化了hdfs 如有三个hadoop集
  • Kalman滤波参数、调整原则

    1 Q P R关系 P的迭代为P 61 QTPQ xff1b R为观测的协方差 xff1b 状态延时高 xff0c 说明收敛速度慢 估计参数P越大 xff0c 收敛的越快 测量误差R越小 xff0c 收敛的越快 调整这两个参数即可 xff0