◎中國航天系統科學與工程研究院 魏子衿 齊俊鵬 鐘雷 禹東山
◎中郵信息科技(北京)有限公司 程玲
火箭發動機試驗是保障火箭發射任務成功的主要任務之一[1],對全試驗過程實施有效地跟蹤與監控,為試驗人員及時作出決策是保障試驗成功的關鍵所在。為此,試驗團隊基于單機模式建設提出并建設了早期的發動機試驗演示系統,提供參數表格和現場視頻兩種功能展現方式,采用VB編程語言實現。隨著時代發展,現有演示系統操作效率低、功能單一、運行性能差等弊端逐漸展現出來,為解決上述問題,提出了基于網絡架構的發動機試驗演示系統。
演示系統存在于科研生產各個領域之中,一般分為面向科學研究與面向工程應用兩大類。面向科學研究的演示系統[2~7]主要特點為小而細,即該類系統無需建設為大規模分布式架構,而需提供必要的用于觀察科研細節的功能。典型如文獻2所述的5G無線仿真演示系統,其僅僅設計并實現了針對單位面積吞吐量等3項關鍵指標的可視化展示,而文獻3中描述的汽車操作穩定性試驗演示系統也重點突出了對試驗中6個指標的觀測。文獻4至7中同樣僅面向相應實驗中的關鍵環節設計。此外,上述六篇文獻中的系統均是面向單機環境。相反,面向工程應用的演示系統則具備大而粗的特點[8~12],即系統往往設計為基于網絡的分布式架構,且無需提供過多面向細節的功能。在文獻8-12所描述的系統中,均對系統的網絡結構進行了詳細的描述。文獻8中的系統主要由各類模擬裝置、控制中心與指揮中心構成,文獻9中的系統則是由演示客戶端、演示引擎、態勢信息庫和仿真引擎構成。當然,工程應用包括一些小的應用領域,如教育、宣傳等領域[13-14]。在文獻13與14中所描述的系統均是教學演示軟件,它們同樣被設計為單機架構。
對于面向工程應用領域的大型軟件系統,其基本結構一般由3個部分組成,即數據采集子系統、管理與服務子系統、前端展示子系統。三個子系統的工作流程大致為:首先由數據采集子系統采集并傳遞數據給管理與服務子系統,再由管理與服務子系統將采集數據做預處理分發給各前端展示子系統,最后由前端展示子系統通過多媒體或可視化模型的方式完成效果展示。
為此,本文構建了一套基于網絡架構的火箭發動機試驗演示系統(以下簡稱演示系統),將以往的展現方式擴充為4種功能展現方式,并提供一套較為豐富完善的管控工具和更現代化的演示體驗。

表1 演示系統子系統清單
火箭發動機試驗基地一共建造了大小試驗臺十余座,每座試驗臺由主臺、測控間、裝配間、演示間、運輸線路等多個部分組成。試驗演示系統的最終展示部分部署在演示間。系統面向的人群包括國家領導、有關單位領導、外部專家、試驗技術人員、學生以及航天愛好者。在試驗進行過程中,發動機的上千個參數及發動機的直觀狀態是科研人員關注的重點,系統需要滿足實時觀測,并提供四大展現方式。四種展現方式分別為參數表格方式、參數曲線方式、流媒體方式以及工藝圖方式。其中參數表格方式、參數曲線方式與工藝圖方式用于展示參數,流媒體方式用于展示視頻。工藝圖方式是通過程序界面繪制工具繪制出可編程的圖形界面,并在關鍵部位添加動畫效果,再由程序控制參數實現參數驅動工藝圖的實時動態展現。流媒體方式對接攝像頭流媒體數據實現音視頻實時播放。
為此,演示系統擬提供以下功能模塊:(1)數據采集功能:接收現場參數數據及流媒體數據,并轉發給演示系統服務端。(2)服務與管理功能:提供組織機構權限管理、數據采集與轉發管理、試驗基本信息管理、綜合測控管理等管理功能。(3)客戶端:提供四種展現方式給最終用戶用于觀看試驗過程。
演示系統基于上述所述的三級模式設計,將上述功能拆分為11個子系統。在數據采集部分,建設NI數據轉發系統、P6000數據轉發系統、二級流媒體服務3個子系統,傳遞由傳感器數據采集系統和流媒體數據采集系統獲取的數據。在管理與服務端,建設權限服務、數據服務、存儲服務、試驗管理平臺、綜合測控平臺5個子系統用于服務提供與系統管控。在 前端,建設桌面客戶端一體機版、桌面客戶端大屏幕版、瀏覽器客戶端等3種客戶端。表1給出了子系統清單。

