接着上一篇文章:https://blog.csdn.net/ZLH_HHHH/article/details/90515377
卡尔曼滤波在原本的 R L S RLS RLS基础上增加了一个线性系统。
卡尔曼滤波应用于下面的系统:
(1) x ( k ) = F ( k − 1 ) x ( k − 1 ) + G ( k − 1 ) u ( k − 1 ) + w ( k − 1 ) x(k)=F(k-1)x(k-1)+G(k-1)u(k-1)+w(k-1)\tag{1} x(k)=F(k−1)x(k−1)+G(k−1)u(k−1)+w(k−1)(1)
(2) y ( k ) = h ( k ) x ( k ) + v ( k ) y(k)=h(k)x(k)+v(k)\tag{2} y(k)=h(k)x(k)+v(k)(2)
其中 w , v w,v w,v是零均值,不相关白噪音。即协方差为 0 0 0.
这里, x x x 就是当前系统的状态,比如速度,位置,温度,等等。
( 1 ) (1) (1)式可以理解为,上一个时刻,系统的一个输入,对系统产生的影响。系统的状态改变。比如突然有外力做工,从新更新状态。但是这个更新是有误差的。
( 2 ) (2) (2)式子,可以认为是测量, h ( k ) h(k) h(k)对应的在 x ( k ) x(k) x(k)状态下的输出 y ( k ) y(k) y(k)被我们测量出来,有一个不可观测的随机误差 v ( k ) v(k) v(k), h , y h,y h,y都是已知的。
经过 ( 1 ) (1) (1)的计算,对 x x x状态进行了一次转移。并被 ( 2 ) (2) (2)式纠正。
动态的系统,之前的 R L S RLS RLS已经不再适用, x ( k − 1 ) x(k-1) x(k−1)的状态在不停改变的。或者说需要修改 R L S RLS RLS算法。
R L S RLS RLS算法关键的一点就是:
P ( k ) = ( H T ( k ) H ( k ) ) − = E ( ( x ^ ( k ) − x ( k ) ) ( x ^ ( k ) − x ( k ) ) T ) P(k)=(H^T(k)H(k))^-=E\Big((\hat x(k) - x(k))(\hat x(k) - x(k))^T\Big) P(k)=(HT