卡尔曼滤波与组合导航原理(八)遗忘滤波

函数模型
{ X k = Φ k l k − 1 X k − 1 + Γ k − 1 W k − 1 Z k = H k X k + V k \left\{\begin{array}{l} \boldsymbol{X}_{k}=\boldsymbol{\Phi}_{k l k-1} \boldsymbol{X}_{k-1}+\boldsymbol{\Gamma}_{k-1} \boldsymbol{W}_{k-1} \\ \boldsymbol{Z}_{k}=\boldsymbol{H}_{k} \boldsymbol{X}_{k}+\boldsymbol{V}_{k} \end{array}\right. {Xk=Φklk1Xk1+Γk1Wk1Zk=HkXk+Vk
随机模型
{ E [ W k ] = 0 , E [ W k W j T ] = s N − k + 1 Q k δ k j j , k ≤ N E [ V k ] = 0 , E [ V k V j T ] = s N − k R k δ k j E [ W k V j T ] = 0 \left\{\begin{array}{ll}\mathrm{E}\left[\boldsymbol{W}_{k}\right]=\mathbf{0}, & \mathrm{E}\left[\boldsymbol{W}_{k} \boldsymbol{W}_{j}^{\mathrm{T}}\right]={\color{green}s^{N-k+1}}\boldsymbol{Q}_{k} \delta_{k j}\quad j,k \le N\\ \mathrm{E}\left[\boldsymbol{V}_{k}\right]=\mathbf{0}, & \mathrm{E}\left[\boldsymbol{V}_{k} \boldsymbol{V}_{j}^{\mathrm{T}}\right]={\color{green}s^{N-k}} \boldsymbol{R}_{k} \delta_{k j} \quad \\ \mathrm{E}\left[\boldsymbol{W}_{k} \boldsymbol{V}_{j}^{\mathrm{T}}\right]=\mathbf{0}\end{array}\right. E[Wk]=0,E[Vk]=0,E[WkVjT]=0E[WkWjT]=sNk+1Qkδkjj,kNE[VkVjT]=sNkRkδkj
其中:渐消因子 s ≥ 1 s \ge 1 s1,等于 1 1 1 时与普通的Kalman滤波相同。现在是 N N N 时刻, k k k 越小就是越以前, s N − k s^{N-k} sNk 越大,噪声前面乘的系数就越大,越以前的量测和系统越不可靠,慢慢遗忘; k = N k = N k=N 就是现在,此时 s N − k s^{N-k} sNk 1 1 1

加了 s s s 之后模型还是满足Kalman滤波条件,噪声还是高斯白噪声,只是时变了,在 N N N 时刻的Kalman滤波如下,其实就是多了 s s s
{ X ^ k / k − 1 N = Φ k / k − 1 X ^ k − 1 N P k / k − 1 N = Φ k / k − 1 P k − 1 N Φ k / k − 1 T + Γ k − 1 s N − k Q k − 1 Γ k − 1 T K k N = P k / k − 1 N H k T ( H k P k / k − 1 N H k T + s N − k R k ) − 1 X ^ k N = X ^ k / k − 1 N + K k N ( Z k − H k X ^ k / k − 1 N ) P k N = ( I − K k N H k ) P k / k − 1 N \left\{\begin{array}{l}\hat{\boldsymbol{X}}_{k / k-1}^{N}=\boldsymbol{\Phi}_{k / k-1} \hat{\boldsymbol{X}}_{k-1}^{N} \\ \boldsymbol{P}_{k / k-1}^{N}=\boldsymbol{\Phi}_{k / k-1} \boldsymbol{P}_{k-1}^{N} \boldsymbol{\Phi}_{k / k-1}^{\mathrm{T}}+\boldsymbol{\Gamma}_{k-1} {\color{green}s^{N-k}}\boldsymbol{Q}_{k-1} \boldsymbol{\Gamma}_{k-1}^{\mathrm{T}} \\ \boldsymbol{K}_{k}^{N}=\boldsymbol{P}_{k / k-1}^{N} \boldsymbol{H}_{k}^{\mathrm{T}}\left(\boldsymbol{H}_{k} \boldsymbol{P}_{k / k-1}^{N} \boldsymbol{H}_{k}^{\mathrm{T}}+{\color{green}s^{N-k}} \boldsymbol{R}_{k}\right)^{-1} \\ \hat{\boldsymbol{X}}_{k}^{N}=\hat{\boldsymbol{X}}_{k / k-1}^{N}+\boldsymbol{K}_{k}^{N}\left(\boldsymbol{Z}_{k}-\boldsymbol{H}_{k} \hat{\boldsymbol{X}}_{k / k-1}^{N}\right) \\ \boldsymbol{P}_{k}^{N}=\left(\boldsymbol{I}-\boldsymbol{K}_{k}^{N} \boldsymbol{H}_{k}\right) \boldsymbol{P}_{k / k-1}^{N}\end{array}\right. X^k/k1N=Φk/k1X^k1NPk/k1N=Φk/k1Pk1NΦk/k1T+Γk1sNkQk1Γk1TKkN=Pk/k1NHkT(HkPk/k1NHkT+sNkRk)1X^kN=X^k/k1N+KkN(ZkHkX^k/k1N)PkN=(IKkNHk)Pk/k1N
增益计算回路改写

提取出 s N k s^{N_k} sNk
s − ( N − k ) P k / k − 1 N = Φ k / k − 1 s ⋅ s − [ N − ( k − 1 ) ] P k − 1 N Φ k / k − 1 T + Γ k − 1 Q k − 1 Γ k − 1 T K k N = s − ( N − k ) P k ∣ k − 1 N H k T ( H k s − ( N − k ) P k k k − 1 N H k T + R k ) − 1 s − ( N − k ) P k N = ( I − K k N H k ) s − ( N − k ) P k ∣ k − 1 N \begin{array}{l} {\color{red}s^{-(N-k)} \boldsymbol{P}_{k / k-1}^{N}}=\boldsymbol{\Phi}_{k / k-1} {\color{green}s} \cdot {\color{red}s^{-[N-(k-1)]} \boldsymbol{P}_{k-1}^{N}} \boldsymbol{\Phi}_{k / k-1}^{\mathrm{T}}+\boldsymbol{\Gamma}_{k-1} \boldsymbol{Q}_{k-1} \boldsymbol{\Gamma}_{k-1}^{\mathrm{T}} \\ \boldsymbol{K}_{k}^{N}={\color{red}s^{-(N-k)} \boldsymbol{P}_{k \mid k-1}^{N}}\boldsymbol{H}_{k}^{\mathrm{T}}\left(\boldsymbol{H}_{k} {\color{red}s^{-(N-k)} \boldsymbol{P}_{k k k-1}^{N}} \boldsymbol{H}_{k}^{\mathrm{T}}+\boldsymbol{R}_{k}\right)^{-1} \\ {\color{red}{s^{-(N-k)} \boldsymbol{P}_{k}^{N}}}=\left(\boldsymbol{I}-\boldsymbol{K}_{k}^{N} \boldsymbol{H}_{k}\right) s^{-(N-k)} \boldsymbol{P}_{k \mid k-1}^{N} \\ \end{array} s(Nk)Pk/k1N=Φk/k1ss[N(k1)]Pk1NΦk/k1T+Γk1Qk1Γk1TKkN=s(Nk)Pkk1NHkT(Hks(Nk)Pkkk1NHkT+Rk)1s(Nk)PkN=(IKkNHk)s(Nk)Pkk1N
将红色部分合并:令 P k ∗ ≜ s − ( N − k ) P k N , P k / k − 1 ∗ ≜ s − ( N − k ) P k / k − 1 N \boldsymbol{P}_{k}^{*} \triangleq s^{-(N-k)} \boldsymbol{P}_{k}^{N}, \boldsymbol{P}_{k / k-1}^{*} \triangleq s^{-(N-k)} \boldsymbol{P}_{k / k-1}^{N} Pks(Nk)PkN,Pk/k1s(Nk)Pk/k1N ,得
{ X ^ k / k − 1 ∗ = Φ k / k − 1 X ^ k − 1 ∗ P k / k − 1 ∗ = Φ k / k − 1 ( s P k − 1 ∗ ) Φ k / k − 1 T + Γ k − 1 Q k − 1 Γ k − 1 T K k ∗ = P k / k − 1 ∗ H k T ( H k P k / k − 1 ∗ H k T + R k ) − 1 X ^ k ∗ = X ^ k / k − 1 ∗ + K k ∗ ( Z k − H k X ^ k / k − 1 ∗ ) P k ∗ = ( I − K k ∗ H k ) P k / k − 1 ∗ \left\{\begin{array}{l}\hat{\boldsymbol{X}}_{k / k-1}^{*}=\boldsymbol{\Phi}_{k / k-1} \hat{\boldsymbol{X}}_{k-1}^{*} \\ \boldsymbol{P}_{k / k-1}^{*}=\boldsymbol{\Phi}_{k / k-1}\left({\color{green}s} \boldsymbol{P}_{k-1}^{*}\right) \boldsymbol{\Phi}_{k / k-1}^{\mathrm{T}}+\boldsymbol{\Gamma}_{k-1} \boldsymbol{Q}_{k-1} \boldsymbol{\Gamma}_{k-1}^{\mathrm{T}} \\ \boldsymbol{K}_{k}^{*}=\boldsymbol{P}_{k / k-1}^{*} \boldsymbol{H}_{k}^{\mathrm{T}}\left(\boldsymbol{H}_{k} \boldsymbol{P}_{k / k-1}^{*} \boldsymbol{H}_{k}^{\mathrm{T}}+\boldsymbol{R}_{k}\right)^{-1} \\ \hat{\boldsymbol{X}}_{k}^{*}=\hat{\boldsymbol{X}}_{k / k-1}^{*}+\boldsymbol{K}_{k}^{*}\left(\boldsymbol{Z}_{k}-\boldsymbol{H}_{k} \hat{\boldsymbol{X}}_{k / k-1}^{*}\right) \\ \boldsymbol{P}_{k}^{*}=\left(\boldsymbol{I}-\boldsymbol{K}_{k}^{*} \boldsymbol{H}_{k}\right) \boldsymbol{P}_{k / k-1}^{*}\end{array}\right. X^k/k1=Φk/k1X^k1Pk/k1=Φk/k1(sPk1)Φk/k1T+Γk1Qk1Γk1TKk=Pk/k1HkT(HkPk/k1HkT+Rk)1X^k=X^k/k1+Kk(ZkHkX^k/k1)Pk=(IKkHk)Pk/k1
改写的式子中就只有一个 s s s ,用起来很简单,对上一时刻的 P P P 阵乘以一个标量 s s s 就行。

遗忘效果的理解

s s s 取值越大,对以前信息的利用更小

卡尔曼滤波与组合导航原理(八)遗忘滤波_第1张图片

你可能感兴趣的:(卡尔曼滤波与组合导航,计算机视觉,算法,Kalman滤波,遗忘滤波,渐消因子滤波)