APP下载

IPL:运载火箭测试数据自动判读语言

2022-03-22连彦泽何信华李鹏程徐华丽

遥测遥控 2022年2期
关键词:测试数据表达式专用

连彦泽,何信华,李鹏程,徐华丽,赵 雷

(1 中国运载火箭技术研究院 北京 100076 2 北京宇航系统工程研究所 北京 100076)

引言

近年来,我国多个无毒无污染的新一代运载火箭先后研制成功,圆满完成了以载人航天、月球探测、火星探测为代表的航天重大工程发射任务,标志着我国进入空间的能力达到了世界先进水平。新一代运载火箭技术采用了多项新技术以提升运载能力,其中海量数据采集处理与存储技术主要用于新一代运载火箭设备工况与健康状态的实时监测,并产生了海量的测试数据[1]。

测试数据的完整性与正确性是评估运载火箭性能与可靠性的重要依据与指标,也是工程人员进行判断与决策的重要基础。新一代运载火箭测试数据的主要特点为数据种类多、采样密度大、采集时间长,测试数据涉及数千甚至上万个参数,每个参数的采集密度大,采集频率从50 Hz 到500 Hz 不等。如何快速地对海量测试数据的完整性与正确性进行判读与确认,是必须要解决的问题。

传统模式下有两种测试数据判读的方法[2],一种是采用人工模式逐参数逐数据点对数据进行判读与确认,该模式需要全程人工操作与人工判读,工作量大,判读效率低,误判、漏判的风险高[1,3]。另一种是采用计算机编程的方式进行自动判读,即将各个参数的判读规则通过计算机编程的方式固化至软件中,通过软件实现自动判读。计算机编程的方式能够解决人工判读的问题,但存在适应性、扩展性、复用性差的问题。一方面,如果有新增判读参数、修改判读参数的情况,则需要对相关程序代码进行修改,判据的计算系数、计算公式与模型、或参数的指标要求发生了变化,也需要对相关程序代码进行修改;另一方面,同一型号运载火箭中存在多个参数判读方法相似的情况,以及不同型号运载火箭的参数判读方法相似的情况,不同型号的同类型判读参数或同一型号下的相似参数均需要独立的程序代码段实现自动判读,无法实现判读方法或模型的复用。因此,计算机编程的方式难以适应测试数据的各类变化需求,扩展性与复用性不足。

为改进现有手段方法的不足,本文提出一种运载火箭测试数据自动判读语言IPL(Interpretation Language),使用工程人员能够理解的语法对运载火箭测试数据的判读规则(又称为测试判据)进行描述,并在此基础上实现了自动化的测试数据判读。IPL 语言是一种面向工程人员的领域特定语言,该语言统一了各火箭型号测试判据的描述规则,通过形式化描述的方法解决了运载火箭测试判据难以准确描述与定义的问题,具有很好的变化适应性、可扩展性与可复用性,减轻了工程人员的学习成本,提高了判读效率。IPL 语言已在多个新一代运载火箭型号的工程实践中得到成功应用,使得海量测试数据的判读在分钟级即可全部自动完成,极大提高了运载火箭测试数据判读的效率与准确性。

1 领域特定语言

领域特定语言DSL(Domain-Specific Language)[4]定义为针对某一特定领域,具有受限表达性的一种计算机程序设计语言,包含四类关键要素,分别为可供计算机执行的计算机程序设计语言,描述连贯表达能力的语言性,用于解决非完整系统问题的受限表达性,使其值得应用的针对领域。DSL 提供了一种抽象,基于这种抽象来思考领域问题,更易于表达领域行为,效果远胜于依据底层构造进行思考的模式。

