基于ExternalHook的航空发动机试车台在线调参系统

2021-09-24 00:40:44王宇阳周凤华
燃气涡轮试验与研究 2021年3期
关键词:燃烧室线程按钮

王宇阳,丁 涛,周凤华,张 宁

(中国航发上海商用航空发动机制造有限责任公司,上海 201306)

1 引言

当前国内航空发动机试验具有时间紧、型号多、任务大、可靠性要求高等特点,常常造成试验设备和人力资源紧张。而为匹配每次试验科目的参数要求,试验常伴随着对发动机电子控制系统(EEC)、测试接口设备(TIE)的调整——目前的试验状态是在发动机停车后进行,费时费力。如果能够在试验进行过程中在线调整发动机参数,将极大地减少试验的时间成本[1-3]。然而,试车台数采系统的主要功能是实现传感器信号的采集和显示,其本身设计并不具有复杂的控制逻辑,不能满足在线调整发动机参数需要的快速、可靠、复杂性的要求[4-6]。

随着软件技术的发展,大部分的应用系统供应商会提供软件开发工具包(SDK),软件开发人员可以利用SDK辅助开发外围第三方应用程序[7]。某科研试车台数采系统的SDK中提供了ExteralHook接口,该接口包含一套封装于动态链接库中的函数,开发者可以利用该接口访问数采系统的当前值表(cur⁃rentvaluetable,CVT)。为此,本文介绍一种基于该ExteralHook 接口的试车台在线调参系统的设计。该系统将复杂的逻辑控制写入调参软件,把经过软件处理的数据发送到试车台数采系统,再通过数采系统的ARINC429 和MOXA 板卡,与EEC、TIE 建立通信连接,从而实现在线调参功能。

2 在线调参系统需求分析

2.1 试车台与发动机通信需求

由于EEC 和TIE 的通道资源紧张,为尽可能减小其通信负担,需要减少用于在线调参功能的通道数量。试验时调参参数可能有几十个,但一次只需调整一个,因此在线调参系统和发动机使用ID值和调参值两个通道。在发动机中预先写入一个ID 值与调参值的映射关系表,调参操作时仅需试车台发送ID值和调参值,随后与EEC和TIE中的映射表对比,即能识别在线调参参数。

同时,根据ARINC429通信协议,数据包的最大值决定了协议中maxparameter 属性的取值,由于调参值参数范围不同,且只有一个发送调参值的通道,这就导致需要使用maxparameter为定值的通道去发送maxparameter数值不同的调参值。为解决这个问题,ID值和调参值通道使用BNR编码,规定14位到29位是有效数据位,故协议能发送的最大浮点数为215=32 768,将ARINC429 板卡调参值通道的maxpa⁃rameter属性设定为32 768。系统发送调参值前,在线调参软件附加一个缩放比例Ratio,Ratio为32 768与maxparameter的比值。如发送调参值为100,那么系统实际发送值为100×32 768÷128=25 600。发动机接收数据后,根据上述方法进行反算,即可得到有效参数值。

2.2 在线调参软件需求

为使在线调参系统软件具有较强的实时性和良好的人机交互界面,同时结合某型发动机研制项目的特殊需求,对在线调参软件提出以下技术要求:

(1) 软件能自动测试Socket接口连接情况;

(2) 软件使用多线程技术;

(3) 软件界面分为在线调参主界面和燃烧室专业参数调节界面;

(4) 软件界面具有快速安全可靠的操作逻辑;

(5) 软件界面显示的发动机反馈值可靠、准确;

(6) 对于某些调参参数,需具有特殊的逻辑功能(如参数微调,设置调节台阶,参数锁定等);

(7) 软件需比对发送值与反馈值,且考虑通信延迟性的影响;

(8) 燃烧室专业参数调节时能实现线性插值计算等性能计算功能。

3 在线调参系统总体架构设计

目前流行的一种异步通信方式为套接字(Sock⁃et),两个网络应用程序进行通信,各自通信连接其中的一个端点。通信时,其中的一个网络应用程序将要传输的一段信息写入其所在主机的Socket中。该Socket通过网络接口卡的传输介质将这段信息发送到另一个主机的Socket 中,使这段信息能传送到其他应用程序中[8]。试车台在线调参系统中,一个Socket端口为数采系统主机,负责处理ARINC429总线(EEC)和RS422总线(TIE)信号;另一个Socket端口为在线调参计算机。数采系统主机从在线调参计算机接收数据,分别通过ARINC429 总线和RS422 总线将数据包发送至EEC 和TIE,同时也接收它们的反馈信号并将其传回在线调参计算机。具体结构如图1所示。

图1 在线调参系统总体架构Fig.1 Adjusting-parameter online system structure

4 在线调参软件分层结构

基于在线调参软件需求分析,软件采用分层设计[9]。软件分为人机交互层和系统交互层两层,其结构如图2所示。人机交互层使用QT Designer进行开发,具有操作灵活、方便、准确、稳定、数据显示可靠的人机交互界面,包括试验时对发动机的调参控制、重要参数显示。系统交互层负责调参软件与数采系统实时通信,处理人机交互层操作事件,进行性能计算等工作。

