APP下载

空间操控航天器试验运控语言研究

2016-04-13高永明

装备学院学报 2016年1期

高永明, 李 磊

(1. 装备学院 信息装备系, 北京 101416; 2. 装备学院 研究生管理大队, 北京 101416)



空间操控航天器试验运控语言研究

高永明1,李磊2

(1. 装备学院 信息装备系, 北京 101416;2. 装备学院 研究生管理大队, 北京 101416)

摘要空间操控航天器试验运控任务是在实时/近实时约束的天地协同操作背景下完成的一类复杂任务。这类任务具有实时要求高、约束关系复杂、精细程序高、自主性和协同性强等特点,根据这些特点,通过对比分析国内外航天试验运控语言研究成果,自主设计并实现了一套面向空间操控航天器的试验运控语言及其运行支撑系统,重点突破了语言转换/编译、语言运行调度及仿真验证技术。最后通过搭建仿真系统和设计典型试验运控任务,对语言系统总体设计及关键技术进行了初步验证。

关键词空间操控航天器;试验运控语言;编译技术;调度技术

Control Language of Space Manipulation Spacecraft Experiment

GAO Yongming1,LI Lei2

(1. Department of Information Equipment, Equipment Academy, Beijing 101416, China;2. Department of Graduate Management, Equipment Academy, Beijing 101416, China)

AbstractAs a whole, test and operation of space manipulation are one kind of complicated tasks in the background of space-earth collaborative operation in real time/near real-time constraint. These tasks feature high requirements on real time operation, complicated constraint relations, high degree of fineness, high degree of autonomous and collaboration, etc. According to these features, through contrastive analysis on the space test and operation language researches home and abroad, a set of test manipulation languages aiming at spatial manipulation of spacecrafts and relevant operational support systems has been designed and realized, significant breakthrough has been made in the respect of language conversion/compilation, operation scheduling and simulation techniques. Finally, the paper makes primary verification on the overall design and key techniques of the language system through building up a simulation system and designing typical test manipulation tasks.

Keywordsspace manipulation spacecraft; experiment control language; compiling technology; scheduling technology

进入21世纪以来,各主要航天国家都在大力发展空间技术,尤以空间操控航天器和在轨服务试验为核心的空间操控技术为代表。空间操控技术具有协同性、精细性和实时性等特点,而传统航天器的试验运控模式难以满足其试验运控需求,因此需要一种新的既能适应现有航天试验体制和技术体系,又能满足空间操控需求的运控模式,其核心是建立一套以航天器试验运控语言为核心的试验运控系统。美国宇航局根据“阿波罗”计划的经验,设计了面向航天器控制的实时高级编程语言HAL/S[1-2];美国接口与控制系统公司于20世纪80年代开发了一套基于规则的航天器命令语言[3];Draper实验室为国际空间站开发了基于Timeliner系统的用户接口语言[4-5];中国西安卫星测控中心设计了一种面向卫星测控的航天器控制语言[6-7]。这些语言系统都不同程度地提升了航天试验运控能力,但真正适应未来天地协同条件下精细操控的试验运控语言及其运行支撑系统目前还处于技术探索或实验验证阶段。通过对目前国内外航天试验及其语言系统实现技术的研究,从服务未来空间操控技术试验的角度,设计了基于元模型、基本模型和扩展模型的多层次语言模型,解决了航天试验的应用拓展问题;同时对语言系统结构、基本语法、扩展语法及文件规范进行了详细设计,解决了语言系统的规范性问题;最后结合实际应用,重点对语言转换/编译、语言运行调度和仿真验证3个方面的关键技术进行了介绍,并结合仿真实例进行了初步验证,可为我国未来空间在轨自主服务技术演示验证试验提供技术参考。

1空间操控航天器试验运控问题分析

1.1试验运控任务分析

空间操控航天器试验运控任务系统主要分为空间操控系统、测控系统和地面系统。其中空间操控系统是空间操控任务的实施者,根据空间操控系统所装配的不同操控机构可以完成在轨维修、燃料加注、模块更换等各种操控任务。虽然空间操控航天器试验运控任务系统与传统航天任务系统有着相似的系统组成,但是试验运控任务系统中具有的多种执行器,以及地面系统具有的任务规划、资源管理、人机交互等复杂功能,使得空间操控航天器试验运控任务系统的工作模式与传统航天任务系统发生了很大改变。首先,试验运控任务中存在着多种约束关系,主要包括了天地协同约束、任务协同约束和资源协同约束,需要考虑任务间、资源间的复杂约束关系,很难通过人工编制计划来满足约束关系。其次,试验运控任务中需要的操作事件多,计划工作模式不能满足实时根据操作结果对任务进行调整的需求。

