卡尔曼滤波器:为什么我们要降低状态不确定性而不考虑当前测量?

信息处理 卡尔曼滤波器 协方差 可能性
2022-02-21 12:11:34

我正在努力完全理解卡尔曼滤波器背后的概念。为简单起见,让我们忽略输入变量并假设恒定过程和测量噪声我们现在可以使用状态转移矩阵和旧状态估计 来预测新状态。同样适用于估计不确定性矩阵:现在我们观察一些数据,根据估计不确定性和测量不确定性之间的比率,我们通过计算创新 来更新我们对状态估计的信念, 其中uQRF

xk=Fxk1
Pk=FPk1F+Q
xk=xk+K(zkHxk)
zk是当前测量值,是观察矩阵,是卡尔曼增益为了合并新的测量,状态不确定性被更新为HKPkHT(HPkHT+R)1Pk=(1KH)Pk

  1. 我是否正确地看到每次迭代都会减小,因为假设这是真的,这是否意味着状态估计的不确定性在足够的时间步长下变得非常小,并最终趋向于,因为 KH 内的值每一步都变得更小?Pk(1KH)1Q

  2. 如果我们处于中的值非常小的点,这意味着我们估计状态和估计测量的不确定性非常小,那么随着卡尔曼增益变小,测量的影响可能非常小 -即即使创新非常大,我们相信模型的预测,虽然也许真正的观察是正确的?PzkHxk

  3. 假设中的值非常小,并且我们得到的测量值与之前的测量值非常不同,但是(无论出于何种原因)都是正确的。卡尔曼滤波器的预测会与此有很大的偏差,仍然会有很小的方差,仅仅是因为根据之前的数据,KL 的预测比测量更可能吗?即在某一点上,我们只有具有很小方差的预测,无论它们是否符合事实,我现在看到了中的值如何再次增长的方式。但我认为它们应该增长,因为如果创新对于某些迭代来说很大,那么预测肯定有问题PkPk

感谢任何提示或参考

1个回答

卡尔曼滤波器是那些有趣的算法之一,如果你没有基础数学背景(在这种情况下是多元统计),它是完全无法理解的,但是当你有后见之明时就会变得非常明显。

每个关于普通卡尔曼滤波器的“为什么”问题都可以通过查看其问题陈述来回答,即设计一个滤波器:

  • 假设驱动过程和测量误差的零均值高斯噪声。
  • 假设正在估计线性系统的状态。
  • 假设——除了噪声——系统参数和输入是完全已知的。
  • 将“最优”定义为在每一步给出状态估计的解决方案,其期望值是与系统实际状态的最小欧几里得距离(即平方和)。

大多数时候,当卡尔曼滤波器的操作不直观时,那是因为你的直觉来自现实世界的系统,而现实世界的系统不是线性的,现实世界的噪声不是高斯的,而现实世界的系统模型不是 100% 准确的。

由于 (1−KH)≤1,我是否正确地看到 Pk 每次迭代都会减小?假设这是真的,这是否意味着状态估计的不确定性在足够的时间步长下变得非常小,并最终趋向于 Q,因为 KH 内的值每一步都变得更小?

对于常数它确实渐近减少,但由于更新步骤,它不会趋向于在“Steady State Kalman”上进行网络搜索,以获得比 StackExchange 帖子更多的信息。QRQPk=(1KH)Pk

如果我们处于 P 中的值非常小的点,这意味着我们估计状态和估计测量的不确定性非常小,那么随着卡尔曼增益变小,测量的影响可能非常小 -即,即使创新 zk−Hx−k 非常大,我们也相信模型的预测,尽管也许真正的观察结果是正确的?

如果是这样,那么或​​两者都是错误的。 不是随意选择的——它们必须与问题相匹配。如果(且仅当)他们这样做,那么卡尔曼在最小二乘意义上是最优的。QRQR

假设 Pk 中的值非常小,并且我们得到的测量值与之前的测量值非常不同,但是(无论出于何种原因)都是正确的。卡尔曼滤波器的预测会与此有很大的偏差,仍然会有很小的方差,仅仅是因为根据之前的数据,KL 的预测比测量更可能吗?即在某个点上,我们只有具有很小方差的预测,无论它们是否符合事实,我现在看到了 Pk 中的值如何再次增长的方式。但我认为它们应该增长,因为如果创新对于某些迭代来说很大,那么预测肯定有问题

那么或​​两者都是错误的,或者概率分布不是高斯分布,并且普通旧卡尔曼滤波器的假设不成立。QR

卡尔曼滤波器假设被估计状态的系统是线性的,是已知的,并且它们描述的过程是高斯的。如果它们不为人所知(或与手头的问题不匹配),那么卡尔曼将不会给出最佳结果。如果过程不是高斯的,那么卡尔曼滤波器将是均方意义上的最佳线性滤波器,但它不会是总体上最好的滤波器,并且可能存在其他一些意义(即最小-最大值)不是最优的。QR

您似乎要么对已知QR

例如,如果您的测量通常具有高斯误差,但偶尔会出现非常糟糕的测量(即,它有一些几乎是高斯长尾分布),那么您可以使用滤波器接近最优滤波器那是一个普通的老卡尔曼,但它监控和测量之间的误差,如果该误差比预测的大得多,你用一个比“正常”大得多的代替”。z^zH P HTR

OTOH,如果您的系统通常运行平稳,但每隔一段时间它就像被石头击中一样,您可以再次检测到与测量不匹配,并替换为大并重新计算z^QP(特别是如果“被石头击中”机制是已知的,并且对P)。

这些都不表明普通的旧卡尔曼滤波器本身存在问题——只是它仅在某种意义上是最优的,并且仅适用于特定模型,并且仅当现实与您用于生成滤波器的模型实际匹配时。偏离正确答案的界限,你会得到错误的答案。