史璐莎,耿 瑩
(中國科學院空間應用工程與技術中心,北京100094)
載人航天空間站階段將開展多領域的空間科學研究、空間應用和技術試驗[1]。 依托禮炮號空間站、和平號空間站和國際空間站,蘇聯、俄羅斯、美國、日本和歐洲航天國家已開展大量的空間應用任務研究[2],中國也在天宮二號空間實驗室上完成了部分應用任務試驗[3]。 相對于天宮二號,中國空間站的應用任務領域更多、體量更大。
空間站任務規劃以美國最為系統化,已形成了較為完善的任務規劃概念體系,成功應用于國際空間站[4]。 國內林鯤鵬[5]提出了空間站長期運營任務方案離散事件仿真方法;羅曉燕[6]提出了以松耦合架構構建多任務集成能力的有效載荷任務仿真系統;邱冬陽等[7]提出了啟發式規劃方法和基于并行計算的問題求解方法;卜慧蛟[8]系統地研究了空間站在軌任務規劃技術,除此以外,牟帥[9]、李劍等[10]都針對中國空間站開展了任務規劃研究。 但目前國內的研究均未應用于中國空間站的實際運營,規劃結果的可行性未得到驗證。 本文的目的是對任務規劃結果進行逆向驗證,以任務規劃結果作為輸入,研制基于高層體系架構的空間站應用任務分布式仿真驗證系統,對應用任務過程進行仿真,從而支持應用任務規劃結果的驗證評估。 同時,空間站應用任務仿真驗證系統也是空間站地面虛擬鏡像系統的重要組成部分。
空間站應用任務之一是進行多學科領域的科學實驗、應用新技術試驗和空間應用試驗。 應用任務涉及空間生命科學與生物技術、微重力流體物理和燃燒科學、空間材料科學、微重力基礎物理、空間地球科學及應用和空間應用新技術試驗等8 個領域[1]。 不同領域應用任務差異較大,即使相同領域應用任務在項目申報中描述顆粒度也各不相同。 在已確定應用任務必要性的基礎上,忽略其本身的科學意義和任務過程細節,對各個領域應用任務統一分析與建模,有利于應用任務的規劃和仿真。
空間站應用任務的影響因素如圖1 所示,主要包括空間環境因素影響、發射任務、可用資源、有效載荷、航天員、任務規劃結果序列等條件的影響。

圖1 空間站應用任務的影響因素Fig.1 Influencing factors of the space utilization mission
空間環境因素的影響為應用任務成功實施所需的環境條件,包括空間站軌道、姿態、大氣、微重力、輻射、磁場等;發射任務包括空間站艙段、載人飛船和貨運飛船的發射,為應用任務實施提供場所、實驗環境、所需資源、有效載荷等;可用資源包括艙段可用資源和實驗柜可用資源,指應用任務實施過程中需消耗的水、電、散熱、氣體供應等,受應用任務執行情況的影響和發射任務影響;有效載荷是應用任務實施的關鍵,分為實驗樣品、實驗裝置、實驗設備、返回樣品、廢棄物等,具有一種或多種工作模式,運行時消耗資源;航天員影響執行過程中需要航天員操作配合的應用任務,航天員上下行計劃、作息計劃和工作類型預先指定,應用任務需根據航天員進行調整;任務規劃結果序列作為整個仿真系統的運控輸入,包括任務運行計劃和載荷上下行計劃,為仿真系統的運行大綱。
綜上,空間站應用任務的仿真涉及多學科、多領域,復雜度高,采用常規仿真方法通常難以實現,而基于高層體系架構(High Level Architecture,HLA)的分布式仿真已成為解決這類問題的主要方案之一[11]。 同時,基于HLA 的分布式仿真還具有可重用、可擴展等優勢。
HLA 是美國國防部于1995 年提出的實現分布式仿真的中間件。 根據IEEE1516.X 標準,HLA包括HLA 規則、對象模型模板、HLA 接口規范、聯邦開發和運行過程(Federation Development and Execution Process,FEDEP)4 部分。 其中FEDEP為美國國防建模與仿真辦公室公布的用于開發分布交互式仿真系統的軟件工程方法。 根據IEEE1516.3 標準,FEDEP 的基本內容包括7 個步驟,這些步驟將需要解決的問題從抽象的邏輯概念初步轉化為具體的物理實現[12],對于確定在聯邦開發過程中的關鍵任務具有重要的指導意義,其基本內容如表1 所示。

