1. 引言
当前,随着科技的进步和发展,新的作战样式和作战理念不断地推陈出新,而应用了各种新科技新技术的新装备新产品在其中发挥了重要的支撑作用 [1]。载荷抛载装置作为某型UUV系统的重要组成部分,可实现任务载荷从UUV上自动布放,并调整任务载荷在水中的姿态,是某型UUV系统的关键部件之一,其能否正常工作关系到任务能否顺利进行。由于其组成相对复杂,工作时序要求严格准确,且有关参数需预置。因此,有必要严格测试抛载装置的各项性能参数,研制一种针对某型UUV载荷抛载装置的自动测试设备。
自动测试技术是指采用计算机控制,在标准测控系统或仪器总线(例如GPIB,VXIPXI)基础上自动完成激励、测量、数据处理、显示输出的测试系统。相比传统的手动测试,自动测试对技术人员的依赖程度不高,能客观,准确地进行检测,大大提高了测试的可靠性和效率,缩短了产品的研制周期 [2] [3]。
本文在深入分析载荷抛载装置工作原理的基础上,利用虚拟仪器技术,通过系统资源集成研制了基于虚拟仪器的某型UUV载荷抛载装置自动测试系统。该系统能够快速便捷地对载荷抛载装置的性能和其组部件进行检测,并能模拟抛载装置工作时的水压环境和载荷重量大幅提高了某型UUV载荷系统生产、调试和技术准备的工作效率,具有重要的军事意义和经济价值。
2. 系统功能分析及检测原理
该测试系统主要用于对载荷抛载装置(分为包装状态和未包装状态)进行性能测试,对电池、分离机构等进行单独测试,主要具有以下功能:
1) 模拟水压环境功能:模拟抛载装置工作在不同阶段时的水压环境。
2) 模拟有效载荷功能:模拟抛载装置工作时,任务载荷的重量。
3) 抛载装置包装箱内检测功能:模拟抛载装置工作周期时的工作条件,能通过包装箱接口,对1套包装箱里的4套包装状态下的抛载装置的工作时序和性能进行测试。
4) 抛载装置包装箱外检测功能:模拟抛载装置工作周期时的外部坏境和工作条件,对抛载装置的工作时序和性能进行测试。
5) 传感器自适应校准功能:在不同海拔地区使用测试系统时,能根据当地气压条件对传感器进行自适应校准。
6) 分离机构检测功能:模拟载荷重量和分离机构工作条件,对分离机构的性能进行测试。
7) 电池检测功能:能对抛载装置电池的性能进行检测,并能对电池进行激活。
8) 自检和自校准功能:自动测试系统能对自身硬件资源进行自检和故障定位,并能完成系统的自校准。
根据某型UUV载荷抛载装置的性能特点和使用环境要求,自动测试系统在设计时分为主控系统、深度模拟系统和载荷模拟系统,能同时模拟水压环境和载荷重量以对抛载装置进行全面测试,系统工作原理如图1所示。将需要检测的载荷抛载装置安装至深度模拟系统和载荷模拟系统上,用检测电缆将其和主控系统的检测接口连接后,即可对抛载装置进行检测。更换检测电缆,可分别对包装箱、电池组、分离机构等进行检测。
Figure 1. Structure block diagram of automatic test system
图1. 自动测试系统原理结构框图
3. 自动测试系统软硬件平台设计
3.1. 硬件平台的构建
通过对抛载装置工作原理、功能、信号和操作程序的分析,结合该自动测试系统的主要应用场合(主要用于抛载装置研制阶段的性能检测、出厂前的指标测试和部队内外场的功能测试),搭建了基于PXI总线和虚拟仪器的测试系统硬件平台。系统的总体结构如图2所示。
Figure 2. Overall structure composition of the system
图2. 系统总体结构组成
根据测试需求、环境适应性要求以及国产化要求,测试系统的所有组部件和元器件均选用国内厂家生产的产品:显控单元选用瑞丰科技生产的加固型上架显示器RFG-150BW;PXI总线单元由北京航天测控生产的PXI总线零槽控制器AMC4158,PXI多功能数据采集卡AMC4332B,PXI串口卡AMC5214,PXI通用开关卡AMC4615,以及PXI8槽屏蔽机箱AMC57301组成;电源单元选用朝阳电源的4NIC-ZKH1158 型线性电源。软件单元、接口适配单元、深度模拟单元和载何模拟单元为自研部分。
采用这些硬件集成,使系统不仅能满足车间调试的开放性需要,还适用于外场恶劣试验环境,具有良好的可扩展性。
3.2. 软件总体设计
基于虚拟仪器的测试系统,核心是测试软件。它将PXI系统中每个模块的功能有机结合,在多个模块相互协作和数据传递的过程中起着决定性的作用,并使整个系统的运作有效、稳定。该测试系统选用成熟稳定的Windows 7操作系统,软件开发选用虚拟仪器标准的软件开发平台LabWindows/CVI,它是NI公司推出的虚拟仪器软件开发环境,全面支持C语言,开发具有极其丰富的函数库;它提供了直观的图形显示界面,使开发的应用程序具有良好的人机界面,方便用户操作 [4];同时它也是面向测控领域的专业开发平台,提供强大的仪器连接控制功能 [5]。软件采用模块化和开放化的设计思想,便于维护和扩充。
依据测试需求,软件功能和操作流程要求,软件的基本流程如图3所示。
程序运行后开始系统初始化和自检,包括:AD、DA、IO口、电源、串口、电流传感器以及环境模拟系统的自检和初始化。自检通过后,进行身份识别,可根据所连接的被测产品进入相应的检测子模块开始功能测试,测试完成后保存检测结果。
4. 系统关键技术实现
4.1. 环境模拟系统的设计和实现
当UUV携带任务载荷下潜至预定深度后,载荷抛载装置才开始工作,而抛载装置平时的检测和维护是在陆地上进行的,因此要对抛载装置的功能和性能进行全面检测就需要模拟出抛载装置工作时的水深和其携带的载荷的重量。为了模拟水深,设计了一套深度模拟系统,其主要由压力罐、加压装置、控制电路、电机和减速器等组成,其结构如图4所示。工作原理为控制电路控制加压电机给压力罐加压,通过压力传感器实时采集压力罐中的压力值,压力值反馈给控制电路,控制电路再对加压电机微调来完成压力的控制和保持。检测程序通过串口报文控制深度模拟系统即可实现检测过程中所需要的压力环境。
Figure 4. Structure diagram of depth simulation system
图4. 深度模拟系统结构示意图
该型UUV的任务载荷重量较大,为了模拟任务载荷的重量,设计了一套载荷模拟系统,该系统通过对抛载装置的分离机构施加拉力来模拟任务载荷的重量。其主要由控制电机、拉力传感器、传动机构、固定装置等组成,其结构如图5所示。工作原理为控制电机通过传动机构将拉力施加至分离机构上,通过拉力传感器实时采集拉力值,并反馈给检测程序,检测程序再对控制电机微调来完成拉力的控制和保持。
Figure 5. Schematic diagram of load simulation system structure
图5. 载荷模拟系统结构示意图
两套环境模拟系统的实现,解决了陆地状态下模拟抛载装置工作环境的难题,为抛载装置的顺利检测提供了测试环境。
4.2. 软件通用性设计和实现
为了适应未来不同型号及其改进的测试工作,要求测试系统具有良好的开放性、通用性和可扩展性,因此采用了软件分层架构思想来设计软件。通过分层使各个层的职责更加明确,各层之间通过定义的接口来通讯,上层使用下层提供的服务。软件一共分为4个层次,如图6所示。
表现层即人机交互层,这一层主要是提供人机交互功能,包括界面管理、报表管理等人机交互功能。
领域层也叫业务逻辑层,它是实现具体的测试过程,包括测试流程实现、测试算法实现、数据处理实现。将检测过程分解成各自独立的检测模块,检测模块通过调用下一层的基本函数完成自己的检测过程。最后按照不同的检测要求组合各个检测模块,完成相应的检测功能。
控制和数据访问层根据不同的应用将板卡的一个完整操作封装成基本函数,领域层通过调用这些基本函数完成相应的测试流程。
驱动层是直接和硬件资源进行交互,这一层为硬件资源的使用提供软件接口,通过调用厂家提供的硬件驱动函数来操作硬件资源。通过对多功能采集卡、串口卡、开关卡等硬件进行驱动的二次开发封装,使测试程序与硬件无关,达到系统升级硬件资源而无需更改测试程序的目的。
这种分层结构极大的提高了检测软件的扩展性、可复用性和可移植性。当需要对检测功能进行扩展时,只需要在人机交互层和测试规则层中增加相应功能,而不需要修改所有代码;当需要将检测软件移植到其他平台时,只需要根据硬件厂商提供的驱动来修改板卡应用层,就能很快将软件移植成功。
4.3. 多任务实时处理
由于载荷抛载装置工作周期短,信号的实时性较高,检测时还需严格遵循其工作时序,因此需保证测试系统的实时性和可靠性。测试系统除了完成主界面显示并响应用户鼠标键盘操作等事件外,还要进行大量的数据采集、信号分析,包括模拟信号、数字信号、串口协议信号。为充分利用系统软硬件资源,采用多线程技术来实现系统数据采集、处理和信号传输 [6]。
LabWindows/CVI提供了两种在次线程中运行代码的高级机制,分别是线程池(thread pool)和异步定时器(asynchronous timer)。线程池适用于需要不连续地执行或在循环中执行的任务,而异步定时器适用于在固定时间间隔内执行的任务 [7]。
系统主线程完成人机界面和主控流程操作,次线程完成信号激励、串口通讯、数据采集处理操作。在主线程中使用CmtNewThreadPool(5,&Poolhandle)函数创建一个5线程的线程池并在整个程序结束后使用CmtDiscardThreadPool(Poolhandle)函数释放线程池。
例如在主线程中使用如下代码创建状态监控线程。
if ((CmtScheduleThreadPoolFunction (Poolhandle, MonitorThreadFunction, &ThreadIndex, &ThreadFuncId)) < 0) //创建状态监控线程
{……; MessagePopup(错误, 线程1初始化出错!); sFlg = 0; return 0;}
……//其他操作
if (ThreadFuncId!=0) CmtWaitForThreadPoolFunctionCompletion Poolhandle,ThreadFuncId , OPT_TP_PROCESS_EVENTS_WHILE_WAITING);//等待状态监控线程结束
CmtReleaseThreadPoolFunctionID (Poolhandle,ThreadFuncId ); //释放线程
int CVICALLBACK MonitorThreadFunction,(void *functionData) //状态监控线程处理函数
系统利用定时器、多线程和异步定时器,采用灵活设置定时间隔的方法,实现多任务实时并行处理,最终满足了系统精确时序和自动测试的要求。
5. 结论
载荷抛载装置作为某型UUV系统的重要组成部分,与UUV共同完成任务载荷的布放。在深入分析载荷抛载装置工作原理的基础上,利用虚拟仪器技术,通过系统资源集成,研制了基于LabWindows/CVI的某型UUV载荷抛载装置自动测试系统。该系统能够快速便捷地检测抛载装置及其组部件(包装箱、电池组、分离机构)的性能,并能将故障定位至可更换部件。
该自动测试系统已通过定型试验,并应用于某型UUV的载荷抛载装置研制试验中,应用表明该自动测试系统具有工作可靠、检测准确、使用方便、综合性强等优点,为某型UUV载荷抛载装置的研制、使用维护提供了快捷方便、精确有效的检测手段,具有较强的应用价值。