首页 > 其他分享 >卡尔曼滤波

卡尔曼滤波

时间:2023-12-05 11:44:51浏览次数:26  
标签:方差 估计值 卡尔曼滤波 噪声 协方差 时刻

1.卡尔曼滤波入门
卡尔曼滤波的引入:

滤波就是将测量得到的波形中的的噪声过滤掉,使得到的数据更趋于真实情况,也更加平滑,方便使用。如下图所示(红色曲线是测量直接得到的波形,紫色曲线是滤波后得到的平滑曲线)

卡尔曼滤波适用的系统:

卡尔曼滤波适用线性高斯系统

1.线性系统:满足叠加性和齐次性

叠加性:

齐次性: 

2.高斯系统

高斯:噪声满足正态分布

宏观意义:

滤波即加权

理想状态:信号1+噪声0

卡尔曼滤波:估计值估计值权重+观测值观测值权重

2.学卡尔曼滤波的必备知识
2.1.状态空间表达式

x_{k}:当前状态的值;

x_{k-1}:上一个时刻该状态的值;

u_{k}:输入,即给到x_{k}的一个输入;

w_{k}:过程噪声

A:状态转移矩阵,代表当前状态上一时刻的值乘上A这种关系,作用在该系统

B:控制矩阵,输入乘上B这种关系,作用在该系统

举例:一辆小车以速度v在路上行驶,迎面而来的风速v1

 那么状态方程与该情形对应关系如下

 

x_{k}:当前状态的值;

C:x_{k}乘上某种关系得到要观测的值

V_{k}:观测噪声,和观测器的误差有关

举例:火炉对水加温,蓝色点是水温的状态值,红色的点是温度计,温度计是一个传感器得到观测值

 那么状态方程和观测方程与该情形对应关系如下

 方框图表示如下所示

2.2.高斯分布
高斯分布直观图解:

二维中,所有值投影到x轴或y轴,都是正态分布

高斯分布参数分析:

 

w_{k}是过程噪声,符合正太分布,均值为0,方差为Q_{k}

 V_{k}是观测噪声,符合正太分布,均值为0,方差为R_{k}

 统称w_{k}V_{k}为高斯白噪声

举例1:GPS检测到小车的位置,检测到小车开了1000米,但是GPS有精度误差,因此要加上\delta米的噪声,该噪声就是观测误差,V_{k}=\delta。因为\delta是服从正态分布的,假设其方差为1,则此时R_{k}=1

 举例2:有一个滑板,滑板前进的速度是5m/s,由于风的作用,因此滑板的速度有一个噪声\delta,此时滑板的速度为v+\delta,那么w_{k}=\delta\delta是符合正太分布的,假设\delta \in N(0,1),则Q_{k}=1

2.3.方差
一维方差:

(1)噪声的方差:前面的Q_{k}R_{k}

(2)状态的方差:后面会提到状态估计值\hat{x}_{t}^{-}的方差,

 

举例:小车实际跑了10米,但是由于噪声的影响,小车跑的距离是一个范围,服从正太分布,此时小车跑的距离就是10+w_{k}(噪声),该距离符合正态分布,因此小车跑的距离本身也会有一个方差。

二维协方差:cov(x,y)

一维的状态估计值\hat{x}_{t}^{-}为一个值;

二维的\hat{x}_{t}^{-}就是一个矢量,有两个不同的状态,如下图所示。这两个不同的状态同时对应着不同的噪声。

对于二维的\hat{x}_{t}^{-},其协方差就为

多维协方差矩阵C:

2.4.超参数
实验中,需要自己调来提高系统性能的参数:

卡尔曼滤波器中:Q(过程噪声的方差)  R(观测噪声的方差)

PID控制器中:P  I  D

2.5.卡尔曼直观图解
横轴为车的位置,竖轴为概率密度。

\hat{x}_{k}:状态量旁边没有横杠就是最优估计值(修正值、后验估计值)

\hat{x}_{k}^{-}:状态量旁边有横杠就是预测值(先验估计值)

y_{k}:观测值,也就是传感器直接测量得到的值

图解:

(1)\hat{x}_{k-1}

\hat{x}_{k-1}是上一时刻的最优估计值,也就是上一时刻卡尔曼滤波最终输出的值

(2)\hat{x}_{k}^{-}y_{k}

\hat{x}_{k}^{-}是基于上一时刻最优估计值\hat{x}_{k-1}估计出来的当前时刻的预测值

y_{k}是当前时刻的观测值

(3)

\hat{x}_{k}是当前时刻的最优估计值,通过当前时刻预测值\hat{x}_{k}^{-}和当前时刻观测值y_{k}推出,上图可以看出\hat{x}_{k}方差比较小,是因为经过卡尔曼滤波后,最终推出的\hat{x}_{k}效果较好

3.卡尔曼滤波
3.1.卡尔曼公式理解
实现过程:使用上一时刻的最优结果预测这一时刻的预测值,同时使用这一时刻观测值(传感器测得的数据)修正这一时刻预测值,得到这一时刻的最优结果

注:当状态值是一维的时候,H和I可以看作是1

预测:

1.上一时刻的最优估计值,推出这一时刻的预测值:

2.上一时刻最优估计值方差/协方差和超参数Q推出这一时刻预测值方差/协方差

深入理解,Q其实对应的是过程噪声的方差

更新:

1.这一时刻预测值方差/协方差和超参数R推出卡尔曼增益K_{t}

K_{t}为卡尔曼增益

因为P_{t}^{-}是和Q有关的,所以将P_{t}^{-}的公式带入可以推出卡尔曼增益K_{t}是和Q和R都有关的

深入理解,R其实对应的是观测噪声的方差

