文章目录

  • 前言
  • 学习目录
  • 1、开始之前先需要知道的几个概念
  • 2、非线性状态估算器
    • 2.1、扩展卡尔曼滤波器(EKF)
    • 2.2、无味卡尔曼滤波器(UKF)
    • 2.3、粒子滤波器(PF)
    • 2.4、总表

  本文是博主学习笔记,点击这里观看原视频。


前言

  作为一名工程师会经常需要处理非线性系统,所以下面将简单介绍几种应用于非线性系统的滤波器。


学习目录

从零开始学习Kalman Filters之一:Kalman Filters的常见用途、什么是状态观测器?
从零开始学习Kalman Filters之二:最优状态估计、最优估计算法和方程
从零开始学习Kalman Filters之三:非线性状态估算器
从零开始学习Kalman Filters之四:卡尔曼滤波C语言代码实现


1、开始之前先需要知道的几个概念

  非线性函数:线性函数是一次函数的别称,则非线性函数即函数图像不是一条直线的函数。非线性函数包括指数函数、幂函数、对数函数、多项式函数等等基本初等函数以及他们组成的复合函数。
  状态转移方程:状态转移方程,是动态规划中本阶段的状态往往是上一阶段状态和上一阶段决策的结果。如果给定了第K阶段的状态Sk以及决策uk(Sk),则第K+1阶段的状态Sk+1也就完全确定。
  雅可比矩阵:在向量微积分中,雅可比矩阵是一阶偏导数以一定方式排列成的矩阵,其行列式称为雅可比行列式。雅可比矩阵的重要性在于它体现了一个可微方程与给出点的最优线性逼近。因此,雅可比矩阵类似于多元函数的导数


2、非线性状态估算器

  继续回到之前的汽车问题。

  现在将状态转换函数和观测函数变为非线性,这里噪声还是被线性的加入系统但是噪声也可能并非线性的加进来。

  接下来使用一个例子来展示卡尔曼滤波器对非线性系统进行状态估算出现的问题。卡尔曼滤波是在假设高斯分布的条件下进行的,如果状态转移函数是线性的,那么在经历线性变换之后,分布保持其高斯特性。

  但是,如果f(x)是非线性的,那么得到的状态分布可能不是高斯分布。因此,卡尔曼滤波算法可能不收敛。

2.1、扩展卡尔曼滤波器(EKF)

  这个时候我们可以使用扩展卡尔曼滤波器,它把非线性函数在当前估算状态的平均值附近进行线性化。在每个时间步,执行线性化,然后将得到的雅可比矩阵用于预测和更新卡尔曼滤波器算法的状态。

  使用条件:当系统是非线性,并且可以通过线性化很好地近似时,那么扩展卡尔曼滤波器是状态估算的一个很好的选择。
  缺点:
  1. 由于复杂的导数,可能难以解析计算雅可比矩阵;
  2.以数值方式计算它们则可能需要很高的计算成本;
  3.扩展卡尔曼 滤波器不适用于具有不连续模型的系统,因为系统不可微分时雅各比矩阵不存在;
  4.高度非线性系统的线性化效果不好。

2.2、无味卡尔曼滤波器(UKF)

  它并不像扩展卡尔曼滤波器那样近似非线性函数。无味卡尔曼滤波器近似概率分布。无迹的 卡尔曼滤波器选择一组最小的采样点,让它们的均值和协方差与该分布相同。这些被称为西格玛点,并且围绕均值对称分布。
  然后,每个西格玛点通过非线性系统模型计算。并计算非线性变换后的输出点的均值和协方差,计算经验高斯分布,用来计算新的状态值。也就是说通过抽样的方式最大限度的将其转换为高斯分布的形式。

  注意,在线性卡尔曼滤波器算法中,在预测步骤中使用状态转移函数计算误差协方差P,让后使用测量量进行更新。但是,在无迹的卡尔曼滤波器中,我们不会以相同的方式计算它,因为我们以经验方式得到它。

2.3、粒子滤波器(PF)

  和无味卡尔曼滤波器比较相像的是粒子滤波器(PF),它使用的样本点称为粒子。马无还卡尔曼滤波器的显着差异在于,粒子滤波器近似任意分布,所以它不仅限于高斯假设。当然这种条件下它所需要的粒子数要远远大于无迹卡尔曼滤波器所需要的粒子数。

2.4、总表


  总的来说,卡尔曼滤波器仅适用于线性系统,对于线性系统的状态估算可以使用EKF,UKF或者PF,使用EKF时要确保非线性系统模型能很好的进行线性化,粒子滤波器是唯一一个可以适用于任何分布的滤波器。


