卡爾曼濾波及非線性系統估計兼談KF、EKF、UKF

預備知識

1,n維狀態xix_i有Gauss分佈協方差PiP_i,有如下線性變換
xk=Axk1 x_k=Ax_{k-1}
則,xkx_k亦有Gauss分佈,且協方差爲APk1ATAP_{k-1}A^T
A:(xk1,Pk1)(Axk1,APk1AT)A:(x_{k-1},P_{k-1}) \to (Ax_{k-1},AP_{k-1}A^T)
2,兩個Gauss分佈的融合:
(u2,σ2)={(u0,σ0)(u1,σ1)K=σ0(σ0+σ1)1u2=u0+K(u1u0)σ2=σ0σ1(σ0+σ1)1=(1k)σ0 (u_2,\sigma_2)= \begin{cases} (u_0,\sigma_0) \\ (u_1,\sigma_1) \end{cases} \\ K=\sigma_0(\sigma_0+\sigma_1)^{-1} \\ u_2=u_0+K(u_1-u_0) \\ \sigma_2=\sigma_0\sigma_1(\sigma_0+\sigma_1)^{-1}=(1-k)\sigma_0
3,構造sigma點
採用對稱採樣策略,對分佈爲(xˉ,Px)(\bar{x},P_x)nn維隨機變量xx產生2n+12n+1個Gauss分佈列向量,如下:
xi={xˉ,i=0xˉ+[(n+κ)Px]i,i=1,2, ,nxˉ[(n+κ)Px]i,i=n+1,n+2, ,2n x^i= \begin{cases} \bar{x},i=0 \\ \bar{x}+[\sqrt{(n+\kappa)P_x}]_i,i=1,2,\cdots,n \\ \bar{x}-[\sqrt{(n+\kappa)P_x}]_i,i=n+1,n+2,\cdots,2n \end{cases}
κ\kappa是尺度參數,調節其可以逼近精度。
均值權重WimW_i^m與方差權重WicW_i^c如下求取:
{W0m=κ/(n+κ)W0c=κ/(n+κ)+(1α2+β)Wim=Wic=κ/[2(n+κ)],i=1,2, ,2n \begin{cases} W_0^m=\kappa / (n+\kappa) \\ W_0^c=\kappa / (n+\kappa)+(1-\alpha^2+\beta) \\ W_i^m=W_i^c=\kappa / [2(n+\kappa)],i=1,2,\cdots,2n \end{cases}
其中,κ=α2(n+λ)n\kappa=\alpha^2(n+\lambda)-n

  • α\alpha確定xˉ\bar{x}周圍sigma點的分佈,通常設爲較小的正數(1>α1e4)(1\gt \alpha \ge 1e^{-4} )
  • λ\lambda是第二個尺度參數,通常設置爲003n3-n
  • β\beta是狀態分佈參數,對於Gauss分佈β=2\beta=2是最優的,如果狀態是單變量,則β=0\beta=0最佳
  • 對於Gauss分佈,考慮到4階距的統計量,通常取值n+κ=3n+\kappa=3

卡爾曼濾波KF

狀態轉移方程:
xk=Fkxk1+Bkuk,QkGaussNoise x_k=F_kx_{k-1}+B_ku_k,Q_k \in GaussNoise
Pk=FkPk1FkT+QkP_k=F_kP_{k-1}F_k^T+Q_k
觀測方程:
zk=Hkxk,RkGaussNoise z_k=H_kx_k,R_k \in GaussNoise
經過狀態轉移與觀測方程,得到Gauss分佈:
(Hkx^k,HkP^kHkT)(H_k\hat{x}_k, H_k\hat{P}_kH_k^T)
由傳感器觀測,得到Gauss分佈:
(zk,Rk)(z_k, R_k)
融合這兩個分佈:
Kk=HkP^kHkT(HkP^kHkT+Rk)1K_k= H_k\hat{P}_kH_k^T( H_k\hat{P}_kH_k^T+R_k)^{-1}
Hkxk=Hkx^k+Kk(zkHkx^k)H_kx_k=H_k\hat{x}_k+K_k(z_k-H_k\hat{x}_k)
HkPkHkT=HkP^kHkTKkHkP^kHkTH_kP_kH_k^T=H_k\hat{P}_kH_k^T-K_kH_k\hat{P}_kH_k^T
Kk=P^kHkT(HkP^kHkT+Rk)1K_k^\prime= \hat{P}_kH_k^T( H_k\hat{P}_kH_k^T+R_k)^{-1}
得到:
xk=x^k+Kk(zkHkx^k)x_k=\hat{x}_k+K_k^\prime(z_k-H_k\hat{x}_k)
Pk=P^kKkHkP^kP_k=\hat{P}_k-K_k^\prime H_k\hat{P}_k

擴展卡爾曼濾波EKF

對於非線性系統,不能用KF,很自然的可以利用Taylor展開,轉爲近似線性系統,套用KF,FkF_kHkH_k需要用一階Taylor展開的Jacobi代替。

非線性系統濾波原理

系統方程如下:
{xk=f(xk1,uk,vk)zk=g(xk,wk) \begin{cases} x_k=f(x_{k-1},u_k, v_k) \\ z_k=g(x_k,w_k) \end{cases}
系統狀態轉移後的統計量:
{xˉk=E{xkYk1}Pˉk=E{(xkxˉk)(xkxˉk)TYk1} \begin{cases} \bar{x}_k=E\{x_k|Y^{k-1}\} \\ \bar{P}_k=E\{(x_k- \bar{x}_k)(x_k- \bar{x}_k)^T|Y^{k-1}\} \end{cases}
系統觀測的統計量:
{yˉk=E{ykYk1}Py,k=E{(ykg(xˉk))(ykg(xˉk))TYk1}Pxy,k=E{(xkxˉk)(ykg(xˉk))TYk1}Kk=Pxy,kPy,k1 \begin{cases} \bar{y}_k=E\{y_k|Y^{k-1}\} \\ P_{y,k}=E\{(y_k-g( \bar{x}_k))(y_k- g( \bar{x}_k))^T|Y^{k-1}\} \\ P_{xy,k}=E\{(x_k- \bar{x}_k)(y_k-g( \bar{x}_k))^T|Y^{k-1}\} \\ K_k=P_{xy,k}P_{y,k}^{-1} \end{cases}
系統狀態更新:
{x^k=xˉk+Kk(ykyˉk)P^k=PˉkKkPy,kKkT \begin{cases} \hat{x}_k=\bar{x}_k+K_k(y_k-\bar{y}_k) \\ \hat{P}_k= \bar{P}_k-K_kP_{y,k}K_k^T \end{cases}

無跡卡爾曼濾波UKF

已知分佈(x^k1,P^k1)(\hat{x}_{k-1},\hat{P}_{k-1})
取點並狀態轉移:
{sigma:xk1i},i0,1,2, ,2n1,2nf:xk1ixkk1i \{sigma:x_{k-1}^i\},i\in0,1,2,\cdots,2n-1,2n \\ f:x_{k-1}^i\mapsto x_{k|k-1}^i
xkk1i    {Wmx^kk1=i=02nWimxkk1iWcP^kk1=i=02nWic(xkk1ix^kk1)(xkk1ix^kk1)T+Qk x_{k|k-1}^i\implies \begin{cases} W^m\mapsto \hat{x}_{k|k-1}=\sum_{i=0}^{2n}W_i^m x_{k|k-1}^i \\ W^c\mapsto \hat{P}_{k|k-1}= \sum_{i=0}^{2n}W_i^c (x_{k|k-1}^i-\hat{x}_{k|k-1})(x_{k|k-1}^i-\hat{x}_{k|k-1})^T+Q_k \end{cases}
取點並觀測轉移:
{sigma:x^kk1i},i0,1,2, ,2n1,2ng:x^kk1izki \{sigma:\hat{x}_{k|k-1}^i\},i\in0,1,2,\cdots,2n-1,2n \\ g:\hat{x}_{k|k-1}^i\mapsto z_k^i
zki    {Wmz^k=i=02nWimzkiWcP^zk=i=02nWic(zkiz^k)(zkiz^k)T+RkWcP^xkzk=i=02nWic(x^kk1ix^kk1)(zkiz^k)TKk=P^xkzkP^zk1 z_k^i\implies \begin{cases} W^m\mapsto \hat{z}_k=\sum_{i=0}^{2n}W_i^m z_k^i \\ W^c\mapsto \hat{P}_{z_k}= \sum_{i=0}^{2n}W_i^c (z_k^i-\hat{z}_k)(z_k^i-\hat{z}_k)^T+R_k \\ W^c\mapsto \hat{P}_{x_kz_k}=\sum_{i=0}^{2n}W_i^c (\hat{x}_{k|k-1}^i-\hat{x}_{k|k-1})(z_k^i-\hat{z}_k)^T \end{cases} \\ K_k=\hat{P}_{x_kz_k}\hat{P}_{z_k}^{-1}
狀態更新:
x^k=x^kk1+Kk(zkz^k)P^k=P^kk1KkP^zkKkT \hat{x}_k=\hat{x}_{k|k-1}+K_k(z_k-\hat{z}_k) \\ \hat{P}_k=\hat{P}_{k|k-1}-K_k\hat{P}_{z_k}K_k^T

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章