图2 在线调参软件分层结构Fig.2 Adjusting-parameter online system software hierarchical structure

5 系统交互层的实现

5.1 C++API实现软件与数采系统主机的交互

ExternalHook 接口包含了一套动态链接库,实现方法封装在EPHL.dll中。在动态链接库EPHL.dll中,封装了一系列的结构体和函数,定义在头文件EPHL.h中。主要使用的结构体为:

(1) eEPHL_RETURN结构体,用于储存数采系统返回的特殊状态信息,也是很多API 函数的返回类型。

eEPHL_RETURN 主要用于软件获取在线调参计算机端口与数采系统的Socket 连接信息,如果返回EPHL_OK,则连接正常;反之,则根据返回类型提示错误信息。

(2) eEPHL_CONN_TYPE 结构体,用于储存数采系统主机端口与软件端口的连接类型。

结构体储存通信数据,而API 函数用于软件对于数采系统CVT 的访问。由于通道数据都是常用类型,即C++内建类型,如浮点型、布尔型、整型等,所以不需要设计额外的结构体或类来储存数据。

主要使用的API函数原型如下:

(1) eEPHL_RETURN EPHL_write_channel(char*name,float*value)

写入数采系统通道。

(2) eEPHL_RETURN EPHL_read_channel(char*name,float*value)

读取数采系统通道。

(3) eEPHL_RETURN EPHL_close(void)

关闭数采系统Socket端口。

(4) eEPHL_RETURN EPHL_init(eEPHL_CONN_TYPE conn_type,char*serv_key);

打开数采系统Socket端口。

5.2 线程与线程间通信

应用程序的本质是消息循环,每次循环应用程序和操作系统都有消息交换[10]。在线调参软件打开Socket 端口后,需要持续不间断地和数采系统交换消息,没有入口处理人机交互层传递下来的事件消息。因此设计了双线程机制:界面线程和后台通信线程。界面线程处理调参主界面的操作事件,燃烧室调节界面的操作事件和插值运算;后台通信线程处理调参软件与数采系统以及软件界面之间的通信。线程间的通信结构如图3所示。

图3 线程间通信Fig.3 Inter-thread communication

界面线程通信包括:主界面接收来自后台通信线程的数采系统数据,发送和接收燃烧室调参界面的数据;燃烧室调参界面接收来自主界面的数据。后台通信线程包括:访问数采系统CVT,传递数采系统数据给主界面线程,接收主界面线程的操作事件。

线程间通信通过使用信号与槽机制,后台通信线程写入计时器,当开启该线程以后,触发计时器,以0.1 s一次的频率访问数采系统CVT,在每个循环结束时触发数据发送信号,发送到界面线程的主界面槽中来完成数据传递;主界面写入计时器,循环刷新显示控件,在每个循环结束时触发数据发送信号,将数据发送到燃烧室在线调节界面相应槽中,更新该界面的参数。

软件中主要的信号与槽的连接函数如下:

(1) connect(this,SIGNAL(RunBackProcess()),backprocess,SLOT(m_SlotStartInit()))

连接主界面后台线程触发信号和后台通信线程槽函数。

(2) connect(backprocess,&BackProcess::m_Data⁃Transfer,this,&MainWindow::m_Update)

连接后台通信线程传输信号和主界面刷新槽函数。

(3) connect(this,&MainWindow::m_toFuelDistri⁃bution,m_FuelDistribution,&Dialog::m_Update);

连接主界面与燃烧室调节界面传输信号与调节界面刷新槽函数。

5.3 主要模块设计

5.3.1 软件初始化通信自检工作流程

软件初始化流程如图4 所示。打开软件时,程序调用主界面构造函数,构造函数调用软件初始化通信自检函数,根据自检情况判断软件当前与数采系统的通信状态。当且仅当API 函数返回EPHL_OK 时才会通过自检,反之则显示未通过自检。自检完成后,显示在线调参软件主界面。

图4 软件初始化流程Fig.4 Software initialization flow chart

5.3.2 软件与数采系统通信工作流程

软件与数采系统通信流程如图5所示。用户在点击左上角主界面的“connect”开关后,软件开启后台线程。后台线程每个循环从数采系统CVT 中提取和写入数据,循环计时为0.1 s。每个循环结束时,后台线程和主界面线程进行一次通信,此时主界面接收和发送与数采系统的通信数据。

图5 软件与数采系统通信流程Fig.5 Communication flow chart between software and acquisition system

5.3.3 调参流程

