卓老師,我想問一個關于卡爾曼濾波的問題,希望您能解答一下。之前我用的互補濾波效果也還好,但在用卡爾曼濾波的時候出現(xiàn)了一些問題:就是如何整定卡爾曼濾波的Q、R這兩個參數(shù),這兩個參數(shù)分別是角度數(shù)據(jù)置信度與角速度數(shù)據(jù)置信度。我看別人用的這兩個參數(shù)都非常小,比如別人Q都是零點零零幾,而我用的時候發(fā)現(xiàn)Q零點幾跟隨效果很差,我把Q調到1跟隨效果才差不多。但是Q和R不都是協(xié)方差嗎,它們可以取到1及以上的值嗎?即Q和R有沒有取值范圍,以及這兩個參數(shù)整定方法是什么?還是我理解有問題,希望卓大或者車友可以解答一下。 在智能車競賽中,Kalman濾波算法常常被用來計算直立車模傾角和轉動角速度。算法利用陀螺儀給出的轉速度量和加速度傳感器給出的傾角觀測量完成計算。除了Kalman濾波器算法之外,還可以使用互補濾波器進行幫助計算。 如果不考慮系統(tǒng)狀態(tài)的時變性和系統(tǒng)噪聲的時變性,上述兩種方法本質上是相同的。 下圖顯示了對于被測物體位置使用Kalman濾波算法來估計物體實際位置的示意圖。 通常情況下所使用的Kalman濾波器是離散時間系統(tǒng)形式的。我們真正想得到的物理量表示成系統(tǒng)狀態(tài)中的某些分量。對于系統(tǒng)狀態(tài)的估計(濾波結果)所使用的信息來源于兩個方面,一個是對系統(tǒng)狀態(tài)演變模型的了解,包括系統(tǒng)轉移矩陣和輸入控制矩陣,輸入孔質量等,另一方面來自于對系統(tǒng)狀態(tài)的觀測量。 但這兩方面的信息都會有某種不確定性。通常使用系統(tǒng)噪聲向量(W)和觀測噪聲向量(V)來表示。兩個噪聲大小分別使用它們各自的協(xié)方差矩陣來表示。系統(tǒng)噪聲協(xié)方差矩陣使用Q,觀測噪聲的協(xié)方差矩陣使用R。 下面是系統(tǒng)方程和觀測方程表達式。雖然在表達式中包括了系統(tǒng)噪聲w和轉測噪聲v,但在計算系統(tǒng)狀態(tài)轉移和系統(tǒng)觀測量的時候并不考慮這兩個噪聲的影響。 兩個噪聲的影響只是在卡爾曼濾波器離散迭代算法過程中使用到了兩個噪聲的協(xié)方差矩陣Q和R。分別用于計算系統(tǒng)狀態(tài)估計誤差的協(xié)方差矩陣P和卡爾曼濾波器增益K的大小。 下面是傳統(tǒng)線性卡爾曼濾波器的五個基本迭代公式。 從上面公式來看,真正所要濾波得到的結果來自于公式(4)中的系統(tǒng)狀態(tài)估計值x的某些分量,公式(4)的結果是由公式(1)所得到的狀態(tài)預測值和來自觀測量y計算得到的。其中卡爾曼濾波器增益K是在狀態(tài)預測值和觀測誤差值之間做了一個折中。 如果K很小,比如等于0,則濾波結果更加接近由系統(tǒng)狀態(tài)估計值給出的遞歸結果;如果K很大,比如等于1,則濾波結果更加接近于觀測值所反算出來的狀態(tài)變量。 K值是由公式(3)計算獲得,其中的P值是通過公式(2)(5)進行計算,反映了Q的大小,因此K值的大小可以由如下形式示意: 因此,K值至于Q,R的比值有關系,而與Q,R的絕對值沒有關系。所以,在不同算法中,R, Q的取值根據(jù)反應的不同量綱,可以有很大的變化,但它們的比值會決定了濾波值應該更多來自于系統(tǒng)模型演化的信息,還是來自于觀察信號信息。 在智能車競賽中,使用Kalman濾波器將慣性傳感器所得到的車體陀螺儀所反映的角速度和和加速度傳感器所獲得的傾斜角信息進行融合,獲得直立車模傾角和轉動角速度。 此時,往往將系統(tǒng)狀態(tài)x設定為車模需要觀察的角度。系統(tǒng)輸入量u為測量所得到的角速度;系統(tǒng)觀察值設定為有加速度傳感器給出的傾角。 系統(tǒng)模型噪聲w應該反映出陀螺儀測定角速度的隨機誤差和隨著時間漂移的系統(tǒng)誤差兩部分。系統(tǒng)觀測噪聲v應該反映了加速度計輸出量中在計算角度的近似誤差和由于車模運動所產(chǎn)生的干擾噪聲。 如果Q大R小,造成K增加,則濾波結果中就會存在較大的由于車模運動所產(chǎn)生的噪聲,俗稱跟蹤不好;如果Q小R大,造成K減小,則濾波結果會出現(xiàn)兩種問題,第一就是從處置值收斂到正確值的過程較慢,需要等一個比較長的穩(wěn)定時間。另一方面就是會受到陀螺儀本身零點漂移,產(chǎn)生比較大的輸出零點誤差。 最終這兩個參數(shù)的大小可以根據(jù)所選擇的器件的實際性能(噪聲,漂移等)通過實驗觀察的方式獲得一個比較好的相對值。 |
|
來自: taotao_2016 > 《視覺》