卡尔曼滤波(六)——二维例子
一维例子
使用尺子测量一段距离:
Z1 = 6.5mm,σ1 = 0.2mm
Z2 = 7.3mm,σ2 = 0.4mm
如何求最优估计?
根据模型:
Xk=AXk-1+BUk+Wk-1
Zk = HXk + Vk
Q =E(WWT)= E( [w1,w2]T [w1,w2] )。
理解办法:
1. 认为 【一段距离】的长度是恒定的,因此,Xk=Xk-1 ,那么A = 1
2. 因为Xk 为固定的【一段距离】,而Zk又恰好是这段距离,中间没有转换,所以 H =1
预测:
先验值:X-k = AX^k-1 + BUk-1
先验协方差:P-k = A Pk-1 AT + Qk-1
令 H = 1:
问题:X-2 = X^1 ,问题: X^1 等于多少?
答:X^1 = 6.5mm ,只能从k =2开始算,而k =1时,只能拿测量值当后验值用。
根据:先验协方差:P-k = A Pk-1 AT + Qk-1,A = 1 ,K =2 ,得:先验协方差:P-2 = P1 + Q1
问题:Q1是多少?
答:Q1为过程误差协方差, 这里不认为有模型误差,Q1= 0。因为X^1 是直接估计的,所以不存在过程误差。 所以:P-2 = P1
又P1 是后验协方差矩阵,k =1时,只能拿测量值当后验值用,所以P1 = 0.2²
【预测】整理:
X-2 = X^1 = 6.5
P-2 = P1 = 0.2²
校正:
卡尔曼增益:Kk = P-kHT / (HP-kHT + Rk)
后验值:X^k = X-k + Kk (Zk - HX-K)
【预测】整理:
K2 = P-2 / (P-2 + R2) (观测值协方差阵: R = E(VVT) = E( [v1,v2]T [v1,v2] ))
R2 = 0.42 (测量值协方差:R = E(VVT) = E[ [v1,v2]T [v1,v2] ])
K2 = 0.2² / (0.2² + 0.42) = 0.2
最优估计:
X^2 = 6.5 + 0.22 / (0.22 + 0.42) * ( 7.3 - 6.5 )= 6.66m
后验协方差:Pk = (I - KkH)P-k
P2 = (1 - 0.2)* 0.2² = 0.032
二维例子
假设一个人在走路,那么有如下状态:
x1:位置
x2:速度
有如下条件:
1. 速度假设是恒定的。(实际上不会匀速)
那么,模型方方程【Xk=AXk-1+BUk+Wk-1 】,可以写成如下:
x2,k = x2,k-1 + W2,k-1
x1,k = x1,k-1 + ΔT * x2,k-1 + W1,k-1
ΔT :采样间隔,k时刻与k-1时刻的间隔,令ΔT=1(如何保证ΔT每次都是1是个难题)
W:过程噪声,可能地面有石头,有上下坡,导致速度不能完全匀速,
p(W) ~ N[0,Q]:概率分布服从正态分布,期望是0,协方差矩阵为Q
如果这个人使用了GPS导航,时刻得到这个人的位置、速度。
那么,第二条模型方程【Zk = HXk + Vk】:
Z1k = X1k + V1,k
Z2k = X2k + V2,k
p(V) ~ N[0,R]:概率分布服从正态分布,期望是0,协方差矩阵为R
矩阵形式:
Xk=AXk-1+Wk-1
Zk = HXk + Vk
DR CAN给出的例子:
问题一:位置过程误差、速度过程误差是如何得到?DR CAN使用随机数,但是实际上不能用随机数吧?
问题二:Q、R矩阵为什么长这样?
DR CAN视频说,Q、R中,X,Z假设是独立的,所以对角形式。至于其中的数字也是自己编的。
R阵好理解,可以以仪器的标称精度搞得,但是Q应该怎么获得?
说明:
1. 位置过程标准差、速度过程标准差,分别是Q对角开根号
2. 位置测量标准差、速度测量标准差,分别是R对角开根号