程序初始化时,设置调参ID值缺省值为255,调参值缺省值为0。255为EEC/TIE接收的无效参数,发动机在接收到该参数时不会触发任何动作。调参工作流程如图6 所示。调参操作时,首先打开调参开关,在需求调参的通道输入调参值,软件会自动计算当前调参值对应的调参ID 值。然后点击“注入”按钮,软件进行如下流程:如果调参开关此时未打开,则提示用户打开调参开关,并且不改变当前调参ID 值和调参值;如果调参开关打开,但输入调参值超过该调参值量程范围,则提示用户确认参数值是否正确,并且不改变当前调参ID 值和调参值;如果调参开关打开,且输入调参值满足调参量程范围,则软件计算当前通道调参ID 值,再根据ARINC429 协议计算当前调参值浮点数到整数的转换数值,并按需计算调参值为负时的补码,把计算结果发送到后台线程的调参ID和调参值变量,后台线程再将调参ID和调参值变量发送到发动机,随后主界面线程停滞2 s等待接收EEC/TIE反馈ID值和调参值,最后将反馈ID值和调参值反算后与系统发送的ID值和调参值进行比对。如果比对结果一致,弹出提示窗口,点击弹窗的“OK”按钮后,软件自动关闭调参开关,完成整个调参流程;如果比对结果不一致,弹出提示窗口,点击“OK”按钮后,调参ID值和调参值变更为缺省值,并且不关闭调参开关,等待下一轮输入。

图6 调参工作流程Fig.6 Adjusting-parameter working flow chart

5.3.4 增减量调节按钮流程

增减量调节按钮分别用于调节可调静止叶片角度锁定值和主燃级M%燃油分配比例。增减量调节按钮流程见图7。除增量台阶设置外,主燃级M%燃油分配比例调参还具有调节最大值设置功能。调节时,程序读取当前台阶设置和调节最大值,如果符合调节条件,则更改调节值并填入参数值调节框;如果不符合条件,则弹出警告窗且维持原调节值不变。

图7 增减量调节按钮流程Fig.7 Increase/decrease adjusting button flow chart

6 燃烧室参数调节应用实例

燃烧室相关的性能参数调节为在线调参较为重要的调节流程,通过燃烧室的参数调节能完成主燃级打开等关键单项试验科目。

燃烧室在线调节界面数据显示主要分为三部分:目标P2%计算值显示,重要参数显示和开关量显示。目标P2%显示的输入为目标M%值,用户输入M%,点击“Apply”按钮,从主界面线程提取当前EEC 的燃油流量,使用M%和燃油流量计算出目标P2%,并自动填充到P2%比例调节的调参值框。同时,该界面在主窗口调用构造函数时实例化,后台线程启动后循环向燃烧室在线调节界面对象中的变量发送数据,燃烧室界面显示对象中的重要参数。燃油分配在线可调标志和主燃级可调标志开关指示灯初始化为0,每次点击按钮时,均会改变指示灯开关量状态。

调参值中的P2%比例通过主燃级M%比例自动插值得到,插值流程如图8 所示。点击界面上的“Apply”按钮时,程序读取当前输入M%值和机载传感器燃油流量,计算P1M,经过线性插值计算P2M,再使用燃油流量和P2M计算出P2%比例,然后自动填入调参框中。

图8 主燃级M%到P2%插值流程Fig.8 Primary fuel M%level to P2%level interpolation flow chart

7 人机交互界面设计

为实现友好、简洁的人机交互界面,使用QT Designer作为人机交互界面开发工具。根据某型发动机具体要求,设计了如图9、图10所示界面。

图9 是在线调参主界面,包括EEC 调参界面和TIE调参界面。界面菜单栏的“connect”按钮实现在线调参系统与发动机的通信连接(开启后台通信线程),左上角的“调参开关”实现在打开此开关时发动机才能触发调参动作,并配有反馈指示灯。EEC 调参界面中,每个调参值有参数输入框、“注入”按钮、EEC 反馈A/B 通道值,其中VSV 角度锁定调参值还有+-微调按钮以及微调按钮台阶设置。TIE 界面中,每个调参值有参数输入框、“注入”按钮、TIE 反馈值。界面右边的“燃油分配调节”按钮,用于打开图10所示的燃烧室燃油分配在线调节界面。

图9 在线调参系统主界面Fig.9 Main interface of parameter-adjusting online system

图10 燃烧室调节界面Fig.10 Combustor adjusting interface

图10 左边显示了一些调节过程中需要关注的重要参数,其中左上方的两个按钮用于打开燃烧室调节参数的锁定状态。右边为一些操作控件,可以实现设置调节最大值、调节台阶、微调、发送调参值等动作。

8 结束语

利用ExternalHook编写的在线调参程序配合试车台数采系统现有环境,极大地提高了航空发动机试车中在线调参的实用性。同时,友好的人机交互界面和交互层逻辑,增加了在线调参操作过程中的容错能力;对调参操作进行了简化,提高了航空发动机试车的效率。经过某型核心机与整机长时间的试车准备阶段验证,此系统可靠、安全、稳定,对于航空发动机试车在线调参科目的实现有一定的参考意义。

猜你喜欢
燃烧室线程按钮
燃烧室形状对国六柴油机性能的影响
车用发动机(2023年4期)2023-08-28 02:17:06
当你面前有个按钮
一种热电偶在燃烧室出口温度场的测量应用
电子制作(2019年19期)2019-11-23 08:41:54
死循环
浅谈linux多线程协作
环球市场(2017年36期)2017-03-09 15:48:21
内心不能碰的按钮
商业评论(2014年9期)2015-02-28 04:32:41
高几何压缩比活塞的燃烧室形状探讨
Linux线程实现技术研究
涡轮间燃烧室简介
么移动中间件线程池并发机制优化改进