国内外学者在特定领域研究设计了许多种领域特定语言。如在空间机器人控制领域[5]应用较多的空间机器人控制领域特定语言,允许低门槛编程空间机器人控制系统,实现了便捷操纵遥控操作、协同操作和自主操作,减轻操作员的人力劳动强度;在航天器测试领域,空间航天器测试领域特定语言子集CATOL(China Aerospace Test and Operation Language)[6]以简洁的语法和清晰的操作语义,能够完成航天器各项测试流程的编程,基于该领域特定语言配套实现的CATOL 测试原型系统,促进了国内航天器测试的标准化工作;在仿真模型领域,往往需要繁琐地建模和基于物理模型的编程,美国Boeing 公司制定了基于XML 标准的仿真参考标记语言SRML(Simulation Reference Makeup Language)[7],作为简化仿真模型领域模型重用与集成过程的领域特定语言,以标记语言描述性的方式对仿真模型进行约束,提升了建模速度、模型复用能力以及复查效率;仿真互操作标准组织制定了军事想定重用仿真领域特定语言,基于XML Schema 定义的MSDL 标记规范[8],不仅提高了军事想定重用性和相关仿真系统人机操作性,还克服了想定与专用仿真系统紧耦合的问题;针对软件系统需求分析阶段自然语言描述易出错、繁琐的问题,LUCAM(Language of Use Case to Automate Models)特定领域语言[9]通过格式化文本的用例需求以及半自动化生成用例图、类图、时序图等对需求进行描述;在写缓存一致性特定领域,Teapot领域特定语言[10]被用于改善并行和分布式系统中共享数据产生本地副本时的灵活性和性能;类Python语法的Vivaldi 领域特定语言[11]被用以解决大体量图像数据处理的高性能并行编程传统问题,并且支持个性化定制可视化和高吞吐图像处理应用,如图像渲染和图像分割;经典的“节点-弧”图形渲染领域特定语言工具Graphviz,Web 设计特定领域中样式语言CSS,构建程序编译步骤的领域特定语言工具Make等[4],均在各自特定领域从底层代码实现中,为抽象出业务行为逻辑的形式化描述起到了明显的简化作用。

由此可见,国内外学者、研究机构、公司组织等在业务特定领域通过设计,实现领域特定语言及基于此的计算机软件工具,为提高工作效率、降低人工工作量、减少主观参与带来误操作和漏操作等做了大量工作,并取得了长期回报和有益效果。但现有领域特定语言或计算机辅助软件工具往往针对特定业务行为领域,难以直接照搬到航天运载火箭测试数据的判读与分析领域,运载火箭产生的大量测试数据亟需高效判读分析工具与现有人工参与为主的低效处理模式矛盾日益突出,因此有必要设计针对运载火箭测试数据判读分析的领域特定语言。

2 判据的形式化定义

准确定义并描述测试数据的判读规则(又称为判据)是实现数据正确判读的前提。传统模式下,工程人员采用自然语言对判据进行描述并作为相互沟通的载体,由于自然语言的多义性、结构松散、形式复杂多变、逻辑关系不明显等特点,会造成工程人员之间对判据理解不一致,进而可能导致判读错误、火箭状态误判等严重的后果。形式化定义[12]可从形式语言角度固化描述,以表达精确的判读规则含义。形式语言是按一定规律构成的句子或字符串的有限或无限的集合,采用形式文法进行描述,形式文法定义了合法语句的结构组成,并指明连词成短语和连词成句的规则。现行主流的形式语法系统是Chomsky于1959 年为描述自然语言而提出的一种理论模型[13],这种理论对计算机科学有着深远的影响,特别是对程序语言的设计、编译方法和计算复杂性等方面有指导作用。以下是形式文法的理论定义,其中G为形式文法:

VN:称为文法G的非终结符号字母表,是一个非空有限集,它的每一个元素称为非终结符号,VN不出现在G所表示的语言集合的句子中;

VT:称为文法G的终结符号字符表,是一个非空有限集,它的每个元素称为终结符号,G所表示的语言的句子由VT 中的元素组成,VN ∩VT=∅;

S:是一个非终结符号,称为开始符号,S∈VN;

P:代表一个有限产生式集合,每个产生式的形式为α→β,α∈VN,β∈(VN ∪VT),开始符号S至少必须在某个产生式的左部出现一次。对于各左部相同的产生式,形如α→βi,i=1,2,…,n,合并表示为α→β1|β2|β3……,箭头表示“定义为”、直竖表示“或”,两者均属于元语言符号。

本文引入了形式语言的方式对航天测试数据的判据进行形式化定义和描述,一方面通过形式化定义来统一工程人员之间描述判据的语言,实现对判据的精确描述;另一方面,判据的形式化定义是实现基于IPL 语言的运载火箭测试数据自动判读的基础。

3 自动判读语言IPL

运载火箭测试数据的判读既具有一般数据判别的通用特征,也具有运载火箭领域的独有特征。以本文第二节介绍的形式文法为理论基础,设计了IPL 语言的文法及其形式化定义。IPL 语言既支持通用参数判读所必备的常见数据类型、数据结构、条件循环等语言描述要素,也具备运载火箭测试数据判读特有的时序操作算子、数据点运算、特征点判据等专用语言描述要素。

