法律状态公告日
法律状态信息
法律状态
2019-04-23
授权
授权
2016-09-21
实质审查的生效 IPC(主分类):G06F17/30 申请日:20160329
实质审查的生效
2016-08-24
公开
公开
技术领域
本发明属于航空、航天试验技术领域,具体涉及一种发动机试验数据全自动化提取与Word报告生成方法。
背景技术
火箭发动机试验的最终目的是获取试验数据。但数据获取的可靠性、及时性是火箭发动机试验成功的保证与对发动机性能做出有效分析与评估的必要条件。
目前,由于火箭发动机试验的特殊性和保密性,新制定的试验数据报告中振动极大值的统计缺乏高效、标准化的处理方式,还是依赖手动的方式进行。现有的手动方式的具体做法是:1.启动LMSTest.Lab Rev 9B的Desktop-Advanced软件,将所采集的数据工程文件打开。2.手动将Navigator视图下Name栏中的N个参数(N>0)中的任意1个拖到1×1平均频谱图形显示窗口中。3.设置1×1平均频谱图形的X轴频率坐标范围,然后手动标记该坐标内的极大值,记下该极大值对应的频率,并将一对频率与极大值进行保留位数处理后,手动填写到制作的Word报告中。
该方式的不足之处是:1)每次试验振动参数个数少则三四十,多则翻倍。比如四十个发动机参数,每个振动参数标五个突频点并假设只处理五段频谱,则一共需要手动统计一千点,统计好后还需将统计值填到Word报告中,需要消耗的时间成本可想而知,而使用软件算法控制快速高效。2)随着统计数据的增多手动标记振动极大值容易出错且容易误标到工频点上,并给事后检查修改带来较大不便,而 依赖编写的软件算法获得的数据准确、可靠。3)技术人员不能快速获取振动突频数据,不利于对发动机性能进行快速评估与分析。
发明内容
为了解决背景技术中的问题,本发明提供一种发动机试验数据全自动化提取与Word报告生成方法,摆脱了手动标记极大值点进行繁琐操作的限制,解决了航天发动机试验中振动极大值统计与排版效率低、数据处理不可靠以及试验后获取实测振动突频数据效率低的问题。
本发明的具体技术解决方案如下:
本发明提供了一种发动机试验数据全自动化提取与Word报告生成方法,包括以下步骤:
1)创建数据处理系统;所述数据处理系统包括数据提取模块、数据转换模块、数据处理模块以及报告生成模块;
所述数据提取模块用于提取txt格式文档中的第n列参数名和第n至m列的数据列;所述数据列包括每个参数名对应的频率列、幅值列、相位列;
所述数据转换模块用于将txt格式的数据转换为csv格式的数据;
所述数据处理模块用于连接关系型数据库并在用户设定的频谱区间内统计原始txt文档中参数对应数据列的极大值并写到一个新的文本文档中;
所述报告生成模块用于将获取的极大值自动生成word报告;
2)运行步骤1)所述的系统,并在系统中加入关系型数据库;
3)采集发动机振动系统中所有dat格式的数据并生成原始txt文档;
4)极大值的获取;
4.1)创建第一临时文档;所述第一临时文档格式为txt格式;
4.2)调用数据提取模块提取原始txt文档第n行参数名以及第n到m行数据列,并写入到第一临时文档中;
4.3)调用数据转换模块将第一临时文档转换为csv格式的第二临时文档;
4.4)创建数据格式为csv的第三临时文档;将第二临时文档中数据逐行读入数组队列中,循环遍历第二临时文档中每行数据并调用数组队列获取列数据的方法将获取的有效列写入到第三临时文档中;所述有效列包括第二临时文档中第一个参数名的频率列和幅值列以及第2到第N个参数名的幅值列;
4.5)创建数据格式为txt的第四临时文档;调用数据提取模块分别提取原始txt文档的参数名和第三临时文档中的数据列并写入到第四临时文档;
4.6)在关系型数据库中创建临时数据表;所述临时数据表的表结构的第一列为频率列,第2到N+1列为参数名;
4.7)将第四临时文档中数据插入到临时数据表中;
4.8)创建字符串数组;数据处理模块连接所述关系型数据库,调用数据提取模块提取第四临时文档中参数名写入到字符串数组中;所述字符串数组的长度为N;
4.9)创建数据格式为csv的结果文本文档;循环N次在所述临时数据表中执行任意指定区间段内极大值的SQL语句得到频率、幅值的结果集,循环读取结果集数据的第一列、第二列数据写入结果文本文档中;
所述任意指定区间段指用户在软件界面任意输入的频率范围;
所述SQL语句是指从数据表中在任意设定的区间的约束条件下将步骤4.8)中所述的字符串数组中的最大值调用求取最大值函数筛选出来并生成下一次嵌套SQL查询的约束条件;并将生成的约束条件逻辑与任意设定的区间作为第二次查询的第一约束条件,在所述临时数据表中以频率为降序排序作为第二约束条件执行查询频率、幅值的SQL语句;
5)创建word文档,将获取的极大值录入到word文档中,通过报告生成模块自动生成word报告。
上述步骤5)的具体步骤如下:
利用FreeMarker技术将制作好的Word文档中的频率、幅值替换为对应的占位符并生成.ftl格式的文件,可以任意指定保存路径;读取该路径下的.ftl格式的文件,读取原始txt文档中的参数名,写到Word文档中指定的第一列位置,读取结果文本文档中频率、幅值数据列分别写到Word文档中参数名对应的第二、三列,通过报告生成模块自动生成满足试验要求的Word报告。
上述数据提取模块包括提取第n行数据模块、提取第n到m行数据模块;
所述提取第n行数据模块用于读取txt文档中的第n行参数名;
所述提取第n到m行数据模块用于读取txt文档中第n到m行数据列。
发明的优点在于:
1.本发明提供的方法将求取火箭发动机振动频谱极值并生成报告这项工作完全自动化,大大减轻数据处理人员负担。
2.本发明提供的方法极大提高数据处理效率,如一次试车有四十个发动机参数且含三段发动机工作时间,根据大量实测统计,工作效率可以从原来的至少6小时/人次降低到约3分钟/人次,工作效率可以提高约一百二十倍。
3.更为重要的是,在每次试验结束后,本发明提供的方法可以帮助数据分析人员快速准确地获得发动机参试部位的振动数据,对发动机的性能评估及故障诊断提供极其重要的参考。
4.此外,本发明提供的方法可将振动极大值获得的准确率提高到100%,保证了试验数据的可靠性。
附图说明
图1为本发明方法的流程图。
具体实施方式
本发明为了摆脱手动标记极值点进行繁琐操作的限制,可以任意设定所要统计频谱极大值区间,可获得良好的交互性体验,并保证获得的火箭发动机试验数据的高效性、可靠性,提出了一种方法,如图1所示,该方法的具体流程如下:
步骤1)创建数据处理系统;该数据处理系统包括数据提取模块、数据转换模块、数据处理模块以及报告生成模块;
其中,数据提取模块包括用于提取txt格式文档中的第n列参数名和第n至m列的数据列;
其中,数据列包括每个字符串对应的频率列、幅值列、相位列;数据提取模块包括两个子模块,分别是提取第n行数据模块、提取第n到m行数据模块;
具体来说,提取第n行数据模块用于提取txt文档中的第n行参数名;提取第n到m行数据模块用于提取txt文档中第n到m行数据列。
数据转换模块用于将txt格式的数据转换为csv格式的数据;
数据处理模块用于连接关系型数据库并在用户设定的频谱区间内统计原始txt文档中参数对应数据列的极大值并写到一个新的文本文档中;
报告生成模块用于将获取的极大值自动生成word报告;
步骤2)运行步骤1)所述的系统,安装Java应用程序运行必须的JDK软件并配置环境变量;并在系统中加入关系型数据库;其中需要说明的是:关系型数据库可以是MySql数据库,还可以是Oracle数据库或SQLServer数据库或Access数据库等;
步骤3)将振动采集系统采集的dat格式的数据生成原始txt文档;具体做法是:将振动采集系统采集的dat格式的数据用其软件算法在对数据处理得到平均频谱后,选择Navigator视图下Name栏中 N个参数(N>0)中的任意M(M≤N)个,右键选择Export to->Text->重命名为xxx.txt(即原始txt文档)
步骤4)极大值的获取;
步骤4.1)创建第一临时文档;所述的第一临时文档格式为txt格式;
步骤4.2)调用数据提取模块中的提取原始txt文档第n行参数名以及第n到m行数据列,并写入到第一临时文档中;
具体来说,利用提取第n行数据模块来提取txt文档中的第n行参数名;利用提取第n到m行数据模块来提取txt文档中第n到m行数据列。
步骤4.3)调用数据转换模块将第一临时文档转换为csv格式的第二临时文档;
具体的转换过程为:
调用数据提取模块中提取第n行数据模块读取第一临时文档的txt格式数据;替换文本中的所有的" "为",",并写入到第二临时文档中;
步骤4.4)创建数据格式为csv的第三临时文档;将第二临时文档中数据逐行读入数组队列中,循环遍历第二临时文档中每行数据并调用数组队列获取列数据的方法将获取的有效列写入到第三临时文档中;
其中,有效列包括第二临时文档中第一个参数名的频率列和幅值列以及第2至第N个参数名的幅值列;
步骤4.5)创建数据格式为txt的第四临时文档;调用数据提取模块分别提取原始txt文档的参数名以及第三临时文档中的数据列并写入到第四临时文档;
步骤4.6)在关系型数据库中创建临时数据表;所述临时数据表的表结构的第一列为频率,第2到N+1列为参数名;
步骤4.7)将第四临时文档中数据插入到临时数据表中;
步骤4.8)创建字符串数组;数据处理模块连接所述关系型数据库,调用数据提取模块提取第四临时文档中参数名写入到字符串数组中;所述字符串数组的长度为N;
步骤4.9)创建数据格式为csv的结果文本文档;循环N次在所述临时数据表中执行任意指定区间段内极大值的SQL语句得到频率、幅值的结果集,循环读取结果集数据的第一列、第二列数据写入结果文本文档中;
具体做法是:
SQL语句是指从数据表中在任意设定的区间的约束条件下将步骤4.8)中所述的字符串数组中的最大值调用求取最大值函数筛选出来并生成下一次嵌套SQL查询的约束条件;并将生成的约束条件逻辑与任意设定的区间作为第二次查询的第一约束条件,在所述临时数据表中以频率为降序排序作为第二约束条件执行查询频率、幅值的SQL语句;
需要说明的是:为解决有些情况下幅值的最大值不唯一问题,需要将查询记录限定为一条;如果原始数据中幅值数据使用科学计数法 表示,为设定其最终极值数据精度问题,需要在本次SQL查询设定频率、幅值有效位数。
步骤5)创建word文档,将获取的极大值录入到word文档中,通过报告生成模块生成word报告。其具体步骤如下:
利用FreeMarker技术将制作好的Word文档中的频率、幅值替换为对应的占位符并生成.ftl格式的文件,可以任意指定保存路径;读取该路径下的.ftl格式的文件,读取原始txt中文档中的参数名,写到Word文档中指定的第一列位置,读取结果文本文档中频率列、幅值列分别写到Word文档中参数名对应的第二、三列,通过报告生成模块自动生成满足试验要求的Word报告。
其中,FreeMarker技术中文含义为福瑞马克技术,它是一个用Java语言编写的模板引擎,它基于模板来生成文本输出。
根据上述方法,本案申请人设计出一套软件系统专门用于快速获取发动机振动突频并生成Word报告,具体做法如下:
1】用户登录到振动突频全自动化提取与排版软件后,点击“文件系统”子菜单中的导入数据项目,在弹出的对话框中选择原始txt文档所在路径,点击“导入”按钮后,程序会自动将所选路径设定到软件系统中,导入成功后,会有“导入成功...”字样的提示,否则,会有会有“导入失败...”字样的提示。
2】原始数据导入成功后,点击“数据处理”视图中的“特征提取”按钮,利用程序编写的算法对数据进行处理。处理过程中,在“信息提示”界面会显示软件处理过程中间关键环节的打印信息,如所选 各个参数的名称与参数个数等,并有处理进度条来显示当前数据处理的进度。
3】点击“文件系统”子菜单中的“生成报告”项目,会出现“生成报告”对话框,在“信息提示”界面会有“生成报告成功...”提示,在对话框中输入文件名信息后,点击“保存”按钮后,对话框退出。报告文件会被保存到与原始数据文件所在的同一级目录下。
机译: 自动化报告生成方法
机译: 自动化报告生成方法
机译: 自动化报告生成系统和方法