可以将上限和下限约束应用于由卡尔曼滤波器更新的估计值吗?有界卡尔曼滤波器
我有一个在实际生活中只能有非负值的状态。当我应用卡尔曼滤波器时,此状态会更新为负值。我怎样才能在卡尔曼滤波器中应用这个极限约束?
请回复
感谢
可以将上限和下限约束应用于由卡尔曼滤波器更新的估计值吗?有界卡尔曼滤波器
我有一个在实际生活中只能有非负值的状态。当我应用卡尔曼滤波器时,此状态会更新为负值。我怎样才能在卡尔曼滤波器中应用这个极限约束?
请回复
感谢
通过简单约束西格玛点(这些点是您生成的近似您的状态的高斯分布并考虑到错误),可以很容易地在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
,成功实现所需的界限。
而这通常涵盖了大多数的边界和他们各自的衍生物是可以接受的。希望能帮助到你!