Example:从上面的递推关系知道,要估计n时刻就必须知道n-1时刻,那么n=0时刻该如何估计,因此,卡尔曼滤波要初始化的估计值x(-1|-1)和误差矩阵P(-1|-1),设x(-1,-1)~N(Us, Cs),则初始化:
还可以更简单一些:设小车做匀速(而非匀加速)直线运动,方便计算,假设速度绝对的恒定(不波动,所以相关的方差都为0),则u(t)==0恒成立。设预测(过程)位移噪声w(n)~N(0,2^2),测量位移噪声v(n)~N(0,1^2),n-1状态的位移,速度为v=10m/s,n时刻与n-1时刻的物理时差为ΔT=1s。同时,也用尺子测了一下,结果位移为z(n)=62m。
则A = [1 ΔT; 0 1]=[1 1; 0 1],根据(5),预测值为
[img]http://www.forkosh.com/mathtex.cgi?%20%5CSmall%20%5Chat%7Bx%7D%28n%7Cn-1%29=1*%5Chat%7Bx%7D%28n-1%7Cn-1%29+v*%5CDelta%7BT%7D=[60m;%2010m/s]%7D[/img]。
现在已经有了估计值和测量值,哪个更接近真值,这就通过最小均方误差矩阵来决定!
要求已知上次的修正后的最小均方误差P(n-1|n-1)=[1 0; 0 0](匀速,所以P(2,2)=0,右斜对角线上为协方差,值为0,P(1,1)为n-1时刻位移量的均方误差,因为要计算P(1,1)还得先递推往前计算P(n-2|n-2),所以这里暂时假设为1),则根据(6)式,最小预测预测均方误差为P(n|n-1)=[1 0; 0 0][1 1; 0 1][1 0; 0 0]=[1 0; 0 0]。
由物理量的关系知,H(n)=[1 1],增益K(n)=[1;0]{1+[1 1][1 0; 0 0][1; 1]}^(-1)=[1/2;0]。
所以,最后的n时刻估计值既不是用n-1得到的估计值,也不是测量值,而是:[img]http://www.forkosh.com/mathtex.cgi?%20%5CSmall%20%5Chat%7Bx%7D%28n%7Cn%29=[60;1]+[1/2;0]%7B62-[1%201][60;1]%7D=[60.5m;%201m/s][/img],因此,最终的Kalman滤波器的输出位移是60.5m。
Kalman滤波器巧妙的用“独立高斯分布的乘积”将这两个测量值和估计值进行融合!如下图:估计量的高斯分布和测量量的高斯分布经过融合后为绿色的高斯分布曲线。
假设状态空间的n-1时刻估计值和观测空间的n时刻测量值都满足独立高斯分布,Kalman滤波器就是通过高斯分布的乘积运算将估计值和测量值结合,获得最接近真值的n时刻估计。
高斯分布乘积运算的结果仍为高斯分布,高斯分布的均值对应n时刻的估计值,高斯分布的方差对应n时刻的均方误差。
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |