2016-08-03 80 views
0

可以將上限和下限約束應用於由卡爾曼濾波器更新的估計值嗎?有界卡爾曼濾波器

我有一個在實際生活中只能有非負值的狀態。當我應用卡爾曼濾波器時,此狀態會更新爲負值。我怎樣才能在卡爾曼濾波器中應用這個極限約束?

請回復

感謝

回答

0

通過簡單約束西格瑪點(這些點是您生成的近似您的狀態的高斯分佈並考慮到錯誤),可以很容易地在UKF(無跡卡爾曼濾波器)中執行此操作。

對於EKF,您可以找到關於如何將狀態空間投影回約束邊界的論文。複雜性來自兩個因素:

  • 如果您有多變量約束(例如2D距離),那麼您希望以有意義的方式移動相關變量。
  • 當您更新一個狀態變量時,您希望通過協方差矩陣反映與其相關的其他狀態變量中的變化。例如,如果您的狀態包含速度和位置,則測量可能會導致對速度的稍微修正,並且可能會稍微改變位置。如果您的約束在更新後限制了速度,您想要進行相關更改以定位。
0

一些常用的方法在EKF束縛態變量(抱歉,沒有KF)如下:

如果x是國家,我們也增加至有限狀態x'

  1. 要強制約束,如x > a我們定義了一個新的狀態x' = exp(x) + a。 這將永遠不會少於一個exp(x) -> 0x -> -inf。這也適用於消極的限制,其中x < -a =>x' = - exp(x) - a

  2. 如果你想有諸如a < x < b狀態的低/上限: 這可以用S型函數,最流行的實現(在我的經驗)是x' = tanh(x),它將x綁定到(-1,1)。現在,只需簡單地將其推廣到a < x < b即可,因爲我們需要將其縮放到適當的大小並將其抵消爲x' = tanh(x)*(b-a)/2 + (a+b)/2。所以當tanh(x) = -1我們得到a,當tanh(x) = 1我們得到b,成功實現所需的界限。

而這通常涵蓋了大多數的邊界和他們各自的衍生物是可以接受的。希望能幫助到你!