惯性/卫星组合导航系统软件测试
2018-07-24李萍王海明郭伟全
李萍,王海明,郭伟全
(工业和信息化部电子第五研究所,广东 广州 510610)
0 引言
目前航空导航较常用的是惯性/卫星 (包括GPS、GLONASS和BD2等)组合导航系统,这种方式可以综合惯性导航、卫星导航的优点[1],提高导航系统的整体性能。软件测试是保障导航系统的可靠性的重要手段,而目前针对惯性/卫星组合导航系统软件测试的研究较少,本文通过理论结合工程实践的研究方法,给出了惯性/卫星组合导航系统软件测试的解决方案和实施方法。
软件测试技术通常分为静态测试和动态测试,其中,动态测试包括白盒测试、黑盒测试两种测试方法,黑盒测试通过数据驱动来检验每项功能是否都能正常地实现[2]。本文主要是对惯性/卫星组合导航系统软件的黑盒测试方法进行概述,通过理论结合工程实际的方法给出惯性/卫星组合导航系统软件功能的测试方法。
1 惯性/卫星组合导航软件的实现
惯性/卫星组合导航系统以惯性导航作为基准导航系统,惯性导航系统完成初始对准建立起导航坐标系后,使用惯性导航和卫星导航的同一导航信息进行滤波,进行导航数据的误差修正。导航系统的工作过程一般分为对准阶段和导航阶段,在整个过程中实时地输出导航数据。
根据对准过程中使用的参考基准信息的不同,初始对准可分为自对准、传递对准和空中对准方法。在实际的工程应用中考虑到惯导工作环境中的随机干扰因素,如阵风等引起的飞机随机晃动、飞行过程中空气动力的随机改变引起的飞机结构挠曲变形等,多采用卡尔曼滤波来实现初始对准阶段的参数估计。根据组合导航过程中卫星源的不同,组合导航方式可分为INS/GPS、INS/GNSS和INS/BD2等,由于惯性、卫星的误差源和量测误差都是随机的,因而在实际工程中多采用卡尔曼滤波来实现导航阶段的参数估计。按照卡尔曼滤波使用量测信息的不同,组合导航体系结构可分为松耦合方式、紧耦合方式和超紧耦合方式[3-4]。
卡尔曼滤波是使用状态空间法在时域内设计滤波器的,目前,其已作为一种最重要的最优估计理论被广泛地应用于各种领域,组合导航系统的设计是其最成功的应用。卡尔曼滤波可以分为滤波计算和增益计算,基本方程如下[1]所示。
状态方程和量测方程:
滤波计算:
增益计算:
根据系统和噪声特性建立数学模型,确定状态方程和量测方程后,按照以上基本方程完成卡尔曼滤波设计。在实际的工程应用中,通常对卡尔曼滤波进行适应性技术处理,包括有色噪声滤波、平方根滤波、自适应滤波和优次滤波等[1]。
2 惯性/卫星组合导航系统的软件测试
根据惯性/卫星组合导航系统的应用和特点,可将惯性/卫星组合导航系统软件的测试需求[5]归结为3类:导航参数计算、卡尔曼滤波、时间及导航性能计算。惯性/卫星组合导航系统的软件测试应当包括空中试飞验证、地面试验验证,由于试飞验证成本高、测试不充分,工程中多采用地面验证的方法,因此,本文也着重讨论地面验证软件功能的方法。
2.1 导航参数计算测试
惯性/卫星组合导航系统软件计算的导航参数包括姿态角、地理系速度、地理系加速度、地速、角速度、位置、重力加速度、惯性攻角和惯性侧滑角等。为了提高系统的可靠性,组合导航系统采用了余度设计,为了防止由于其中一个导航系统故障而导致整个导航任务失败,组合导航系统通常会设计3种导航方式,包括纯惯性导航、卫星导航和组合导航,在测试过程中应当分别测试以上3种导航方式下,导航参数计算的正确性。具体的测试方法如下所述。
a)在实际的工程应用中,由于导航系统是通过不同的总线实时地向外部系统输出导航参数的,因此,首先需要验证不同总线、同一总线在同一时间或同一状态下输出导航参数的一致性。
b)通过耦合的卫星导航信号模拟器和惯性导航模拟器[6],验证导航参数计算的正确性。模拟航空设备运动场景,例如:对地攻击机从起飞、巡航、低空突防接近战区、对地攻击和返航的过程,设计各个过程中的加速度、航向、俯仰角、横滚角、速度和高度等参数。根据已知的速度、加速度、姿态角和传感器误差等信息,利用加速度计、陀螺仪数学模型反推比力、角速度,作为加速度计和陀螺的采样值送给导航解算模块,完成整个惯性导航仿真过程。计算航空设备的空间轨迹数据,据此利用卫星导航信号模拟器模拟生成射频信号,发送给卫星信号处理模块,完成整个卫星导航信号的模拟过程。记录惯性/卫星组合导航系统在模拟环境中实时计算的导航参数,与预设参数值进行比对,验证导航参数计算是否正确。
图1 卫星导航信号的模拟过程
c)在地面跑车试验中,通过真实的卫星信号和载体运动参数,验证导航参数计算的正确性。地面跑车试验的设备包括卫星组合系统、卫星接收机天线和高精度基准设备,驾驶试验车按照规划路线、参数进行跑动,记录组合导航系统、基准设备输出的导航参数并进行比对,从而验证组合导航计算的正确性。地面跑车试验中需要设计卫星信号反复被遮蔽的行车路线,从而验证组合导航的容错性和恢复性。
2.2 卡尔曼滤波测试
首先,需要验证卡尔曼滤波软件实现的正确性,测试方法包括以下两种。
a)通过对源代码人工扫描的形式,检查是否完全实现设计的卡尔曼滤波过程,包括系统数学模型、噪声数学模型、状态初始化值和量测值等;在人工演算矩阵计算过程中,是否存在使计算结果无效的软件缺陷,包括无逆矩阵、无穷大、除0和矩阵维数不满足要求等,并检查软件的容错处理是否全面。
b)通过Matlab软件仿真卡尔曼滤波实现过程,在相同的量测值、固定的噪声值和相同的滤波次数的情况下,对比卡尔曼滤波仿真计算和软件实际运行的结果。测试使用的计算机浮点数精度,必须与运行惯性/卫星组合导航系统软件设备的浮点数精度一致。
此外,还需验证卡尔曼滤波设计的合理性,通过Matlab软件仿真卡尔曼滤波实现过程,采用遗传算法自动生成量测值,监控卡尔曼滤波的均方误差、状态方程和计算过程的异常计算结果,自动化测试卡尔曼滤波设计的缺陷。
通过对卡尔曼滤波特性的分析发现,在设备运行过程中还需注意以下几点:
a)卡尔曼滤波的均方误差反映了滤波正确性,均方误差矩阵应当趋于零或趋于某一稳态值,数学模型的不准确可能导致卡尔曼滤波失效;
b)卡尔曼滤波量测维数、系统维数越大,计算量就会越大,卡尔曼滤波执行周期设置不合理,可能导致无法满足实时性要求;
c)对准完成时间是根据滤波可观性推导出的时间最优值[7],对准完成后导航精度应满足设计要求。
2.3 时间性能
设备运行中测量事件完成时间。时间测量的方法包括秒表计时、示波器测量和使用系统时间计算等,应当根据测量时间量级、软件实现框架和测试环境等因素,选择不同的测量方法。以下给出一个实例,如图2所示。
a)测量任务1完成时间是否为T1ms;
b)多任务实时系统设计要求:任务1(执行周期为T1ms,优先级高),……,任务5(执行周期为1 s,优先级低),任务6(执行周期为10 s,优先级低);
c)组合导航设备已封装,无法开箱引线使用示波器测量;
d)系统时间精度为μs。
此情况下只能选择使用设备本身的系统时间进行时间测量,并将结果通过串口进行打印。而对于多任务实时软件,打印输出计算结果的时机会影响测试结果的正确性。
图2 时间测量方法
由于打印输出任务的优先级低,故应优先选择在任务执行周期长、优先级低的任务中,完成对时间测量结果的打印。
2.4 导航性能
组合导航性能包括位置精度、航向精度、姿态精度和速度精度。在跑车试验中用高精度卫星接收机为测试基准,进行位置和速度精度的测试。间隔T s同时采集组合导航设备、基准设备的经度λ、纬度φ和速度,总计采集N次后,计算试验的径向误差率REP和速度误差均方根RMSV。
在实验室高精度转台上,以精密转台为测试基准,进行航向和姿态精度测试。将组合导航惯导设备安装在精密转台上,完成水平、方位校准后,将转台调水平,方位对北,使转台分别在方位、俯仰和横滚上变化,同时采集组合导航设备、转台的航向角H、俯仰角θ和横滚角ψ,分别采集N次后,计算方位、俯仰和横滚误差的均方值RMSH、RMSθ和 RMSψ。
3 结束语
本文提炼的导航参数计算、卡尔曼滤波、时间性能和导航性能等软件测试需求,基本覆盖了惯性/卫星组合导航系统软件的全部功能,针对各个测试需求的测试全面且切实可用。因此,本文提出的惯性/卫星组合导航系统软件测试方案具有较强的工程实践性,可以在今后的测试工程项目中推广和应用。