目前,国内外针对液体火箭发动机故障诊断算法的研究还停留于试验验证阶段,主要是基于硬件在环(HIL)仿真平台和实际试车台进行验证[3-4]。以上研究都是基于地面试验开展的,这些设备体积较大,很难应用于机载设备上,仅能用于地面仿真验证,而直接应用于机载系统故障诊断器的研究较少。将故障诊断器应用于液体火箭发动机机载系统,对飞行过程中的故障进行监测和处理显得尤为重要,因此有必要开发一种可以用于机载故障诊断的硬件装置。
近年来,随着硬件技术的发展,对单处理器结构(如单片机、ARM、DSP和FPGA等)用于数据采集和算法处理的研究越来越多[5]。但液体火箭发动机故障诊断器是一项极其复杂的工程,并且其综合性极强,有必要采用一种能应用于复杂、性能高的场合的多处理器架构,将以上单一架构相互结合起来,进行优势互补。液体火箭发动机故障诊断器主要完成高精度数据采集和故障诊断算法的验证。采用FPGA灵活的配置能力和DSP运算能力构建双处理器进行故障诊断器设计是一种非常合理高效的选择,其体积小,价格低廉,并且通用性高,易于扩展。
因此,本文设计了以FPGA和DSP为硬件的故障诊断器用于液体火箭发动机机载在线故障诊断。首先,对故障诊断器的整体架构进行了介绍;其次,分别设计了故障诊断器的硬件和软件;然后,基于前馈神经网络设计了一种用于故障诊断的递归结构识别(RESID)算法,数字仿真验证成功后,对该算法进行自动代码生成并与手写的驱动代码相结合;最后,搭建了硬件在环仿真平台,对RESID算法进行了验证。
1 故障诊断器设计 1.1 故障诊断器架构设计 液体火箭发动机故障诊断器主要完成传感器信号采集和外部输入指令的录取功能,运行故障诊断算法,显示故障诊断结果并实现报警功能。本文采用FPGA+DSP双系统来对故障诊断器进行设计。
FPGA+DSP双系统的最大优点是结构灵活,有较强的通用性,适合模块化设计;同时开发周期较短,易于维护和扩展[6]。系统的核心由芯片和可以重构的器件组成,另外还包括一些外围的辅助电路。系统中各有优势,利用FPGA强大的并行处理能力进行数据釆集并对系统外围电路进行控制,利用DSP的运算能力对信号进行实时处理并运行故障诊断算法,同时与FPGA之间也有数据信息的交换。根据需求和标准化、模块化、通用化的设计思想,根据故障诊断器的功能划分确定系统总体设计框图,如图 1所示,其主要包括电源模块、A/D采集模块、开关量信号输入、数字处理模块和输出接口组成。
图 1 故障诊断器总体架构 Fig. 1 Overall architecture of fault diagnosis device |
图选项 |
1.2 故障诊断器硬件设计 在故障诊断器设计中,FPGA的功能主要包括24通道数据采集、内存扩展、DSP数据通信及在内部开辟数据缓冲区等。综上考虑,选用Xilinx公司的Spartan-6系列芯片,型号为XC6SLX16-2FT256I,采用256脚的BGA封装,其内部包含14 579个逻辑单元,32个硬件乘法器,136 Kbit可配置逻辑块,576 Kbit的Block RAM,可用IO数量为232个[7]。
在故障诊断器系统中,DSP主要的功能是运算故障诊断算法,并且与FPGA通信。由于系统本身需要进行故障诊断算法,其包含大量浮点运算,所以选择C2000系列的浮点DSP。综上,最终选择的型号为TI公司生产的TMS320F28335,其是一款哈佛结构的高性能32位浮点DSP,主频为150 MHz,广泛用于工业控制领域。
本文对外部传感器信号进行采集,核心芯片采用16位分辨率的AD7606。AD7606是一款集成式8通道同步采样数据采集系统,选用3片AD7606,通过并行通信接口与FPGA进行数据交互,核心芯片采用16位分辨率的AD7606。3片AD7606共用16位数据线,分别在一个指令周期内进行轮训采样。图 2为A/D采集实现框图。利用FPGA的可编程逻辑控制特点,采用状态机的思想,通过编程设计AD7606的读写控制时序,将采样的结果实时保存在双口RAM里面,进而实现高精度的A/D采样。
图 2 A/D采集实现框图 Fig. 2 Block diagram of A/D acquisition implementation |
图选项 |
故障诊断器的显示模块主要包括状态指示灯和故障指示灯2部分。图 3为显示模块及报警模块实现框图。DSP的GPIO口与LED相连,显示故障诊断结果功能,绿色为无故障状态,红色为故障状态;状态指示灯主要显示工作状态和各模块自检的状态等;DSP的GPIO口与蜂鸣器相连,实现报警功能,当故障发生时,蜂鸣器响30 s加以提示。
Fig. 3 Block diagram of display module and alarm module implementation |
图选项 |
1.3 故障诊断器软件设计
1.3.1 FPGA控制数据采集 通过高精度、高速率的A/D转换芯片将发动机传感器传来的模拟量转化为数字量,实时传给诊断处理芯片,中央控制器通过实时的传感器信息,采用故障诊断算法在线判断发动机状态,给出估计,判断故障信息。FPGA通过并口对多个传感器数据进行读取,相比于串行数据传输,并行传输速率更快,在实时性要求较高的故障诊断系统中,需要传输多组传感器数据进行处理,采用并行传输成为了最好的选择[8]。
AD7606可以对所有8路的模拟输入通道进行同步采样。当2个CONVST引脚(CONVSTA和CONVSTB)连在一起时,所有通道同步采样。在此共用CONVST信号的上升沿启动对所有模拟输入通道的同步采样(V1~V8)。在FPGA里通过有限状态机来实现对AD7606的控制,CS和RD均处于逻辑低电平时,则会使能输出总线DB[15:0],使转换结果输出在并行总线上,AD_BUSY输出保持高电平,直到所有通道的转换过程完成为止,通过RANGE引脚来选择模拟输入的范围。AD7606有限状态机的结构框图如图 4所示。根据AD7606的工作原理和时序图,先复位信号,再转换,完成后等待一段时间进行A/D数据的读取[9]。具体的状态机轮转图如图 5所示。
图 4 AD7606有限状态机结构框图 Fig. 4 Structural block diagram of AD7606 finite state machine |
图选项 |
图 5 FPGA控制AD7606有限状态机 Fig. 5 FPGA controlling AD7606 finite state machine |
图选项 |
1.3.2 FPGA与DSP通信 通过FPGA进行数据采集之后,需要把采样数据发送给DSP处理器进行故障诊断。在FPGA里通过IP核构建一块双口RAM,用于存储AD7606的数据输出结果。DSP作为故障诊断的主控处理器,可以任意时刻读取双口RAM里的采样数据,与通过中断方式或者查询方式读取采样数据相比,减小了对DSP资源的占用,提高了DSP效率。在FPGA里采用IP核构造双口RAM和PLL模块,通过PLL分频和倍频,分别构造10、50、75、100 MHz的时钟作为双口RAM的时钟。
通过选择XINTF接口,DSP可以很方便地读取或者写入FPGA的寄存器,保证了系统的实时性[10]。通过对这些数据进行处理并将其作为故障诊断算法所需的输入,进行故障诊断,再分别通过故障指示灯和故障报警器来显示故障诊断结果并报警,报警和指示灯的软件采用基于模型的设计,将其加入算法模型,利用RTW工具箱生成可执行的嵌入式代码并下载至DSP中。
2 故障诊断算法设计 本文根据已有的液体火箭发动机模型来进行故障诊断的研究[11],在建模时不考虑冗余,传感器测点参数如表 1所示,主要包含甲烷涡轮泵转速、液氧涡轮泵转速、甲烷泵后压力、液氧泵后压力、副系统甲烷喷嘴前压力、副系统液氧喷嘴前压力、主系统甲烷喷嘴前压力、主系统液氧喷嘴前压力、燃气发生器压力、燃气发生器温度和燃烧室压力。根据目前国内外的研究,液体火箭发动机系统的故障主要发生在推力室和涡轮泵系统。发动机主级阶段主要发生堵塞、泄漏和涡轮泵系统故障等,本文模拟液体火箭发动机主要的故障类型,包括阀门开度故障、泵气蚀、涡轮效率损失和管路泄漏。
表 1 液体火箭发动机传感器测点 Table 1 Sensor measurement points for liquid rocket engines
参数 | 变量符号 | 单位 |
甲烷涡轮泵转速 | nf | r/min |
液氧涡轮泵转速 | no | r/min |
甲烷泵后压力 | Pef | MPa |
液氧泵后压力 | Peo | MPa |
副系统甲烷喷嘴前压力 | Pgf | MPa |
副系统液氧喷嘴前压力 | Pgo | MPa |
主系统甲烷喷嘴前压力 | Pcf | MPa |
主系统液氧喷嘴前压力 | Pco | MPa |
燃气发生器压力 | Pg | MPa |
燃气发生器温度 | Tg | K |
燃烧室压力 | Pc | MPa |
表选项
RESID算法基于自适应学习网络概念,将复杂的特征阵列的非线性关系用一个模型进行表达,该特征阵列即为传感器参数,其通过递归的方法建立了不同传感器之间的相互关系。RESID算法的特征是在递归过程中一步步确立出最优的模型。RESID算法结构如图 6所示。图中:E为RESID算法中每一步采用的训练算法,xi为输入传感器参数。对输入传感器参数的所有成对组合都确定函数E。选择过程中,在最小平方误差条件下表现差的元素被淘汰,其余元素成为下一阶段训练和选择步骤的输入。这些训练和选择步骤重复,直到性能度量没有显示任何进一步的改进。在RESID算法中,需要对模型中每一组参数进行训练。相较于传统的非线性回归方法,本文采用了性能更优的前馈神经网络算法[12]。
图 6 两级RESID网络示意图 Fig. 6 Schematic of two-level RESID network |
图选项 |
RESID算法通过选择n个传感器数据作为建模的预测变量X,1个传感器数据作为建模的响应变量y,建立方程y=func(X(1), X(2), …, X(n)),X(1)~X(n)为预测变量中的参数组,func为建模方程。通过标称数据的响应变量和预测变量,求得建模方程。当系统工作正常时,新的输入变量代入方程中计算得到的预测值,应与实际传感器测试值具有较高的一致性;否则,认为发生故障。
图 7为液体火箭发动机RESID算法框图。第1步,对数据进行预处理。第2步,根据训练数据集,对所有可以配对的RESID模型进行建模,输入为n个传感器数据,输出为推力室室压。第3步,选择所有模型中预测均方估计误差最小的模型,确定下来该模型。第4步,根据确定下来的模型计算出的推力室室压,作为下一级迭代建模用的推力室室压数据(第3步、第4步迭代进行,直到m个模型建立成功)。第5步,将被测数据代入建好的RESID模型中,该模型利用选定的n个传感器数据,预测推力室室压,将预测值与输入的推力室室压数据相比较,得到残差数据。第6步,对所有模型的残差计算平均绝对误差,若该值超过诊断阈值,则认为有故障发生。
图 7 RESID算法框图 Fig. 7 Block diagram of RESID algorithm |
图选项 |
故障判定时,计算训练数据建立的模型得到的预测值与实际值之间的平均绝对误差,平均绝对误差为全部模型误差的均值。该误差作为故障诊断判定的基准。在测试时,将新输入的数据代入模型,得到推力室室压的预测值,并将预测值与实测值比较得到该测试数据的平均绝对误差。将测试平均绝对误差与训练平均绝对误差相比较。若超过训练时平均绝对误差值的n倍,则认为有故障发生。通过查阅文献,通常n取3或5,可根据实际发动机状态进行调整。
针对某型液体火箭发动机模型,在第4 s注入故障,使流量系数由1衰减为0.9。在数字仿真下观察结果。使用GUI界面可以进行通道选择和参数设置,图 8为GUI界面显示的训练残差。取训练残差最大值0.0206为阈值。图 9为GUI界面显示的故障诊断参数设置和诊断结果界面,上面为参数设置,下面诊断结果界面中红线和蓝线代表残差和阈值。可以看出,在第4 s时阈值很明显高于残差,因此可以判定在第4 s发生了故障。发生故障前后分别进行计时,诊断出故障的时间为4.006 s。在发生故障之后,可以在6 ms诊断出来,验证了在数字仿真下RESID算法可以进行液体火箭发动机故障诊断。
图 8 RESID算法训练残差 Fig. 8 Training residuals of RESID algorithm |
图选项 |
图 9 RESID算法故障诊断结果 Fig. 9 Fault diagnosis results of RESID algorithm |
图选项 |
3 HIL试验验证 3.1 仿真平台总体架构设计 发动机故障诊断器需要对液体火箭发动机各部件的工作状态进行故障诊断。针对发动机机载故障诊断需求,研究机载故障诊断器研制过程中的关键技术,并采用通用硬件、软件技术构建故障诊断器,验证其平台功能(硬件构架、软件功能)及诊断算法性能(实时性等),为故障诊断工程样机研制奠定技术基础[13]。本文构建了对应的HIL仿真平台,主要由实际控制器和虚拟对象组成,其可以模拟发动机实际运行过程和故障特征,实现故障诊断器状态监控、故障诊断和健康管理功能及性能的在线、实时试验验证。
搭建的HIL仿真平台主要包括故障诊断端、被监控端和上位机端,其分别采用设计的故障诊断器、工控机及PC机模拟实现[14]。其中,故障诊断端与被监控端之间采用D/A和A/D通信方式实现数据实时交互,故障诊断与主工作站之间采用RS232串口通信实现数据实时交互,被监控端与主工作站之间采用TCP/IP通信实现数据实时交互;通过TCP/IP通信,将诊断结果传输给TCP/IP的上位机端。具体的HIL仿真平台的总体硬件结构框图如图 10所示。
图 10 HIL仿真平台总体结构设计框图 Fig. 10 Overall structure design block diagram of HIL simulation platform |
图选项 |
3.2 RESID算法HIL验证 图 11为本文设计的液体火箭发动机故障诊断器与搭建的HIL平台实物图,主要包含液体火箭发动机实时状态参数显示、PCL-727模块产生的模拟量输出、上位机的显示和故障诊断器。
图 11 故障诊断器和HIL平台实物图 Fig. 11 Photo of fault diagnosis device and HIL platform |
图选项 |
为了实现在线故障诊断多种功能需求,构建的故障诊断需要尽可能满足复杂算法实时性要求。本文设计了一种双线程机制来完成程序结构设计,缩短程序运行时间[15]。这2种机制分别为HWI硬件中断线程和TSK任务线程。HWI硬件中断线程具有最高的优先级和严格的实时性,中断服务程序采用HWI硬件中断线程,通过定时器中断完成,主要实现实时数据采集、在线故障诊断算法及控制算法。TSK任务线程优先级较低,在运行过程中可以等待,直到所需要的资源可用。由于主程序的特点就是运行的非连续性及中断位置的随机性,因此采用了TSK任务线程这部分程序实现信息的传输功能,即将故障诊断结果及故障诊断端接收到的传感器数据传输到主工作站。
由上所述,将搭建的故障诊断软件系统分为2个部分:主程序和中断服务程序。在主程序中,主要进行各个模块和算法的初始化,采用CPU定时器中断,20 ms自动触发一次,在中断服务函数中运行故障诊断算法并将其结果发送至上位机界面,在算法开始前和开始后分别在某一定时器寄存器中写值,这样就可以观察算法的运行时间。故障诊断算法基于模型设计的自动代码生成方式进行生成,先对其进行DO-178C标准检查,再替换不符合标准的模块,使其生成嵌入式C代码,最后将生成的代码嵌入至DSP代码中。
通过RS422串口将A/D采集到的值和故障诊断结果发送至液体火箭发动机故障诊断平台的上位机上进行观察,如图 12所示。将A/D采集到的数据与xPC端的数据进行对比,精度可以达到1 mV,在某一时间植入故障,上位机中各参数发生变化,并显示发生故障,算法在20 ms的中断中只运行了3.9 ms。因此,采用本文设计的DSP+FPGA双系统架构可以使数据采集精度更高并且减少CPU占用率,采用手写代码与嵌入式代码相结合的方式方便HIL平台的开发。
图 12 液体火箭发动机故障诊断平台上位机界面 Fig. 12 Upper computer interface of fault diagnosis platform for liquid rocket engine |
图选项 |
4 结论 本文基于FPGA和DSP双处理器架构设计了具有通用性的故障诊断器,可用于液体火箭发动机机载在线故障诊断,对故障诊断器软硬件和故障诊断算法进行了研究和试验验证。主要结论如下:
1) 对故障诊断器各模块软硬件进行了设计,利用FPGA灵活的配置能力,基于有限状态机实现了对AD7606进行传感器数据采集的控制。在FPGA端构造双口RAM,DSP通过XINTF总线成功地从双口RAM中读取A/D转换器的数据。
2) 提出了一种RESID算法用于液体火箭发动机故障诊断,将算法自动生成代码并与手写嵌入式代码相结合,然后下载至故障诊断器中进行验证。
3) 利用故障诊断器、工控机和上位机搭建了用于算法验证的HIL仿真平台,证实了设计算法在故障诊断器中实现的可靠性,与数字仿真结果一致。
本文为液体火箭发动机故障诊断工程样机的设计提供了有效途径,促进了液体火箭发动机故障诊断领域的研究工作。本文是在液体火箭发动机的数学模型下进行的,后续可在地面试车台对故障诊断器进行测试并改进,将其应用于机载装置中。
参考文献
[1] | LI Y J, PENG X H, CHENG Y Q, et al. Research of pipeline fault diagnosis for liquid rocket propulsion system[J]. Applied Mechanics and Materials, 2012, 232: 305-309. DOI:10.4028/www.scientific.net/AMM.232.305 |
[2] | LI Y J, PENG X H, CHENG Y Q, et al. Research of faulty sensors data reconstructed for liquid-propellant rocket engines[J]. Applied Mechanics and Materials, 2012, 229-231: 1449-1453. DOI:10.4028/www.scientific.net/AMM.229-231.1449 |
[3] | ZHU F, WANG Q, SHEN Z. APSO-RVM for fault detection of liquid rocket engines test-bed[J]. Information Technology Journal, 2012, 11(10): 1496-1501. DOI:10.3923/itj.2012.1496.1501 |
[4] | DOU W, SUN L. Analysis of on-site fault diagnosis technology of a liquid rocket engine[J]. Strength and Environment, 2010, 37(5): 46-51. |
[5] | JI W, TAN D L, NDAGIJIMANA E, et al.An embedded hardware-in-the-loop testbed for aeroengine simulation education: AIAA-2018-4621[R].Reston: AIAA, 2018. |
[6] | CHI Z, JIA Q, WANG X, et al.An intelligent interface design method based on DSP and FPGA[C]//International Conference on Electrical, Mechanical and Industrial Engineering, 2016: 318-321. |
[7] | 徐加彦, 张之万, 陈兴林, 等. 基于FPGA的高速多通道AD采样系统的设计与实现[J]. 自动化与仪表, 2014, 29(9): 49-52. XU J Y, ZHANG Z W, CHEN X L, et al. Design and implementation of high speed multichannel AD sampling system based on FPGA[J]. Automation and Instrumentation, 2014, 29(9): 49-52. DOI:10.3969/j.issn.1001-9944.2014.09.013 (in Chinese) |
[8] | 姜楠, 马迎建, 冯翔. DSP和FPGA并行通信方法研究[J]. 电子测量技术, 2008, 31(10): 146-148. JIANG N, MA Y J, FENG X. Research on parallel communication method between DSP and FPGA[J]. Electronic Measurement Technology, 2008, 31(10): 146-148. DOI:10.3969/j.issn.1002-7300.2008.10.042 (in Chinese) |
[9] | 郭迎清, 冯健朋, 张书刚. 涡扇发动机故障诊断硬件在回路实时仿真平台[J]. 航空工程进展, 2014, 5(2): 165-170. GUO Y Q, FENG J P, ZHANG S G. Hardware-in-the-loop simulation platform for turbofan engine fault diagnosis[J]. Journal of Aeronautical Engineering, 2014, 5(2): 165-170. DOI:10.3969/j.issn.1674-8190.2014.02.006 (in Chinese) |
[10] | WU J. Liquid-propellant rocket engines health-monitoring-A survey[J]. Acta Astronautica, 2005, 56(3): 347-356. DOI:10.1016/j.actaastro.2004.05.070 |
[11] | LEE K, CHA J, KO S, et al. Fault detection and diagnosis algorithms for an open-cycle liquid propellant rocket engine using the Kalman filter and fault factor methods[J]. Acta Astronautica, 2018, 150: 15-27. DOI:10.1016/j.actaastro.2018.03.001 |
[12] | ZHUO P C, ZHU Y, WU W X, et al. Real-time fault diagnosis for gas turbine blade based on output-hidden feedback Elman neural network[J]. Journal of Shanghai Jiaotong University(Science), 2018, 23(Suppl): 95-102. |
[13] | THOMAS G L, CULLEY D E, BRAND A.The application of hardware in the loop testing for distributed engine control[C]//AIAA/SAE/ASEE Joint Propulsion Conference, 2016: 1-11. |
[14] | KULIKOV G G, AR'KOV V Y, ABDULNAGIMOV A I. Hardware-in-the-loop testing technology for integrated control and condition monitoring systems of aircraft gas turbine engines[J]. Russian Aeronautics, 2008, 51(1): 47-52. DOI:10.3103/S106879980801008X |
[15] | 吕升, 郭迎清, 孙浩. 航空发动机故障诊断装置硬件在环实时仿真平台[J]. 航空发动机, 2017, 43(3): 43-49. Lü S, GUO Y Q, SUN H. Hardware-in-the-loop real-time simulation platform for aero-engine fault diagnosis device[J]. Aero Engine, 2017, 43(3): 43-49. (in Chinese) |