导读:随着传感技术、机器人、自动驾驶以及航空航天等技术的不断发展,对控制系统的精度及稳定性的要求也越来越高。卡尔曼滤波作为一种状态最优估计的方法,其应用也越来越普遍,如在无人机、机器人等领域均得到了广泛应用。


首先我们来了解一下卡尔曼!全名Rudolf Emil Kalman,匈牙利数学家,1930年出生于匈牙利首都布达佩斯。1953,1954年于麻省理工学院分别获得电机工程学士及硕士学位。1957年于哥伦比亚大学获得博士学位。

卡尔曼滤波器,正是源于他的博士论文和1960年发表的论文《A New Approach to Linear Filtering and Prediction Problems》(线性滤波与预测问题的新方法)

卡尔曼滤波(Kalman filtering)是一种利用线性系统状态方程,通过系统输入输出观测数据,对系统状态进行最优估计的算法。由于观测数据中包括系统中的噪声和干扰的影响,所以最优估计也可看作是滤波过程。

数据滤波是去除噪声还原真实数据的一种数据处理技术,Kalman滤波在测量方差已知的情况下能够从一系列存在测量噪声的数据中,估计动态系统的状态。由于它便于计算机编程实现,并能够对现场采集的数据进行实时的更新和处理,Kalman滤波是目前应用最为广泛的滤波方法,在通信,导航,制导与控制等多领域得到了较好的应用。

性质

①卡尔曼滤波是一个算法,它适用于线性、离散和有限维系统。每一个有外部变量的自回归移动平均系统(ARMAX)或可用有理传递函数表示的系统都可以转换成用状态空间表示的系统,从而能用卡尔曼滤波进行计算。

②任何一组观测数据都无助于消除x(t)的确定性。增益K(t)也同样地与观测数据无关。

③当观测数据和状态联合服从高斯分布时用卡尔曼递归公式计算得到的是高斯随机变量的条件均值和条件方差,从而卡尔曼滤波公式给出了计算状态的条件概率密度的更新过程线性最小方差估计,也就是最小方差估计。

形式

卡尔曼滤波已经有很多不同的实现,卡尔曼最初提出的形式一般称为简单卡尔曼滤波器。除此以外,还有施密特扩展滤波器、信息滤波器以及很多Bierman, Thornton 开发的平方根滤波器的变种。最常见的卡尔曼滤波器是锁相环,它在收音机、计算机和几乎任何视频或通讯设备中广泛存在。

应用

在雷达中,人们感兴趣的是跟踪目标,但目标的位置、速度、加速度的测量值往往在任何时候都有噪声。卡尔曼滤波利用目标的动态信息,设法去掉噪声的影响,得到一个关于目标位置的好的估计。这个估计可以是对当前目标位置的估计(滤波),也可以是对于将来位置的估计(预测),也可以是对过去位置的估计(插值或平滑)。

扩展卡尔曼滤波(EXTEND KALMAN FILTER, EKF)

扩展卡尔曼滤波器

是由kalman filter考虑时间非线性的动态系统,常应用于目标跟踪系统。

状态估计

状态估计是卡尔曼滤波的重要组成部分。一般来说,根据观测数据对随机量进行定量推断就是估计问题,特别是对动态行为的状态估计,它能实现实时运行状态的估计和预测功能。比如对飞行器状态估计。状态估计对于了解和控制一个系统具有重要意义,所应用的方法属于统计学中的估计理论。最常用的是最小二乘估计,线性最小方差估计、最小方差估计、递推最小二乘估计等。其他如风险准则的贝叶斯估计、最大似然估计、随机逼近等方法也都有应用。

状态量

受噪声干扰的状态量是个随机量,不可能测得精确值,但可对它进行一系列观测,并依据一组观测值,按某种统计观点对它进行估计。使估计值尽可能准确地接近真实值,这就是最优估计。真实值与估计值之差称为估计误差。若估计值的数学期望与真实值相等,这种估计称为无偏估计。卡尔曼提出的递推最优估计理论,采用状态空间描述法,在算法采用递推形式,卡尔曼滤波能处理多维和非平稳的随机过程。

