基于松耦合IMU阵列导航系统中时间同步的研究
2019-12-05王创管启丁德锐
王创 管启 丁德锐
摘 要:传感器融合算法通常假设传感器时钟之间具有完美的时间同步,然而在实际的传感器融合过程中不可避免地存在时间同步误差,从而导致传感器融合中的系统误差。本文首先分析了惯性传感器阵列中的时间步的机理,然后将时间同步误差作为待估计的状态,借助于扩展卡尔曼滤波实现时间同步误差的在线估计,进而利用互补反馈滤波器来融合惯性阵列系统的数据。在此基础上,本文进一步提出了使用分数延迟滤波器来实现延时数据的时间移位,从而保证不同传感器的时间同步。仿真结果表明,所提出时间同步误差的估计方法可以将得到的时间同步误差精确到毫秒级。
关键词: 松耦合;惯性传感器阵列;时间同步;分数延迟滤波器
【Abstract】 Sensor fusion algorithms are usually based on the assumption of perfect time synchronization between sensor clocks. However, time synchronization errors in the actual sensor fusion process are inevitable, which results in the systematic error of sensor fusion. This paper thoroughly analyzes the mechanism of time-steps in the inertial sensor array, then takes the time synchronization error as the state to be estimated. As such, the online estimation of time synchronization errors is obtained by means of extended Kalman filters, and such an estimated value is utilized to realize data fuse of inertial array systems via the complementary feedback filter. In light of the above results, this paper further handles the time shift of the delayed data via the fractional delay filter to ensure the time synchronization of different sensors. The simulation results show that the proposed estimation method can accurately obtain the time synchronization error at the millisecond level.
【Key words】 loose coupling; inertial sensor array; time synchronization; fractional delay filter
0 引 言
與传统单个惯性测量单元(IMU)相比,惯性传感器阵列是由多个IMU组合的产物,这主要归功于微电子惯性传感器(MEMS)的发展。对惯性传感器阵列的研究主要源于其可提供单个惯性测量单元(IMU)所不具备的优势:更高的精度和更高的可靠性[1],具有更高的动态测量范围,还能够从加速度数据中估计角速度和角加速度[2-3]。因此,近年来惯性传感器阵列受到了学者的广泛关注。
在使用惯性传感器阵列和其它传感器进行数据融合时,使用的融合算法通常假设惯性传感器阵列内的惯性测量单元(IMU)具有完美的时间同步,但在实际的使用中,这是很难实现的。造成惯性传感器阵列时钟不同步的因素有很多,例如,测量采集时间、预处理时间、通信传输时间、缓冲时间、计算机调度时间、制造工艺和环境因素影响等。
目前,解决时间同步误差问题主要有3类方法:硬件实现、软件实现和软硬件实现。其中,在处理GPS/INS组合导航中,研究人员通过硬件检测1PPS (Pulses Per Second)脉冲的方法解决 SINS/GNSS 的时间同步问题[4-5]。也有基于高精度定时器的时间同步方案[6],但这些方法都需要增加额外的硬件。软件实现方法是采用同步的外推算法[7], 该方法运算量较大。此外,软硬结合的方法则是利用多项式拟合[8-9],该方法同样需要计算大量的数据点。
本文是在惯性传感器阵列校正[10]的基础上,研究了惯性传感器阵列中惯性测量单元(IMU)存在时间同步误差的问题。并在由惯性传感器阵列构成的闭环松耦合反馈系统中研究了时间同步误差对系统性能的影响。本文提出把时间同步误差作为一个待估状态,将其看作是扩展到卡尔曼滤波器状态向量实现在线估计,进而将估计出来的时间同步误差反馈到导航解算回路中,并在分数延时滤波器中完成数据的时间同步。
1 惯性阵列导航系统基本模型
在本文研究的时间同步问题中,设Td表示时间延时,Ts为IMU的采样周期,且系统中时钟之间的偏置和漂移率已经得到补偿,只有时钟之间的初始偏移量未知,即认为时间同步误差为常数。对此拟展开研究论述如下。
1.1 惯性传感器阵列系统方程建立
在惯性传感器阵列组成的导航系统中,本文选择了以各个导航子系统间的误差量作为状态量,建立基于卡尔曼滤波器的间接法滤波。
具体地,卡尔曼滤波器的输入为2个惯性导航系统对同一导航参数测量输出的差值,经过迭代的滤波计算,估计出各误差量。若惯性导航系统误差的估计值被用于校正惯性导航系统输出的导航参数称为输出校正;若使惯性导航系统误差的估计值反馈到系统的内部,称为反馈校正。
3 时间同步算法
为了使惯性阵列导航系统中每个惯性单元达到理想的时间同步,本文构造了如图2所示的闭环松耦合反馈滤波框架。首先,把时间同步误差作为状态包含在EKF的状态空间模型中,然后将由EKF估计的时间同步误差反馈到分数延时滤波器中,同时用分数延时滤波器对IMU的数据进行时间的移位,并把延时后的IMU数据进行误差补偿,最后把经过时间移位且补偿后的数据输入到导航方程中进行导航求解。
4 仿真实验和结果分析
在实验阶段,首先对惯性传感器阵列进行校准,并给出了校准后的结果。然后利用Matlab模拟了具有时间同步误差的惯性阵列的运动情况,利用提出的时间同步算法估计Matlab模拟惯性阵列中的时间同步误差,并给出了时间误差补偿后的导航结果。为了进一步说明提出算法的有效性,在Matlab仿真中又刻意增加了各個IMU的延时时间,仿真结果表明该算法仍能很好地估计出所延时的时间。
在惯性传感器阵列校正阶段,为了平均随机误差和未建模的误差,采用一个具有20面的校正载体,在校正过程中能够提供20个均匀的方向,这就在相当程度上平均了惯性传感器阵列中的随机误差和未建模的误差。图3展示了将惯性传感器阵列插入校正固体中的情况,随后将多面体的每个面静止数秒(取5 s即可)来收集数据,最后利用高斯牛顿法对校正参数求解。
惯性传感器阵列加速度计和陀螺仪校准后的输出如图4所示。图4中,数据是惯性传感器阵列经过校准后,让惯性传感器阵列静止正面朝上采集的数据。由于惯性传感器阵列嵌入式板子的正反面都嵌有惯性测量单元,因此输出的数据是关于X轴对称的。从图4中可以看出,经过校准后陀螺仪的输出误差为0~2 deg/s,加速度计在静止情况下的Z轴的输出为9.9 m/s2,X和Y轴的输出接近0 m/s2。
接下来,对含有4个IMU的惯性传感器阵列进行运动状态的仿真估计。仿真过程中假设4个IMU之间存在不同的时间延时。研究中,将以IMU1作为惯性传感器阵列的时间基准,假设IMU1延时0 s,继而假设IMU2具有0.01 s的时间延时,IMU3具有0.015 s的时间延时,IMU4具有0.02 s的时间延时。仿真结果如图5所示。图5展示了各个IMU对实际运动的估计,不难看出随着时间的增长,估计值已经远远地偏离真实的轨迹。利用提出算法对IMU2、IMU3、IMU4的延时估计结果如图6所示。从图6中可以看到,该算法不仅具有良好的收敛特性,同时估计的精度也达到了毫秒级别。
在前文基础上,后续仿真实验中,采用所提出的闭环松耦合反馈系统分别对由IMU2、IMU3和IMU4与IMU1所构成的闭环导航系统中的运动状态求得位置估计。使用提出算法前后得到的运动状态估计如图7所示。其中,IMU12、IMU13、IMU14分别表示IMU2、IMU3、IMU4和IMU1构成的闭环松耦合反馈系统对运动状态的位置估计。在图8中,红线是惯性传感器阵列中采用提出算法得到运动状态位置估计的均值结果,蓝线则是惯性传感器阵列中没有考虑时间同步问题的运动状态位置估计的均值。从图8可以看到,时间同步误差对系统的导航性能影响还是很大的,本文提出方法在一定程度上减小了由于传感器的时间不同步造成的导航精度下降。
为了测试所提出算法对惯性传感器阵列中时间同步误差的估计,在仿真中又专门增加了不同IMU之间的时间同步误差的数值。对IMU2进行0.02 s和0.03 s的延时,对IMU3进行0.025 s和0.05 s的延时,对IMU4进行0.03 s和0.09 s的延时。对IMU进行不同数量延时的估计如图9所示。从图9中可以看出,所提出的方法不仅对时间延时的估计有很好的收敛特性,还能对所估计的延时取得良好的估计效果,同样达到了毫秒级别的估计精度范围。
5 结束语
本文将针对惯性传感器阵列系统中时间同步误差的问题进行研究。故而,具体选择了以惯性阵列组合导航系统中导航子系统的误差量作为状态量的间接滤波法。给出了以误差作为卡尔曼滤波状态变量的空间表达式和观测方程。提出了将时间同步误差作为状态包含在导航滤波器中,并通过EKF滤波器来估计时间同步误差。在得到时间同步误差的基础上,采用了分数延迟滤波器对IMU数据进行时间移位插值的方法来保证不同IMU采集数据的时间同步。经过仿真实验可以得到,该算法不仅能有效地估计不同传感器的时间同步误差,还能实现数据的时间同步,从而提高了惯性传器阵列的导航精度。
参考文献
[1]SKOG I, NILSSON J O, HNDEL P, et al. Inertial sensor arrays, maximum likelihood, and cramér–rao bound[J]. IEEE Transactions on Signal Processing, 2016, 64(16): 4218-4227.
[2]BRS S, ROSA P, SILVESTRE C, et al. Fault detection and isolation in inertial measurement units based on bounding sets[J]. IEEE Transactions on Automatic Control, 2014, 60(7): 1933-1938.
[3]YANG C K, SHIM D S. FDI using multiple parity vectors for redundant inertial sensors[J]. European Journal of Control, 2006, 12(4): 437-449.
[4]LI Binghao, RIZOS C , LEE H K , et al. A GPS-slaved time synchronization system for hybrid navigation[J]. GPS Solutions, 2006, 10(3):207-217.