1. 程式人生 > 實用技巧 >卡爾曼濾波

卡爾曼濾波

文章目錄

1貝葉斯濾波

1.1理論基礎

(1)本質:通過貝葉斯公式隨機訊號處理,從而減小不確定度(即方差)。

(2)隨機過程:x1,…,xn為隨機變數,但不獨立。
主觀概率(先驗概率)(實驗前),
引入外部觀測(證據、資訊),
得到相對客觀的概率(後驗概率)(實驗後)。

(3)先驗概率、後驗概率、似然概率
離散舉例:溫度測量 T 實 際 溫 度 、 T m 溫 度 計 測 量 溫 度 T實際溫度、T_m溫度計測量溫度 TTm
a. 先驗概率分佈
{ P ( T = 10 ) = 0.8 表 示 實 際 溫 度 為 10 的 概 率 為 0.8 P ( T = 11 ) = 0.2 \left\{ \begin{aligned} &P(T=10) = 0.8 表示實際溫度為10的概率為0.8 \\ &P(T=11)=0.2 \end{aligned} \right.

{P(T=10)=0.8100.8P(T=11)=0.2
b. 溫度計測量值 T m T_m Tm
c. 後驗概率分佈:
P ( T = 10 ∣ T m = 10.3 ) = P ( T m = 10.3 ∣ T = 10 ) ∗ P ( T = 10 ) P ( T m = 10.3 ) P(T=10|T_m=10.3)=\frac{P(T_m=10.3|T=10)*P(T=10)}{P(T_m=10.3)} P(T=10Tm=10.3)=P(Tm=10.3)P(Tm=10.3T=10)P(T=10)
表示在溫度計顯示為10.3度的條件下,實際溫度為10度的概率。
其中, P ( T m = 10.3 ∣ T = 10 ) P(T_m=10.3|T=10)
P(Tm=10.3T=10)
表示在實際溫度為10度的情況下溫度計測量為10.3度的概率。似然概率:觀測精度/感測器精度;
P ( T m = 10.3 ) P(T_m=10.3) P(Tm=10.3)看作常數 η \eta η

後驗= η ∗ 似 然 ∗ 先 驗 \eta*似然*先驗 η,其中 η = 1 ∑ ( 似 然 ∗ 先 驗 ) \eta=\frac{1}{\sum{(似然*先驗)}} η=()1


連續
f X ∣ Y ( x ∣ y ) = f Y ∣ X ( y ∣ x ) ∗ f X ( x ) f Y ( y ) = η ∗ 似 然 ∗ 後 驗 f_{X|Y}(x|y)=\frac{f_{Y|X}(y|x)*f_{X}(x)}{f_{Y}(y)}=\eta*似然*後驗

fXY(xy)=fY(y)fYX(yx)fX(x)=η

定理:若 f X ( x ) f_{X}(x) fX(x)~ N ( μ 1 , δ 1 2 ) , f Y ∣ X ( y ∣ x ) N(\mu_{1}, \delta_1^2),f_{Y|X}(y|x) N(μ1,δ12)fYX(yx)~ N ( μ 2 , δ 2 2 ) N(\mu_2, \delta_2^2) N(μ2,δ22)
f X ∣ Y ( x ∣ y ) f_{X|Y}(x|y) fXY(xy)~ N ( δ 2 2 δ 1 2 + δ 2 2 ∗ μ 1 + δ 1 2 δ 1 2 + δ 2 2 ∗ μ 2 , δ 1 2 δ 2 2 δ 1 2 + δ 2 2 ) . N(\frac{\delta_2^2}{\delta_1^2+\delta_2^2}*\mu_1+\frac{\delta_1^2}{\delta_1^2+\delta_2^2}*\mu_2, \frac{\delta_1^2\delta_2^2}{\delta_1^2+\delta_2^2}). N(δ12+δ22δ22μ1+δ12+δ22δ12μ2,δ12+δ22δ12δ22).
(本質:實現方差降低)。
在這裡插入圖片描述

|
|

1.2貝葉斯濾波演算法

X-先驗,Y-觀測, Q k Q_k Qk-預測噪聲, R k R_k Rk-觀測噪聲
(1)過程
在這裡插入圖片描述
x1,…,xn由遞推得:
在這裡插入圖片描述
在這裡插入圖片描述
(2)前提假設:
a . { 狀 態 方 程 : X k = f ( X k − 1 ) + Q k 觀 測 方 程 : Y k = h ( X k ) + R k a. \left\{ \begin{aligned} &狀態方程:X_k=f(X_{k-1})+Q_k \\ &觀測方程:Y_k=h(X_k)+R_k \end{aligned} \right. a.{Xk=f(Xk1)+QkYk=h(Xk)+Rk
b. X k 、 X k − 1 、 Y k 、 Q k 、 R k X_k、X_{k-1}、Y_k、Q_k、R_k XkXk1YkQkRk均為隨機變數;
X 0 、 Q 1 . . . Q k 、 R 1 . . . R k X_0、Q_1...Q_k、R_1...R_k X0Q1...QkR1...Rk相互獨;
X 0 X_0 X0 ~ f 0 ( x ) , Q k f_0(x),Q_k f0(x)Qk ~ f Q k ( x ) , R k f_{Q_k}(x),R_k fQk(x)Rk ~ f R k ( x ) f_{R_k}(x) fRk(x)

(3)預測步、更新步
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述

|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||

2卡爾曼濾波

(1)前提假設:
a. f ( X k − 1 ) = F ∗ X k − 1 , h ( X k ) = H ∗ X k f(X_{k-1})=F*X_{k-1},h(X_k)=H*X_k f(Xk1)=FXk1h(Xk)=HXk,F、H為常數;
b. Q~ N(0, q), R~ N(0,r)。

(2)預測步、更新步

(3)五個公式:
{ μ k − = F ∗ μ k − 1 + δ k − = F 2 ∗ δ k − 1 + + q 卡 爾 曼 增 益 K = H ∗ δ k − H 2 ∗ δ k − + r μ k + = K ∗ ( y k − H ∗ μ k − ) + μ k − δ k + = ( 1 − H ∗ K ) ∗ δ k − \left\{ \begin{aligned} &\mu_k^-=F*\mu_{k-1}^+\\ &\delta_k^-=F^2*\delta_{k-1}^++q\\ &卡爾曼增益K=\frac{H*\delta_k^-}{H^2*\delta_k^-+r}\\ &\mu_k^+=K*(y_k-H*\mu_k^-)+\mu_k^-\\ &\delta_k^+=(1-H*K)*\delta_k^- \end{aligned} \right. μk=Fμk1+δk=F2δk1++qK=H2δk+rHδkμk+=K(ykHμk)+μkδk+=(1HK)δk

(4)矩陣形式: μ k → μ k ⃗ , δ k → δ k ⃗ \mu_k\rightarrow\vec{\mu_k},\delta_k\rightarrow\vec{\delta_k} μkμk δkδk ,F、H均為矩陣。
{ μ k − ⃗ = F ∗ μ k − 1 + ⃗ δ k − ⃗ = F ∗ δ k − 1 + ⃗ ∗ F T + q 卡 爾 曼 增 益 K = H ∗ δ k − ⃗ H ∗ δ k − ⃗ ∗ H T + r μ k + ⃗ = K ∗ ( y k ⃗ − H ∗ μ k − ⃗ ) + μ k − ⃗ δ k + ⃗ = ( 1 − H ∗ K ) ∗ δ k − ⃗ \left\{ \begin{aligned} &\vec{\mu_k^-}=F*\vec{\mu_{k-1}^+}\\ &\vec{\delta_k^-}=F*\vec{\delta_{k-1}^+}*F^T+q\\ &卡爾曼增益K=\frac{H*\vec{\delta_k^-}}{H*\vec{\delta_k^-}*H^T+r}\\ &\vec{\mu_k^+}=K*(\vec{y_k}-H*\vec{\mu_k^-})+\vec{\mu_k^-}\\ &\vec{\delta_k^+}=(1-H*K)*\vec{\delta_k^-} \end{aligned} \right. μk =Fμk1+ δk =Fδk1+ FT+qK=Hδk HT+rHδk μk+ =K(yk Hμk )+μk δk+ =(1HK)δk
在這裡插入圖片描述

學習來源:感謝up主:忠厚老實的老王