假设我们要研究的对象是一个房间的温度。根据你的经验判断,这个房间的温度是恒定的,也就是下一分钟的温度等于现在这一分钟的温度(假设我们用一分钟来做时间单位)。假设你对你的经验不是100%的相信,可能会有上下偏差几度。我们把这些偏差看成是高斯白噪声(White Gaussian Noise),也就是这些偏差跟前后时间是没有关系的而且符合高斯分配(Gaussian Distribution)。另外,我们在房间里放一个温度计,但是这个温度计也不准确的,测量值会比实际值偏差。我们也把这些偏差看成是高斯白噪声。

卡尔曼滤波器的通俗举例

好了,现在对于某一分钟我们有两个有关于该房间的温度值:你根据经验的预测值(系统的预测值)和温度计的值(测量值)。下面我们要用这两个值结合他们各自的噪声来估算出房间的实际温度值。
假如我们要估算k时刻的是实际温度值。首先你要根据k-1时刻的温度值,来预测k时刻的温度。因为你相信温度是恒定的,所以你会得到k时刻的温度预测值是跟k-1时刻一样的,假设是23度,同时该值的高斯噪声的偏差是5度(5是这样得到的:如果k-1时刻估算出的最优温度值的偏差是3,你对自己预测的不确定度是4度,他们平方相加再开方,就是5)。然后,你从温度计那里得到了k时刻的温度值,假设是25度,同时该值的偏差是4度。

由于我们用于估算k时刻的实际温度有两个温度值,分别是23度和25度。究竟实际温度是多少呢?相信自己还是相信温度计呢?究竟相信谁多一点,我们可以用他们的covariance来判断。因为Kg^2=5^2/(5^2+4^2),所以Kg=0.78,我们可以估算出k时刻的实际温度值是:23+0.78*(25-23)=24.56度。可以看出,因为温度计的covariance比较小(比较相信温度计),所以估算出的最优温度值偏向温度计的值。

现在我们已经得到k时刻的最优温度值了,下一步就是要进入k+1时刻,进行新的最优估算。到现在为止,好像还没看到什么自回归的东西出现。对了,在进入k+1时刻之前,我们还要算出k时刻那个最优值(24.56度)的偏差。算法如下:((1-Kg)*5^2)^0.5=2.35。这里的5就是上面的k时刻你预测的那个23度温度值的偏差,得出的2.35就是进入k+1时刻以后k时刻估算出的最优温度值的偏差(对应于上面的3)。

就是这样,卡尔曼滤波器就不断的把covariance递归,从而估算出最优的温度值。他运行的很快,而且它只保留了上一时刻的covariance。上面的Kg,就是卡尔曼增益(Kalman Gain)。他可以随不同的时刻而改变他自己的值,是不是很神奇!


最后

需要卡尔曼滤波学习Z料及论文的可以加我小助理微信

小编整理了网上的各种人工智能学习资料,一共500G,有需要的可以加微

❶ 人工智能课程及项目(含有课件源码)能写进简历的企业级项目实战

❷人工智能优质必看书籍(“圣经”花书等)+人工智能论文合集

❸ 国内外知名大佬教程及配套zi料(女神李飞飞、吴恩达、李沐)

❹ 超详解人工智能学习路+系统学习zi料

❺优质人工智能资源网站整理 、人工智能行业报告

如果对大家有帮助的话记得点赞收藏呀~爱你们~