表1 FEDEP 模型的基本內容Table 1 The basic content of FEDEP
依據空間站應用任務分析結果與實際任務運行場景,設計仿真想定,識別其中參與者與關鍵變量,開發聯邦概念模型。 仿真場景想定如圖2 所示,場景中主體包括運控、載荷、航天員、飛船、艙段、資源持有者、環境、監控、應用任務。 其中,載荷、航天員、飛船、艙段和應用任務均對應相應的實體;環境包括空間站軌道、姿態、大氣、微重力、輻射、磁場等;資源提供者包括艙段和實驗柜;運控對應任務規劃結果;監控對應仿真過程的觀察者和記錄者。
分析聯邦仿真劇情中的角色,可分為:長期運控、短期運控、運輸、任務、載荷、資源、航天員、環境和監控9 種。 基于HLA 的設計仿真框架如圖3所示,包括應用任務仿真數據庫和仿真聯邦兩部分。 數據庫存儲應用任務數據及聯邦初始化數據,仿真聯邦包括長期運控成員、短期運控成員、運輸類成員、任務類成員、載荷類成員、資源類成員、航天員類成員、環境類成員和監控類成員9 大類,對應仿真劇情中的9 類角色。

圖2 仿真場景想定Fig.2 Simulation scenario

圖3 空間應用任務分布式仿真框架Fig.3 Distributed simulation framework of space utilization mission
仿真系統以運控成員為推動方,控制整個時間軸上的事件。 其中長期運控成員解析任務規劃結果中的載荷上下行規劃,控制仿真時間軸上的載荷、飛船、艙段上下行;短期運控成員解析任務執行計劃,控制任務的開始;運輸成員仿真飛船和艙段的發射和回收過程;任務成員仿真任務運行過程,包括運行過程中所需要使用的載荷、航天員,主動占用載荷、航天員;載荷成員是一個被動的成員,響應運輸成員的狀態、任務狀態,修改自身屬性;資源成員也是一個被動的成員,響應載荷對資源的占用情況,修改自身屬性;航天員成員根據自身作息規律作息,并根據運輸成員狀態和任務狀態修改自身屬性;監控記錄仿真過程中載荷、資源、航天員超限的情況及環境不滿足的情況;環境成員仿真空間站運行環境,實時計算空間站的位姿、大氣、微重力條件、太陽輻射、日月位置、磁場等。
應用任務仿真數據庫如圖4 所示,應用任務仿真數據庫存儲聯邦配置參數、應用任務參數和仿真過程參數,按應用任務仿真的顆粒度需求進行設計。 聯邦成員從數據庫讀取聯邦配置參數和應用任務參數,完成聯邦成員初始化;存儲聯邦運行過程中的數據,用于結果分析和仿真過程重現。以上設計保證規劃和仿真數據的一致性。
空間站應用任務規劃和仿真建模時,需要忽略任務本身的科學意義,集中關注任務的頻次、持續時間以及過程中可能受到的影響,如此可將各領域應用任務抽象為統一的任務過程模型。
應用任務分解模型如圖5 所示。 為了適應離散仿真系統的需求,將應用任務分解為子任務,同一個主題的應用任務按子項或頻次劃分子任務;子任務再進一步分解為階段,子任務按過程中所需載荷、資源、航天員、環境要求劃分階段。
應用任務按上述方式進行分解后,存儲在數據庫中,供仿真時聯邦的初始化。

圖4 應用任務仿真數據庫Fig.4 Database of utilization mission simulation

圖5 任務分解模型Fig.5 The model of mission decomposition

