【卡尔曼滤波器】_DR_CAN合集
学习笔记
对于如下状态空间方程:
{xkzk=Axk−1+Buk−1+wk−1=Hxk+vk
其中包含的过程噪声w和测量噪声v符合正态分布:
wv∼N(μ,Q)∼N(μ,R)μ=0;Q=E(wwT)μ=0;R=E(vvT)
定义先验估计为:
x^k−=Ax^k−1+Buk−1
后验估计为:
x^k=x^k−+Kk(zk−Hx^k−)
卡尔曼增益为:
Kk=HPk−HT+RPk−HT
上述所有公式中,唯有先验估计误差的方差PK−是未知的,于是根据公式可依次推导:
ek−=xk−xk−=(Axk−1+Buk−1+wk−1)−(Ax^k−1+Buk−1)=Axk−1+Buk−1+wk−1−Ax^k−1−Buk−1=A(xk−1−x^k−1)+wk−1=Aek−1+wk−1(根据定义代入)(估计误差e=x−x^)
所以:
PK−=E(ek−ek−T)=E[(Aek−1+wk−1)(Aek−1+wk−1)T]=E[(Aek−1+wk−1)(ek−1TAT+wk−1T)]=E[Aek−1ek−1TAT+Aek−1wk−1T+wk−1ek−1TAT+wk−1wk−1T]=E[Aek−1ek−1TAT]+E[Aek−1wk−1T]+E[wk−1ek−1TAT]+E[wk−1wk−1T]=第一项+第二项+第三项+第四项
其中
第一项第二项第三项第四项=E[Aek−1ek−1TAT]=AE[ek−1ek−1T]AT=APk−1AT=E[Aek−1wk−1T]=AE[ek−1wk−1T]=AE[(xk−1−x^k−1)wk−1T]=AE[((Axk−2+Buk−2+wk−2)−x^k−1)wk−1T]=AE[ek−1]E[wk−1T]=A×0×0=0=E[wk−1ek−1TAT]=E[wk−1ek−1T]AT=E[wk−1]E[ek−1T]AT=0×0×AT=0=E[wk−1wk−1T]=Qk−1=Q(ek−1=xk−1−x^k−1)(xk−1=Axk−2+Buk−2+wk−2)(ek−1中包含的是wk−2,其和wk−1相互独立)(ek−1中包含的是wk−2,其和wk−1相互独立)(代入)(过程噪声是模型的固有特性,不变)
所以最终得到:
PK−=第一项+第二项+第三项+第四项=APk−1AT+0+0+Q=APk−1AT+Q
其中的后验估计误差协方差Pk−1为:
Pk=Var(ek)=Pk−−Pk−HTKkT−KkHPk−+KkHPk−HTKkT+KkRKkT=Pk−−Pk−HTKkT−KkHPk−+Kk(HPk−HT+R)KkT=Pk−−Pk−HTKkT−KkHPk−+(HPk−HT+RPk−HT)(HPk−HT+R)KkT=Pk−−Pk−HTKkT−KkHPk−+(Pk−HT)KkT=Pk−−KkHPk−=(I−KkH)Pk−(之前推导的)(提取)(代入Kk)(乘除抵消)(第二、四项抵消)
状态空间方程:
{xkzk=Axk−1+Buk−1+wk−1=Hxk+vk
其中包含的过程噪声w和测量噪声v符合正态分布:
wv∼N(μ,Q)∼N(μ,R)μ=0;Q=E(wwT)μ=0;R=E(vvT)
第一步:求先验估计
不考虑过程噪声,利用上次状态,计算预测本次状态(先验估计)
x^k−=Ax^k−1+Buk−1
第二步:求先验估计误差(的协方差矩阵)
根据上次后验估计误差(的协方差矩阵)和模型误差(过程噪声的协方差矩阵),求本次先验误差(的协方差矩阵)
PK−=APk−1AT+Q
第三步:求卡尔曼增益:
根据估计误差和测量误差,求数据融合的最优系数
Kk=HPk−HT+RPk−HT
第四步:求后验估计:
通过卡尔曼增益,将估计值和测量值数据融合,得到后验最优估计
x^k=x^k−+Kk(zk−Hx^k−)
第五步:求后验估计误差(的协方差矩阵):
根据本次卡尔曼增益和先验估计误差,求本次后验估计的误差
Pk=(I−KkH)Pk−