世界上应用最广泛的算法之一的卡尔曼滤波算法原理-从放弃到精通-无人机/机器人应用相关推荐

  1. 【算法系列】卡尔曼滤波算法

    系列文章目录 ·[算法系列]卡尔曼滤波算法 ·[算法系列]非线性最小二乘求解-直接求解法 ·[算法系列]非线性最小二乘求解-梯度下降法 ·[算法系列]非线性最小二乘-高斯牛顿法 ·[算法系列]非线性最 ...

  2. 微软:Excel公式是世界上使用最广泛的编程语言

    喜欢就关注我们吧! 文|一君 微软近日推出了一项 Excel 公式构建的新功能 LAMBDA,正则测试阶段.LAMBDA 允许使用 Excel 自身的公式语言自定义功能,而过去,Excel 中需要通过 ...

  3. jeecg 导出的excel不能使用公式_微软:Excel公式是世界上使用最广泛的编程语言...

    喜欢就关注我们吧! 文|一君 微软近日推出了一项 Excel 公式构建的新功能 LAMBDA,正则测试阶段.LAMBDA 允许使用 Excel 自身的公式语言自定义功能,而过去,Excel 中需要通过 ...

  4. 皮带秤 算法_改进型卡尔曼滤波算法在电子皮带秤动态称重中的应用.PDF

    改进型卡尔曼滤波算法在电子皮带秤动态称重中的应用.PDF 改进型卡尔曼滤波算法在电子皮带秤动态称重中的应用 江苏省计量科学研究院 李冰莹,马宇明,王海涛 南京理工大学 机械工程学院 李永新,葛方丽 [ ...

  5. python实现排列组合公式算法_Python实现卡尔曼滤波算法之贝叶斯滤波

    Python实现卡尔曼滤波算法之贝叶斯滤波 作者:yangjian 卡尔曼滤波器属于贝叶斯滤波器的一种特例,本文主要讲解贝叶斯滤波原理及其算法的python实现. 先来看下贝叶斯公式 贝叶斯公式 :后 ...

  6. python中值滤波算法_Python实现卡尔曼滤波算法之贝叶斯滤波

    Python实现卡尔曼滤波算法之贝叶斯滤波 作者:yangjian 卡尔曼滤波器属于贝叶斯滤波器的一种特例,本文主要讲解贝叶斯滤波原理及其算法的python实现. 先来看下贝叶斯公式 贝叶斯公式 :后 ...

  7. 世界上最神奇的数字 算法求解

    一个自然数的数位打乱之后,重新组成一个自然数,则称这两个数为相同组合数,如果一个数的2倍数,3倍数,.....6倍数都是这个数的相同组合数,我们则称这个数是神奇的数,其中自然数中最小的神奇的数就称为这 ...

  8. 我开发了世界上最流行的软件,并把100%的公司股份送给了老婆!

    世界上使用最广泛的软件是哪个? Windows ? Android?  Office ? 都不对! 答案是 SQLite ! 你可能没听说过它,但是它就在你身边的: 每一台智能手机中(Android ...

  9. 【转】卡尔曼滤波算法详细推导(相当值得一看)

    转载自   卡尔曼滤波算法详细推导     这一篇对预备知识的介绍还是很好的,过程与原理讲解也很到位,应该是目前看到中文里最好的讲解了. 一.预备知识 1.协方差矩阵     是一个维列向量,是的期望 ...

最新文章

  1. C++中智能指针的设计和使用
  2. spoj453 Sums in a Triangle (tutorial) 动态规划
  3. POJ1679判断最小生成树的唯一性
  4. server2012 图文安装流程
  5. Android Service被系统回收的解决方法
  6. 谦虚:让你备受人们的欢迎 — 《别输在不会表达上》
  7. [ CQOI 2014 ] 数三角形
  8. 由一位华为员工被辞退说起
  9. rabbitmq使用mqtt协议
  10. windows使用opencc中文简体和繁体互转
  11. 深度学习、目标检测相关博客链接
  12. 人工智能驱动的智能制造(人工智能系列)
  13. java企业工程项目管理系统平台源码(三控:进度组织、质量安全、预算资金成本、二平台:招采、设计管理)
  14. 前端实习工作找不到,怎么增长实战经验
  15. Structured Program I – Print a Frame
  16. Android APP开发框架选择——JSBridge既个人心得和技巧
  17. php百度指数查询,根据社会保险法律制度规定,经劳动能力鉴定委员会鉴定,评定伤残等级的工伤职工,享受的伤残待遇包括( )。...
  18. 如何进入bios界面
  19. 正则表达式发明者_【D1n910】正则表达式入门(三)
  20. 马哥Linux学习笔记8-4lvm应用

热门文章

  1. FreeSWITCH 与 Asterisk(译)
  2. 第十七届智能车竞赛 - 磁力计角度数据处理
  3. 哈尔滨商业大学c语言考试形式,知到题库管理会计(哈尔滨商业大学)答案教程...
  4. SAP 科目的 未清项管理的理解
  5. 模式识别(八)神经网络(BPNNCNN)识别细胞数据集
  6. 基于Java毕业设计学校图书馆管理系统源码+系统+mysql+lw文档+部署软件
  7. java制作海报工具类,java操作图片贴图,java给图片添加文字,调整字体颜色大小间距
  8. 【企业信息化系列】如何以BPM流程平台为核心串联公司业务系统
  9. 极力推荐自由飞鸽的电子书《linux 0.11内核详解》,我传至纳米盘,也可到oldlinux.org 去下载
  10. 显示pycharm地图