胡海峰,鲍福廷,魏 瀚,蔡 强,刘 旸
(西北工业大学航天学院,西安 710072)
固体火箭发动机工作过程复杂,在其研制过程中以试验为基础来验证发动机设计是否合理,考核和检验发动机及推进剂的各项性能[1]。随着试验技术和自动采集技术的飞速发展,需要处理的数据量日益庞大,迫切需要一套集数据处理、绘图、分析为一体的科学分析计算方法。
鉴于试验成本高昂以及传统试验数据处理途径所获得的信息有限,因此,采用先进的计算机技术和软件技术,融合专业特点,针对不同类型试验数据的特定处理,以及对试验数据所包含信息进行深度挖掘,毫无疑问是一项极其必要的工作。另外,在传统试验处理方法体系中,设计人员缺乏对试验异常、故障数据上的判读能力,往往依据经验或假设做出判断,故而对异常、故障产生的机理、诱因缺乏深入探索,无法从中获得足够信息去改进设计,类似问题往往多次出现,从而使设计水平得不到根本性提高。因此,有必要集成各种算法和经验模型,对试验数据中的异常进行深入分析,对隐含信息进行深度挖掘,辅助设计人员一方面排除异常,另一方面通过对异常机理的研究提高设计水平。
目前主流的数据处理软件很多,如SPSS、Origin、Matlab等。作为通用软件它们都具有强大的数据处理分析功能,但在固体火箭发动机这一专业领域,该类软件很难满足专业分析需求。文中以R语言为计算内核,探索固体火箭发动机试验数据处理及异常诊断的分析方法。
试验数据处理分析需要有广泛的数学处理方法支持,经典的统计理论指导,发动机专业知识支撑。文中在此基础上分三个层次组织该分析系统。
1.1.1 数据层
数据层提供了各种数学处理方法、统计理论模型等基础层面的支撑。包括常用的数理统计方法,如计算样本的均值等刻画样本特征的功能;同时也包括遗传算法、神经网络、傅里叶变换、小波分析等在试验数据处理中用到的各种分析方法;图形显示部分的基础功能库也在这一层次规划中。
1.1.2 基础层
处在专业层和数据层之间,是连接这两个层的纽带,基础层包括设计门户,它采用通用数据库访问技术实现对数据层的直接访问,并维护后台数据结构。通过基础层可以将核心逻辑与对数据层的具体操作相隔离,保障平台与具体数据库类型的无关性,从而提高平台对用户实际运行环境的适应能力。基础层的算法逻辑完全运行在服务器上,为专业层提供服务,实现分析平台的关键基础功能。
图1 固体火箭发动机试验数据分析系统框架组织图
1.1.3 专业层
分为通用应用层和专业应用层。通用应用层即常规的数据处理功能,比如数据的排序、求均值、方差、标准差、散度等,结合数据层提供的各个方法,能够对数据进行滤波、剔除奇异值、拟合曲线等常用功能;同时包括模型化图形输入功能的实现,用户拖动相关图标简单的连线完成某种分析功能。模型化图形输入方式封装了复杂的程序实现过程和繁琐的用户操作,使用者能够方便快捷、简单直观的分析数据。专业应用层是在通用应用层的基础上延伸发展的,主要规划为固体火箭发动机点火阶段试验数据处理、特征量辨识、内弹道仿真、异常诊断等功能模块。该层次处在系统框架的最顶端,是针对固体火箭发动机专业应用的终端。
数据分析是指在搞清楚数据的内部构造基础上,从这些数据中找出自己想要的信息的方法。数据挖掘是指从庞大的数据中找出所需要的信息。两者之间很接近,都是把数据作为研究和处理的对象,把找到所需信息作为目标的研究手法。就其本身而言,数据分析主要是基于统计学的数据处理,而数据挖掘则主要着眼于计算机数据处理。固体火箭发动机的价格和试验费用昂贵,一个型号的固体火箭发动机在研制过程中往往只能进行很少的几次试验,可供发动机内弹道性能指标统计用的样本数较小,得到的分析指标误差相应较大。因此开展对有限试验数据的挖掘就显得比较重要。
试验数据分析以试验得到的测试数据为分析对象,数理统计提供的数学理论方法为支撑,以火箭发动机专业特色为理论背景,探索性研究挖掘所给试验数据隐藏的规律,实现对已有试验数据的分析及挖掘。文中基于以上考虑,初步规划了如图2所示的数据分析原理图。
首先导入数据,然后分析是进行通用处理或是专业处理,即为应用层的具体实现,处理过程中用到数据层的知识库、方法库、模型库、自定义方法等支撑。最后是结果输出,包括图形及文档。
随着计算机技术的迅速发展,现代统计方法解决问题能力的深度和广度都有了很大的拓展。尤其是在试验数据处理方面。R语言是用于统计分析、绘图的语言和操作环境[2]。该语言的语法表面上类似 C,但在语义上是函数设计语言的(functional programming language)的变种,并且对Lisp以及 APL有很强的兼容性。特别是它允许在“语言上计算”(computing on the language)。R语言的功能包括:数据存储;数组运算工具(其向量、矩阵运算方面功能尤其强大);完整连贯的统计分析工具;优秀的统计制图功能;简便而强大的编程语言。R语言在统计上强大的分析能力使得在其基础上开展数据处理分析的研究变得简单,同时开发者能够集中精力在专业模型的建立而非底层数学功能的实现。但是R语言也有缺点,如作为解释性语言其代码执行效率较低。对于处理发动机试车试验得到的海量数据可能耗时较多。因此在用VC和 R混合编程软件实现时,通过两种方式,一种是通过R提供的API函数调用R的底层函数,另一种是R调用VC程序提高R的执行效率再将结果返回。这两种方式能有效的结合R和VC的优势,为数据处理提供底层的数学支持和功能保障。
所谓模型化图形输入是指软件提供了一些按功能分类的基本的系统模块,用户只需要知道这些模块的输入输出及模块的功能,而不必考察模块内部是如何实现的,通过对这些基本模块的调用,再将它们连接起来就可以构成所需要的系统模型,进而进行分析。
综上所述,国外各学者的研究主要是从管理的视角出发,建立组织架构,同时糅合多领域多学科理论基础,将知识服务有机有效定位于市场,满足市场中用户对知识的需求,拓展和丰富知识服务的内涵和作用,利于知识服务的后续研究。国内学者的研究更多地将知识服务限定于情报或信息领域,研究路径局限于提出问题分析问题解决问题,理论基础相对薄弱。
模型化图形输入的实现首先是对模型功能的定位,对于固体火箭发动机试验数据分析,文中规划了六类功能,即数据输入输出、图形展示、数据展示、专业分析、通用分析、用户交互接口。专业分析包括内弹道仿真、系统参量辨识、异常诊断等,通用分析包括对样本数据的统计特征量的计算等,交互式功能主要是为了方便用户对软件内部功能的调用,即二次开发接口。按照上述的分析,采用OCX技术将这六类功能分别作为不同的图形模块。具体如图3所示。
图3 试验数据分析中用到的部分控件图
系统辨识是利用试验数据建立系统数学模型的技术科学,也称辨识建模[3]。具体的说,就是根据一个准则模型选择一个与试验数据拟合最好的模型。固体火箭发动机工作过程中遵循三大基本守恒定律,系统的控制方程即内弹道方程组是已知,需要辨识的是方程组中某些待定因素的变化规律和某些待定参数,因此固体火箭发动机的系统辨识是一个“灰箱”问题。对固体火箭发动机内弹道性能预示精度影响最大的是推进剂药柱燃速和喷管喉径的烧蚀偏差[4],因此本系统考虑燃烧辨识、喉径烧蚀辨识等辨识内容。对于固体火箭发动机系统辨识基本过程如图4所示。
图4 固体火箭发动机系统辨识过程
模型辨识是指模型结构形式的选择;参数估计是根据辨识准则和试验数据确定选定模型结构中的待定参数,这是系统辨识定量研究的核心,其包括辨识准则和优化算法两个部分。辨识准则是把参数估计问题转化为多元函数求极值问题。文中选择最大似然法作为辨识准则。模型检验是确认得到的数学模型能否真实反应系统的本质。
发动机的内弹道性能预示是固体火箭发动机设计的重要内容,提供的推力、流量等一系列性能参数是导弹总体进行射程计算、散布分析及导弹姿态控制的重要依据[5]。固体火箭发动机在定型时,通常需要提供发动机内弹道性能参数的统计指标(期望值和方差)[6]。目前,固体火箭发动机内弹道性能统计主要依据发动机地面试车试验数据的统计处理。由于试验经费原因,通过进行大批量实弹飞行试验得到大样本数据是不现实的。因此开展内弹道性能仿真具有重要意义。
内弹道计算的基本公式:燃烧室平衡压强:
发动机推力:
发动机流量:
发动机比冲:
推进剂质量:
根据给定的试验P-t数据,反算燃面肉厚关系,根据得到的燃面肉厚关系结合前述的内弹道计算基本公式即可得到内弹道的仿真曲线。
设喷管的喉径、推进剂的燃速系数、压强指数、特征速度和密度已知时,燃面肉厚关系可以由下面的公式迭代计算得到[5]:
为验证上述分析方法的有效性,以某高空模拟发动机试验数据为分析对象,对其进行内弹道仿真分析。
首先将采集的数据导入,如图 5所示,图中所示推力和时间均为无量纲化后数据。由图形可以看出,试验数据较为理想,但是在点火启动及拖尾段有毛刺,数据有波动。采用傅里叶变换后,得到该段时域信号的频谱如图6所示。由图发现,该段频谱的有效信息在低频段,高频部分为干扰或者噪声。
采用低通滤波的方式对该试验数据进行处理,得到滤波后的测试曲线如图7所示。由图可以看出,滤波后待分析的原始试验数据连续性更好。
图8所示为采用上述方法仿真得到的结果和实测试验数据的对比图。由图可以看出,在整个发动机工作过程中,仿真结果和试验曲线吻合比较好。在平衡段中,仿真结果和试验测得结果误差绝对值最大为3.21%,具体见图 9。在拖尾段,内弹道仿真分析结果和试验测得值偏离很大。在拖尾段推力出现一个小的上升。这是因为,高模试验当燃烧室压强低于环境压强时引射器失效,因此燃烧室内部测试压力出现波动。仿真的结果整体逼近实测数据较好,说明仿真得到数据可以作为该发动机的内弹道计算曲线。利用该方法可以准确预示发动机的内弹道性能。
图9 平衡段仿真结果与原始试验数据误差曲线
文中研究探索固体火箭发动机试验数据分析中的具体问题,提出了以R统计语言环境为基础支撑的分析方法。为验证方法的有效性,开发了相应的系统平台,该平台引入模型化图形输入方式,实现对试验数据的交互式操作分析。经过实践得到如下结论:
1)在R语言基础上开展数据分析软件的开发,能够有效的利用R统计环境提供的丰富统计功能及数学处理方法,为试验数据分析提供了良好的底层保证。在此基础上开发固体火箭发动机试验分析系统,能够定制专业的分析工具,为理论分析、工程设计提供有力工具。
2)模型化图形输入操作模式,它提供一个动态系统建模、数据处理、仿真综合分析集成环境。在该环境中,无需大量书写程序,而只需要通过简单直观的鼠标操作,就可实现对试验数据的分析。适应面广、分析流程清晰。
3)内弹道仿真结果在平衡段与试验测得结果最大偏差为3.21%,说明分析模型的准确性。
[1] 冯喜平.固体火箭发动机地面试验测量系统研究[J].固体火箭技术,2009,32(6):702-705.
[2] 汤银才.R语言与统计分析[M].北京:高等教育出版社,2008.
[3] 方丁酉,张为华.固体火箭发动机内弹道学[M].长沙:国防科技大学出版社,1997.
[4] 庞建国.固体火箭发动机喉径变化规律辨识[J].导弹试验技术,2006(4):1-3.
[5] 何景轩.固体火箭发动机内弹道性能仿真[J].固体火箭技术,2004,27(1):20-21.
[6] 庞建国.固体火箭发动机内弹道性能Monto Carlo数字化仿真[J].导弹试验技术,2009(1):14-16.