卡尔曼滤波器是那些有趣的算法之一,如果你没有基础数学背景(在这种情况下是多元统计),它是完全无法理解的,但是当你有后见之明时就会变得非常明显。
每个关于普通卡尔曼滤波器的“为什么”问题都可以通过查看其问题陈述来回答,即设计一个滤波器:
- 假设驱动过程和测量误差的零均值高斯噪声。
- 假设正在估计线性系统的状态。
- 假设——除了噪声——系统参数和输入是完全已知的。
- 将“最优”定义为在每一步给出状态估计的解决方案,其期望值是与系统实际状态的最小欧几里得距离(即平方和)。
大多数时候,当卡尔曼滤波器的操作不直观时,那是因为你的直觉来自现实世界的系统,而现实世界的系统不是线性的,现实世界的噪声不是高斯的,而现实世界的系统模型不是 100% 准确的。
由于 (1−KH)≤1,我是否正确地看到 Pk 每次迭代都会减小?假设这是真的,这是否意味着状态估计的不确定性在足够的时间步长下变得非常小,并最终趋向于 Q,因为 KH 内的值每一步都变得更小?
对于常数和它确实渐近减少,但由于更新步骤,它不会趋向于。在“Steady State Kalman”上进行网络搜索,以获得比 StackExchange 帖子更多的信息。QRQPk=(1−KH)P−k
如果我们处于 P 中的值非常小的点,这意味着我们估计状态和估计测量的不确定性非常小,那么随着卡尔曼增益变小,测量的影响可能非常小 -即,即使创新 zk−Hx−k 非常大,我们也相信模型的预测,尽管也许真正的观察结果是正确的?
如果是这样,那么或或两者都是错误的。 和不是随意选择的——它们必须与问题相匹配。如果(且仅当)他们这样做,那么卡尔曼在最小二乘意义上是最优的。QRQR
假设 Pk 中的值非常小,并且我们得到的测量值与之前的测量值非常不同,但是(无论出于何种原因)都是正确的。卡尔曼滤波器的预测会与此有很大的偏差,仍然会有很小的方差,仅仅是因为根据之前的数据,KL 的预测比测量更可能吗?即在某个点上,我们只有具有很小方差的预测,无论它们是否符合事实,我现在看到了 Pk 中的值如何再次增长的方式。但我认为它们应该增长,因为如果创新对于某些迭代来说很大,那么预测肯定有问题
那么或或两者都是错误的,或者概率分布不是高斯分布,并且普通旧卡尔曼滤波器的假设不成立。QR
卡尔曼滤波器假设被估计状态的系统是线性的,和是已知的,并且它们描述的过程是高斯的。如果它们不为人所知(或与手头的问题不匹配),那么卡尔曼将不会给出最佳结果。如果过程不是高斯的,那么卡尔曼滤波器将是均方意义上的最佳线性滤波器,但它不会是总体上最好的滤波器,并且可能存在其他一些意义(即最小-最大值)不是最优的。QR
您似乎要么对已知和QR
例如,如果您的测量通常具有高斯误差,但偶尔会出现非常糟糕的测量(即,它有一些几乎是高斯长尾分布),那么您可以使用滤波器接近最优滤波器那是一个普通的老卡尔曼,但它监控和测量之间的误差,如果该误差比预测的大得多,你用一个比“正常”大得多的代替”。z^zH P HTR
OTOH,如果您的系统通常运行平稳,但每隔一段时间它就像被石头击中一样,您可以再次检测到与测量不匹配,并替换为大并重新计算z^QP(特别是如果“被石头击中”机制是已知的,并且对P)。
这些都不表明普通的旧卡尔曼滤波器本身存在问题——只是它仅在某种意义上是最优的,并且仅适用于特定模型,并且仅当现实与您用于生成滤波器的模型实际匹配时。偏离正确答案的界限,你会得到错误的答案。