1.2试验运控语言需求

根据对空间操控航天器试验运控任务的分析,可以知道支撑试验运控任务的语言系统应该具备任务规划描述、控制程序转换、适应不同用户、兼容现有系统等功能,具体功能需求为:

1) 支持任务规划调度。为了满足运控系统对任务计划的管理要求,需要提供任务规划功能,因此需要在试验运控语言内提供任务规划过程中对各规划要素的描述方法,并支持对规划结果的描述。

2) 支持控制程序生成。为了提高任务效率、减少人工操作、提高可靠性,在任务规划完成后应当自动生成试验运控控制程序。

3) 适应不同用户应用。试验运控任务有多个领域的人员参与,不同领域人员的关注点不同,对问题的描述不同,试验运控语言应该对不同领域提供支持。

4) 兼容现有运控系统。为了保持试验运控语言对传统航天任务的支持,试验运控语言应与现有系统相兼容,同时提供对试验运控任务的支持。

2空间操控航天器试验运控语言总体设计

图1 试验运控语言模型框架

2.1试验运控语言模型

目前地面试验运控各个岗位分工很细,负责试验任务规划和负责试验控制的是不同的岗位,而且他们对于任务的关注点有很大区别;同时试验任务规划程序、试验控制程序和航天器在轨任务规划调度程序的定义及描述也有很大的不同,需在试验运控语言设计时考虑该问题。为此提出包含元模型、基本模型和扩展模型3个层次结构的试验运控语言模型(如图1所示),以适应未来不同层次的应用。其中,元模型主要面向控制人员支持对控制程序的描述;在元模型的基础上通过通用航天任务基本模型和试验运控扩展模型分别支持对传统航天任务及试验运控任务的描述。

试验运控语言元模型主要对航天器控制程序的定义和形式化描述,包括了控制程序所需的基本关键字、数据类型、表达式、语句等。通用航天任务基本模型和试验运控扩展模型是一个以活动为核心的集合,通过将任务分解为基本的操作活动建立相应的操作集、指令集,配合相应的控制模式来对任务进行描述。其中,试验运控扩展模型是对通用航天任务基本模型的扩充。

2.2试验运控语言设计

1)语言结构设计。试验运控语言采用了bundle-sequence-subsequence三级结构,其中bundle是最小的可执行单元,一个bundle中可以包含一个或多个sequence和subsequence。所有的结构都以结构关键字开始,以close与结构关键字结束。一个可用的试验运控脚本中包含至少一个bundle,且在执行前必须加载bundle,否则bundle中包含的sequence和subsequence将不能被调用。

2) 基本语法定义。试验运控语言的基本语法定义对应了试验运控语言元模型,支持了对试验运控程序的控制描述。试验运控语言的语句格式为:

Keyword[ …]

试验运控语言提供了5类28个关键字(如表1 所示),提供了数据类型定义、结构定义、流程控制、过程控制和目标系统指令支持等功能。其中,数据类型定义在4种常用基本类型基础上,增加了表示字符串的string类型和表示时间的time类型;流程控制提供了一般的分支结构,同时提供了面向时间的流程控制,如when、whenever和every。试验运控语言提供了基本的数据运算符、关系运算符等操作符(如表2所示)。

表1 试验运控语言关键字

表2 试验运控语言操作符

3) 扩展语法定义。试验运控语言扩展语法是在试验运控语言基本语法定义的基础上,面向任务规划人员对以活动为中心的通用航天任务基本模型和试验运控扩展模型进行描述。主要包括活动类型、状态集合、资源集合和约束关系集合。分别以关键字ACTIVITY、STATEVAR、RESOURCE定义活动类型、状态集合和资源集合,约束关系集合定义在ACTIVITY内部的RESERVATION中。在ACTIVITY中有6个默认参数:开始时间(STARTTIME)、持续时间(DURATION)、结束时间(ENDTIME)、优先级(PRIORITY)、状态资源约束(RESERVATION)和活动关系约束(CONSTRAINT),此外还可以定义自定义参数(PARAMTYPE)。通过这些参数可以描述活动的起止时间、各种约束关系以及特殊的参数变化。在STATEVAR包含了3个参数:状态值(STATE)、转换关系(CHANGE)以及初始值(DEFAULT)。在RESOURCE中包含2个参数:资源类型(TYPR)和资源容量(TYPR)。

