APP下载

基于Matlab/Simulink的直/发一体化建模与故障诊断

2015-11-19张海波王继强

航空发动机 2015年3期
关键词:涡轴卡尔曼滤波C语言

周 骁,张海波,王继强,程 登

(1.南京航空航天大学江苏省航空动力系统重点实验室,南京210016;2.中航工业西安航空计算技术研究所,西安710065)

0 引言

航空飞行器和发动机之间的相互作用对飞行器整体的性能影响至关重要[1-2]。随着对现代飞行器性能与质量要求地不断提高,不能忽视二者间的系统耦合特性,而飞行器与发动机的一体化建模对了解系统耦合特征,提高系统性能起着非常重要的作用。如果仍然沿用航空发动机和飞行器独立分析、分离建模的方法,则不能在设计过程中充分考虑二者的耦合特性,从而使得系统整体性能得不到充分发挥[3-4]。因此,需要建立发动机/飞行器一体化模型来模拟其动静态特性,并使其具有实时仿真能力,从而为综合控制系统设计提供模型支持,使飞/发一体化尽可能地发挥其潜在性能[5-6]。

目前,发动机/飞行器模型大部分是由C语言编写的部件级模型,该平台缺少控制和分析方面的工具,因此需要建立1个可以快速实现控制系统分析、诊断的图形化仿真平台[7-8]。快速控制原型(Rapid ControlPrototype,RCP)技术是国外近几年发展成熟的1种仿真技术,其原理是在控制系统开发的初期阶段,快速地建立控制器或被控对象模型,并通过对整个控制系统进行多次在线或离线试验以验证方案的可行性[9]。欧美等发达国家已将该技术广泛应用于航空航天、汽车、军事装备等领域,并取得一定成果。如AgrestiM[10]、KharyI[11]建立了基于Simulink的发动机模型;国内王建峰[12]、夏飞[13]也开展了相关研究,但都仅针对于航空发动机,而没有考虑飞机或直升机与发动机之间的动态耦合,而此耦合对于直/发一体化建模与综合控制具有重要影响。国内对实物在回路仿真应用方面还存在差距,导致对直/发一体化模型的综合控制的仿真试验研究还不够充分,因此很有必要开展基于Matlab/Simulink的直/发一体化综合模型的研究工作。

本文针对直升机与涡轴发动机之间的耦合问题,采用Matlab和VC++6.0相结合的方法,建立基于Matlab/Simulink的直/发一体化综合模型,并对其进行数字仿真验证。

1 设计原理

对于复杂度极高的直升机/涡轴发动机模型,若直接使用Simulink内置模块搭建,过程将十分复杂。本文在直/发一体化C语言模型[14]的基础上,建立接口函数并生成可被S函数调用的MEX文件,再通过S-Function模块调用生成的动态链接库,减少了建模的工作量、增加了程序代码的重用度。

假设把直升机、涡轴发动机、控制器全部放入同一S函数中,将不能实现模块的通用性。为此本文以分别搭建子模块后组合的方式建立直升机/涡轴发动机一体化模型,其流程如下:

(1)通过VC++6.0提取一体化模型的子模块C语言模型;

(2)在一体化模型的子模块C语言模型中加入Matlab与C语言的接口函数——Mexfunction函数,并设定好输入、输出参量的个数与名称;

(3)通过Matlab将加入接口函数Mexfunction的直升机发动机相关模块的C语言模型编译成动态链接库(即MEX文件);

(4)“修剪”Matlab自带的S函数模块M文件来调用生成的动态链接库(即MEX文件),并另存为工作所需文件名;

(5)运用Simulink内置S-Function模块调用生成的MEX文件;

(6)根据各子模块的输入、输出信息,建立直升机/涡轴发动机一体化模型。

1.1 直升机模块

作为非定常、非线性动力学模型,直升机是直升机/涡轴发动机一体化模型的重要组成部分,要求其适用于各种飞行状态,具有较高的置信度。因此,直升机模型以功能划分分别建立主旋翼、机体、尾桨和尾翼模型。

