高永明, 李 磊
(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