2.这一时刻预测值、这一时刻观测值、卡尔曼增益推出这一时刻最优估计值

为这一时刻观测值

3.这一时刻预测值方差/协方差、卡尔曼增益推出这一时刻最优估计值方差/协方差

举例:

小车有两个状态值,p代表位置,v代表速度。小车处于匀加速直线运动

预测模型:

1.上一时刻的最优估计值,推出这一时刻的预测值:

2.上一时刻最优估计值方差/协方差和超参数Q推出这一时刻预测值方差/协方差

推导:

因为

 所以

其实第一步中这一时刻预测值后面应该还有一个过程噪声Wt要加上(前面省略了),如下图所示,这里面Q是前面省略的过程噪声Wt的方差

测量模型:

GPS测量只能测量小车的位置,不能测量小车的速度,所以

Zp是小车此时的真实位置

Zv是小车此时的真实速度

Pt是测量得到的小车此时的位置

Pt是GPS测量位置的误差

更新模型:

1.这一时刻预测值方差/协方差和超参数R推出卡尔曼增益

前面测量模型中,因为无法测速度,测量相当于是一维的,一维时H看作为1

2.这一时刻预测值、这一时刻观测值、卡尔曼增益推出这一时刻最优估计值

3.这一时刻预测值方差/协方差、卡尔曼增益推出这一时刻最优估计值方差/协方差

预测更新循环往复,就能得到每一时刻的最优估计值

3.2.调节超参数
3.2.1.Q和R的取值
当F=1且一维的情况H=1,那么

 再结合这一时刻最优估计值的公式,如下:

可以得出:

当我们更信任观测值时,那么应该让卡尔曼增益K增大;从K的公式中可以看出,R越小K越大,Q越大K越大

当我们更信任模型估计值时,那么应该让卡尔曼增益K减小;从K的公式中可以看出,R越大K越小,Q越小K越小

结论:

当我们更信任模型估计值时(模型估计基本没有误差),那么应该让K小一点,我们应该将R取大一点,Q取小一点

当我们更信任观测值时(模型估计误差较大),那么应该让K大一点,我们应该将R取小一点,Q取大一点

3.2.2.P0和X0的取值
和的取值其实是比较随意的,因为经过后面几轮迭代后,就会很快趋于稳定值

3.2.3.卡尔曼滤波的使用

标签:方差,估计值,卡尔曼滤波,噪声,协方差,时刻
From: https://www.cnblogs.com/kn-zheng/p/17876880.html

相关文章

  • SLAM基础-扩展卡尔曼滤波
    https://slowlythinking.github.io/2019/07/Paper_Framework-EKF/                ......
  • 计算机舍入误差对卡尔曼滤波器的影响
    本文主要学习计算机舍入误差对卡尔曼滤波器的影响,在实际工程中,我们去分析跟踪轨迹和点云数据通常关注的点都是跟踪和点云数据的误差。至于计算机引入的舍入误差其实很多时候都会忽略。因此本文参考《卡尔曼滤波理论与实践(MATLAB版)》(第四版)对舍入误差的影响进行一个学习和讨论,......
  • 卡尔曼滤波器在实际工程中考虑的问题-------新息的分析
    一、本文重点本篇文章主要讨论的是什么可以称为卡尔曼滤波器工程的问题,该部分主要是根据卡尔曼滤波器在长期的应用和误用实践中发展出来的。本篇文章的参考内容来自《卡尔曼滤波理论和实践》,同时结合自己的项目开发挑出部分自己测试过程中经常调试的内容。如果有侵权请联系删......
  • 卡尔曼滤波发散原因、解决方案以及实测案例分析
    一、背景  2023年9月22日,今天本来开开心心搞测试,奈何雷达有了小情绪,之前能够稳定跟踪但今天不管如何测试对快速运动的行人都无法形成有效的跟踪,本来以为是SDK的问题(近两天测试换了一个新的SDK),换回去之后它也不行了。跟踪跟不上了,看着点云数据还可以,他就是跟不上。算法难搞哦,......
  • 【状态估计】基于卡尔曼滤波估计室内温度附matlab代码
    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。......
  • 卡尔曼滤波的五大公式
    预测:xhat_表示先验估计,xhat表示后验估计,带有_的先验估计,不带的后验估计xhat_(k)=A*xhat(k-1)+B*u(k-1)Pk_=A*Pk*A'+Q更新Kk=Pk_*H'*(H*Pk*H'_+R);xhat(k)=xhat_(k)+Kk(Zk-H*xhat_(k))Pk=(I-Kk*H)Pk_;clccloseall%%首先需要实际值和测量值需要考虑噪声信号(噪声信号符合高斯分布期望......
  • 【航迹】基于MN逻辑算法实现航迹关联和卡尔曼滤波外推附matlab代码
    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。......
  • 卡尔曼滤波二维图像点跟踪
    原理参考https://zh.wikipedia.org/wiki/%E5%8D%A1%E5%B0%94%E6%9B%BC%E6%BB%A4%E6%B3%A2代码#include<Eigen/Core>#include<Eigen/Dense>#include"opencv2/highgui/highgui.hpp"#include"opencv2/video/tracking.hpp"#include<ios......
  • 三维空间中的刚体运动、MPU6050、DMP姿态解算、卡尔曼滤波
    坐标系空间中三个正交的轴组成,构成线性空间的一组基($......
  • 卡尔曼滤波:再也不用瑟瑟发抖了
    本文来自公众号“AI大道理”这里既有AI,又有大道理。—————— 目标跟踪中,在数据关联后往往要进行卡尔曼滤波。数据关联算法得到了每个目标的观测数据。卡尔曼滤波使用关联的观测数据来估计目标的状态,并预测目标的未来位置和速度等信息。目标跟踪过程中,......