(看多层kriging的时候再从草稿箱里面翻出来看,发现思想基本一致,时间很长了就直接发吧)
卡尔曼滤波的原理非常简单,实际上核心公式就是贝叶斯公式与多元正态分布的组合。
![61b2e121a32851cdec2b32064d9eb590.png](https://i-blog.csdnimg.cn/blog_migrate/7b0666d2518686b5130b5c7341b8fe8c.jpeg)
问题背景也很简洁,就是我们对于一个状态量x,例如位移、速度,我们可以通过初始条件直接给出基于物理学定律的预测。
然而在工程应用中往往存在各种噪音使得基于物理模型的预测是不准的。于是我们每时每刻还要通过观测来修正一下状态量。
如果观测是准的,那么我们连物理模型都不需要了,直接由观测量推出状态量就可以了。然而,观测也存在噪音,所以我们不能全靠观测,也不能全靠物理模型,取一个折中就可以了,也就是修正状态量x,修正后的x是物理模型的预测x'与观测z的加权。
怎么样加权呢?我们虽然不知道具体有什么观测,但是我们对于物理模型与观测的噪声还是有一定的认识。这种认识可以写成两个正态分布:
有一点很有趣,那就是,在正态分布的情况下,对于修正后的目标状态量或者说后验的状态量,求它的均方差最小等价于用贝叶斯公式求它的期望。我们已知物理模型与观测的方差,后验x可以直接通过二次函数极值推导最佳的修正量,这里就不用展开了。直接用贝叶斯公式表示它会更加清晰:
其中
参考文献:
[1] Welch G, Bishop G. An introduction to the Kalman filter[J]. 1995.
[2] Kutz J N. Data-driven modeling & scientific computation: methods for complex systems & big data[M]. Oxford University Press, 2013.
使用卡尔曼滤波修正洛伦兹方程观测量的具体实践:
1 初始条件不确定引起的偏差:
![eb8dde7e1be9339942e4c9457b78ef69.png](https://i-blog.csdnimg.cn/blog_migrate/d012cd235325df5754fb0b3f4b886d30.png)
2.带有测量误差的观测值:
![5e303b8b17006f66d34f757bb09eb3c0.png](https://i-blog.csdnimg.cn/blog_migrate/0f00f02a4e40e943013416c3e06156d8.png)
3.通过卡尔曼滤波修正的洛伦兹方程求解:
![ecea13034f9ecde393a3afb58a78296e.png](https://i-blog.csdnimg.cn/blog_migrate/fdc88885d397cfe1a94ac13bd6e58bd1.png)
上面对洛伦兹方程的讨论,是直接求观测x的一维问题。而在卡尔曼滤波中,往往是直接有一个矩阵运算,求出来未观测量X与模型参数θ。下面用一个简单的Toy Problem说明未观测量与参数的求解。
设观测量
经过公式推导,得到的卡尔曼增益为
在修正量趋近于0的极限情况下,
讨论一下KF的相关收敛性:
![d1fa94aef01522a71227846417f7568c.png](https://i-blog.csdnimg.cn/blog_migrate/ef7d553edee34bf932caf216dc40ded5.jpeg)