找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 14673|回復(fù): 18
打印 上一主題 下一主題
收起左側(cè)

卡爾曼濾波最詳細(xì)易懂的理解,感覺挺好的

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:227821 發(fā)表于 2017-8-19 22:32 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
完整的pdf格式文檔51黑下載地址(共7頁):
卡爾曼濾波最詳細(xì)易懂的理解.pdf (856.69 KB, 下載次數(shù): 402)

下面是部分內(nèi)容預(yù)覽(個人覺得寫得很好,很有用):

不好意思,由于工作繁忙和文章不好組織的原因,拖了 2 個星期才更新。這一章要系統(tǒng)地去解釋卡爾 曼濾波,這個解釋應(yīng)該是網(wǎng)上所有文章里面寫得最兼顧詳細(xì)和易懂的,但是卡爾曼濾波還是一個比較系統(tǒng) 的工程,需要讀者具備一定的耐心。
卡爾曼濾波有五個最基本的公式,我們將對其一一解讀。

以上的公式看著很嚇人,但我將會對其進行通俗講解,看完會有滿滿收獲,所以請別跑開。
沒讀過本公眾號前兩篇文章的讀者最好先讀一下,可以方便理解這一篇文章,公眾號名稱是“電子搬 磚師”,可以用微信關(guān)注閱讀。本公眾號前兩篇文章都只是講如何用卡爾曼濾波對單種數(shù)據(jù)進行濾波處理, 然而工程上往往有多種數(shù)據(jù)需要同時濾波處理,比如加速度傳感器可以測量 3 個維度的加速度信息,這就 有 3 種信號需要做濾波處理。假設(shè)我們要對 n 種數(shù)據(jù)做卡爾曼濾波,我們應(yīng)該怎么做呢?
我們可以用單種信號的卡爾曼濾波方程,連續(xù)寫 n 次,然后求取每種信號各自的濾波值。但是這么多
個方程寫出來會很龐大,因此我們就用矩陣的方式來描述,矩陣可以將 n 個方程組整合成一個方程,如下圖所示:


圖中 n 個方程組最終化簡成一個矩陣表達(dá)式:AX=B,矩陣表示是不是很簡潔?卡爾曼濾波的五個基本 公式中的 X,A,B,U,P,Q,Kg,H,R,Z,I 就都是矩陣,即五個公式其實是五個方程組。
這里還需要知道一個概念叫向量,向量是一維的矩陣,如下圖所示:

卡爾曼濾波的五個公式中的 X,U,Z 都是一維矩陣,也就是向量。 最后還需要知道一個概念叫做矩陣轉(zhuǎn)置,如下圖所示:

至此我們擁有了可以理解卡爾曼濾波最基礎(chǔ)的條件了,我們正式進入正題。 我們開始理解第一個公式:X(k|k − 1) = AX(k − 1|k − 1) + BU(k − 1)。 假設(shè)你要對飛機的歐拉角進行卡爾曼濾波,你可以用傳感器先獲取到一個歐拉角和角速度的初始值,
并把這個值當(dāng)做上一時刻(k-1)的值,然后根據(jù)上一時刻(k-1)的值你可以估計出這一時刻(k)飛機的歐拉角為:
Pitch(k)=Pitch(k-1)+GyroY(k-1)*dt Roll(k)=Roll(k-1)+GyroX(k-1)*dt Yaw(k)=Yaw(k-1)+GyroZ(k-1)*dt
Pitch 是俯仰角,GyroY 是俯仰角對應(yīng)的角速度,dt 是 k-1 到 k 的時間
Roll 是滾轉(zhuǎn)角,GyroX 是滾轉(zhuǎn)角對應(yīng)的角速度,dt 是 k-1 到 k 的時間 Yaw 是偏航角,GyroZ 是偏航角對應(yīng)的角速度,dt 是 k-1 到 k 的時間 我們想辦法將上面的方程組簡化成矩陣表示:
設(shè)(k|k-1)代表這一時刻根據(jù)上一時刻的估計值,(k-1|k-1)代表上一時刻卡爾曼處理得到的最優(yōu)值(這 里由于才開始第一輪的濾波準(zhǔn)備,沒有上一時刻卡爾曼處理得到的最優(yōu)值,就將 k-1 時刻測量到的值直接 當(dāng)做最優(yōu)值),(k-1)是上一時刻實測值,令:

則上面三個方程組就可以表示為X(k|k − 1) = AX(k − 1|k − 1) + BU(k − 1),請注意這里 A 與 B 不一
定要是對角線才有值的矩陣,只是在這個簡單例子中是這樣的。 其中:
X(k|k − 1)就是指根據(jù)上一時刻估計出這一時刻的估計值向量。
A 是上一時刻狀態(tài)轉(zhuǎn)移到這一時刻狀態(tài)的狀態(tài)轉(zhuǎn)移矩陣。
X(k − 1|k − 1)是上一時刻的最優(yōu)值向量,如果卡爾曼濾波是第一次執(zhí)行,就不存在上一時刻處理得到 的最優(yōu)值,只能推薦將傳感器上次獲取到的值當(dāng)做最優(yōu)值。
B 是控制量矩陣。
U(k − 1)是上一時刻控制量測量值向量。 至此,第一個公式已經(jīng)理解。
我們開始理解第二個公式:
回到 n 種數(shù)據(jù)做卡爾曼濾波的主題。依據(jù) k-1 時刻的值我們可以得到 k 時刻的估計值,但是這個估計 值和真實世界的值含有兩種誤差,一種誤差是 k-1 時刻真實世界值 X(k-1)和最優(yōu)值 X(K-1|K-1)之間的誤差, 還有一種誤差是控制量及其對時間積分造成的誤差,后者誤差我們用誤差向量 W(k-1)表示:


至此,第二個公式已經(jīng)理解。 這回特殊,我們要先理解第四個公式,后面會再回頭理解第三個公式,原因后面看著看著就能明白了。
第四個公式是:X(k|k) = X(k|k − 1) + Kg(k)(Z(k) − HX(k|k − 1))
在理解第四個公式前,需要拿傳感器先測量下這一時刻的值,設(shè)這一時刻傳感器的測量數(shù)據(jù)向量為 Z(k)。 由于有些時候 X(k)向量中有一些元素是沒法用傳感器直接測量得到的,但是這個元素又可以利用傳感器的 其它測量值推算出來,因而我們將這一時刻傳感器的測量數(shù)據(jù)向量定義為:
Z(k) = HX(k) + V(k)
其中 H 就可以修飾 X(k)中某些元素不能通過傳感器直接測量得到,通常 H 矩陣的斜對角元素是由 0 和
1 構(gòu)成的,0 就代表對應(yīng)元素?zé)o法用傳感器直接測量,1 代表對應(yīng)元素可以用傳感器直接測量。V(k)向量代 表傳感器測量誤差,比如稱重秤的誤差為 10g,這 10g 就是這個 V(k)。
那這第四個公式在邏輯上就很好理解。先用這一時刻傳感器的測量值減去根據(jù)上一時刻估計出來的值, 得到殘差,然后用一個比例系數(shù)矩陣 Kg 乘上這個殘差,再加上根據(jù)上一時刻的估計值,就可以得到這一時刻最有可能的值,也就是最優(yōu)值。這個最優(yōu)值既不完全相信傳感器,也不完全相信估計值,只要控制好比
例系數(shù),就能得到最適合的值。 至此,第四個公式已經(jīng)理解。 我們開始理解第五個公式:P(k|k) = (I − Kg(k)H)P(k|k − 1)。
回顧下之前第二個公式中的 P(k|k-1),是代表上一時刻的估計值和此刻真實世界值的誤差的方差。而
P(k|k)代表此刻計算得到的最優(yōu)值和此刻真實世界值的誤差的方差。


