A. 詳解卡爾曼濾波(Kalman Filter)原理
看過很多關於卡爾曼濾波的資料,發現很多資料寫的都很晦澀,初學者很難看懂。在網上找了很多資料之後,發現了 這篇博文 講的非常清晰易懂,特此翻譯記錄,以備後用。為保證翻譯的原滋原味,以下均用第一人稱表述。
我不得不說一說卡爾曼濾波,因為它能做到的事情簡直令人驚嘆。
很可惜的是,很少有軟體工程師和科學家對此有深入了解。這讓我感到很沮喪,因為卡爾曼濾波是如此通用且強大的工具,它能在不確定情況下 組合信息 。有時,它提取准確信息的能力似乎幾乎是不可思議的。如果聽起來我講的太多了,那麼請看一下之前 發布的視頻 ,其中演示了一個利用卡爾曼濾波觀察自由浮動物體的速度來確定它的方向。真棒!
你可以在任何含有 不確定信息 的動態系統中的使用卡爾曼濾波,對系統的下一步動作做出 有根據的猜測 。即使伴隨著各種干擾,卡爾曼濾波總是能指出真實世界發生的情況。它可以利用怪異現象之間的關聯,你可能不會想到利用這些關聯!
卡爾曼濾波對於持續變化的系統是理想的選擇。由於卡爾曼濾波除了記憶前一個狀態而不需要保留其他的歷史記憶信息,因此卡爾曼濾波具有輕量化的特點,運行速度非常快,非常適合處理實時的問題和嵌入式系統。
你在Google上找到的大部分關於卡爾曼濾波的數學描述是晦澀難懂的。那是非常糟糕的狀況!因為卡爾曼濾波能被簡單和容易的方式所理解的。因此,本文是一個非常不錯的文章主題,本文將嘗試用許多清晰、美觀的圖片來闡明它。 本文的前提很簡單,你僅僅需要對概率和矩陣有基本的了解。
本文將從一個簡單的例子開始,說明卡爾曼濾波可以解決的問題。但如果你想直接接觸精美的圖片和數學,請隨時跳轉。
舉一個簡單的小例子:你已經做了一個能在叢林中遊走的小機器人,為確保其能導航,機器人需要知道它所在的位置。
我們的機器人也有GPS感測器,精確大約10米,但它需要更精確地知道自己的位置。在樹林中有很多溝壑和懸崖,如果機器人的誤差超過幾英尺,它可能會從懸崖上掉下去。所以僅依賴GPS進行定位是遠遠不夠的。
我們可能還知道機器人是如何移動的:機器人知道發送給車輪馬達的指令,如果它朝一個方向前進,沒有任何干擾,下一刻它可能會繼續朝同一方向前進。當然,它對自己的運動並不完全了解:它可能會受到風的沖擊,車輪可能會打滑,或者在崎嶇不平的地形上滾動;所以輪子轉動的數量可能不能准確地代表機器人實際行走了多遠,這個預測也不會完全准確。
GPS 感測器 告訴我們一些關於狀態的信息,但只是間接的,帶有一些不確定性而且並不精準。我們的 預測 告訴了機器人是如何移動的,但只是間接的,並且也是不確定和不精準的。
但是,如果我們利用所有可用的信息,我們能得到一個比這兩個估計本身更好的答案嗎?當然,答案是肯定的,這就是卡爾曼濾波器的作用。
讓我們來看看我們想要詮釋的一個場景。我們繼續上一個例子,機器人僅僅包含一個位置和速度的簡單狀態。
更有趣的是下面的例子:位置和速度是呈 相關性 的。觀察特定位置的可能性取決於你的速度:
這種關系非常重要,因為它給我們提供了更多的信息:一個測量值告訴我們其他測量值可能是什麼。我們要盡可能多地從不確定的目標中壓縮卡爾曼濾波器的信息!
這種相關性被稱為 協方差矩陣 。簡而言之,矩陣的每個元素
我們基於高斯分布來建立狀態變數,所以在時間
接下來,我們需要某種方式來知道目前狀態(時刻
對於上述所有的數學公式,你僅僅需要實現公式(7)、(18)和(19)。(如果你忘記了上述公式,你也能從公式(4)和(5)重新推導。)
這將允許你精確地建模任何線性系統。對於非線性系統,需要用到 擴展卡爾曼濾波 ,區別在於EKF多了一個把預測和測量部分進行線性化的過程。
B. 什麼是kalman濾波器
卡爾曼(kalman)濾波
卡爾曼濾波是一種高效率的遞歸濾波器(自回歸濾波器), 它能夠從一系列的不完全包含雜訊的測量(英文:measurement)中,估計動態系統的狀態。
應用實例
卡爾曼濾波的一個典型實例是從一組有限的,對物體位置的,包含雜訊的觀察序列預測出物體的坐標位置及速度. 在很多工程應用(雷達, 計算機視覺)中都可以找到它的身影. 同時,卡爾曼濾波也是控制理論以及控制系統工程中的一個重要話題.
比如,在雷達中,人們感興趣的是跟蹤目標,但目標的位置,速度,加速度的測量值往往在任何時候都有雜訊.卡爾曼濾波利用目標的動態信息,設法去掉雜訊的影響,得到一個關於目標位置的好的估計。這個估計可以是對當前目標位置的估計(濾波),也可以是對於將來位置的估計(預測),也可以是對過去位置的估計(插值或平滑).
命名
這種濾波方法以它的發明者魯道夫.E.卡爾曼(Rudolf E. Kalman)命名. 雖然Peter Swerling實際上更早提出了一種類似的演算法.
斯坦利.施密特(Stanley Schmidt)首次實現了卡爾曼濾波器.卡爾曼在NASA埃姆斯研究中心訪問時,發現他的方法對於解決阿波羅計劃的軌道預測很有用,後來阿波羅飛船的導航電腦使用了這種濾波器. 關於這種濾波器的論文由Swerling (1958), Kalman (1960)與 Kalman and Bucy (1961)發表.
目前,卡爾曼濾波已經有很多不同的實現.卡爾曼最初提出的形式現在一般稱為簡單卡爾曼濾波器.除此以外,還有施密特擴展濾波器,信息濾波器以及很多Bierman, Thornton 開發的平方根濾波器的變種.也行最常見的卡爾曼濾波器是鎖相環,它在收音機,計算機和幾乎任何視頻或通訊設備中廣泛存在.
C. matlab 卡爾曼濾波工具箱怎麼安裝
14-44889-04614-04275-46147-23559-43066-41714-23083-65272-04997-17469-27919-17226-59862-27901-53983-56217-20094-53460-62647-58166-24499-35558-19511-44882-53016-25658-61109-03776-34505-00776-15813-07183
D. 求助.MATLAB卡爾曼濾波器工具箱里kalman
% INPUTS:
% y(:,t) - the observation at time t
% A - the system matrix
% C - the observation matrix
% Q - the system covariance
% R - the observation covariance
% init_x - the initial state (column) vector
% init_V - the initial state covariance
E. 什麼是卡爾曼濾波器
卡爾曼濾波器是一種由卡爾曼(Kalman)提出的用於時變線性系統的遞歸濾波器。這個系統可用包含正交狀態變數的微分方程模型來描述,這種濾波器是將過去的測量估計誤差合並到新的測量誤差中來估計將來的誤差這種濾波方法以它的發明者魯道夫.E.卡爾曼(Rudolph E. Kalman)命名,但是根據文獻可知實際上Peter Swerling在更早之前就提出了一種類似的演算法。 斯坦利.施密特(Stanley Schmidt)首次實現了卡爾曼濾波器。卡爾曼在NASA埃姆斯研究中心訪問時,發現他的方法對於解決阿波羅計劃的軌道預測很有用,後來阿波羅飛船的導航電腦便使用了這種濾波器。 關於這種濾波器的論文由Swerling (1958)、Kalman (1960)與 Kalman and Bucy (1961)發表。 目前,卡爾曼濾波已經有很多不同的實現.卡爾曼最初提出的形式現在一般稱為簡單卡爾曼濾波器。除此以外,還有施密特擴展濾波器、信息濾波器以及很多Bierman, Thornton 開發的平方根濾波器的變種。也許最常見的卡爾曼濾波器是鎖相環,它在收音機、計算機和幾乎任何視頻或通訊設備中廣泛存在。 應用實例 卡爾曼濾波的一個典型實例是從一組有限的,包含雜訊的,對物體位置的觀察序列(可能有偏差)預測出物體的位置的坐標及速度。在很多工程應用(如雷達、計算機視覺)中都可以找到它的身影。同時,卡爾曼濾波也是控制理論以及控制系統工程中的一個重要課題。 例如,對於雷達來說,人們感興趣的是其能夠跟蹤目標。但目標的位置、速度、加速度的測量值往往在任何時候都有雜訊。卡爾曼濾波利用目標的動態信息,設法去掉雜訊的影響,得到一個關於目標位置的好的估計。這個估計可以是對當前目標位置的估計(濾波),也可以是對於將來位置的估計(預測),也可以是對過去位置的估計(插值或平滑)。
F. MATLAB7.0怎麼打開卡爾曼工具箱
在MATLAB的菜單欄中選擇help(幫助)項,在其下拉菜單中選擇function browser,然後在其search項中輸入care,點擊打開即可。
G. 請問一下,Labview中有卡爾曼濾波器的工具嗎,我想用這個濾波器進行信號處理,求高手指點,在哪裡能找到
這個是有的,在「控制與模擬」——Control Design——Implementation下面的第7個就是Klman濾波器,或者你直接在函數面板上搜索"Klman",就可以找到了,不過我沒有實際用過,具體怎麼用你還要多學習學習了~
H. 如何通俗並盡可能詳細解釋卡爾曼濾波
卡爾曼濾波(Kalman filtering)一種利用線性系統狀態方程,通過系統輸入輸出觀測數據,對系統狀態進行最優估計的演算法。由於觀測數據中包括系統中的雜訊和干擾的影響,所以最優估計也可看作是濾波過程。
斯坦利·施密特(Stanley Schmidt)首次實現了卡爾曼濾波器。卡爾曼在NASA埃姆斯研究中心訪問時,發現他的方法對於解決阿波羅計劃的軌道預測很有用,後來阿波羅飛船的導航電腦使用了這種濾波器。 關於這種濾波器的論文由Swerling (1958), Kalman (1960)與 Kalman and Bucy (1961)發表。
數據濾波是去除雜訊還原真實數據的一種數據處理技術, Kalman濾波在測量方差已知的情況下能夠從一系列存在測量雜訊的數據中,估計動態系統的狀態. 由於, 它便於計算機編程實現, 並能夠對現場採集的數據進行實時的更新和處理, Kalman濾波是目前應用最為廣泛的濾波方法, 在通信, 導航, 制導與控制等多領域得到了較好的應用。
I. 擴展卡爾曼濾波(EKF)演算法詳細推導及模擬(Matlab)
姓名:王柯禕
學號:20021110373T
轉自 :https://blog.csdn.net/gangdanerya/article/details/105105611
【嵌牛導讀】介紹擴展卡爾曼濾波(EKF)演算法的詳細推導,局限性和MATLAB模擬。
【嵌牛鼻子】擴展卡爾曼濾波(EKF)
【嵌牛正文】
擴展卡爾曼濾波演算法 是解決非線性狀態估計問題最為直接的一種處理方法,盡管EKF不是最精確的」最優「濾波器,但在過去的幾十年成功地應用到許多非線性系統中。所以在學習非線性濾波問題時應該先從EKF開始。
EKF演算法是將非線性函數進行泰勒展開,然後省略高階項,保留展開項的一階項,以此來實現非線性函數線性化,最後通過卡爾曼濾波演算法近似計算系統的狀態估計值和方差估計值。
一、EKF演算法詳細推導
【注】EKF推導參考的是黃蔚的博士論文「CKF及魯棒濾波在飛行器姿態估計中的應用研究」,論文中EKF,UKF和CKF等演算法講解的都很詳細,值得一看。
我們把KF與EKF演算法拿出來對比可以發現:
二、EKF演算法局限性:
該演算法線性化會引入階段誤差從而導致濾波精度下降,同時當初始狀態誤差較大或系統模型非線性程度較高時,濾波精度會受到嚴重影響甚至發散。
需要計算雅克比矩陣,復雜,計算量大,影響系統的實時性,還會導致EKF演算法的數值穩定性差。
當系統存在模型失配,量測干擾,量測丟失,量測延遲或狀態突變等復雜情況時,EKF演算法魯棒性差。
三、Matlab模擬:
clear all;clc; close all;
tf = 50;
Q = 10;w=sqrt(Q)*randn(1,tf);
R = 1;v=sqrt(R)*randn(1,tf);
P =eye(1);
x=zeros(1,tf);
Xnew=zeros(1,tf);
x(1,1)=0.1;
Xnew(1,1)=x(1,1);
z=zeros(1,tf);
z(1)=x(1,1)^2/20+v(1);
zjian=zeros(1,tf);
zjian(1,1)=z(1);
for k = 2 : tf
%%%%%%%%%%%%%%%模擬系統%%%%%%%%%%%%%%%
x(:,k) = 0.5 * x(:,k-1) + (2.5 * x(:,k-1) / (1 + x(:,k-1).^2)) + 8 * cos(1.2*(k-1)) + w(k-1);
z(k) = x(:,k).^2 / 20 + v(k);
%%%%%%%%%%%%%%%EKF開始%%%%%%%%%%%%%%%
Xpre = 0.5*Xnew(:,k-1)+ 2.5*Xnew(:,k-1)/(1+Xnew(:,k-1).^2) + 8 * cos(1.2*(k-1));
zjian =Xpre.^2/20;
F = 0.5 + 2.5 * (1-Xnew.^2)/((1+Xnew.^2).^2);
H = Xpre/10;
PP=F*P*F'+Q;
Kk=PP*H'*inv(H*PP*H'+R);
Xnew(k)=Xpre+Kk*(z(k)-zjian);
P=PP-Kk*H*PP;
end
t = 2 : tf;
figure; plot(t,x(1,t),'b',t,Xnew(1,t),'r*'); legend('真實值','EKF估計值');
模擬結果:
J. 卡爾曼濾波器有什麼作用
卡爾曼濾波器是一種由卡爾曼提出的用於時變線性系統的遞歸濾波器。這個系統可用於包含正交狀態變數的微分方程模型來描述,這種濾波器是將過去的測量估計誤差合並到新的測量誤差中來估計將來的誤差。