【飞控理论】从零开始学习Kalman Filters之三:非线性状态估算器相关推荐

  1. 【飞控理论】从零开始学习Kalman Filters之一:Kalman Filters的常见用途、什么是状态观测器?

    文章目录 前言 学习目录 1.Kalman Filters的常见用途 1.1.数据源无法直接被测量时卡尔曼滤波器是如何进行估算系统的状态 1.2.数据源在噪音影响下如何使用卡尔曼滤波器来估计系统的状态 ...

  2. 【飞控理论】从零开始学习Kalman Filters之四:卡尔曼滤波C语言代码实现

    文章目录 前言 学习目录 1.卡尔曼线性滤波的五条黄金公式 2.陀螺仪的原始数据 3.C语言源码分析 附录 1.矩阵乘法 2.协方差矩阵 3.单位矩阵 前言   前面的文章系统介绍了卡尔曼滤波算法的数 ...

  3. 【飞控理论】从零开始学习Kalman Filters之二:最优状态估计、最优估计算法和方程

    文章目录 前言 学习目录 1.开始之前先需要知道的几个概念 2.最优状态估计 3.最优估计算法和方程   本文是博主学习笔记,点击这里观看原视频. 前言   在上次的学习中我们学习了卡尔曼滤波器的常见 ...

  4. [转载]从零开始学习OpenGL ES之三 – 透视

    现在你已经知道OpenGL是怎样绘图的了,让我们回头谈谈一个很重要的概念:OpenGL视口(viewport). 许多人对3D编程还很陌生,那些使用过像Maya, Blender, 或 Lightwa ...

  5. 从零开始学习UCOSII操作系统13--系统移植理论篇

    从零开始学习UCOSII操作系统13--系统移植理论篇 1.什么是系统移植? (1)UCOSII移植到不同的处理器上,所谓的移植就是将一个实时的内核能在其他的微处理器或者微控制器上运行. 为了方便移植 ...

  6. 《STM32从零开始学习历程》——DMA直接存储区访问理论知识

    <STM32从零开始学习历程>@EnzoReventon DMA-直接存储区访问理论知识 本文主要介绍STM32F4 DMA直接存储区的理论知识部分,本文主要参考手册为: [野火Embed ...

  7. 从零开始学习VIO笔记 --- 第三讲:基于优化的IMU和视觉信息融合

    从零开始学习VIO笔记 --- 第三讲:基于优化的IMU和视觉信息融合 一. 预备知识 1.1 知识点概述 1.2 PnP 中的重投影误差函数 1.3 后端优化中重投影误差函数/BA问题 二. VIO ...

  8. 从零开始学习jQuery (二) 万能的选择器

    本系列文章导航 从零开始学习jQuery (一) 开天辟地入门篇 从零开始学习jQuery (二) 万能的选择器 从零开始学习jQuery (三) 管理jQuery包装集 从零开始学习jQuery ( ...

  9. 从零开始学习SFR-- 1.0

    从零开始学习SFR--1.0 镜头质量检测相关基础知识 1.分辨率 1.1光学分辨率和图像分辨率 1.2系统分辨率 1.3相机的像元.像素.相机分辨率 1.4镜头"像素"与镜头分辨 ...

最新文章

  1. 待解决--LaTex为什么其他符号可以用,插入大于等于,或者小于等于就报错?
  2. WCF 基础之契约(Contract)[转]
  3. Swift学习——Swift解释特定的基础(七)
  4. oracle如何进入管理器,oracle 启动管理器
  5. How Vmware snapshots works
  6. 简明python教程 --C++程序员的视角(九):函数式编程、特殊类方法、测试及其他
  7. npm/cnpm install是啥意思
  8. python3怎么安装gmpy2_python2/3 模块gmpy2在linux下安装
  9. python缩进来分组语句_Python中的语句,缩进和注释
  10. java面试题_2020年JAVA最新大厂面试题!
  11. PowerPC E500 MMU详解
  12. 插件显示缩进_硬核,这 3 款 IDE 插件让你的代码牢不可破
  13. 对 Web 应用程序进行性能调优
  14. 计算机无法安装应用,编程软件无法安装或报错
  15. 常见的使用ICMP协议的命令
  16. Zabbix Agent2监控redis
  17. javassist修炼笔记
  18. VS2012(Visual Studio 2012)官方免费中文旗舰版下载(含激活密钥)
  19. ESP32笔记(2) flash使用
  20. Postgresql 配置远程访问

热门文章

  1. 函数c语言桶排算法,C语言基本排序算法之桶式排序实例
  2. nodemcu与matlab,NodeMCU Tutorial 1:NodeMCU + DS18S20 + Thingspeak + MATLAB
  3. clocks_per_sec 时间不正确_壁挂炉不用了怎么关?壁挂炉正确的关闭方法
  4. mysql php 连接查询_php如何连接mysql并查询数据
  5. pandas Series 判断每个元素是否包含某个子串
  6. np.argwhere报错maximum recursion depth exceeded while calling
  7. 织梦php添加函数调用,dedecms自定义函数及实际案例调用
  8. ubuntu 安装java_Hadoop3.1.3安装教程_单机/伪分布式配置
  9. 安徽省计算机二级考试教程,安徽省计算机二级自学教程推荐:Office高级应用上机指导(2018年版)...
  10. HTML+CSS页面练习——legend第九部分