預備知識
1,n維狀態xi有Gauss分佈協方差Pi,有如下線性變換
xk=Axk−1
則,xk亦有Gauss分佈,且協方差爲APk−1AT,
A:(xk−1,Pk−1)→(Axk−1,APk−1AT)
2,兩個Gauss分佈的融合:
(u2,σ2)={(u0,σ0)(u1,σ1)K=σ0(σ0+σ1)−1u2=u0+K(u1−u0)σ2=σ0σ1(σ0+σ1)−1=(1−k)σ0
3,構造sigma點
採用對稱採樣策略,對分佈爲(xˉ,Px)的n維隨機變量x產生2n+1個Gauss分佈列向量,如下:
xi=⎩⎪⎨⎪⎧xˉ,i=0xˉ+[(n+κ)Px]i,i=1,2,⋯,nxˉ−[(n+κ)Px]i,i=n+1,n+2,⋯,2n
κ是尺度參數,調節其可以逼近精度。
均值權重Wim與方差權重Wic如下求取:
⎩⎪⎨⎪⎧W0m=κ/(n+κ)W0c=κ/(n+κ)+(1−α2+β)Wim=Wic=κ/[2(n+κ)],i=1,2,⋯,2n
其中,κ=α2(n+λ)−n
- α確定xˉ周圍sigma點的分佈,通常設爲較小的正數(1>α≥1e−4)
- λ是第二個尺度參數,通常設置爲0或3−n
- β是狀態分佈參數,對於Gauss分佈β=2是最優的,如果狀態是單變量,則β=0最佳
- 對於Gauss分佈,考慮到4階距的統計量,通常取值n+κ=3
卡爾曼濾波KF
狀態轉移方程:
xk=Fkxk−1+Bkuk,Qk∈GaussNoise
Pk=FkPk−1FkT+Qk
觀測方程:
zk=Hkxk,Rk∈GaussNoise
經過狀態轉移與觀測方程,得到Gauss分佈:
(Hkx^k,HkP^kHkT)
由傳感器觀測,得到Gauss分佈:
(zk,Rk)
融合這兩個分佈:
Kk=HkP^kHkT(HkP^kHkT+Rk)−1
Hkxk=Hkx^k+Kk(zk−Hkx^k)
HkPkHkT=HkP^kHkT−KkHkP^kHkT
Kk′=P^kHkT(HkP^kHkT+Rk)−1
得到:
xk=x^k+Kk′(zk−Hkx^k)
Pk=P^k−Kk′HkP^k
擴展卡爾曼濾波EKF
對於非線性系統,不能用KF,很自然的可以利用Taylor展開,轉爲近似線性系統,套用KF,Fk與Hk需要用一階Taylor展開的Jacobi代替。
非線性系統濾波原理
系統方程如下:
{xk=f(xk−1,uk,vk)zk=g(xk,wk)
系統狀態轉移後的統計量:
{xˉk=E{xk∣Yk−1}Pˉk=E{(xk−xˉk)(xk−xˉk)T∣Yk−1}
系統觀測的統計量:
⎩⎪⎪⎪⎨⎪⎪⎪⎧yˉk=E{yk∣Yk−1}Py,k=E{(yk−g(xˉk))(yk−g(xˉk))T∣Yk−1}Pxy,k=E{(xk−xˉk)(yk−g(xˉk))T∣Yk−1}Kk=Pxy,kPy,k−1
系統狀態更新:
{x^k=xˉk+Kk(yk−yˉk)P^k=Pˉk−KkPy,kKkT
無跡卡爾曼濾波UKF
已知分佈(x^k−1,P^k−1)
取點並狀態轉移:
{sigma:xk−1i},i∈0,1,2,⋯,2n−1,2nf:xk−1i↦xk∣k−1i
xk∣k−1i⟹{Wm↦x^k∣k−1=∑i=02nWimxk∣k−1iWc↦P^k∣k−1=∑i=02nWic(xk∣k−1i−x^k∣k−1)(xk∣k−1i−x^k∣k−1)T+Qk
取點並觀測轉移:
{sigma:x^k∣k−1i},i∈0,1,2,⋯,2n−1,2ng:x^k∣k−1i↦zki
zki⟹⎩⎪⎨⎪⎧Wm↦z^k=∑i=02nWimzkiWc↦P^zk=∑i=02nWic(zki−z^k)(zki−z^k)T+RkWc↦P^xkzk=∑i=02nWic(x^k∣k−1i−x^k∣k−1)(zki−z^k)TKk=P^xkzkP^zk−1
狀態更新:
x^k=x^k∣k−1+Kk(zk−z^k)P^k=P^k∣k−1−KkP^zkKkT