卡尔曼滤波计算流程(卡尔曼滤波简介)

卡尔曼滤波计算流程(卡尔曼滤波简介)(1)

让我们把卡尔曼滤波器看作一个黑盒。卡尔曼滤波器有输入和输出。输入是有噪声的,有时是不准确的测量。输出的噪声更少,有时估计更准确。估计可以是未测量或观测到的系统状态参数。最后一句话描述了卡尔曼滤波的超能力。同样,卡尔曼滤波估计的系统参数没有观察或测量。

简而言之,你可以将卡尔曼滤波看作是一种算法,它可以实时地以很高的精度估计可观测和不可观测参数。高精度的估计被用来进行精确的预测和决策。由于这些原因,卡尔曼滤波器被用于需要可靠信息的机器人和实时系统。

什么是卡尔曼滤波?

卡尔曼滤波是一种算法,从多个来源的数据输入并估计未知变量。卡尔曼滤波常用于导航和控制技术,其优点是能够比使用奇异测量方法进行单个预测更准确地预测未知值。

简单地说,卡尔曼滤波是一种用于估计系统参数的通用算法。它可以使用不准确或有噪声的测量来估计该变量或另一个不可观察变量的状态,以更高的精度。例如,卡尔曼滤波的作用如下:

物体跟踪-使用测量的物体的位置,以更准确地估计该物体的位置和速度。

在数字秤上估计体重-使用测量的压力在一个表面上估计物体在该表面的重量。

制导、导航和控制——使用惯性测量单元(IMU)传感器来估计目标的位置、速度和加速度; 然后用这些估计来控制物体的下一步动作。

卡尔曼滤波的真正力量不是平滑测量。它是一种估计无法精确测量或观测到的系统参数的能力。在实时操作的系统中,估计精度提高,使系统具有更大的控制能力,从而具有更多的能力。

我们需要对系统状态的准确估计有很多原因。其中一个是我们需要它在反馈控制中来决定如何改变系统。例如,如果我们试图控制某物的温度,我们需要对当前的温度有一个很好的估计,以便知道我们是需要从系统中增加热量还是减少热量。

很明显,用一个或多个传感器直接测量系统是估计状态的一种方法,然而,可能不太明显的是,我们通常可以通过提供传感器本身测量之外的额外信息来改进我们的估计。我们使用这些附加信息的方法之一就是使用卡尔曼滤波。

卡尔曼滤波是一类估计滤波的一部分,使用两步过程,即预测和校正,以产生最优状态估计。

如果系统可以用线性模型描述,并且过程噪声和测量噪声的概率分布是高斯的,那么用线性卡尔曼滤波器可以得到最优状态估计。

但在实践中,没有真正的线性系统,噪声也可能没有一个完美的高斯概率分布,这意味着线性卡尔曼滤波器的结果对实际系统来说从来都不是绝对最优的。然而,它们仍然可以很好地处理现实生活中的许多问题,通过理解线性卡尔曼滤波器,你获得的直觉可以帮助你更好地理解它们的非线性对应物,如扩展卡尔曼滤波器、sigma-点滤波器和粒子滤波器。

如果我刚才描述的一切现在对你来说没有什么意义,不要担心,因为我将在这篇文章中更多地涉及其中的一些内容。说到这里,让我们通过一个最小的数学方法来理解线性卡尔曼滤波器。

人们如何估计状态?

我们可以从思考人类如何评估事物的状态开始。例如,我们如何知道一辆车的速度,电路的电压,或一天的时间?

显而易见的答案是,我们直接用传感器测量它,就像用速度计、电压表或时钟那样。类似地,我们可以通过测量其他量来得到我们想要的状态。如果我们用两个连续位置测量值的差来估计速度,就会出现这种情况。

但是,作为人类,我们有其他的知识来挑战我们测量的有效性。我们对世界有心理模型,我们用这些模型来创造我们所测量的东西的期望。如果我们的期望与测量结果不同,我们会经历一个过程,试图确定我们更信任哪个结果。如果我们多少相信这两个结果,但不完全相信,那么我们可以把它们混合在一起,得出最好的猜测。

例如,如果你看手表,它显示现在是下午4点37分,然后你等了大约一分钟,再次查看,它显示是下午6点15分,你不会自动相信这个结果。我们对时间的流逝和宇宙的行为有了大致的理解这些额外的知识让我们能够预测系统的状态在一段时间内会发生怎样的变化。在这种情况下,我们会假设我们的传感器(手表)有问题,我们会更相信我们对时间的估计。

如果我们的模型是好的,为什么要使用测量呢?

如果我们有一个完美的模型并且我们知道系统的初始条件,那么我们就能很好地预测系统状态是如何随时间变化的。我是说,既然我们什么都知道,为什么还要摆弄传感器呢?不幸的是,我们预测事情结果的能力并不是完美的,它容易出错。这种错误来自于我们使用了错误的系统模型,以及不知道和不考虑所有可能影响系统状态的外部输入。因此,仅仅根据我们有缺陷的预测来判断系统的状态是不明智的。通常,我们预测未来的时间越长,我们对答案就越不确定,因为错误往往会随着时间的推移而累积。

继续以手表为例,如果你查看手表,然后等待你认为是一个小时的时间,但根据你的手表只有54分钟,那么你可能更倾向于相信测量结果,而不相信你的预测。

这正是卡尔曼滤波器背后的思维过程。它(以一种最优的方式)结合了来自噪声传感器的测量结果和来自有缺陷模型的预测,从而获得比单独使用任何一种方法都能提供的更准确的系统状态估计。

卡尔曼滤波是如何工作的?

卡尔曼滤波使用两步法估计未知变量。该算法首先对当前状态变量进行估计,并测量其不确定性。然后,该算法使用加权平均更新估计,其中更多的权重归因于较高的不确定性水平的估计。由于该过滤器接收来自多个源的信息,包括当前状态和预测状态,因此与只对多个源中的一个进行估计相比,该过滤器能够提供更高水平的准确性。

卡尔曼滤波与机器学习

卡尔曼滤波最常见的用途之一是在导航和定位技术。想象一下,一辆装有GPS发射器的汽车正沿着山路行驶。卡尔曼滤波可以用于从汽车中获取GPS数据,但GPS设备并不总是完全准确。因此,卡尔曼滤波可以吸收速度和速度数据来调整汽车位置随时间的变化率。自然地,根据物理定律,当汽车行驶得更快时,变量的不确定性水平就会降低,反之亦然。所有这些信息都被用来预测汽车的位置,然后随着汽车沿着道路行驶,这个过程被更新后的信息重复。因为卡尔曼滤波是递归的,所以它不需要知道所有的汽车位置和速度数据,而只需要知道最后的已知位置和速度。其基本的信息更新模型类似于隐马尔可夫模型。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页