直升机模块输入量包括高度H、前飞速度Vx、前飞指令Vxzl、侧飞指令Vyzl、爬升指令Vzzl、偏航角指令Psizl、旋翼转速指令Ω、旋翼角速度指令Ω˙;输出量包括总距SM、尾桨总距ST、横向周期变距A1C、纵向周期变距B1S、前飞速度Vx、侧飞速度Vy、爬升速度Vz。

1.2 涡轴发动机模块

涡轴发动机由5级轴流式压气机、1级离心式压气机、2级轴流式燃气涡轮以及2级轴流式功率涡轮组成,其结构及特征截面如图1所示。图中,0为发动机未受扰动截面,1为进气道与涡轴发动机的相交截面,2、3分别为压气机进、出口截面,4为主燃烧室出口截面,44为功率涡轮的进口截面,5、8分别为发动机排气装置进、出口截面。

图1 涡轴发动机截面

作为直升机/涡轴发动机一体化模型的动力装置,发动机必须与直升机、控制器进行数据交换,并且需要输出可测参数用于故障诊断。根据发动机原理以及实际工作,选择涡轴发动机模块跟外界交换的变量分别为:输入量包括高度H、前飞速度Vx、总距SM、扭矩QH、燃油量Wfb、导叶角α;输出量包括功率涡轮转速NP、燃气涡轮转速NG、输出功率HPP、扭矩QH。

1.3 涡轴发动机控制器模块

控制器对于涡轴发动机至关重要。运用ALQR控制算法设计控制器,该算法具有无穷大的幅值裕度和大于60°的相位裕度,能够消除稳态误差,实现对指令的渐进跟踪[15],因而在多变量鲁棒控制中广泛应用。其中涡轴发动机控制器输入量包括高度H、前飞速度Vx、总距SM、扭矩QH、功率涡轮转速NP、燃气涡轮转速NG;输出量包括燃油量Wfb、导叶角α。

1.4 基于Matlab/Simulink的直/发一体化建模

在直升机和涡轴发动机及其控制器子模块建模后,可组合成为基于Matlab的直升机/涡轴发动机一体化模型,正确设定各子模块的接收传递参量是关键环节,模块数据传递如图2所示。

在Simulink模型中,子模块只相当于1个普通的模块,具有特定的输入、输出端口。如果不对直/发一体化模型进行简化处理,将影响使用和修改,故需利用Simulink平台自带的封装子系统功能对一体化模型进行封装处理。

Simulink封装子系统具有以下优点:可以自定义封装子系统的图标,便于直观辨认直升机、涡轴发动机及其控制器;双击封装后的子系统,可弹出参数对话框,便于更改相关变量与参数,便于使用;封装之后的模块可作为普通模块添加到Simulink模型应用中,也可添加到模块库中以供调用,提高程序代码的重用率,减少重复编程;有专有的工作区域,便于后续对直升机、涡轴发动机及其控制器的调试和修改。

运用Simulink平台的子系统功能对直升机和涡轴发动机及其控制器的子模块进行封装处理,如图3所示。从图中可见,基于Matlab/Simulink的直/发一体化综合模型大体上分为直升机、涡轴发动机及其控制器3个模块,通过数据传递建立直/发一体化建型。

图2 模块数据传递

图3 基于Matlab/Simulink的直/发一体化模型

2 发动机故障诊断

鉴于常规卡尔曼滤波器存在的缺点,运用改进的卡尔曼滤波器来估计发动机气路部件蜕化量。在输入通道中通过增加估计偏差的积分项,使滤波输入包含偏差的累计激励,以消除稳态估计误差[16]。此外在卡尔曼滤波器的输入通道之前通过对输出相似变换至地面状态,便可使用较少的卡尔曼滤波器通过线性差值估计全包线。改进的卡尔曼滤波器如图4所示。从图中可见,以Δy+Δy'代替传统的Δy 作为输入,用以求解发动机部件蜕化量Δη,其中Δy 为发动机实际输出与机载模型输出的偏差量(经相似转换),Δy'为的积分项。

