王丹 徐進 陳丹
(1 中國空間技術研究院載人航天總體部,北京 100094)(2 中國空間技術研究院,北京 100094)
飛行程序是航天器在飛行過程中為實現飛行任務所執行的指令序列,其設計過程是一個為飛行任務選擇合適的動作、狀態、執行時間、執行條件和資源分配的過程。傳統的飛行程序設計方法是:由航天器設計工程師根據飛行任務需求及航天器的各種設計約束條件,通過人工手段設計出合理的飛行程序;地面飛控實施單位根據設計的飛行程序和在軌實時測定軌的結果,生成向航天器注入的飛行程序,并由航天器研制單位檢查確認后在測控區內向航天器實施注入。由于航天器設計狀態的復雜,一個功能可能需要多個分系統協同完成,緊急情況下對飛行程序的生成時間有很高的要求,且完成飛行任務的方案,尤其是故障的處理方案對測控資源有很強的依賴,在航天器飛控任務中需要投入大量的人力和物力確保飛行程序的實時性和準確性。因此,有必要改進傳統的飛行程序設計手段,研究更智能、更高效的飛行程序設計方法。
航天器自主管理是航天器發展的大趨勢[1],包括自主規劃、自主導航、自主控制、自主故障診斷等方面,NASA 從20世紀80年代開始研究自主管理技術,并于1999年在深空-1(DS-1)探測器上成功實施了自主管理試驗[2]。DS-1通過自主規劃和智能執行模塊[3]實現了將使命級的高層任務請求進行規劃、推理輸出執行任務飛行程序的目的。在DS-1的基礎上,NASA 開發了連續行為調度、規劃、執行與重新規劃(CASPER)系統[4-7],在對地觀測項目和火星探測項目中應用,實現了規劃的實時修正。國內航天器的自主管理水平也在不斷提高,目前已成功實現了自主交會對接,部分小衛星通過設計自主指令的方式實現了一定程度上的自主管理[8],但在自主規劃方面的應用較少,只對航天器自主規劃的系統框架進行了研究[9-10],并未涉及系統實現的具體方法。本文以執行交會對接任務的載人航天器為應用為背景,提出將自主規劃技術應用于載人航天器的飛行程序設計,并設計了自主規劃系統,可減輕地面飛控人員的壓力,進一步提高航天器的自主管理水平。
航天器任務規劃的主要目的是根據用戶級的任務需求,產生完成任務需求且滿足各分系統約束條件的飛行計劃,并通過一系列的飛行指令或操作實現飛行計劃,即生成飛行程序。航天器自主規劃,要求航天器通過一定的算法自動完成從使命級用戶需求到飛行程序的轉換處理。一般,自主規劃系統由知識庫、數據庫和規劃推理機3個部分組成[1],如圖1所示。

