張鵬強 王 鵬
(中國飛行試驗研究院 西安 710089)
飛行試驗是航空裝備定型的最后環節。試飛階段,為了盡可能地暴漏問題,作戰效能盡可能地最大化,飛行員必須進行風險性極高的飛行試驗來取得有效數據。一個完整的飛行試驗,包括飛行任務規劃、飛行任務實施和試飛數據判讀。任務規劃決定了實施的具體內容,任務實施的完成度決定了試飛結果的有效性。在實際的飛行試驗執行期間,由于各種不確定外界因素或出于飛行安全考慮,導致任務無法有效完成,無法充分驗證各種狀態下的設備性能。針對該問題,本文對STK軟件和X-Plane軟件進行二次開發,實現操控X-Plane軟件的飛機姿態,驗證STK場景中各種飛行狀態下的機載電子設備功能的方法。
該方法包括三部分:1)X-Plane飛行模擬軟件,該部分利用UDP協議,實時輸出飛行平臺的飛行參數;2)STK軟件,該部分利用各種模塊實現飛行任務(通信、雷達、電子戰、目標特性等)場景設計;3)轉換軟件,該部分首先與XPLANE軟件建立UDP連接,并對X-Plane軟件發送的數據流轉化為所需的飛行參數,譬如經度、緯度、高度、俯仰角、橫滾角和偏航角等;其次通過引用STK的COM(Component Object Model)組件與STK軟件建立連接,準實時地將轉換完成的飛行參數傳遞至STK軟件,為STK軟件場景中的飛行平臺飛行狀態準實時更新。方法框圖見表1。

