卡尔曼滤波器的作用是什么 卡尔曼滤波

卡尔曼滤波器有什么作用?卡尔曼滤波器是一种由卡尔曼提出的用于时变线性系统的递归滤波器 。这个系统可用于包含正交状态变量的微分方程模型来描述 , 这种滤波器是将过去的测量估计误差合并到新的测量误差中来估计将来的误差 。

卡尔曼滤波器的作用是什么 卡尔曼滤波

文章插图
卡尔曼滤波 将预测值和测量值进行结合 , 对系统状态进行最优估计的算法 。
在连续变化的系统中使用卡尔曼滤波是非常理想的 , 它具有占用内存小的优点(除了前一个状态量外 , 不需要保留其它历史数据) , 并且速度很快 , 很适合应用于实时问题和嵌入式系统 。
根据k-1时刻的系统状态预测k时刻系统状态 。
考虑外部因素控制的影响
外部因素会对系统进行控制 , 从而带来一些与系统自身状态没有相关性的改变 。其中成为控制矩阵 , 称为控制向量 , 如果没有外部控制 , 这部分可以忽略 。
外部噪声因素
在每次预测之后 , 我们可以添加一些新的不确定性来建立这种与“外界”(即我们没有跟踪的干扰)之间的不确定性模型
小结:
由上两式可知 , 新的最优估计是根据上一最优估计预测得到的 , 并加上已知外部控制量的修正 。而新的不确定性由上一不确定性预测得到 , 并加上外部环境的干扰 。
加入传感器观测数据
卡尔曼滤波的一大优点就是能处理传感器噪声 , 我们的传感器或多或少都有点不可靠 , 并且原始估计中的每个状态可以和一定范围内的传感器读数对应起来 。从测量到的传感器数据中 , 我们大致能猜到系统当前处于什么状态 。但是由于存在不确定性 , 某些状态可能比我们得到的读数更接近真实状态 。
传感器早上用协方差表示 , 该分布的均值是我们读取到的传感器数据 。
于是我们得到两个高斯分布 , 一个是预测值附近 , 一个是传感器读数附近 。把两个具有不同均值和方差的高斯分布相乘 , 得到一个新的具有独立均值和方差的高斯分布 。
结果如下 , 其中 , K为卡尔曼增益 。
总结:
我们可以用这些公式对任何线性系统建立精确的模型 , 对于非线性系统来说 , 我们使用扩展卡尔曼滤波 , 区别在于EKF多了一个把预测和测量部分进行线性化的过程 。
参考文章:
卡尔曼滤波理解与实现 本文为离散卡尔曼滤波算法的一 一个简明教程 , 从算法思想、实现过程、理论推导和程序实现四个方面阐述和分析了卡尔曼滤波算法 。
XU Ruilin完成本教程主要部分的编写 , WANG Xuejun完成第3节的编写 , ZHU Ximin完成2.2节的编写 , WEN Shuhan完成2.3节的编写 , MAO Bo完成全文整理、修订和排版 。
卡尔曼滤波(Kalman Filtering)及其一系列的优化和改进算法是目前在求解运动状态推算问题上最为普遍和高效的方法 。鲁道夫·卡尔曼 (Rudolf Emil Kalman) 在NASA埃姆斯研究中心访问时 , 发现他的方法适用于解决阿波罗计划的轨迹预测问题 。阿波罗飞船的导航电脑就是使用这种滤波器进行轨迹预测 。
卡尔曼滤波尤其适用于动态系统 , 这种方法对于内存要求极低而运算速度快 , 且能够保持较好的计算精度 , 这使得这种方法非常适合解决实时问题和应用于嵌入式系统 , 也就是说 , 卡尔曼滤波天然的适用于解决舰艇指控系统的航迹推算问题 。在接下来的内容里 , 我们将逐步领会卡尔曼滤波的这些绝佳特点 。
不过 , 现在我们先从复杂的舰艇航迹推算问题中解脱出来 , 从一个更加熟悉和简单的问题中来理解这个滤波算法的思想、过程和算法 。
假设有一辆无人车WALL-E , 需要导引它从A点到达B点 , 共有两种手段( 图1 ):
显然 , 两种方法都有一定的误差 。如果单独采用某一种方法进行定位 , WALL-E在误差的影响下将无法到达B点 。因此 , 需要将两种方法结合起来 , 得到一个更加精确的结果 , 这就是卡尔曼滤波要解决的问题 。
卡尔曼滤波方法如何看待我们的问题呢?在探究这个问题之前 , 我们先对问题进行抽象 , 并用数学语言来描述我们的问题 。

秒懂生活扩展阅读