4) 文件规范定义。试验运控语言文件分为2种:试验运控脚本文件和模型文件。试验运控脚本文件是对应模型文件生成的控制脚本,模型文件是对目标系统的操作集描述。模型文件又包括了领域描述文件和问题描述文件。其中,领域文件描述领域内的公共信息,可重用;问题文件描述了任务目标。领域描述文件主要由3个文件组成:自定义参数文件、活动类型定义文件和资源状态文件。(1) 自定义参数文件,一般命名为namePARAME.MDL,包含了用户定义的全局参数;(2) 活动类型定义文件,一般命名为nameACTIVITYTYPE.MDL,描述该领域内的活动;(3) 资源状态文件,一般命名为nameRESOURCE.MDL,定义了领域内包含的资源和状态。

3空间操控航天器试验运控语言关键技术

3.1试验运控语言转换/编译技术

试验运控语言的转换/编译问题涉及3个方面:一是由试验运控建模语言向试验运控语言的转换问题;二是试验运控语言的编译问题;三是执行代码的自动生成问题。

1) 试验运控建模语言的转换方法。根据对试验运控语言的设计,试验运控语言采用了bundle-sequence-subsequence三级结构,而试验运控建模语言是以活动为单位进行组织的,二者都具有结构化的特点。根据这一特点,由试验运控建模语言向试验运控语言转换时可以采取由结构到结构的转换方法,实际就是为每个结构设计一个模板,当进行转换时将源程序的相应参数填入模板就可以完成转换过程。

2) 试验运控语言的编译方法。编译的目的是识别源语言,并将其翻译成与源语言在某种程度上等价的目标语言。考虑到试验运控语言的可读性、可维护性和扩展性,在实现其编译器的过程中没有采用已有的自动化工具,而采取了手工方法构建编译器。分别基于状态转换图和递归下降算法实现了词法分析和语法分析过程。词法分析的作用是读入源程序的字符串,并将字符串分割识别为试验运控语言中的词法单元。在本文中使用了状态转换图来描述词法单元的模式,并以此进行词素的识别。状态转换图由一组代表状态的节点和一组连接节点的有向边组成,描述在一个过程中所有状态间的转移关系。状态转换图具有一个初始状态作为入口,若干个接受状态作为结束状态。在匹配过程中,当出现一个字符串符合多个模式时,以所匹配的模式中最长的为准,即在状态转换图中以深度优先为匹配原则。为了区别关键字与标识符,为关键字单独建表,每识别一个标识符就查询一次关键字表。语法分析的作用是验证识别的词法单元串符合语言的语法规则,同时构建一颗描述源程序结构、语义的语法树供后续使用。语法的结构比词法的结构复杂很多,使用了表达力更强的上下文无关文法[8-9]来描述语法的模式,在语法结构中大量存在着由自身组成自身的递归情况,根据这一特点,使用了递归下降算法[10]来处理语法的识别过程,为了提高识别效率,采用向前看的方式,因为这时只要将公共部分提出作为一个产生式,就可以只向前读入一个符号即匹配到唯一产生式。

3) 执行代码生成方法。试验运控语言提供了一个最小指令集,只包含了空指令(null)、表达式(expr)、条件跳转(ifnotjump)、跳转(jump)和返回(return)5条指令。与一般的指令集相比,最小指令集将操作数相关的操作都并入了表达式指令中。执行代码的生成同样是基于模板的。比较特殊之处是对表达式的处理。表达式在语法树中以运算符为根节点,操作数为叶子节点,处理时以先根顺序处理左子树,然后以相同步骤处理右子树并将值赋予左子树,最后返回左子树的值。

3.2试验运控语言运行调度技术

试验运控语言的设计基础是以活动为单位来组织任务过程,一个试验运控任务会被划分为若干个活动,经过编译后生成的执行代码也是以活动为单位进行组织的,因此就需对活动的执行时间、顺序等进行调度控制,使得活动的执行能满足任务要求。通过对最早截止期优先调度(Earliest Deadline First,EDF)算法[11]在优先级和资源控制2个方面的改进,可提高运行效率。

资源控制是为了解决因为对资源竞争而引起的优先级反转,当低优先级任务占用资源将导致高优先级的任务因等待资源而阻塞,同时由于低优先级任务容易被抢占,使得阻塞的高优先级任务长时间等待,引发调度失败。在资源控制协议中,规定所有需要占用某个资源的任务中最高的优先级称为该资源的最高限度优先级。只有当资源为空闲,且该任务的优先级高于当前任务集的最高限度优先级或者该任务已经占有一个最高限度优先级与当前任务集最高限度优先级相同的资源时,任务可以占用这个资源。否则,若是占用资源的任务优先级低于提出请求任务的优先级,那么占用资源的任务继承提出请求任务的优先级,当该任务释放资源时,恢复其原来的优先级。

