朱大明,朱之丽
(北京航空航天大学 能源与动力工程学院,北京100191)
航空发动机研制和发展本身是一个创新的过程,与新概念、新技术、新材料和新工艺相关联。因此,在设计与发展的各个阶段,不可能考虑到发动机各个部件在预定条件下所有的工作过程特性,只有通过发动机台架试车(包括地面台架、高空台架和空中台架)才能了解整个工作特性范围内发动机部件和部件之间以及部件与整机之间的工作影响。所以对发动机台架试车所得试验数据进行全面而具体的分析十分重要。
一个高效的试验数据分析系统可以进行科学调整决策、减少试验时间、加快研发速度、节约研发经费,对于验证和修正部件及系统试验结果、确定发动机总体性能、验证发动机各个部件的匹配性能、考核发动机结构完整性和系统可靠性[1]等有重要帮助。因此,建立一套适合试车台架的发动机试验数据分析系统有着十分重要的意义。
试验数据分析系统除了可以大大增加研制阶段整机试车的试验效率外,在其它发动机试验中也有重要应用。在发动机设计定型、进入批生产以后、批生产的常规试车中,试验数据系统可用来全面评估每台发动机的出厂状态,形成有使用价值的出厂发动机性能数据库,对生产流程、生产工艺的改善与提高很有帮助。除了针对真实试验数据以外,在发动机总体方案设计阶段,试验数据分析系统也可以通过数值模拟和虚拟试验的方法来考核所设计部件的特性和整机性能对故障诊断难易的影响。试验数据分析在整个发动机研制发展阶段的作用可参见图1。
综上所述,从发动机初期的总体设计开始,直到研制试车和最后的批生产常规试车,试验数据分析系统都起到很重要的作用。
图1 试验数据分析在发动机研制发展各个阶段的作用Fig.1 The role of test data analysis in engine research and development
本系统针对发动机试验数据进行分析,并最终实用于设计流程和工程实践中,主要有三方面功能:首先是基于设计要求的一些基本功能,如测量数据有效性处理、传感器故障判定隔离和数据重构、发动机气路部件性能故障诊断、可变几何部件优化调整等;其次是为工程实践服务的一部分功能,如各种结果的显示输出打印、发动机故障库和履历库的建立等;最后是一些附加功能,如故障参数敏感性分析、故障诊断有效性评估等。系统的主要功能参见图2。
图2 系统主要功能Fig.2 Main functions of the system
为了在满足设计要求的同时完成规定的功能,系统的总体设计思想是:应用范围广,不局限于一种发动机,通用性好;不同功能模块之间、同一功能模块的各个子程序之间应衔接方便,各个程序接口都实行标准化设计,便于其灵活组合,以适应不同发动机类型、不同测量参数和不同待诊断故障等多种可选要求的限制。
系统设计要考虑到所有可能因实际试车情况而变化的因素,比如试车发动机类型可能是涡喷、涡扇、涡轴、涡桨等不同类型发动机;科研试车中部件经常串装和调整,应该有部件特性修正系数和可调系数;输出设计则要考虑到各种所需结果及其表现形式和输出格式,还要考虑到数据分析过程的一些参数监控的要求。
基于以上设计要求和设计思想,系统在实现方面充分考虑了功能模块完成的先后顺序,不同的输入数据在合适的地方进入系统,从软件效率出发,还考虑了多个功能的模块共同使用等,图3是系统软件的流程逻辑。
图3 试验数据分析软件的流程逻辑Fig.3 The implementation flow chart of data analysis software
由图3可知,与试验数据分析最相关的模块是传感器故障隔离、气路故障诊断和优化调整,下面分别简介这三个主要功能模块的设计。为了阐述方便,首先给出发动机数学模型:Y=FEPSM(X+α)+β,其中Y是测量参数向量,X是故障参数向量,α是故障偏差向量,β是测量偏差向量,FEPSM是发动机性能仿真函数,下标EPSM表示发动机性能仿真模型。自适应模型相当于性能计算模型的反计算,则可用表示自适应模型。同时使用下标a表示实际测量,下标c表示模拟计算。
3.3.1 传感器故障隔离模块
鉴于测量序列多变、无历史稳态数据和时间序列数据的情况,本文以发动机性能模型为基础,借助模型自适应性和模式识别技术,建立了一种以分析发动机性能参数偏差来模拟测量参数偏差的传感器诊断方法。
这种方法的基本原理是:设有n个测量参数对应n个传感器,只有一个传感器发生了故障。诊断过程是对第i个测量参数,使用除第i个以外的其余 n-1个测量参数通过发动机自适应模型估计性能。如果是第i个传感器发生了故障,那么只有这次得到的估计结果与真实情况最接近,因为只有这次没有使用发生故障传感器的测量信息。若发动机没有故障,则考察n次用n-1个测量参数自适应得到的性能与基线值的差别,最接近基线值的一组对应的i为故障传感器。若发动机本身有故障,则性能真实值在没有排除传感器故障前无法获得,此时可使用文献[2]的处理方式。但文献[2]的方法既要求模型自适应程度好又要求优化程度好,本文受文献[2]的启发,利用自适应收敛判断函数建立了一种传感器故障隔离方法。
自适应收敛条件应为实际测量向量与模拟测量向量之间的相似程度,一般采用直线距离进行度量,即设ε为一小量,当d≤ε时自适应结束。以第i个测量参数为例,使用除i以外的n-1个测量参数进行自适应。若i是故障传感器测量参数,则本次自适应没有使用到故障信息,在自适应模型较为准确的条件下应该能匹配到某个发动机真实物理工作状态,理论上d=0,不过实际计算中存在收敛精度,d也为一小量。若i不是故障传感器测量参数,则本次自适应使用了故障信息,在自适应模型较为准确的条件下应该无法匹配到某个发动机真实物理工作状态,d是一个相对较大的数值。所以直接使用自适应收敛判断函数d就可以进行传感器故障隔离。这种方法的流程可参考图4。
3.3.2 气路故障诊断模块
针对前述的发动机试验数据特点,在故障诊断方面,系统首先采用了基于模型的诊断方法——模型辨识法,并将其发展为结合数理统计的二次诊断方法[3]。本文针对辨识法中的目标函数构成进行优化处理。最初的目标函数只是测量参数的非线性模型计算值和实测值之间的均方根误差ε:
图4 传感器故障隔离算法流程Fig.4 Algorithm flow chart of sensor fault isolation
公式(1)所示的目标函数,把辨识法转化为最小二乘函数的最值问题,它充分考虑了所有测量参数的影响。进行函数优化时,本文首先考虑测量精度的影响,如推力和转速的测量比较准确,在优化过程中应更加受到“重视”,而某些温度的测量不准确,重视程度应较低。基于此,目标函数可修正为:
式中:ai为根据不同测量参数测量精度不同而设置的权重值。
公式(2)所示目标函数已转化为加权最小二乘函数的极值问题,这时的目标函数也只是考虑了测量参数的影响。显然可以在目标函数中添加故障参数相关项,把故障参数的影响也计入目标函数。参考测量参数影响,目标函数可修改为:
式中:bi为每个故障参数的权重。
这种方法基于:从实际经验角度来看,一般说来,某次试车的发动机故障参数值不应该和此故障参数的经验参考值有显著的不同。
从发动机数值仿真的数学角度看,公式(3)所给出的目标函数已经包括了故障诊断的所有因素,包括所有测量参数和故障参数及其异同带来的影响,而且它是一个凸函数,有且只有一个最小值,可以进行优化求解。但是从实际情况出发,故障参数参考值Xre的选取是一个较难的问题。
如果发动机是定时维护检查或者批量生产出厂检查,则Xre比较容易选取。比如定时维护,检查300 h部件情况时就可以使用280 h的检查结果作为参考值;出厂检查时则可使用同一类型发动机上一批次的出厂检查结果作为参考值。但是对于一个新型发动机研制阶段试验,Xre很难获得。因为没有先例,也就不存在任何经验参考值;只有某些已经做过类似试验的部件或者部件组合,可以使用已有试验值作为参考值。所以,公式(3)所示的目标函数应该反应这些实际存在的问题,目标函数可再次修正为:
式中:M*为有可用参考值的故障参数个数,M*<M;CFAU为故障参数限制项在目标函数中的权重系数。通过M*、bi、CFAU的取值可以反应在不同测量组和同一组不同故障参数限制项对目标函数优化的影响。公式(4)中故障参数修正项的形式也可以根据优化方法而改变,如更改为但随之要注意更改ε。
3.3.3 优化调整模块
在优化调整之前,系统已经根据试车实际情况对性能模型进行了自适应修正。发动机试验优化调整是依据试验发动机性能,在满足约束条件(CO)的情况下,调整可变几何部件V+γ,使发动机达到预设的性能目标。如果约束条件是压缩部件喘振裕度(SM)和燃烧室出口总温(T4),使用考核参数(OB)的均方根误差来衡量是否达到优化目标的情况下,发动机几何优化调整可以抽象为如下优化模型:
这样,发动机几何优化调整即转化为单目标多变量约束非线性优化问题。本文采用一种新的方法进行优化调整,即模式搜索法。这种方法可以归属为有限穷举法的一种,具体算法可参考图5。
图5 模式搜索法优化示意图Fig.5 Schematic diagram of mode searching optimization
在建立所有功能模块的数学模型后,兼顾运算效率、计算机程序普适性、软件修正和扩展的难易程度,采用了Microsoft Visual C++语言6.0版本进行编程实现,在经过编译以后,也可以在其更高版本下运行。VC++6.0制作界面简单,提高完成效率;对其它程序语言的兼容性也不错,它兼容C和C++语言,更关键的是与其它版本相比,VC++6.0的语法规则几乎和C++一致[4],这就大大增加了编程的普适性,提高了软件扩展效率。
软件编写时,同时采用了面向过程和面向对象两种编程方法。发动机性能仿真模型在本系统中只是其中的一个模块,从前面有关数据处理,传感器隔离、故障诊断和优化调整的数学模型看来,这个模块近似于一个黑匣子功能。在系统运行过程中,此模块不做任何改动,只相当于一个子函数。在本系统中,发动机性能模型固定,所以采用面向过程的编程,效率和运算速度都会提高。
在本系统里,涉及试验数据处理是较为重要的模块,尤其是故障诊断和优化调整,这些功能模块都采用了面向对象的编程方法。这能很好地实现从开发层面到应用层面的“层式”结构开发,对于不同目的程序开发人员以及使用人员提供不同的接口,使程序开发和应用具有效率高、灵活可靠、扩展性好、针对性强的特点[5]。在系统使用过程中,若有新的诊断和优化方法,都易于添加,增强系统的扩展性。
一个实用的发动机试验数据分析系统可以挖掘每次试车数据的潜在价值,在大量的试车数据中寻找规律性和价值性的信息,很大程度上提高发动机试验的效率,对于发动机研制和发展各个阶段的试车大有裨益。本文基于航空发动机地面台架试车的特点,描述了一个数据分析系统的总体设计,包括主要功能模块的设计方案。本系统的主要功能模块和系统试用版已经在某型发动机上进行了真实试验数据校核和使用,数据分析效果很好。
[1]杜鹤龄.航空发动机高空模拟[M].北京:国防工业出版社,2002.
[2]Kurzke J.Sensor Checking Using Model Based Engine Performance Test Analysis and Numerical Optimization[J].ISABE 2005-1239,2005.
[3]朱大明,朱之丽.结合统计的模型辨识法在发动机故障诊断中应用[J].航空动力学报,2009,24(5):1061—1065.
[4]刘 璟.高级语言C++程序设计[M].北京:高等教育出版社,2001.
[5]王育坚.Visual C++面向对象编程教程[M].北京:清华大学出版社,2007.