圖1 演示系統空間結構示意圖
結合試驗臺實際建筑環境,決定將全部硬件設備集中部署在測控間與演示間。其空間結構示意圖如圖1所示。
基于上述空間結構,給單試驗臺配備如下硬件資源:(1)測控間:數據轉發服務器2臺、流媒體服務器1臺、應用服務器2臺、存儲服務器1臺、交換機2臺;(2)演示間:交換機1臺、路由器1臺、防火墻服務器1臺、一體機數臺、大屏幕投射PC機3臺,監控PC機數臺。其中一體機、監控機的數量由各演示間根據實際情況作調整。(3)其它:主干交換機1臺、機柜、網線、不間斷電源等。
試驗臺的網絡結構拓撲圖如圖2所示。通過1臺核心交換機連通測控間與演示間,3臺子交換機連通數據轉發網絡、管理與服務網絡以及前端演示網絡。表2給出了各子系統與各硬件之間的部署關系。
軟件部分設計為由3個數據轉發子系統、5個管理與服務子系統及3種客戶端組成,各軟件系統的功能描述如表3所示。

表2 子系統與硬件部署關系
各子系統間的工作流如圖3所示。

圖2 試驗臺網絡結構拓撲圖

圖3 子系統間數據與控制流
其中數據流在權限服務、綜合測控平臺指向試驗管理平臺的通道為權限、試驗配置與運行狀態數據,在其他通道為參數數據與流媒體數據。控制流在權限服務指向各子系統的通道為權限控制,在綜合測控平臺指向各子系統為程序運行狀態控制。
在數據服務的描述中,數據服務傳遞數據直接面向全部客戶端與存儲服務,會帶來一定的開銷。系統采用組播的方式,利用交換機的中轉性能實現帶寬流量的有效控制。

表3 軟件功能描述
演示系統主要基于.net技術棧實現,采用其它對等的技術棧也可實現系統中全部功能。
參數與流媒體數據的傳輸是演示系統的核心功能。在試驗試車期間,數據轉發程序、數據服務、存儲服務、各客戶端中,均存在不間斷的數據流。這對數據傳輸的可靠性提出了一定的要求。
這里主要考慮如下兩方面:(1)網絡帶寬:主要關注數據服務至全部客戶端傳輸主干線的帶寬性能,即每秒能支撐多少個客戶端接收多少個大小為某個字節數的數據包。(2)傳輸可靠性:即是否能接受數據包丟失的情況[15]。
首先分析網絡帶寬,設客戶端數為n,數據服務發包周期為每秒m個包,每個數據包大小為p。則網絡帶寬w為:w=n×m×p(1 )。
這里n考慮最大演示間放置一體機、PC機總和約為100,即演示系統用戶數約為100人。對于m,顯示器刷新頻率多為60Hz,高于此值人眼無法捕捉更多信息[16],但對于變化的數值,頻率超過10Hz多數人已無法準確識別每一幀的數值。為提高容錯率,這里取m為20Hz。對于p,參數數據和流媒體數據的計算有所不同。
對于參數數據,可采用TCP和UDP兩種協議傳輸,由于TCP協議開銷較大,這里首先按TCP協議做計算。常用UDP協議幀結構如圖4所示,由此可見協議頭與尾的字節總數為56字節。在一次最大規模的試驗中,參數個數接近2000個,每個參數數值采用單精度浮點數存儲,不存儲名稱等其它信息(可按存儲順序確定參數映射)。取參數個數最大值為2048,則p=80+2048×4=8272。因此w參數=400×20×8272×8 ≈ 504.88Mbps。
對于流媒體數據,試驗臺一級流媒體采用RTP協議傳輸,傳輸視頻幀采用DVD標準,分辨率720×576像素,幀率25,采用MPG2編碼,碼率約為6Mbps。因此W流媒體=100×6=600Mbps。