由于卡爾曼濾波是一個不斷減小最優(yōu)值和此刻真實世界值的誤差的方差的過程,P(k|k)是最優(yōu)值和此 刻真實世界值的誤差的方差矩陣,其對角線元素就是各個元素各自的誤差的方差。為了讓所有元素的方差 最小,我們把每個元素的方差都加起來,即把 P(k|k-1)的對角元素方差加起來,求取總的方差值,只要方差 值總和最小,則就實現(xiàn)了最優(yōu)值和此刻真實世界值的誤差的方差最小化的目的。將方差矩陣對角元素相加 的做法也稱為矩陣的跡,通常用 tr 表示。則:現(xiàn)在,這個由方差矩陣對角元素總和組成的tr,P(k|k)-函數(shù)需要取最小值,他的大小收到 Kg(k)這個權(quán) 重矩陣的影響,我們必須找到最適合的 Kg(k)使得和值最小。
數(shù)學(xué)上有導(dǎo)數(shù)為 0 取極值的方法,如下圖所示:
(請下載附件查看)

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏9 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:228467 發(fā)表于 2017-8-20 09:39 | 只看該作者
看著很不錯啊,好資料,51黑有你更精彩!!!
回復(fù)

使用道具 舉報

板凳
ID:227373 發(fā)表于 2017-8-20 15:01 | 只看該作者
航跡融合相關(guān)的???
回復(fù)

使用道具 舉報

地板
ID:230897 發(fā)表于 2017-9-4 15:40 | 只看該作者
講的太棒了。好久沒看到這樣的好文了.
回復(fù)

使用道具 舉報

5#
ID:233308 發(fā)表于 2017-9-15 14:14 來自手機 | 只看該作者
樓主辛苦
回復(fù)

使用道具 舉報

6#
ID:303907 發(fā)表于 2018-4-8 19:31 | 只看該作者
支持 很好的科普
回復(fù)

使用道具 舉報

7#
ID:366955 發(fā)表于 2018-7-7 17:49 | 只看該作者
非常好的資料!
回復(fù)

使用道具 舉報

8#
ID:379529 發(fā)表于 2018-7-26 17:09 | 只看該作者

非常好的資料!
回復(fù)

使用道具 舉報

9#
ID:379529 發(fā)表于 2018-7-26 17:10 | 只看該作者
辛苦辛苦,學(xué)習(xí)一下
回復(fù)

使用道具 舉報

10#
ID:163402 發(fā)表于 2018-11-25 21:19 | 只看該作者
挺好的,謝謝,先看看
回復(fù)

使用道具 舉報

11#
ID:426940 發(fā)表于 2018-12-2 20:15 | 只看該作者
頂貼,正在研究卡爾曼,有點看不懂
回復(fù)

使用道具 舉報

12#
ID:282520 發(fā)表于 2018-12-3 09:24 來自手機 | 只看該作者
厲害,膜拜大佬
回復(fù)

使用道具 舉報

13#
ID:485934 發(fā)表于 2019-5-16 09:43 | 只看該作者
謝謝樓主
回復(fù)

使用道具 舉報

14#
ID:324611 發(fā)表于 2019-6-3 18:21 | 只看該作者
正想學(xué)習(xí)下卡爾曼濾波。
回復(fù)

使用道具 舉報

15#
ID:166530 發(fā)表于 2019-7-10 14:09 | 只看該作者
感謝樓主。。
回復(fù)

使用道具 舉報

16#
ID:115379 發(fā)表于 2019-7-17 11:55 | 只看該作者
就是優(yōu)秀,感覺自己腦子都銹掉了,轉(zhuǎn)不動了
回復(fù)

使用道具 舉報

17#
ID:685093 發(fā)表于 2020-1-15 18:19 | 只看該作者
非常好,謝謝
回復(fù)

使用道具 舉報

18#
ID:707191 發(fā)表于 2020-3-13 10:47 來自手機 | 只看該作者
雖然看不懂,但感覺很棒的樣子
回復(fù)

使用道具 舉報

19#
ID:1135146 發(fā)表于 2024-10-31 14:17 | 只看該作者
看起來不錯,支持。。。
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表