图4 改进的卡尔曼滤波器

卡尔曼滤波器是基于发动机小偏差线性模型设计的,因而首先需对发动机状态变量模型进行设计,该模型数学表达式为

此外,除了部件蜕化引起发动机工作在非额定状态下,在实际工作中的各种噪声污染以及建模假设条件等都会给模型带来误差,因而设计中还需考虑到系统误差和测量误差的影响。可将式(1)扩展为

式中:w、v 分别为系统、测量噪声。通常认为w、v 为不相关的服从正态分布的零均值白噪声,其协方差阵分别为Q 和R。按工程经验选取系统噪声Q=0.0022I,R=0.0022I,测量噪声R=0.0022I。

式(2)反映了部件蜕化导致发动机状态量和输出量的变化。若不考虑外物突然撞击,发动机部件的性能蜕化是1个缓慢过程,则可设Δη˙=0。对于额定发动机,蜕化量Δη=0;而对于长期服役的发动机,燃烧室、高低压涡轮均会不同程度产生性能蜕化,以燃烧室、燃气涡轮、动力涡轮的效率蜕化为例,设计发动机性能蜕化估计模块,即Δη=[Dcomb,Dgas,Dpow]T。

由于Δη 不能直接获得,因而在式(2)的基础上将Δη 增广为状态量,通过估计算法来进一步求取,其增广形式为

采用卡尔曼滤波器作为状态观测器,可得到如下全维观测器方程

改进卡尔曼滤波器是在输入端增加发动机实际输出与机载模型输出的偏差量积分项,用以补偿模型与真实发动机输出之间的偏差,即卡尔曼滤波器的输入量为Δy+Δy',由此得到如下改进最优状态估计方程为

式中:顶标·表示估计值;K=P[C M]TR-1,为卡尔曼滤波器增益阵;P 为如下Riccati方程的解

3 数字仿真

3.1 基于Matlab/Simulink的直/发一体化综合模型精度验证

采用Matlab和VC++6.0相结合的方法,以分别搭建子模块而后组合的方式建立基于Matlab/Simulink的直/发一体化综合模型。首先运用Matlab与C语言的接口函数Mexfunction将直升机、发动机、控制器相关模块的C语言模型编译成动态链接库,运用Matlab/Simulink内置S-Function模块调用生成的动态链接库文件,并封装确认各模块的输入、输出参量信息,最后根据接收传递参量,建立基于Matlab/Simulink的直/发一体化综合模型。本文给出了UH60直升机/T700发动机综合模型的设计算例,在C语言平台下的UH60直升机/T700发动机一体化综合模型与基于Matlab/Simulink的综合模型相关参量的变化相应曲线分别如图5、6所示。其中“VC”、“Matlab”分别为C语言、Matlab/Simulink的直/发一体化综合模型。

为了验证该综合模型的精度,给出了从H=0,Vx=0的状态下加速到Vx=40m/s的仿真结果。从图5中可见,随着前飞速度Vx的增加,总距SM与尾桨总距ST缓慢减小,之后趋于平稳,横、纵向周期变距A1C与B1S变化相对较小。在前飞速度Vx变化过程中,横、纵向周期变距A1C与B1S有小幅度变化,随着前飞速度的稳定而趋于平稳。从仿真曲线可见,基于Matlab/Simulink与C语言的直/发综合模型的变化趋势基本相符,稳态时曲线基本重合。

从图6中可见,随着前飞速度Vx的增大,燃气涡轮转速NG、燃油流量Wfb、输出功率HPP、扭矩QH的变化趋势基本相符,随着其稳定而趋于平稳。由于控制器的作用,功率涡轮转速NP基本维持在100%的转速。从动态过程中的仿真曲线可见,基于Matlab/Simulink与C语言的直/发综合模型的变化趋势基本相符。