3.1 IPL 语言组成

IPL 语言的基本组成示意如图1 所示,由常量、变量、运算符、标识符、表达式、参数代号和语句等组成。其中常量定义了判据执行过程中值不能被改变的量;标识符是用来标识对象名称(变量、函数、矩阵等)的有效字符序列;表达式是构成语句的基本单元,时段、处理公式、判据公式、误差等判据描述均需要使用表达式;参数代号用于唯一标识一个参数,可以用用户标识符或字符串常量描述;语句是判据的基本组成单元,一个判据文件包含一条或多条判读语句,每条语句以“;”标识结束。

IPL 语言中的标识符、判读语言表达式不仅定义了通用数据计算常用的关系、条件、循环表达式,还封装定义了运载火箭测试数据领域的领域特定表达式,如用于批数据运算的矩阵表达式、用于构建指令映射关系的翻译表表达式以及绘制判读曲线的理论曲线表达式等;类似地,判读语言语句也定义了数据判读专有语句,如判读数据点完整性的数据完整性判读语句、加载用于对照的理论曲线点的理论曲线加载语句以及和指令参数相关的指令参数判读语句等。

通过设计顶层封装的数据判读领域特定表达式或语句,能以符合判读业务逻辑的抽象语句来描述业务过程,使得工程人员只需要关注判据逻辑,按照形式化的判据描述来规范编写判据程序,提高判据编写效率和质量,而抽象语句底层的封装实现对于工程人员是透明的,减轻了工程人员的学习成本,同时也为运载火箭测试数据自动判读软件的实现提供了可能。

3.2 IPL 语法定义

3.2.1 运算符

运算符是语言中的基本组成要素,通过运算符组成表达式、语句等复杂要素进而实现各类语义的表达,IPL 语言中共定义了20 个运算符。

3.2.2 关键字

IPL 语言中规定了有特定的用途和含义,预先定义不可用作变量名的23 个关键字,包括通用型和专用型关键字。运载火箭测试数据判读领域专用型关键字部分如表1所示,包含了用于时序采点、参数取值、判据标识等判读过程常用操作对应的领域专用关键字。

表1 专用关键字对照表Table 1 Special keyword cross reference table

3.2.3 函数

IPL 内置了用于数学计算的常用函数,用于数据及判据的计算与建模,同时支持通过function 关键字自定义参数。内置函数与自定义函数是构成表达式、用于计算与建模的重要组成部分。

3.2.4 表达式

IPL 封装了用于时段取值、处理公式、判据公式、误差分析等专用表达式,见表2。通过专用表达式和通用表达式的结合可方便工程人员高效编制判据。

表2 部分专用表达式对照表Table 2 Comparison partial table of specificity expressions

3.2.5 语句

结合运载火箭测试数据判读业务需求,组合IPL 通用表达式和专用表达式为IPL 语句,进一步构建测试数据的判据。将IPL 专用语句按用途分别列出部分定义类专用语句、配置类专用语句、时段类专用语句和其他判据类专用语句,见表3~表5。

表3 定义类部分专用语句对照表Table 3 Cross reference partial table of specific statements of definition class

表4 配置类部分专用语句对照表Table 4 Cross reference partial table of specific statements of configuration class

表5 时段类部分专用语句对照表Table 5 Cross reference partial table of specific statements of time period class

续表5

3.3 IPL 语言解析与执行器

基于领域特定语言IPL的形式化定义及语义描述,实现了能够解析IPL 语法的语言解析与执行器,共包括预处理程序、词法扫描器、语法分析、语义解析及语句执行等六部分[13],IPL 语言解析与执行器实现原理如图2 所示。

判据编写完成后,和待判的参数数据一并作为解析与执行器输入,通过预处理、扫描、词法解析、语法分析、语义解析、语句运行等对待判参数数据点进行判读,并将判读结果汇总以图表形式输出判读结果。

4 自动判读语言IPL 应用

以某型运载火箭测试采集到的测试数据(参数代号为X)进行正确性判读为例,设参数X的待判三个时段:“起飞0~500 s”、“起飞501 s~1 000 s”、“起飞1 001 s~1 500 s”,判读参数X待判三个模拟时段内的模拟理论值分别为Ref1、Ref2、Ref3,且待判允许绝对值误差上限分别为3、2、1。参数X理论曲线和参数X的某次试验实际曲线如图3 所示。

