一种通用的POS自动测试系统设计与实现
摘 要: 位置和姿态测量系统(POS)是航空遥感系统的重要组成部分,可以为各类航空对地观测载荷提供高精度位置、速度和姿态基准。为保证精度,POS使用之前必须进行精确的误差标定实验,同时又要保证实验的效率与可靠性。自动测试技术可规范测试流程,减少人为因素干扰,但目前的自动测试系统通常只能实现某些环节的自动测试,自动化程度不高且通用性不好。针对上述问题,设计了一种通用性好,自动化程度高的POS自动测试系统,该系统以基于FPGA的最小系统电路为核心,实现转台控制、测试计算机通信、待测设备数据采集等功能,然后基于VC开发了上位机软件,实现测试方案加载、数据显示、数据处理、测试报告生成等功能。实验表明,该系统功能可靠,显著提高了测试效率。
关键词: 位置和姿态测量系统; 自动测试; 通用性; FPGA
中图分类号: TN98?34; V243.5 文献标识码: A 文章编号: 1004?373X(2016)02?0095?06
Design and implementation of a general automatic test system for POS
HONG Zhenchun, LIU Zhanchao, GU Bin
(Key Laboratory of Inertial Technology, Beihang University, Beijing 100191, China)
Abstract: The position and orientation system (POS) is an important assembly of the aerial remote sensing system, which can provide high?precision position, velocity and attitude reference for various earth observation load of the aviation. To ensure the accuracy of POS and the efficiency and reliability of the experiments, it is necessary to perform precise error calibration experiment before the POS is put into use. The automatic test technology can standardize the testing process and reduce the human interference factors, but the current automatic test system can only realize the automatic testing for certain links, and its automaticity is low and the generality is poor. To solve the above problems, a automatic test system with perfect generality and high automaticity for POS was designed, in which the minimum system circuit based on FPGA is taken as the core to implement the functions of turntable control, computer communication testing and DUT data acquisition. The upper computer software was developed based on VC to realize the functions of test scheme loading, data display and processing, and test report generation. The experimental results show that the system has reliable function, and can improve the testing efficiency availably.
Keywords: position and attitude measurement system; automatic testing; generality; FPGA
0 引 言
位置和姿态测量系统(Position and Orientation System,POS)可为激光雷达、光学相机等航空对地观测载荷提供高精度位置、速度和姿态基准,是高分辨率航空遥感系统运动成像过程中实现高精度运动误差补偿的关键设备[1]。
POS主要由惯性测量单元(Inertial Measurement Unit,IMU)、全球定位系统(Global Position System,GPS)、POS计算机系统(POS Computer System,PCS)以及后处理软件组成[2]。其中IMU可实时连续测量载体的角速度和加速度信息,通过解算可得载体的位置、速度和姿态等全部运动参数,是POS的主要部件。IMU主要由惯性传感器(陀螺仪和加速度计)、机械结构及相关电路组成。而惯性传感器的测量精度以及IMU在机械结构设计、整机装配过程中存在的确定性误差,很大程度上决定了POS的精度[3?5]。因此,为实现POS的高精度测量,必须对惯性器件、IMU进行长时间的性能测试和精确的误差标定,获取误差模型系数,以实现POS导航计算过程中的高精度误差补偿和运动信息测量。IMU标定测试实验包括多位置静态标定和多速率动态标定。 通常借助精密转台系统提供的定值输入,获取IMU对应的输出量,通过解析方法求取误差模型中的系数[6?9]。
传统的IMU标定测试实验需要多名工作人员配合,人工操作转台工控机以控制转台运动,数据采集与存储也需要专人操作,测试过程繁琐,费时费力,效率较低。 随着自动测试技术在惯导系统测试中的不断应用,各种专用惯导测试系统也相继出现,实现转台控制、数据采集与处理,测试结果输出等功能,一定程度上提高了测试的效率[10?11]。文献[10]设计了一种基于数据库的IMU自动化标定系统,该系统基于数据库技术,实现数据自动采集与存储,标定结果报表生成等功能,一定程度上提高了测试效率,但是该系统只是针对一种标定方法设计,且没有实现转台控制,自动化水平不高,通用性不佳。文献[11]设计了挠性捷联惯导自动化标定与测试系统,该设计基于现有的IMU自动化标定系统和独立的转台系统,实现将SINS作为一个整体的自动标定和测试系统。但该系统将SINS中的导航计算机引入标定系统本身就增加了测试系统的硬件组成,且文中没有系统展示和实际实验结果,针对不同的标定方案,还需要对转台控制软件进行改造,系统通用性也不好。
POS的高精度测量,要求通过标定实验对系统进行细致的测试,必然会耗费大量的时间;另一方面随着POS的产品化,要求成批量高效率的进行误差的标定。因此,设计一种通用性好、自动化水平高的POS自动测试系统以进一步提高测试效率,减少各类因素干扰,保证POS产品的精度具有重要意义。
本文针对上述问题,在已有实验方案的基础上,设计了一种通用的POS自动测试系统,实现数据自动采集与处理,转台自动控制和测试报告自动生成等功能。本系统设计专用的测试指令,针对不同的测试方案,编写对应的测试指令文件,测试软件加载测试文件即可按照指令顺序进行自动测试,测试过程中无需人员参与。最后通过实际的测试证明了本文设计的有效性。
1 总体方案
1.1 系统构成
本文设计的自动测试系统分为两个部分:硬件系统和测试软件。硬件系统包括测试计算机、测试盒、转台系统以及待测设备。测试盒主要由FPGA最小系统电路,二次电源电路和机械壳体组成。FPGA最小系统电路实现测试计算机、转台系统以及待测设备之间的信息交互;二次电源电路为最小系统电路和待测设备供电。测试软件实现串口通信、数据显示、数据处理、测试指令生成、测试流程控制以及转台控制指令发送等功能。自动测试系统总体方案如图1所示。
图1 自动测试系统总体方案图
1.2 系统工作流程
系统工作过程如下:首先,完成测试系统搭建并确认电气连接正确,然后运行测试软件,借助软件的指令生成窗口,测试人员需根据测试方案编写测试指令文件(同一方案只需编写一次),测试软件加载指令文件完成后,自动顺序读取指令并按指令要求进行测试。如测试指令要求转台进行位置运动,转台控制指令由测试计算机发出,通过最小系统电路转发至转台控制计算机,实现对转台的控制;最小系统电路采集待测设备输出数据及转台反馈数据并实时打包发送至测试计算机,执行完所有测试指令之后,测试软件调用数据处理子程序,计算目标参数,并生成测试报告,记录测试过程和测试结果。测试系统一般工作流程图如图2所示。
图2 自动测试系统工作流程
2 硬件系统设计
测试系统硬件主要包括测试计算机,测试盒,转台系统以及待测设备,测试盒中封装了FPGA最小系统电路和二次电源电路。其中FPGA最小系统电路是系统的核心硬件,主要完成:
(1) 待测设备输出数据和转台反馈数据的采集与缓存,并将数据打包发送到测试计算机;
(2) 接收测试计算机发出的转台控制指令,并将控制指令转发至转台控制计算机,进而完成对转台的控制。
如图3所示,FPGA最小系统电路以RS 422接口接收待测设备输出的原始数据, 以RS 232接口与转台系统和测试计算机进行通信。 FPGA选用Xilinx公司生产的XC3S400,配置的FLASH芯片选用XCF02S,并选用频率25 MHz的晶振作为系统的时钟源。FPGA片上软件使用Xilinx ISE软件开发,利用VHDL语言进行逻辑编程;利用LD1117系列的电压转换模块将5 V电压转换为3.3 V,2.5 V和1.2 V的稳定电压,分别为FPGA提供3.3 V的工作电压,2.5 V的参考电压和1.2 V的内核电压;FPGA的每个电压处都配置相应的贴片电容滤除噪声,以保证FPGA芯片可靠工作,实现测试系统数据交互。
本系统待测设备实际工作电压是28 V,FPGA最小系统电路工作电压5 V,二次电源电路采用成熟的DC?DC模块将输入的28 V电压转换一路5 V电压供FPGA最小系统电路使用。
图3 FPGA最小系统电路
3 测试软件设计
测试系统上位机测试软件基于Visual C++ 6.0软件开发平台编写,如图4所示,测试软件主要包含:串口通信模块,数据显示模块,指令设计模块,转台控制模块以及计算与结果输出模块[12?15]。
图4 测试软件功能模块
串口通信模块负责接收FPGA最小系统电路转发的数据,同时发送转台控制命令;数据显示模块实时显示待测设备输出数据;指令设计模块以窗口形式供测试人员编写测试指令文件,转台控制模块则主要针对指令内容完成转台控制命令生成。计算与结果输出模块实现对测试数据的综合计算,并将计算结果写入指定文件。
3.1 测试流程设计
要实现测试过程的自动化,就要对测试流程进行准确的设计,在基于转台的测试方案中,一般要求转台运动到特定位置或者让转台匀速转动,然后进行数据采集。因此,实现自动测试的前提是正确获取转台的位置信息和速率信息,准确控制软件中设计的虚拟数据采集开关的通断,确保采集到的数据是测试指令中需要的数据,如系统采集完当前位置的数据后转台需转动到下一测试位置,转动过程中的数据为无效数据,何时打开数据采集开关是关键。在转台开始运动之后,用CWnd::Settimer()函数设置定时器,在OnTimer()函数中定时获取转台位置、速率信息,并进行条件判断。对于位置运动指令,若转台位置到达目标位置且速率为零,则判定转台已经到达目标位置并且已经静止;对于速率运动指令,则比较目标速率与反馈速率值,若误差在设定范围内则判定转台以目标速率稳定运动。此时,可打开数据采集开关,以上方法可确保测试过程中采集到的数据皆为有效数据。测试软件自动测试流程中位置指令执行流程如图5所示。
图5 位置指令执行流程
线程提供了多任务处理的能力,是多任务测控系统中被普遍采用的方法[16]。当软件执行到转台运动或是数据采集阶段时,程序必须等待且同时需要进行高波特率的串口通信和数据的显示与存储等任务。因此,设计了多线程工作模式,测试软件主线程完成串口通信,而为数据显示与存储模块、文件加载模块、流程控制模块等创建新的线程,新线程由AfxBeginThread() 函数负责创建;SuspendThread()函数可以将线程挂起;ResumeThread()函数可以恢复线程运行;最后用PostThreadMessage()将线程关闭。多线程技术可确保软件运行流畅,工作可靠。
3.2 转台自动控制
要完成自动测试,就必须实现对转台的精确控制。转台的运动主要是位置运动和速率运动,一般的测试方案也是基于以上两种运动展开的。位置测试需要转台进行多位置的转动,并在特定的位置保持静止;速率测试需要转台以不同的角速率绕转动轴转动,且要保持角速率稳定。
本系统使用WST?2 型带高低温箱的位置速率转台,借助转台控制计算机的远程控制接口,通过既定控制协议实现对转台的精确控制。协议通信帧总共10个字节,起始字节为命令字,中间8个字节数据项,最后一个字节是前9个字节的校验和,其远控协议如表1所示(参考转台使用说明书)。
表1 转台远控通信协议
转台远程控制的一般流程是:建立远控→设置负载→闭合→归零→位置运动(速率运动)→停止→释放→结束远控。位置运动必须是在转台完成归零之后且没有执行速率运动之前,而速率运动则只需要转台闭合即可。这就要求测试系统在测试过程中能够识别转台运动类型和运动状态。测试软件通过设置标志位和预读指令的方式实现该功能。如果当前执行指令是位置指令而上一指令是速率指令,则需对转台重新归零,判断归零是否完成的程序流程如图6所示。
图6 归零流程图
3.3 测试指令设计
惯导系统的测试实验往往是重复性的,如果每次测试之前都要进行测试参数设置,则会浪费大量测试时间。为了简化测试操作,提高测试系统的通用性,本系统设计了特定格式的测试指令,若干测试指令构成测试文件,不同测试方案只要编写一次测试指令文件即可保存重复使用,这样不仅简化了操作,也增强了系统通用性和可扩展性。如位置测试指令:#X1P 120 10 5 75 #,开头和结尾的“#”保证一条指令的完整性,中间用空格隔开,表示IMU的x轴向上,转台目标位置相对零位120°,转台运行速度10 (°)/s,加速度5 (°)/s2,该位置数据采集时间为75 s。速率测试指令:#X0V-10 5 75 #,表示:IMU的x轴向下,转台运行速度-10 (°)/s,加速度5 (°)/s2,数据采集时间75 s。上位机软件提供指令文件生成的功能,测试人员可根据测试方案逐条输入测试指令。
测试指令读/写使用CFile的派生类CStdioFile, CStdioFile提供了对文件进行流式的操作功能。其中函数CStdioFile::WriteString()写入1个字符串,函数CStdioFile::ReadString(&rString )每次从文件中读取1行,满足指令读/写的实际需求,另外,使用CStringArray创建CString数组,存储指令文件中的所有指令。并使用CStringArray::GetAt(nIndex)依次读取测试指令。
4 实验验证
为了验证本文设计的自动测试系统的实用性和可靠性,将测试系统应用于IMU标定实验。采用传统的六位置(设备无定向)测试标定方法[17]对光纤陀螺IMU进行自动标定实验。标定现场如图7所示。
光纤陀螺IMU固定安装于六面体工装之中,工装平稳放置在转台上,在常温下对光纤陀螺IMU进行标定实验。实验过程如下:
(1) 完成硬件系统电气连接。
(2) 运行上位机测试软件。
(3) 将六位置测试方案设计成指令文件形式,设计过程如图8所示。
图7 光纤陀螺IMU标定
图8 指令编写窗口
(4) 生成测试指令文件如图9所示。
图9 测试指令编写结果
(5) 加载指令文件,开始测试,系统自动完成转台控制与数据采集。
(6) 根据测试方法对标定试验中采集到的数据进行处理,计算得到相应的标定参数。
(7) 输出测试结果文件,测试结束。
测试过程中测试软件显示主界面如图10所示。
图10 测试软件主界面
图10中字母分别代表软件不同的功能模块:A表示通信串口设置模块,测试开始之前首先选择并打开通信端口;B表示IMU输出数据实时显示模块,显示频率1 Hz,同时显示三只陀螺,三只加速度计和IMU内部多通道温度信息;C表示转台手动操作模块(用于手动控制转台,自动测试过程不使用);D表示转台实时位置、速率信息显示模块;E表示自动测试流程控制和测试进度显示模块。
完成所有位置测试,速率测试之后,调用软件的数据计算与结果输出模块。六位置测试标定数学模型中各系数计算方法参照文献[17]编写;分别计算出3只陀螺零偏,标度因数,安装误差系数;3只加速度计常值偏置,标度因数和安装误差系数。最后输出测试报告如图11所示。
图11 测试报告
IMU标定实验是为了获得IMU各误差项系数,并在POS实际工作时进行补偿,从而使测角测速的精度更高。陀螺仪敏感地球自转角速度,加速度计敏感重力加速度,因此可以利用当地重力加速度和地速对标定的结果进行综合鉴定,同时也是对自动测试系统可用性和测试结果可靠性的验证。对实验过程中采集到的“六位置24点”静态数据进行计算反推出当地重力加速度和地速,并将计算结果写入测试报告。自检结果表明,本系统能在保证测试结果正确的前提下实现标定自动化,简化了标定步骤,提高了标定结果的可靠性。针对同样的六位置测试标定方案,采用本文设计的自动测试系统进行标定,一次完整的标定实验平均耗时由原先的90 min减少为40 min,显著提高了IMU测试标定效率。
5 结 语
本文设计并实现了一种通用的POS自动测试系统,详细阐述了系统测试流程设计和实现自动测试的关键技术。用读指令的形式实现自动测试,提高了测试系统的通用性和可扩展性。利用本文设计的自动测试系统对光纤陀螺IMU进行标定实验。实验结果表明,本系统能够自动地完成IMU误差标定的任务,显著提高了IMU的测试效率,满足POS产品化需求,具有较高的工程应用价值。
参考文献
[1] 安培浚,高峰,曲建升.对地观测系统未来发展趋势及其技术需求[J].遥感技术与应用,2007,22(6):28?29.
[2] 房建成,杨胜,刘百奇.高性能POS及其在移动测图系统中的应用[J].红外与激光工程,2008,36(z2):478?482.
[3] 刘百奇,房建成.一种改进的IMU 无定向动静混合高精度标定方法[J].仪器仪表学报,2008,29(6):1250?1254.
[4] 杨国梁,王玮,徐烨烽,等.旋转调制式激光捷联惯导安装误差分析与标定[J].仪器仪表学报,2011,32(2):302?308.
[5] 张红良,武元新,查亚兵,等.高精度惯测组合标定误差分析[J].国防科技大学学报,2010,32(1):142?146.
[6] 吴赛成,秦石乔,王省书,等.激光陀螺惯性测量单元系统级标定方法[J].中国惯性技术学报,2011,19(2):185?189.
[7] 党建军,罗建军,万彦辉.基于单轴速率转台的捷联惯测组合标定方法[J].航空学报,2010,31(4):806?811.
[8] 范胜林,孙永荣,袁信.捷联系统陀螺静态漂移参数标定[J].中国惯性技术学报,2000,8(1):42?46.
[9] MORROW R B, HECKMAN D W. High precision IFOG insertion into the strategic submarine navigation system [C]// Proceedings of 1998 IEEE Symposium on Position Location and Navigation. Palm Springs: IEEE, 1998: 332?338.
[10] 邢超,张嵘,周斌,等.基于数据库的IMU自动化标定系统设计[J].测控技术,2014,33(6):154?156.
[11] 刘育浩,黄新生.挠性捷联惯导自动化标定与测试系统[J].中国惯性技术学报,2009,16(4):396?399.
[12] 赵忠,范毅,赵玉.光纤陀螺自动化测试软件的设计[J].压电与声光,2012,34(6):835?838.
[13] 赵亚飞,宋凝芳,杜士森,等.基于Visual C++的光纤陀螺多参数自动化测试系统[J].压电与声光,2013,35(6):824?828.
[14] 曹松杰,孟晓风,梁帆.基于PXI总线的某自动测试系统设计[J].电子测量与仪器学报,2008,22(z2):149?152.
[15] 梁旭,李行善,高占宝.基于测试引擎的自动测试系统软件设计[J].电子测量与仪器学报,2006,20(5):11?16.
[16] 魏晓虹,张春熹,朱奎宝.光纤陀螺捷联系统标定测试软件的设计与开发[J].中国惯性技术学报,2004,12(6):18?22.
[17] 陈北鸥,孙文胜,张桂宏,等.捷联组合(设备无定向)六位置测试标定[J].导弹与航天运载技术,2001(3):23?27.