圖1 自主規劃系統模型Fig.1 Autonomous planning system model
知識庫用于描述航天器模型知識,包括航天器的構造、功能以及完成各種功能所需要執行的動作和滿足的各種約束條件。數據庫用于動態維護航天器的實時狀態,在接受初始狀態輸入后,根據飛行過程以及飛行程序的執行結果實時更新。規劃推理機接收到用戶級的任務請求后,利用知識庫的航天器模型推理可用于完成任務的動作,以及搜索對應動作的約束條件,將約束條件作為操作符,通過約束傳遞的方式搜索出所有約束條件都滿足的指令序列,約束條件的操作處理要使用的航天器狀態和資源類信息從數據庫中調取。
以交會對接為目的的載人航天器,每次飛行的主要任務安排基本是事先確定的,如入軌后要設置哪些運行狀態、經過幾次軌道機動完成交會、何時對接、何時分離、何時開展哪些在軌試驗等,無法確定的是每個具體動作的執行時機,因為這些與飛行軌道、載人航天器自主控制結果密切相關。因此,任務中的飛行程序控制,主要是根據實時測定軌數據計算航天器進出測控區的時間、交會對接的兩航天器的相對距離等信息,再根據計算得到的信息生成與上述信息存在嚴格約束的事件指令。已知的任務安排加上實時的載人航天器狀態(含軌道)數據,即是飛行程序設計的條件。我國的載人航天器飛行程序可分為以下兩部分內容。
(1)進出測控區程序:這部分飛行程序反映的是測控覆蓋情況,其功能是在載人航天器從測控區外進入測控區內時打開天地鏈路通信設備,將遙測數據從存儲模式切換到下行模式,供地面人員監視狀態。從測控區內到測控區外時執行相應的逆過程。進出測控區飛行程序只與飛行軌道和測站位置相關。
(2)執行具體任務的事件程序:這部分飛行程序與飛行任務安排相關,如軌道控制發動機開關、太陽翼控制、敏感器切換和飛行模式切換等,每一項任務又要考慮測控覆蓋條件、航天器運行狀態,即要使用進出測控區程序中的信息和載人航天器實際運行過程中產生的狀態信息。
基于上述特點,對于載人航天器,一個高級任務安排需要由哪些動作序列完成可直接在知識庫中固化,通過知識庫模型描述動作序列的約束條件,規劃推理只要完成約束條件的操作處理,可簡化規劃推理的復雜度。載人航天器的飛行程序管理和數據管理,均由數據管理分系統的中心計算機完成,航天器的狀態信息可從該計算機中的數據提取,因此載人航天器的自主規劃系統不用獨立設置數據庫模塊,只要重點設計知識庫模塊和規劃推理機。
飛行程序自主規劃系統(見圖2)由測控覆蓋計算模塊、知識配置模塊和規劃調度模塊3個部分組成。

圖2 載人航天器飛行程序自主規劃系統結構Fig.2 Autonomous planning system structure of manned spacecraft flight procedure
測控覆蓋計算模塊根據控制分系統提供的載人航天器位置,完成載人航天器與測控區相對位置的計算,作為規劃調度模塊的測控約束輸入條件。知識配置模塊為規劃系統的基礎模塊,包括指令知識庫和任務安排庫,是規劃調度模塊的知識輸入。其中:指令知識庫根據載人航天器的設計狀態,將固定時序關系的指令封裝成指令集,用計算機可理解的語言描述指令發送的約束條件;任務安排庫為事先確定的高層任務序列。規劃調度模塊作為自主規劃系統的中央模塊,可根據飛行任務安排調用指令知識庫、測控覆蓋計算結果、載人航天器的實時運行狀態,通過規劃推理得到滿足各方面約束條件的飛行程序,同時還可進行緊急故障情況下的調度管理和應急飛行程序的生成。
此外,自主規劃系統還設置了與其他分系統的數據交互接口,可從控制分系統接收載人航天器姿態軌道數據及故障狀態等相關信息,從推進、熱控、電源等其他分系統接收相應的在軌運行狀態信息。同時,為增加系統靈活性及保證飛行安全,還設置了地面直接干預的接口,可根據地面飛控人員的需要進行修改或配置。
測控覆蓋計算模塊是根據控制分系統提供的載人航天器當前位置計算其是否在地面站或中繼測控區內,并給出進出測控區的狀態信息。進出地面站和進出中繼測控區的計算方法類似,以中繼為例,具體步驟如下。
(1)從控制分系統獲取載人航天器當前的軌道位置信息,得到載人航天器在大地直角坐標系下的坐標。
(2)根據事先存儲好的中繼衛星位置信息,實時計算從當前載人航天器指向中繼衛星的矢量,以及航天器中繼天線軸向矢量,由兩矢量可計算出載人航天器可見中繼衛星的仰角。
(3)對中繼衛星觀察載人航天器的仰角進行實時判斷,當僅滿足進中繼測控區的仰角條件時,生成進測控區的狀態信息;當僅滿足出中繼測控區的仰角條件時,生成出測控區的狀態信息。進出測控區的仰角閾值,根據載人航天器的飛行軌道高度計算。
進出地面站與進出中繼測控區的計算,區別僅為仰角矢量為地面站指向載人航天器的矢量與指向地面站正上方的矢量夾角。
根據上述測控覆蓋計算,除了可以給出進出地面站、中繼測控區的狀態信息外,還可以得到當前載人航天器與每個地面站、中繼衛星的相對位置關系,作為規劃調度模塊的測控約束輸入條件。
知識配置模塊是載人航天器自主規劃要用到的與其任務、功能相關的知識,包括指令知識庫和任務安排庫兩部分。
4.3.1 指令知識庫
飛行程序是由一條條飛行指令組成的,但指令知識庫不是簡單的飛行指令羅列,而是根據飛行指令的功能、邏輯關系以及約束條件對飛行指令進行封裝,從而建立規劃調度模塊能夠識別并能正確執行的飛行指令。指令知識庫中封裝好的指令,是一個個附加有約束條件描述的指令集。
1)指令集定義
載人航天器的動作最終由指令完成,一個動作可能由一條指令獨立完成或多條指令按照固定時序共同完成,為了減少重復動作對指令的操作,將完成常用動作且存在固定時序關系的一段指令序列封裝成一個指令集,可將指令集中任意一條指令作為指令相對時的零時刻。完成指令集的封裝后,后續對指令集的操作等同于單指令。
2)指令發送條件描述
指令的發送時機受載人航天器的各種特性所約束,包括載人航天器所處軌道位置的測控覆蓋條件、與其他飛行事件的先后時序關系、某個特征點時刻、其他分系統狀態條件等方面,將這些約束條件用計算機可以理解的語言,封裝在指令(集)中,每個指令(集)定義一個指令(集)ID,指令(集)約束條件的描述形式如表1所示。

