可以將上限和下限約束應用於由卡爾曼濾波器更新的估計值嗎?有界卡爾曼濾波器
我有一個在實際生活中只能有非負值的狀態。當我應用卡爾曼濾波器時,此狀態會更新爲負值。我怎樣才能在卡爾曼濾波器中應用這個極限約束?
請回復
感謝
可以將上限和下限約束應用於由卡爾曼濾波器更新的估計值嗎?有界卡爾曼濾波器
我有一個在實際生活中只能有非負值的狀態。當我應用卡爾曼濾波器時,此狀態會更新爲負值。我怎樣才能在卡爾曼濾波器中應用這個極限約束?
請回復
感謝
通過簡單約束西格瑪點(這些點是您生成的近似您的狀態的高斯分佈並考慮到錯誤),可以很容易地在UKF(無跡卡爾曼濾波器)中執行此操作。
對於EKF,您可以找到關於如何將狀態空間投影回約束邊界的論文。複雜性來自兩個因素:
一些常用的方法在EKF束縛態變量(抱歉,沒有KF)如下:
如果x
是國家,我們也增加至有限狀態x'
。
要強制約束,如x > a
我們定義了一個新的狀態x' = exp(x) + a
。 這將永遠不會少於一個exp(x) -> 0
x -> -inf
。這也適用於消極的限制,其中x < -a
=>x' = - exp(x) - a
如果你想有諸如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
,成功實現所需的界限。
而這通常涵蓋了大多數的邊界和他們各自的衍生物是可以接受的。希望能幫助到你!