时间分片卡尔曼滤波基本原理
在如下卡尔曼滤波的5个公式中,式(3)的求逆运算量并不是最大的,特别是量测维数不高时,通常还可以将量测更新改写成序贯滤波的方式,此时就不存在求逆问题。
在捷联惯导组合导航中,时间更新频率不能太低,一般得10Hz以上。如系统状态方程n维,则式(2)右端第一项Phi*P*Phi^T含两个n阶矩阵相乘,这是卡尔曼滤波中最大计算量之处。
如将nxn阶矩阵乘nx1维向量当作1份计算量(即n^2次乘法),则式(1)含1份;式(2)含2n份(不计Gamma*Q*Gamma^T);式(3)含r份(r个序贯量测);式(4)忽略不计;式(5)含r份。因此,总共有2(n+r)份计算量。
在单片机等低端嵌入式系统中,比如惯导IMU采样间隔10ms,欲在10ms内完成一次完整的Kalman时间更新,尤其是式(2)2n^3次乘法,是比较困难的。解决办法是将Kalman滤波的2(n+r)份计算量分散到相连的不同10ms(时间片)中去,每次只计算其中的nStep份,并确保总能计算完毕。这就是分片滤波算法的主要思想。如果2(n+r)/nStep*10ms<100ms,便可保证Kalman滤波时间更新频率大于10Hz。
时间分片Kalman滤波的主要流程见下图(摘自PSINS开发板算法的VG数据处理(成都,201812).ppt)。