综上所述,由于2种平台的定时精度、截断误差和调用方式等有所不同,导致在不同平台下的模型动态运算稍有不同。但在2种仿真平台下,动态仿真曲线趋势相同,且模型运行到稳态时的仿真曲线重合。因此,基于Matlab/Simulink的直/发一体化综合模型在一定程度上满足了控制系统快速原型设计的要求,也可作为直/发综合优化控制、发动机故障诊断、参数估计的1种新型仿真平台。

3.2 发动机故障诊断仿真验证

卡尔曼滤波器是发动机故障诊断的核心,是基于发动机小偏差线性模型而设计的,在发动机模型上分别对控制量和蜕化量作小阶跃,根据采集到的发动机模型输出数据拟合求取式(4)的适维矩阵并保存以供调用。改进的卡尔曼滤波器是在其输入端增加发动机(真实)输出与机载发动机(额定)模型输出的偏差量积分项,见式(5)。

图5 直升机相关参量对比

图6 发动机相关参量对比

本文以UH60直升机/T700发动机综合模型下的仿真结果为例。在H=500,Vx=30m/s工作状态下,分别验证发动机单一部件蜕化与多部件同时蜕化的估计效果,分别如图7、8所示。

图7 发动机单部件蜕化估计效果

图8 发动机多部件蜕化估计效果

从图7中可见,在t=10s时,分别设置发动机部件蜕化因子Dcomb=0,Dgas=2%,Dpow=0。在5s之内可以准确估计出燃气涡轮效率蜕化量,没有稳态估计误差,且Dcomb和Dpow则均接近0,达到了良好的估计效果。同时在t=10s时,分别设置发动机部件蜕化因子为Dcomb=0,Dgas=0,Dpow=1%在5s之内可准确估计出功率涡轮效率蜕化量,并且估计品质良好。

从图8中可见,在t=10s时,分别设置发动机部件蜕化因子为Dcomb=1%,Dgas=2%,Dpow=0。与事先设置的蜕化因子相比,Dcomb、Dgas、Dpow均达到了良好的估计精度。同时在t=10s,分别设置发动机部件蜕化因子为Dcomb=1%,Dgas=0,Dpow=2%,估计效果良好。从仿真效果可见,在基于Matlab/Simulink的直/发一体化综合模型仿真平台上,改进的卡尔曼滤波器对发动机单一部件蜕化与多部件同时蜕化均能实现快速准确地估计,且估计效果良好。

4 总结

(1)在考虑直升机与涡轴发动机相互耦合影响前提下,利用动态链接库技术实现了C语言与Matlab的混合建模,建立了基于Matlab/Simulink的UH60直升机/T700发动机一体化综合模型,动静态精度良好;

(2)在基于Matlab/Simulink的直/发一体化综合模型的基础上,开展了基于改进卡尔曼滤波器的发动机气路部件故障诊断研究,且发动机单部件蜕化与多部件同时蜕化估计效果良好。

[1]SUN Jianguo,Vasilyev V,Hyasov B.Advanced multi-variable control system of aeroengines[M].Beijing:Beihang University Press,2005:10.

[2]方振平,陈万春,张曙光.航空飞行器飞行动力学[M].北京:北京航空航天大学出版社,2005:11.FANG Zhenping,CHEN Wanchun,ZHANG Shuguang.Aviation aircraft flight dynamics[M].Beijing:Beihang University Press,2005:11.(in Chinese)

[3]吴森堂,费玉华.飞行控制系统[M].北京:北京航空航天大学出版社,2005:358-361.WU Sentang,FEI Yuhua.Flight control system [M].Beijing:Beihang University Press,2005:358-361.(in Chinese)

[4]申安玉,申学仁,李云保.自动飞行控制系统[M].北京:国防工业出版社,2003:150-161.SHEN Anyu,SHEN Xueren,LI Yunbao.Automatic flight control system[M].Beijing:National Defense Industry Press,2003:150-161.(in Chinese)

[5]Smith B J,Zagranski R D.Next generation control system for helicopter engines[C]//57th Annual Forum Proceedings of AHS,Washington DC:American Helicopter Society International,2001.