圖6 聯邦成員靜態模型Fig.6 The static model of federate
聯邦成員的靜態模型如圖6 所示,表明了聯邦成員模板、基礎類和聯邦成員間的依賴和繼承關系。 其中,聯邦成員模板XXFedTemplate 依賴讀數據庫類XXDataReader、寫數據庫類XXDataWriter和工具類XXUtils,按RTI 編程規范編寫,完成基于HLA 的集成,實現各類聯邦成員的框架功能。 基礎類XXDataReader 讀取數據庫中的聯邦成員配置參數和任務參數; XXDataWriter 將仿真過程中的數據寫入數據庫中; XXUtils 為核心算法和其它支撐功能。 聯邦成員模板XXFedTemplate 滿足聯邦成員的可重用性,聯邦成員XXFed1、XXFed2 和XXFedN 繼承XXFedTemplate,實現具體的功能。各類成員詳細建模說明如下:
1)任務成員繼承模板MisFedTemplate,模擬任務開始、中斷、繼續、結束的運行過程。 任務運行流程如圖7 所示。 任務成員從數據庫中讀取指定的任務信息,包括任務代號、任務分解的子任務、子任務的各階段持續時間、各階段所需的載荷及工作模式、航天員、環境需求等,完成聯邦成員的初始化;任務聯邦成員在接收到子任務開始信號后,與自身信息進行匹配,若匹配成功,則按子任務所需的階段提出載荷、航天員、環境需求,并根據自身階段信息進行計時,若在計時結束前未收到中斷信號,則該階段成功,進入下一階段,收回上一階段的載荷、航天員、環境需求,發布新的需求并計時,直到整個子任務完成;若在計時過程中收到中斷信號,則判斷能否中斷,可以中斷的保存當前狀態并進入中斷,停止計時,不能中斷則判定任務失敗;接收到任務繼續信號時,從保存的狀態開始繼續計時,直到子任務完成。 聯邦成員運行過程中,實時往數據庫中寫入當前運行情況,供后續分析和回放。

圖7 任務成員運行流程Fig.7 The running process of MisFed
2)運輸成員分為艙段、載人飛船和貨運飛船3 類,繼承TransFedTemplate,模擬艙段、載人飛船、貨運飛船的上行以及載人飛船和貨運飛船的下行。 運輸成員從數據庫中讀取艙段/飛船的上下行計劃和運輸能力參數,完成自身的初始化設置。 隨著仿真時間推進,運輸成員在計劃的時間節點處發出上行/下行信號以及上行/下行完成信號,以便搭乘該艙段/飛船的載荷、航天員、資源成員修改自身狀態。 同時,運輸成員對外發布自身運輸能力,以便監控成員判斷是否超出質量或體積限制。
3)載荷成員繼承模板PayFedTemplate,模擬一組載荷的狀態變化。 載荷成員運行流程如圖8所示。 載荷成員從數據庫中讀取指定的載荷數據,包括載荷代號、名稱、上下行信息、工作模式、各工作模式消耗的資源情況等,完成載荷成員的初始化;接收到待上行信號后,與載荷代號進行匹配,若匹配成功,則修改載荷狀態為正在上行,待接收到上行成功信號后,修改狀態為已上行;接收到載荷占用需求信號時,若載荷為空閑狀態,則修改載荷狀態為占用,并根據所需的工作模式,發布載荷的資源需求;接收到載荷釋放信號時,修改載荷狀態為空閑,并停止發布資源需求;接收到載荷待下行信號時,與載荷代號進行匹配,匹配成功則修改載荷狀態為下行中。
4)資源成員繼承模板ResFedTemplate,模擬實驗柜和艙段2 類實體資源變化情況。 初始化時從數據庫讀取各自擁有的資源總量。 運行時根據運輸成員的上下行、載荷所需資源調整資源剩余狀態。

圖8 載荷成員運行流程Fig.8 The running process of payFed
5)航天員成員繼承模板AstroFedTemplate,模擬航天員乘組狀態。 初始化時從數據庫讀取各自上下行計劃、作息計劃和技能信息。 運行時根據運輸成員的上下行和應用任務的需求,調整乘組內航天員的狀態。
6)運控成員分為長期運控和短期運控。 長期運控成員LOCFed 解析任務規劃結果中的載荷上下行規劃并發布。 短期運控成員OCFed 解析任務規劃結果中的任務運行序列,發布子任務開始、中斷、繼續、結束信號。
7)環境成員EnvFed 模擬空間環境。
8)監控成員MonitorFed 監控載荷、資源、航天員的情況,作為判斷任務規劃結果是否可行的依據。
對象模型模板(Federation Object Model,FOM)包括對象類和交互類,兩者沒有明確的界限,即用對象類表示的交互信息也可用交互類來表示,反之亦然。 但通常狀態下,對象類用于表示對象的屬性或狀態的信息,交互類用于表示成員間相互通信的信號。 聯邦成員建模完成后,根據聯邦成員間的交互信息,建立FOM 表,并用程序語言開發FomUtils 包作為公用類,便于后續聯邦開發。 FomUtils 包對應于FOM 表中的對象類和交互類,如圖9 所示。