图3 中三段实线曲线为参数X在待判时间段内的理论曲线,点划虚线为参数X测试数据绘制的实际曲线,横坐标为起飞时(单位s),纵坐标为参数X的试验值。根据三段待判模拟时段的允许绝对值误差上限得出起飞1 250 s~1 500 s 内参数X的值超差。

4.1 IPL 多时段理论值判读

应用IPL 语言对待判参数X进行判读,针对不同时段具有不同理论值的特点,选用表8的多时段理论值判读语句,根据判据编写多时段判读IPL 程序:

经专用编译器语法分析、语义解析后转为机器语言执行输出结果如表6 所示,通过简洁的IPL 判据实现对待判参数的判读,不仅可输出包括最大误差时刻、实测误差在内的详细判读结果,还可输出相应的判读结果曲线图来辅助解读表格式判读结果,如图4 所示,其中粗实线表示理论值,细实线表示实际值。

表6 参数X 判读用例输出结果表Table 6 Parameter X interpretation case output result table

4.2 IPL 关键点判读法判读

关键点指的是运载火箭测试过程中产生重要状态变化的时间点,如起飞零点、各级分离点、关机点、点火点等,判读关键点的运载火箭状态参数对判断火箭飞行状态是否正常起到“以点带面”的关键代表作用。若仅关注研究问题中待判参数X的待判模拟时间段内各500 s 时间段末端的参数值,则可选用表8的关键点判读语句,以判读试验参数在指定关键点处是否超差来判定参数X是否异常,即判读参数X在“起飞500 s”、“起飞1 000 s”、“起飞1 500 s”点处,是否符合模拟预期值Ref1±3、Ref2±2、Ref3±1 范围,判据程序如下:

类似地,得到输出结果表格见表7,同样可以得出相应的判定结论。

表7 参数X 判读用例输出结果表Table 7 Parameter X interpretation case output result table

4.3 对比传统判读

对比领域特定语言IPL 与传统判读(传统人工判读、传统基于通用编程语言的自动判读)的判读流程、判读代码、判读代码量、判读工作量等方面,得到IPL 和传统判读方法应用于实际判读中的差异如表8 所示。

表8 IPL 和传统判读方法比对表Table 8 Comparison of IPL and traditional interpretation methods

通过对比可得到结论,IPL 判读方法具备工作量小、复杂度低、工程人员易于理解和编写等优势,相比传统人工判读和传统基于通用编程语言的自动判读方式能明显降低判读人员的工作量、代码量等,提升判读效率和判读质量。

5 结束语

自动判读语言IPL 采用了动态的具有扩展性的形式化描述方法,解决了复杂判据模型难以描述的问题,解决了判据随时间、随其他参数变化或者判据是以时间、其他参数作为输入的复杂运算函数的问题;采用了基于数据模型的形式化描述方法,解决了以多个参数为输入、经过复杂数据模型处理后的输出参数的判据描述问题,实现了支持以任意多个参数为输入,支持各类数学运算迭代和组合的判据描述,在输入参数个数与选择、判据数学模型建立方面,具备良好的动态性与可扩展性;采用了支持任意多时段的分段形式化描述方法,解决了参数按照变化规律进行分阶段、分时段进行判据描述的问题,实现了支持任意多个时段的动态扩展性。

与现有技术相比,自动判读语言IPL 解决了运载火箭测试数据的判据难以准确描述与定义的问题,克服了运载火箭测试数据判读需要通过程序硬编码实现所造成的变化适应性差与动态扩展性差的缺陷,并实现了自动化的测试数据判读,具有良好的适应性与扩展性,在多个运载火箭型号中得到了实际落地应用,对实现运载火箭测试数据判据的形式化描述,提高运载火箭测试数据判读的效率与准确性具有重要意义。自动判读语言IPL 有效提高了航天测试数据判读效率和判读质量,改善传统航天数据判读过度依赖人力以及重复性编程的工作模式,助力航天自动化和智能化。

猜你喜欢

测试数据表达式专用
沁人心脾的“香”
既有建筑结构鉴定表达式各分项系数的确定分析
灵活选用二次函数表达式
浅析C语言运算符及表达式的教学误区
测试数据管理系统设计与实现
德里女性专用车厢受青睐
基于自适应粒子群优化算法的测试数据扩增方法
空间co-location挖掘模式在学生体能测试数据中的应用
数学达人专用时钟
议C语言中循环语句