从系列中:理解卡尔曼滤波器
Melda Ulusoy, MathWorks
本视频解释了非线性状态估计器背后的基本概念,包括扩展卡尔曼滤波器,无味卡尔曼滤波器和粒子滤波器。
卡尔曼滤波器只对线性系统有定义。如果你有一个非线性系统,想要估计系统的状态,你需要使用非线性状态估计器。本视频探讨了不同的非线性滤波器,以帮助您选择一个将工作于您的非线性系统。扩展卡尔曼滤波器线性化当前估计均值附近的分布,然后在卡尔曼滤波器算法的预测和更新状态中使用这种线性化。无气味卡尔曼滤波器从高斯分布中选择一个最小样本点集(也称为西格玛点),并在非线性系统中传播它们。然后计算新转换样本点集的均值和协方差,并使用这些来找到新的状态估计。粒子滤波器背后的工作原理类似于无味卡尔曼滤波器,但粒子滤波器可以近似任何任意分布。为此,粒子滤波器需要更大的点集(称为粒子)。
下载这个虚拟实验室通过互动练习学习线性和扩展卡尔曼滤波器设计。
一般来说,我们希望我们的生活是线性的,如图所示。这可能与成功、收入或幸福有关。但事实上,生活并不是线性的。它充满了起伏,有时甚至变得更加复杂。如果你是一名工程师,你将经常需要处理非线性系统。为了帮助你,我们将讨论非线性状态估计器。
之前,我们使用一个简化的线性汽车模型来讨论通过卡尔曼滤波器的状态估计。然而,如果这个系统的建模考虑了由于道路摩擦引起的非线性,那么状态转移函数就变成非线性的。在这里,噪声是线性进入系统的,但也可能有系统的噪声不是相加的。在一般系统中,状态转移函数或测量函数或两者都可能是非线性的。对于所有这些情况,我们需要使用非线性状态估计器而不是卡尔曼滤波器,因为卡尔曼滤波器仅为线性系统定义。下面是一个例子,说明了使用卡尔曼滤波器对非线性系统进行状态估计的问题。卡尔曼滤波器假设为高斯分布。如果状态转移函数是线性的,那么经过线性变换后,分布保持高斯性质。虽然这里没有显示,但对于测量函数g(x)也是如此。然而,如果f(x)是非线性的,那么得到的状态分布可能不是高斯分布。 And therefore, the Kalman filter algorithm may not converge. In this case, you can implement an extended Kalman filter (EKF), which linearizes the nonlinear function around the mean of the current state estimate. At each time step, the linearization is performed locally and the resulting Jacobian matrices are then used in the prediction and update states of the Kalman filter algorithm.
当系统是非线性的并且可以通过线性化很好地逼近时,扩展卡尔曼滤波器是一种很好的状态估计方法。然而,它有以下缺点:1。由于导数比较复杂,解析计算雅可比矩阵可能比较困难;2.用数值方法计算它们可能会有很高的计算成本;3.你不能将扩展卡尔曼滤波器应用于不连续模型的系统,因为系统是不可微的,雅可比矩阵也不存在;和4。线性化不能为高度非线性系统提供很好的近似。在最后一种情况下,线性化是无效的,因为非线性函数不能很好地近似线性函数,并不能描述系统动力学。
为了解决扩展卡尔曼滤波器的问题,您可以使用另一种称为unscented卡尔曼滤波器(UKF)的估计技术。你知道吗,这个过滤器的发明者是在注意到同事桌子上的除臭剂后想到这个名字的?现在回到滤波器:与扩展卡尔曼滤波器近似非线性函数不同,无味卡尔曼滤波器近似概率分布。我们的意思是:这是概率分布。无气味卡尔曼滤波器选择一个最小的样本点集,使它们的均值和协方差与这个分布相同。这些被称为sigma点,并且对称地分布在平均值周围。每个西格玛点然后通过非线性系统模型传播。计算非线性变换点的均值和协方差,并计算经验高斯分布,然后用它来计算新的状态估计。注意,在线性卡尔曼滤波算法中,误差协方差P是在预测步骤中使用状态转移函数计算的,然后使用测量值进行更新。然而,在无气味卡尔曼滤波器中,我们不以同样的方式计算它,因为我们是凭经验得到它。
另一种基于非常相似原理的非线性状态估计器是粒子滤波器(PF)。它还使用被称为粒子的样本点。与无气味卡尔曼滤波器的显著区别是,粒子滤波器近似于任何任意分布,因此它不局限于高斯假设。为了表示一个未知的任意分布,粒子滤波器需要的粒子数量比无气味卡尔曼滤波器要大得多。
为了进行比较,下面是我们到目前为止讨论过的过滤器的属性。卡尔曼滤波器只适用于线性系统。对于非线性系统的状态估计,您可以使用EKF、UKF或PF。请注意,为了使EKF精确估计状态,它需要对非线性系统模型进行良好的线性化。否则,过滤器提供较差的估计。粒子滤波器是唯一适用于任意分布的滤波器。我们可以看到计算成本随着我们往下移动而增加。粒子滤波器是计算上最昂贵的滤波器,因为它需要大量的粒子来近似任意分布。
在本视频中,我们讨论了不同非线性状态估计器背后的基本概念。现在,如果你需要处理任何非线性问题比如汽车例子中的道路摩擦,你知道如何估计非线性系统的感兴趣状态。有关ekf, ukf和pf的更多信息,请浏览本视频描述中的资源。
您也可以从以下列表中选择一个网站:
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。