稳态卡尔曼滤波器的状态估计

时间:2016-04-07 15:08:05

标签: python math simulation kalman-filter

我正在使用系统上的离散卡尔曼滤波器

  

x(k + 1)= A_k x(k)+ B_k u(k)

     

y(k)= C_k x(k)

我从可用的噪声y(k)估计了状态,其中一个是从状态的 Reference Trajectory 的相同系统状态方程生成的。然后我用错误的初始状态x0和一个大的初始协方差(模拟1)测试了它。我注意到 KF 非常有效,经过几个步骤后,增益k迅速收敛到接近零的非常小的值。我认为这可能是由过程噪音引起的Q。我把它设置得很小,因为Q代表模型的准确性。

现在我想将其修改为稳定状态卡尔曼滤波器。我使用simulation-1的稳定增益作为常数,而不是每次迭代中的计算。然后,五个方程可以简化为一个方程式:

  

x(k + 1)^ =(I-KC)A x(k)^ +(I-KC)B u(k)+ K y(k + 1)

我想用与模拟-1中相同的初始状态和协方差矩阵来测试它。但结果与参考轨迹甚至模拟结果-1非常不同。我用协方差矩阵p_infi测试了它,它是从离散Riccati方程求解的:

  

k_infi = p_infi C '/(C p_infi * C' + R)

这不起作用。

我想知道 -

  1. 我应该如何应用稳态KF以及如何为其设置初始状态?
  2. 用于标量系统的稳态KF是什么?
  3. 我应该将它与LQ控制器或其他一些一起使用吗?

2 个答案:

答案 0 :(得分:1)

让我首先将讨论简化为具有固定转换矩阵的过滤器, A 而不是 A_k 。当卡尔曼滤波器在这种情况下达到稳态时,可以提取增益并制作利用稳态卡尔曼增益的固定增益滤波器。该滤波器不是卡尔曼滤波器,它是固定增益滤波器。它的启动性能通常比卡尔曼滤波器差。这是用固定增益替换卡尔曼增益计算所付出的代价。

固定增益滤波器没有协方差( P ),没有 Q R

鉴于 A C Q ,可以直接计算稳态增益。使用离散卡尔曼滤波器模型,并将a-posteriori covarance矩阵设置为等于先前测量周期中传播的后验协方差矩阵,其中:

P =(I - KC)(A P A ^ T + Q)

求解 K 的等式导致固定 A Q C 的稳态Kalman增益>

R 在哪里?它在稳态增益计算中没有任何作用,因为测量噪声在稳态下已经平均下降。稳态意味着状态估计与我们所具有的过程噪声量( Q )一样好。

如果 A 是随时间变化的,那么大部分讨论都不成立。无法保证卡尔曼滤波器将达到稳态。可能没有 Pinf

在固定增益滤波器中使用卡尔曼滤波器的稳态增益的另一个隐含假设是所有测量将以相同的速率保持可用。卡尔曼滤波器对测量损耗很稳健,固定增益滤波器不是。

答案 1 :(得分:0)

稳态KF要求初始状态与稳态协方差匹配。否则,KF可能会分歧。当过滤器进入稳定状态时,您可以开始使用稳态KF。

稳态卡尔曼滤波器可用于具有多维状态的系统。