LabWindows/CVI多线程技术在油门测试软件中的应用
2015-01-27倪笑宇戴美魁霍珍珍马立勇
倪笑宇 ,徐 军,戴美魁,霍珍珍,马立勇
(1.河北建筑工程学院 机械工程学院,张家口075000;2.北京理工大学 宇航学院,北京100081)
在现代飞机中普遍采用自动油门控制系统来自动控制发动机的推力。自动油门控制系统是个由计算机控制的机电系统,其核心部件是自动油门计算机,该计算机与飞行管理计算机系统和自动飞行控制系统 FCC(flight control computer)交联,并从各处的传感器或其他系统接收相关信号,经过计算,在发动机的参数设计范围内,从起飞到降落全程控制每台发动机的油门杆位置,以保持某一特定的发动机推力值,或保持飞机的某一目标速度,从而减轻飞行员的劳动强度,使飞机实现姿态、推力控制的自动化。
为了检测自动油门控制系统的各项性能指标,需要设计相应的测试软件。测试软件模拟FCC的部分功能,它与自动油门控制系统的交联通过arinc429总线完成,对数据的实时性要求较高。测试软件包括电源控制、力矩加载、数据接收、数据发送、界面数据显示和分析等内容。对于复杂的测试软件,需要保证数据采集的准确性、实时性,数据处理的高效性,人机交互的良好性。基于LabWindows/CVI多线程机制开发的测试软件[1],可以很好地满足自动油门的测试要求。
1 系统组成
自动油门测试系统硬件架构如图1所示。系统工作时,测试软件通过429总线卡向油门机构里面的控制器发送速度指令和离合器指令,同时接收对应的反馈信息,进行分析处理。数据采集卡实时采集油门机构输出轴加载力矩反馈信号以及控制器功率电流信号。油门角度位置信号由角位移传感器RVDT(rotatory variable differential transformer)采集输出,测试软件通过AD698位置采集卡实时采集,获得油门杆的实际工作位置。
图1 油门测试系统硬件组成Fig.1 Hardware composition of accelerator test system
2 多线程在自动油门性能测试软件中的应用
2.1 多线程技术
在多线程程序中,可以同时并行存在多个线程,它们由1个主线程和多个次线程组成。主线程和次线程的主要区别在于它们开始执行的位置。软件系统从main函数开始执行主线程,而由开发人员来指定次线程开始执行的位置。
LabWindows/CVI提供了2种执行次线程的方法,分别是异步定时器和线程池[2]。2种方法目前已经非常成熟,具体介绍可参见参考文献[2]。
2.2 线程分配
多线程软件设计思路是使用主线程创建、显示并运行操作界面;在次线程中,运行其它对实时性要求较高的任务[3],比如机构数据采集和机构数据分析显示。
根据油门测试的功能需求,把软件任务分为用户界面操作、机构数据采集和机构数据分析显示3大块。测试软件将以上任务分配在3个线程中,其中主线程是用户界面操作,然后将机构数据采集和机构数据分析显示分别运行在2个不同的次线程中,测试系统软件结构如图2所示。
图2 油门测试系统软件结构Fig.2 Software structure of accelerator test system
2.3 用户界面操作线程
用户界面是程序设计的起点,作为主线程可以及时处理各种交互信息[4]。自动油门性能测试软件中,用户界面的创建显示、速度和位置信号的发送、主备通道的选择、PID参数的发送、离合器控制信号的发送等交互操作都在主线程中实现。
2.4 机构数据采集线程
该次线程在启动后,负责油门机构数据采集任务,包括机构输出轴转矩信号采集、机构输出轴转速信号采集、机构输出轴角度信号采集等,这些信号都是系统的关键信号,需要保证它们的实时性与准确性。该线程的程序流程如图3所示。
图3 数据采集线程流程图Fig.3 Flow chart of data acquisition thread
2.5 机构数据分析与显示线程
采集到的数据包括油门输出轴速度、角度和转矩等信息,其中速度和角度是最为重要的2个性能指标,它直接关系到油门的开度,进而决定发动机的推力与飞机的速度变化是否快速、稳定和准确。因此要对接收到的机构输出轴速度与角度信号进行分析,包括数据格式化、单位换算、曲线拟合等,将分析好的数据最终进行图形显示,这样便于后续监测,分析它们的静态与动态响应性能。如果性能不达标,可以根据需求不断地对油门控制器参数进行修改并重新验证,更加直观有效。
因此需要把上面的部分单独放在一个线程中进行。测试中,当控制指令发出后就触发此线程进行数据的分析与实时显示。该线程的程序流程如图4所示。
图4 数据分析与显示线程流程图Fig.4 Flow chart of data analysis and display thread
2.6 测试效果
图5 测试软件主界面Fig.5 Main interface of test software
油门系统有A、B两个通道,它们互为热备份。正常情况只有一个通道工作控制油门开度,当出现故障时,切换到另一个通道。如图5所示,采用多线程技术的测试软件主界面。此时模拟A通道工作,油门机构进行数据采集与显示。测试软件如果使用传统的单线程技术,把界面操作、油门机构数据采集和数据分析显示3个任务都放在一个线程中,那么在开启数据采集的同时,主界面将无法正常响应用户其它操作,出现界面卡死现象。此时如果想停止发送数据或是紧急停止输出轴转动,由于程序无法响应,则会出现不可预测的后果。此外,在进行油门速度数据显示的同时拖动界面,则会出现数据接收不连贯,显示曲线卡顿等现象,实时性变差,严重影响了油门系统的分析与监控,控制效果大打折扣。
这里把数据采集、数据分析显示和其它界面操作分配到3个独立线程中。这样3个线程同时运行,可以在不断刷新主界面,响应用户操作(如发送控制数据、AB通道选择、紧急停止系统等)的同时,也在后台同步进行数据采集和分析、数据曲线的实时显示,相互没有任何影响,既提高了执行效率,保证了数据采集监控的实时性,又增加了油门测试的安全性和可靠性,为提升自动油门控制系统性能提供了良好的测试平台。
3 结语
自动油门控制系统性能测试软件经过多次实际测试,能够准确、实时地进行油门数据的采集和处理,成功模拟了大部分FCC的功能,达到了预期测试效果。基于CVI的多线程技术,它可以实现油门机构测试任务的并行处理,保证数据采集的实时性、数据分析显示的高效性,并且不影响界面操作,大大提高了测试系统的效率和可靠性,现已成功应用到民机油门机构的性能测试中。
[1]陶小亮,牛振.LabWindows/CVI多线程技术在舵机测试软件中的应用[J].中国测试,2011,37(1):81-83.
[2]杨东升,王高峰.多线程技术在虚拟仪器开发软件LabWindows/CVI中的实现[J].电测与仪表,2005,42(3):39-41,54.
[3]成凤敏,苏小光.多线程技术在虚拟仪器软件开发中的应用[J].中国测试技术,2008,34(2):48-50.
[4]姜守达,吴昌盛.LabWindows/CVI多线程机制在数据采集中的应用[J].计算机应用,2004,23(8):56-57.