4空间操控航天器试验运控语言仿真验证

4.1试验运控语言运行支撑系统

图2 试验运控语言运行支撑系统

为了对试验运控的过程进行模拟仿真,并对试验运控语言的关键技术进行仿真验证,设计和实现了试验运控语言运行支撑系统,如图2所示。系统主要由4部分组成:编译环境、执行环境、共享数据库和仿真验证软件,试验运控语言运行支撑系统涵盖了试验运控任务从建模、生成控制程序到执行的全过程。各分系统间通过文件或网络交换数据。编译环境提供建立模型、编辑代码的编辑环境,由模型生成控制程序的控制程序生成器和编译代码的编译器;执行环境接受编译生成的中间文件,并通过解释器生成执行指令,有调度器进行执行调度;共享数据库存储了任务相关信息;仿真验证软件根据执行器状态进行相应显示。试验运控语言运行支撑系统工作流程如图3所示。

图3 试验运控语言运行支撑系统运行流程

4.2试验运控任务仿真

试验运控语言的设计主要是面向试验运控任务的,同时兼顾了传统航天任务,其典型应用场景以空间操控为主。为了验证试验运控语言的能力,针对典型试验运控任务进行了仿真。

以美国轨道快车任务为例,首先通过分析任务系统的执行能力,以试验运控建模语言建立目标系统的操作集;在设定了系统的初始状态后对任务过程进行了规划,同时将规划结果转换生成了试验运控控制程序;最后执行器加载控制程序并予以执行。

图4a)显示的是试验运控建模语言的建模过程,描述了系统每个活动的具体参数;图4b)显示的是根据规划结果转换生成的试验运控控制程序。在任务的仿真过程中,假设任务中突发状况,临时调整了任务目标,插入了3个活动,试验运控语言运行支撑系统对任务进行了重新规划、执行。图5a)为调整任务前一时刻的执行情况,图5b)为调整后的执行情况。

a) 试验运控语言建模

b) 试验运控控制程序图4 试验运控语言建模、编辑/转换运行界面

a) 试验运控语言规划前结果

b) 试验运控语言规划后结果图5 试验运控语言调度执行界面

5结 束 语

空间操控航天器试验运控任务由于其实时要求高、约束关系复杂、精细程序高、自主性和协同性强等特点,对试验运控及其运行支撑系统提出了更高的要求。本文在对比分析国内外航天试验运控语言研究成果的基础上,自主设计并实现了一套面向空间操控航天器的试验运控语言及其运行支撑系统,并通过典型试验运控任务的过程仿真,初步验证了试验运控语言的正确性和有效性,可服务于未来在轨自主服务任务。

参考文献(References)

[1]United Space Alliance.HAL/S language specification:US 003088 [P].2005-11-23.

[2]MARTIN H,任新潮.HAL/S用于航天飞机的编程系统[J].导弹与航天运载技术,1988(3):36-49.

[3]MIMS T L.Use of spacecraft command language for advanced command and control applications[EB/OL].(2011-09-23)[2015-03-28].http://ntrs.nasa.gov/search.jsp.

[4]BROWN R A.Automating space operations using timeliner and ADEPT[R].Houston:AIAA ATS2005,2005:4-11.

[5]SWANTON D R.Integrating timeliner and autonomous planning[D].Boston:Massachusetts Institute of Technology,2006:1-74.

[6]杨永安,余培军.基于SCL的航天器遥操作平台设计与实现[J].宇航学报, 2006, 27(3):438-441;473.

[7]杨永安,余培军, 张武光,等.面向航天器控制的专用语言及编译程序设计[J].计算机工程, 2006,32(12):247-249.

[8]潘培琛.一般上下文无关文法的一个分析算法[J].北京大学学报,1989,25(5):615-625 .

[9]周应权.非LL(1)文法的一种改写方法[J].湘潭大学自然科学学报,1991,13(2):166-170.

[10]刘磊,黄毅.用递归下降方法实现自底向上的语法分析[J].吉林大学学报,2004,22(3):267-272.

[11]张杰,杨富民,卢炎生.EDF实时调度算法中的关键问题求解[J].华中科技大学学报,2009,37(10):1-4.

(编辑:李江涛)

中图分类号TP314

文章编号2095-3828(2016)01-0080-06

文献标志码A DOI10.3783/j.issn.2095-3828.2016.01.017

作者简介高永明(1972-),男,副教授,硕士生导师,主要研究方向为空间操控任务规划、航天地面软件。gym1701@163.com

基金项目国家“863”计划资助项目

收稿日期2015-05-26