我正在系统上使用离散卡尔曼滤波器。在
x(k+1)=A_k x(k)+B_k u(k)
y(k)=C_k x(k)
我已经从可用的带噪y(k)
估计了状态,该状态是由相同的系统状态方程生成的,该方程具有状态的参考轨迹。{cdi>初始状态和初始状态有很大的差异。我注意到KF工作得很好,经过几步后,增益k
迅速收敛到接近零的一个非常小的值。我认为这可能是由过程噪声引起的。我把它设得很小,因为Q
代表模型的准确性。在
现在我想把它修改成稳态Kalman滤波器。在每次迭代中,我使用模拟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_infiC'/(Cp_infi*C'+R)
这都不管用。在
我想知道-
让我先把讨论简化为一个带有固定转移矩阵的滤波器,a而不是上面的a_ck。在这种情况下,当Kalman滤波器达到稳态时,可以提取增益并利用稳态Kalman增益制作固定增益滤波器。该滤波器是一个Kalman滤波器,它是一个固定增益滤波器。它的启动性能通常会比Kalman滤波器差。这就是用固定收益代替Kalman增益计算所付出的代价。在
固定增益滤波器没有协方差(p),也没有Q或R。在
给定A,C和Q,可以直接计算稳态增益。使用离散Kalman滤波器模型,并将a-后验共变矩阵设置为来自上一测量周期的传播的a-后验协方差矩阵,则:
p=(I-KC)(A p A^T+Q)
求解K方程可得到固定A、Q和C的稳态Kalman增益。在
哪里是R?它在稳态增益计算中没有作用,因为测量噪声在稳态时被平均化了。稳态意味着状态估计与过程噪声量(Q)一样好。在
如果A是时变的,那么这一讨论的大部分内容就不成立了。不能保证卡尔曼滤波器会达到稳态。可能没有。在
在固定增益滤波器中使用Kalman滤波器的稳态增益时,另一个隐含的假设是,所有测量值将保持在相同的速率下可用。Kalman滤波器对测量损耗具有鲁棒性,而固定增益滤波器则不具有鲁棒性。在
稳态KF要求初始状态与稳态协方差相匹配。否则,KF可能会出现分歧。当过滤器进入稳定状态时,可以开始使用稳态KF。在
稳态Kalman滤波器可用于多维状态系统。在
相关问题 更多 >
编程相关推荐