[6]Smith B J,Zagranski R D.Closed loop bench testing of the next generation control system for helicopter engines[C]//58th Annual Forum Proceedings of AHS,Montreal:American Helicopter Society International,2002.

[7]Christopher J.Atkinson.Rapid creation and deployment of software interfaces using Matlab Simulink [C]//AIAA Modeling and Simulation Technologies Conference and Exhibit,Colorado:American Institute of Aeronautics and Astronautics,2006.

[8]Quinn R,Sims J.Improved turbine engine performance,responsiveness, and prognostics using model based control in a hard-ware-in-the-loop simulation[C]//43rd AIAA/ASME/SAE/ASEE Joint Propulsion Conference and Exhibit,Cincinnati:American Institute of Aeronautics and Astronautics,2007.

[9]张天宏,王继业.微型涡轮发动机快速原型控制系统[J].航空动力学报,2007,22(2):274-279.ZHANG Tianhong,WANG Jiye.A rapid prototype control system for micro turbine engine [J].Journal of Aerospace Power,2007,22(2):274-279.(in Chinese)

[10]Agresti M,Csmporeale S M.An objectoriented program for the dynamic simulation of gas turbines[R].ASME 2000-GT-42.

[11]Parker K I,GUO TenHeui.Development of a turbofan engine simulation in a graphical simulation environment [R].NASATM-2003-212543.

[12]王建峰.航空发动机快速控制原型与实时仿真技术研究 [D].南京:南京航空航天大学,2011.WANG Jianfeng.Research on rapid control prototyping and realtime simulation for aeroengine[D].Nanjing:Nanjing University of Aeronautics and Astronautics,2011.(in Chinese)

[13]夏飞,黄金泉,周文祥.基于Matlab/Simulink的航空发动机建模与仿真研究[J].航空动力学报,2007,22(12):2134-2138.XIA Fei,HUANG Jinquan,ZHOU Wenxiang.Modeling of and simulation research on turbofan engine based on Matlab/Simulink[J].Journal of Aerospace Power,2007,22(12):2134-2138.(in Chinese)

[14]张海波,姚文荣,陈国强.涡轴发动机/直升机综合控制仿真平台设计[J].推进技术,2011,32(3):383-390.ZHANGHaibo,YAOWenrong,CHEN Guoqiang.Design of a numeric simulation platform for integrated turboshaft engine/helicopter control system[J].Journal of Propulsion Technology,2011,32(3):383-390.(in Chinese)

[15]孙立国,孙健国,张海波.基于直升机/发动机非线性综合模型仿真的增广LQR控制器设计 [J].航空动力学报,2010,25(2):471-476.SUN Liguo,SUN Jianguo,ZHANG Haibo. Augmented linear quadratic regulator controller design based on nonlinear integrated helicopter/engine model[J].Journal of Aerospace Power,2010,25(2):471-476.(in Chinese)

[16]张海波,陈霆昊,孙健国.一种新的航空发动机自适应模型设计与仿真[J].推进技术,2011,32(4):557-563.ZHANG Haibo,CHEN Tinghao,SUN Jianguo.Design and simulation of a new novel engine adaptive model[J].Journal of Propulsion Technology,2011,32(4):557-563.(in Chinese)

猜你喜欢

涡轴卡尔曼滤波C语言
基于深度强化学习与扩展卡尔曼滤波相结合的交通信号灯配时方法
脉冲星方位误差估计的两步卡尔曼滤波算法
基于视情维修的涡轴发动机维修保障辅助决策体系研究
基于Visual Studio Code的C语言程序设计实践教学探索
涡轴发动机燃烧室设计技术及发展趋势
51单片机C语言入门方法
卡尔曼滤波在信号跟踪系统伺服控制中的应用设计
基于C语言的计算机软件编程
基于递推更新卡尔曼滤波的磁偶极子目标跟踪
高职高专院校C语言程序设计教学改革探索