圖9 FomUtils 包Fig.9 FomUtils package
在時間推進的分布式仿真系統中,為保證計算結果的正確性,需確保各節點按正確的時序執行。 本系統采用的策略是保證在一個仿真周期內無閉環,即在同一個周期內,某一個聯邦成員發布的消息經過其它聯邦成員處理后生成反饋消息,該成員不會在該周期內對其進行處理。 為了達到該目的,對聯邦成員加入聯邦的時序進行控制,如圖10 所示。

圖10 仿真時序圖Fig.10 Simulation timing
選取空間生命科學與生物技術、微重力流體物理、空間材料科學領域的10 個科學實驗任務作為原型系統的對象,開發原型系統。 要求選定的10 個應用任務存在時間、載荷、資源、航天員等方面的競爭關系及載荷上下行需求,以便于任務規劃結果的驗證。 選取空間站位于同一個艙段的10 個應用任務作為系統的仿真目標。
原型系統采用MySQL 數據庫作為配置參數和應用任務參數數據庫,MongoDB 數據庫作為仿真過程數據庫,并開發數據庫訪問接口。
原型系統仿真聯邦包括11 個運輸類成員、1個長期運控成員、1 個短期運控成員、3 個資源類成員、12 個載荷類成員、4 個航天員類成員、10 個任務類成員、5 個環境類成員和8 個監控類成員,共計55 個成員。
原型系統在選定的10 個應用任務規劃結果的驅動下已成功運行,圖11 為任務運行的甘特圖。 從圖中可看出,在該任務規劃下存在時間重疊的子任務,如表2 所示。
對時間重疊子任務運行過程中載荷、航天員、資源情況進行如下分析:
1)1 號時間重疊中子任務N-03-01、N-04-01與后2 個子任務不存在載荷交叉和資源沖突;子任務N-06-02 與子任務N-07-01 存在載荷P-18、P-19 交叉,但交叉載荷可支持2 個任務并行,如圖12 所示;4 個子任務運行過程中最多需要1 個航天員,不存在航天員沖突。

圖11 任務運行甘特圖Fig.11 Gantt chart of mission operation
2)2 ~5 號時間重疊中子任務中的4 個子任務間不存在載荷交叉和資源沖突;不存在航天員沖突。
3)6 號時間重疊中子任務中的N-03-01、N-04-01、N-10-01 與其它子任務不存在載荷交叉和資源沖突;子任務N-01-01、N-02-01 存在載荷P-12、P-13、P-24 交叉,但交叉載荷可支持3 個及以上任務并行;5 個子任務運行過程中最多需要2個航天員,不存在航天員沖突。

表2 時間重疊子任務Table 2 Node mission overlapped in time

圖12 載荷可支持任務并發數Fig.12 Concurrent mission number that payload supported
4)7 號時間重疊中子任務中的N-10-01 與其它子任務不存在載荷交叉和資源沖突;子任務N-01-01、N-02-01、N-02-02 存在載荷P-12、P-13、P-24 交叉,但交叉載荷可支持3 個及以上任務并行;4 個子任務運行過程中最多需要3 個航天員,不存在航天員沖突。
綜上,仿真結果表明應用任務的規劃結果可行。
針對空間站應用任務仿真這一多領域復雜問題,本文設計了一種基于HLA 的分布式仿真框架。
1)將聯邦仿真劇情中的角色分為長期運控、短期運控、運輸、任務、載荷、資源、航天員、環境和監控9 種,與角色對應建立9 類仿真聯邦成員。
2)將應用任務分解為子任務,子任務再進一步分解為階段;對每類聯邦成員建立聯邦成員模板XXFedTemplate 以滿足聯邦成員的可重用性;采用在一個仿真周期內無閉環的策略保證各節點按正確的時序執行。
3)基于選定的10 個科學實驗任務開發了仿真驗證系統,結果表明,各任務在運行過程中無載荷、資源、航天員沖突,應用任務規劃結果合理可行。 仿真系統能夠很好地支持應用任務規劃結果的驗證。
4)原型系統結果表明規劃結果排布比較松散,仍然存在優化的空間。 后續將在原型系統基礎上擴展,支持更多數量的應用任務仿真,并開發仿真顯示界面,以便更加直觀地監控仿真運行過程。