圖4 TCP協議幀結構
總干 線 帶寬需 求值 為W總=W參數+W流媒體=1105Mbps≈1.08Gbps。試驗臺所使用的交換機為思科4503交換機,其背板帶寬為64Gbps,足以支撐數據傳輸需求。
對于傳輸可靠性,實時流媒體要求可靠性較高,且一級流媒體已采用RTP協議,保證了可靠性,故二級流媒體繼續采用RTP協議。對于參數數據,由于數據每秒鐘跳動達10次之多,參觀者僅感受數據變化的趨勢,無需切實關注每個數據,因此可適當放寬可靠性要求。在此情形下,我們采用了UDP協議作為參數數據傳輸的協議,除了幀長略低于TCP協議外,該協議放棄了建立點到點連接、擁塞控制算法等特性也有助于傳輸速率的提升。
此外對于瀏覽器客戶端,對于參數數據,由于瀏覽器內核不直接支持TCP與UDP協議,我們采用WebSocket協議作為替代。WebSocket協議是近年來誕生的新協議標準,其設計目的便是為了解決瀏覽器無法由服務器主動推送消息及輪詢效率低的問題[17],這與我們的場景不謀而合。
在11個子系統中,除權限服務、數據服務和存儲服務被設計為windows服務程序外,其余8個子系統均設計為包含用戶界面的應用程序。對于這些系統,由于不同系統所處的平臺及功能的各不相同,所采用的技術也不同。表4給出了各子系統所采用的界面開發技術框架的一個清單。
對于NI參數轉發程序與P6000參數轉發程序,因實際需要被設計為嵌入相應的采集系統的一部分,故沿用了相應采集系統的技術選型。這里的LabView為一種可視化編程語言,常用于測量、控制、仿真等領域。VB為Visual Basic,6.0是它的最后一個版本,作為最早誕生的快速圖形化界面程序編程語言而被廣泛使用。
二級流媒體服務、綜合測控平臺、一體機桌面客戶端以及大屏幕桌面客戶端采用WPF語言加c#語言開發,WPF語言全稱是Windows Presentation Fundation,它作為微軟提供的新一代桌面應用程序在2005年首次推出,并沿用至今。它提供類似html的xaml語言用于高效地構建界面樹,并配合c#語言實現完整的程序功能。

表4 各子系統界面開發技術框架

圖5 關鍵參數兩種表現方式

圖6 工藝圖表現效果
試驗管理平臺與瀏覽器客戶端采用ASP.net2.0配合c#語言實現。ASP.net是微軟推出的網頁開發框架,提供了大量可復用的界面控件,配合c#實現的后端支持,可快速實現既標準又美觀的網站頁面。
在四種展現方式中,參數表格、參數曲線與工藝圖三種展現方式是可視化方式,如圖5所示。
參數表格在數據表格中羅列了選定的參數,對參數實測值按指定周期實時刷新顯示。參數曲線圖則按指定周期刷新時移曲線,一個曲線坐標軸下可包含多條曲線,當試驗發出點火信號后,曲線圖出現時間坐標,記錄點火持續時間。
工藝圖即模仿試驗臺實際工藝圖的演示版本,如圖6所示。除包含圖本身的靜態結構外,對圖中各種可動態化的元素做了參數驅動控制,這些元素包括各類開關、指示燈、液位罐液位以及數字量的直接展示等。每個動態元素均受相關參數的影響,當參數值變化時,元素的展現效果也會相應的變化。
如圖3,各子系統間涉及數據流與控制流的傳遞。由于各子系統所承擔的任務及采用的技術框架不同,系統采用了如下4種數據傳遞技術。
1、UDP
UDP即用戶數據報協議,我們利用該技術實現參數數據的傳輸,從參數轉發程序、到各服務及管理平臺、最后到各桌面客戶端,均采用了UDP方式。在UDP包中,我們自定義了協議頭,其中包含信源、時間戳、幀長、數據校驗和等所需信息,保證數據傳輸過程的安全與可靠。
2、WebSocket
WebSocket[17]為一種主要工作在瀏覽器端的新興協議,在數據服務給瀏覽器客戶端發送參數數據時,采用了WebSocket協議,原因在于瀏覽器不支持UDP協議。相比TCP協議,WebSocket協議更輕,且工作模式與UDP較相似。此外協議也傳遞服務程序向瀏覽器端的控制數據。
3、RTP
RTP即實時傳輸協議,適用于流媒體傳輸。在各子系統間傳遞流媒體數據采用RTP協議。
4、WCF
WCF全稱Windows通訊開發平臺,主要用于在服務子系統、管理子系統及桌面客戶端之間傳遞控制流。
目前,該系統已成為航天相關型號單位的重要試驗裝備。近期,系統在多個試驗區和試驗臺部署,并參與保障了大小幾十次的型號相關試驗,為領導決策分析、技術專家跟蹤保障、航天愛好者學習進步提供了有效支撐。
系統主要在如下幾個方面取得了成效:
1、為各類試驗人員提供了一套網絡互聯的試驗演示系統;
2、擴充功能展現方式支持參數表格、參數曲線、視頻、工藝圖四種展現方式;
3、提供了一套豐富且較為完善的試驗信息管控工具;
4、提供了更現代化的試驗演示體驗;
5、提供客戶端、瀏覽器等多種終端以供各類人群參與試驗試車。
本文系統地介紹了火箭發動機試驗演示系統。該系統基于數據采集、管理與服務及前端展現三層設計模式,系統地規劃軟硬件架構,解決數據傳輸、界面、可視化、通信四大關鍵技術問題,形成了一套先進的、完善的試驗演示系統。現該系統已成為航天領域重要的科研生產裝備,為祖國航天事業的發展作出了重要的貢獻。