圖1 方法框圖
X-Plane軟件是由Laminar Research生產一款模擬飛行軟件,為用戶提供軍用、商用機型、逼真的三維地形和各種復雜氣象選擇。該軟件提供各種氣象條件的設置,通過加載真實的飛機模型和性能指標,可獲得各種氣象條件下的飛參數據。該軟件為用戶基于該軟件的第二次開發提供了飛機飛行參數的輸出端口,用戶可自由選擇所需飛行參數數據,設置通信端口、發送數據類型和發送頻率,通過UDP協議與第三方應用軟件進行交互。
STK的全稱是“Satellite ToolKit衛星軟件工具包”,是由美國AGI公司開發的一款在航天工業領域應用的商業化分析軟件。它作為一種可以方便快捷地分析復雜的陸、海、空、天、電(磁)任務的專業仿真平臺,能夠提供簡單易懂的圖表和文本形式的分析結果,來確定最優方案。STK提供分析引擎用于計算數據,并可顯示多種形式的二維地圖和對象目標等。STK還可以提供三維可視化模塊,進行生成位置和姿態數據、可見性和覆蓋分析。STK專業版還提供了軌道預報算法、姿態定義、遙感器類型和高級約束條件定義,以及衛星、城市、地面站和恒星數據庫等,STK是一款用于全球衛星定位系統仿真中的強大工具[1]。該軟件是一個經過任務驗證的軟件,主要應用于航天任務、自動化指揮系統(C4ISR)、無人駕駛飛機(Unmanned Aerial Vehicle,UAV)、導彈防御和電子系統的建模、工程化和操作。該軟件包含基礎模塊、分析模塊、綜合數據模塊和擴展集成接口模塊[2]。
利用該軟件的相關模塊,如通信分析模塊(STK/Comm)、鏈路分析模塊(STK/Chains)、姿態控制模塊(STK/Attitude)、航空器任務建模模塊(Aircraft Misson Modeler,AMM)、三維地形模塊(STK/Terrain),可完成飛行試驗中的通信、雷達、電子站、航路規劃、演示驗證等科目的試飛,為飛行航線合理規劃、飛行動作制定提供指導意義,最大程度地暴漏被試對象的設計缺陷。在實際的飛行仿真試驗中,通過加載被試對象的戰機指標、飛機的飛行性能指標,可最大程度地提供仿真準確度。
STK為用戶提供兩種二種開發接口:一種利用TCP/IP協議與第三方軟件進行連接交互;一種是通過STK提供的COM組件接口實現,該模塊通過不同的類或接口實現可對場景中的對象進行屬性設置,為用戶的二次開放提供了更大的操作自由度。兩種接口均可通過CONNECT命令與第三方軟件進行交互[3~5]。
轉換軟件由C#語言編寫完成,開放平臺為Vi-sual Studio 2013,主要實現三項功能,首先按照約定端口與X-Plane軟件建立UDP連接,其次對接收到字節數據轉換為可讀飛行參數,最后通過STK的COM組件與STK軟件建立連接并將可讀飛行參數準實時得發送給STK軟件,為場景中的飛行器提供位置、高度和姿態數據[7]。
轉換軟件通過C#語言中的UdpClient類與X-Plane軟件建立UDP連接;轉換軟件僅接收X-Plane發送的數據,因此IP地址設為IPAddress。執行語句如下:
IPEndPoint ipep=new IPEndPoint(IPAddress.Any,49003);
UdpClient newsock=new UdpClient(ipep);
其中發送數據通信端口號為49003。
依據X-Plane輸出數據的格式定義,4個字節代表1為浮點數值,且4個字節按照高字節進行排序。因此,轉換軟件接X-Plane發送的字節數據后,需要將每四個字節進行轉置,按照低字節排序后轉換為浮點數值。該步驟可通過c#語言中的BitConverter.ToSingle()語句完成。
轉換軟件利用STK的COM組件與STK建立交互。所需添加的COM組件為AGI.STKGraphics、AGI.STKObjects、AGI.STKUtil、AGI.STKVgt、AGI.STKX、AGI.Ui.Application和 AGI.Ui.Core。與 STK軟件建立連接語句如下:
StkX=new AGI.Ui.Application.AgUiApplication();
StkX.LoadPersonality(“STK”);
stkRootObject=(AGI.STKObjects.AgStkObjectRoot)StkX.Personality2;
this.stkRootObject.ExecuteCommand(“New/Scenario Test”);
在建立的場景中添加飛行器,命令如下:
stkRootObject.ExecuteCommand(“New/ */Aircraft XPlaneFlight”);
STK軟件中飛行器對象的軌跡傳播模式包含Great Arc、Aviator、Stk External和 Real Time。為實現數據的實時傳遞,需要設置傳輸模式RealTime,C#語句如下:
stkRootObject.ExecuteCommand(“RealTime*/Aircraft/XPlaneFlight SetProp”);
為實現飛行器在2D、3D界面下姿態、位置等信息更新,首先需執行以下命令:
stkRootObject.ExecuteCommand(“BatchGraphics*On”);
本節利用STK軟件建立超短波電臺空地通信場景,機載超短波電臺的天線輻射為全向天線,但由于機體遮擋操作實際的方向性圖并非全向,因此利用AzEI Mask工具對機載下天線進行方向性建模[2]。飛行器的姿態和位置信息由X-Plane軟件準實時提供。仿真界面見圖2和圖3,其中圖2中(a)為STK軟件的任務場景界面,圖2中(b)為X-Plane飛行界面,圖3自編軟件界面。

圖2 任務場景和飛行界面

圖3 飛行參數數據界面
通過對STK軟件和X-Plane軟件的二次開放,實現了不同姿態下進行機載電子設備驗證的目的。該方法是飛行試驗的一種補充,為預判涉及安全而無法有效完成的試飛內容,提供了一種方法,未來可利用X-Plane組網功能和STK的雷達、武器等模塊,實現實時對抗、兵力演示驗證等場景仿真。飛機氣動布局真實準確下,利用X-Plane提供的各種氣象條件下的飛參數據,結合STK軟件的航空器任務建模模塊(Aircraft Misson Modeler,AMM),可實現試飛員在復雜氣象條件下的飛行培訓工作和試飛平臺在復雜氣象條件下的性能試飛。該方法在飛行試驗中應用前景廣闊,希望能起到拋磚引玉的作用。