表1 飛行程序指令發送約束條件描述Table 1 Constraint conditions of flight procedure command
(1)測控約束用于描述要求載人航天器所處的測控條件,偏移量可取大于等于0 的任意值。如(CM,A,2,0,10)表示進入第2 圈、A 測站、0°仰角后10s的時刻發送該指令。
(2)協同約束用于描述指令與指令之間的協同關系,偏移量可取任意值。如(CR,LP1,-10)表示LP1指令發送前10s時刻發送該指令。
(3)特征點約束用于描述指令與特征點的協同關系。特征點包括交會對接的兩航天器相對距離特征點、航天器飛行高度等,在控制分系統中定義,由控制分系統給出特征點取值時刻;偏移量可取任意值。如定義CP001表示兩航天器相對距離100m,(CP,CP001,0)則表示在兩航天器相對距離100m 時刻發送該指令。
(4)狀態約束用于描述要求載人航天器各分系統所處的狀態,由各分系統的狀態參數取值表征。狀態參數取值可由一個或多個參數進行邏輯運算;偏移量可取大于等于0 的任意值。如(C001==0x01&&B002>4.0,0)表示要求C001參數取值為0x01,且B002參數取值大于4.0時發送該指令。
(5)絕對時間用于地面直接指定指令發送時刻,在緊急情況需要地面直接干預時使用。
4.3.2 任務安排庫
任務安排庫中設置的是事先確定好的飛行任務集合,每個飛行任務中包含若干飛行指令或飛行指令集。任務安排庫中的飛行任務,可在每次載人航天器發射前由地面依據設計狀態或在軌飛行安排進行裝訂。這些飛行任務既包括正常飛行任務,也包括各種故障或應急飛行任務,對于執行交會對接任務的載人航天器而言,主要包括以下兩方面。
(1)正常飛行任務:包括發射任務、軌道控制任務、交會對接任務、組合體飛行任務、航天員手控任務、返回任務及在軌試驗任務等。
(2)故障飛行任務:包括應急救生任務、姿態捕獲任務、交會對接緊急避撞任務及應急返回任務等。
規劃調度模塊是整個飛行程序自主規劃系統的核心模塊,可通過啟動測控覆蓋計算,并調用知識配置模塊中相應的任務安排和對應的飛行指令約束條件,完成飛行程序的規劃,并向各相關分系統分發。此外,通過檢測控制、電源、推進、熱控等關鍵分系統的健康狀態和飛行狀態,可對出現的各種緊急故障,通過終止當前任務,取消后續飛行指令,調用故障處置任務,實現飛行程序的動態管理和調度。
4.4.1 正常飛行程序規劃過程
載人航天器正常飛行程序的自主規劃流程如圖3所示,其主要過程如下。
(1)調用任務安排庫,確定當前飛行任務,讀取該項任務的全部指令(集)序列;
(2)從指令知識庫中讀取這些指令(集)的發送約束條件信息;
(3)將指令(集)的協同約束條件作為操作符,通過不停地傳遞該項約束,將有協同約束的指令按照先后關系排序,產生一個或多個以T0為相對時刻的指令序列,T0可以是測控約束點、特征點或狀態約束點;
(4)分別從測控覆蓋計算模塊、控制分系統和其他分系統獲取測控約束、特征點約束和狀態約束的條件信息,計算約束條件滿足的時刻作為T0代入第3步生成的序列;
(5)將上述計算完成的序列與測控覆蓋計算模塊的進出測控區序列,按照指令執行時刻排序,并進行綜合修正,即得到完整的飛行程序序列。

圖3 正常飛行程序自主規劃流程Fig.3 Autonomous planning flow for normal flight procedure
4.4.2 緊急故障處理
對于載人航天器,在發射、交會對接或返回過程中出現的部分故障,若處理不及時可能會危及飛行安全,甚至航天員的生命安全。例如,在返回過程中,當控制分系統出現暫時故障須中止返回時,若后續飛行程序仍執行艙段分離操作,將帶來不可逆轉的嚴重后果。針對這些緊急故障,首先要求與該類故障相關的飛行事件均安排在測控區內執行,且在有限的地面測控弧段限制下,要求地面人員迅速做出故障判斷和處理決策。
針對該項需求,規劃調度模塊增加了與控制、電源、推進等關鍵分系統的多個信息交互接口,這些分系統將不健康狀態或故障模式以故障碼的形式給出,規劃調度模塊收到編碼后,依據事先制定好的故障預案或處理策略進行故障處理,實現飛行程序的動態規劃和調度。當出現緊急突發故障或未預料的故障時,規劃調度模塊將會刪除已經規劃完成但尚未執行的飛行程序,中止后續飛行程序的規劃,只保留進出測控區程序的輸出,保證最低限度的飛行程序安排;當故障解除后,根據退出規劃時的任務完成狀態,繼續完成后續飛行程序規劃。
本文設計的自主規劃系統可由載人航天器數據管理分系統的中心計算機完成,3個組成模塊均由軟件實現,軟件需求明確,在現有載人航天器軟件的基礎上增加3個模塊是完全能實現的。其中:完整的測控覆蓋計算模塊已在交會對接任務的載人航天器模擬器上驗證,規劃調度模塊的基本思想已在對地觀測衛星上應用[10]。自主規劃系統與載人航天器上其他分系統的接口,是飛行狀態信息接口和故障碼信息接口。目前,載人航天器數據管理分系統的中心計算機已具有管理航天器遙測參數信息的功能,分系統的飛行狀態可由中心計算機從遙測參數中提取。故障碼信息的傳遞可通過載人航天器上的總線系統,以服務請求的形式提出,由數據管理分系統的中心計算機響應。
本文提出的基于自主規劃的載人航天器飛行程序設計,與傳統的飛行程序設計相比,大大減少了對地面飛控的人力、物力需求,以及飛行方案對地面測控資源的依賴,通過飛行程序和自主控制的協同設計進一步提高了航天器的自主管理水平。
以載人航天器交會對接任務的提前轉出停泊點需求為例。傳統的飛行程序設計無法滿足該需求,只能按照標稱的控制方案執行追蹤飛行器向目標飛行器接近過程,采用本文的設計方法,將追蹤飛行器的接近程序定義成指令集,并將該指令集的約束條件設計成特征點約束,特征點定義為控制分系統的進入停泊點時刻,即可實現在控制分系統滿足提前轉出停泊點的條件時飛行程序的自適應調整,為后續的對接過程節省寶貴的測控弧段。
載人航天器的返回控制過程也可以體現出本文設計的優勢。在傳統模式下,要求返回控制過程必須在測控區內執行,采用本文的設計方法,最緊急的處理程序由載人航天器自主執行,取消了該事件對測控站的約束,為飛行方案的設計提供了更靈活的條件。
航天器飛行程序對飛行任務的成敗起著非常重要的作用,目前飛行程序的設計和實施耗費著較大的資源,尤其是人力資源和測控資源,而且有限的測控資源條件對飛行方案和故障預案設計提出了反約束。本文針對載人航天器的應用背景,提出了通過自主測控覆蓋計算和指令約束條件封裝實現載人航天器飛行程序自主規劃的方法,可減少載人航天器在軌飛行對地面飛控人員、設備和測控資源的依賴。該設計通過特征點、狀態、故障碼等信息的傳遞,有效解決了飛行程序管理與控制分系統的協同問題;針對交會對接、返回等控制過程的緊急故障,實現了飛行程序的動態調度和即時自主處置。
(References)
[1]代樹武,孫輝先.航天器自主運行技術的進展[J].宇航學報,2003,24(1):17-22 Dai Shuwu,Sun Huixian.Technical overview of autonomous control and on-board data processing for spacecraft[J].Journal of Astronautics,2003,24(1):17-22(in Chinese)
[2]Pell B,Bernard D,Chien S,et al.An autonomous spacecraft agent prototype[J].Autonomous Robots,1998,5(1):29-52
[3]Muscettola N.HSTS:integrating planning and scheduling[R].San Francisco:Intelligent Scheduling,Morgan Kaufmann,1993
[4]Chien S,Sherwood R,Tran D,et al.The EO-1autonomous science agent architecture[R].Washington D.C.:NASA,2006
[5]Estlin T,Rabideau G,Mutz D,et al.Using continuous planning techniques to coordinate multiple rovers[R].Washington D.C.:NASA,2006
[6]Chien S,Rabideau G,Willis J,et al.Automating planning and scheduling of shuttle payload operations[J].Artficial Intelligence,1999,114(1/2):239-255
[7]Chien S,Knight R,Stechert A,et al.Integrated planning and execution for autonomous spacecraft[C]//Proceedings of the IEEE Aerospace Conference.New York:IEEE,1999:263-271
[8]伍保峰,李志剛,李軍予,等.面向任務的小衛星自主指令設計[J].航天器工程,2013,22(4):68-71 Wu Baofeng,Li Zhigang,Li Junyu,et al.Design of misson-oriented autonomous commands for small satellites[J].Spacecraft Engineering,2013,22(4):68-71(in Chinese)
[9]李玉慶,徐敏強,王日新.航天器自主規劃系統分析與設計[J].吉林大學學報(工學版),2007,37(6):1471-1475 Li Yuqing,Xu Minqiang,Wang Rixin.Analysis and design of autonomous control system for spacecraft[J].Journal of Jilin University(Engineering and Technology Edition),2007,37(6):1471-1475(in Chinese)
[10]代樹武,孫輝先.衛星的智能規劃與調度[J].控制與決策,2003,18(2):203-206 Dai Shuwu,Sun Huixian.Intelligent planning and scheduling system for spacecraft operations[J].Control and Decision,2003,18(2):203-206(in Chinese)