王智超 胡溥瑞








針對無人機操作手日常訓練的成本限制和環境限制,文中設計了一種飛行模擬訓練系統。介紹了該系統的組成和特點,建立了飛機飛行動力學計算數學模型、控制模型和訓練仿真數據庫模型。在Windows系統中采用基于Visual Studio開發環境用C#語言和VC++中的ATL控件技術實現了飛行仿真軟件,并通過仿真驗證,取得了較好的訓練效果。
無人機是無人駕駛飛機( Unmanned Aerial Vchicle)的簡稱,它是一種由動力驅動,機上無人駕駛,可重復使用的航空器。隨著無人機駕駛技術的發展以及無人機的廣泛應用,無人機操作手越來越受到重視。而培養一名合格的操作手需要大量的訓練,傳統的訓練方法要使用真實的無人機訓練,資金和物資消耗很大,并且用真實的無人機飛行對于特定的環境和狀態不能進行反復的演練。
針對這種情況,本文提出了一種無人機飛行訓練系統的仿真建模方法,闡述了該訓練仿真模型的建立理論及方法,并開發出了某型無人機飛行訓練系統的仿真模型。
系統總體模型及實現
某型無人機飛行訓練仿真系統主要由模型計算機、視景計算機和控制計算機三部分組成。其中模型計算機和視景計算機直接面向操作手,供操作手實際操作訓練使用;控制計算機主要供無人機的教練員操控,可直接讀取和修改數據庫數據,可為操作手設置訓練科目及飛行故障,為操作手打分。本系統采用分布式結構,各個客戶端計算機分別運行不同的系統。三臺計算機相互間通過網絡交換設備,以百兆以太網方式連接到局域網,總體模型框圖如圖1所示。
(1)視景計算機主要任務是負責顯示無人機機載攝像頭的回傳圖像,即模擬真實無人機在飛行中,由圖傳鏈路回傳的圖像。視景計算機顯示的圖像數據通過網絡通訊直接從控制計算機系統終端獲取并顯示。
(2)模型計算機主要用來模擬操作手操控界面,即真實的模擬仿真某無人機地面控制站操控軟件,包括主界面外觀、飛機參數顯示、儀表盤系統顯示、地圖信息顯示、操作輸入系統顯示、航跡航點管理等功能。真實的體現操作手的人機交互操作。模型計算機有動力學模型仿真模塊,因此動力學計算、飛行參數顯示、飛機操控等都由這個計算機完成。
(3)控制計算機主要用來供教練員使用,教練員可以控制整個系統的開始、暫停及回放,設置操作手的訓練內容及訓練環境,設置無人機的故障指令,對操作手操作情況進行評定給出成績,并保存到數據庫內。在該計算機上,可以實時仿真顯示3D飛機模型在三維空間的各種飛行姿態。通過視景切換,教練員可以在控制計算機上切換到操作手操控界面,實時觀看操作手操作過程。
(4)數據庫將訓練的各種數據資料進行存儲管理,資料內容包括無人機飛行原始參數數據管理、飛行航點管理、飛行航線管理、操作手信息管理、無人機記錄管理和評分系統管理等。
(5)網絡通訊負責三合計算機的數據交換。本系統采用無連接的數據報文方式(即UDP協議),三臺計算機程序中網絡通訊模塊都是由UDP類來完成的。
模型構建
軟件實現
該飛行仿真訓練系統軟件實現涉及到軟件編程和數學建模,飛行仿真系統的數學模型相當繁雜,為了提高效率,增強系統的可移植性和可維護性,采用面向對象的編程思想進行設計。對系統進行總體分析,合理的劃分軟件的系統模塊。根據系統功能和軟件編程實現方式,劃分了視景仿真模塊、數據解算模塊以及數據庫模塊。
視景仿真模塊采用基于Visual Studio開發環境的XNA技術,采用C#編程語言。XNA是Microsoft Visual Studio集成開發環境( IDE)的一個擴展,它也是微軟繼DirectX之后開發的又一個主要用于三維圖形程序的軟件。可以實現三維場景的渲染,如天空、地形、機場、植被等模型的加載與顯示;特效方面的顯示,包括雨、雪、霧、陰影以及飛行仿真常用的尾焰核爆炸等。
數據解算模塊采用基于面向對象的VC++編程語言,建立飛機飛行動力學模型。采用微軟ATL組件技術及面向對象建模方法對飛行動力學計算算法進行分類,設計和開發飛行動力學計算組件,用于飛行仿真系統的研發。由于組件具有良好的模塊化、可重用性、可擴充性及跨平臺應用等特點,本系統的動力學數據解算模塊可以在不同仿真平臺上應用。
數據庫模塊采用SQL Server 2008數據庫,使用ADO.NET實現,用連接類SqIConnection創建連接。要打開一個數據庫連接,需要提供某種形式的連接參數,這些參數在數據庫配置文件中存放。
飛行動力學模型
無人機動力學模型的建立是依據飛機飛行動力學原理和自動控制理論,通過VC++編程進行仿真計算。在這一模塊中,利用了VC++中的ATL( ActiveTemplate Library)控件技術,把這一模塊中的功能封裝成COM組件,為其他模塊提供所需要的服務接口。最終將以.dll文件格式輸出,顯示功能模塊可以調用此文件,來獲取COM提供的服務。利用這一技術,實現了程序的安全性,外部只能提供或者調用該模塊的數據,而無法修改該模塊的功能,同時具有很好的跨平臺性和移植性。在版本更新時,在接口不變的前提下系統將不用做出修改,只需將組件替換成最新版本即可,完全符合面性對象思想,便于后期維護。
在這一模塊中,建立了控制類Control和飛行類Dynamic兩個基本類。由飛行類解算飛機的實時姿態和位置,提供給控制類使用。而由控制類根據飛機的實時飛行情況和控制標識符操縱飛機的飛行,通過控制參數反饋給飛行類,循環解算飛機飛行。同時控制類也提供了用戶需要的輸入、輸出接口供其他模塊使用。該模塊內部數據交換和運作過程如圖2所示,
飛行類解算模型
動力學解算仿真模型是整個仿真訓練系統的數據流解算核心模塊,系統無人機的實時位置、姿態以及狀態參數都是通過該模塊解算,因此建立合適的動力學數學模型尤為重要。在建立動力學解算數學模型時,我們假設飛機是剛體,地面坐標視為慣性坐標,視地球表面為平面,并且重力加速度不隨飛行高度的變化而變化,根據牛頓第二定律建立六自由度動力學微分方程,再由飛機受到的合外力和力矩得到飛機的加速度和角加速度,逐步對時間的積分進而得到飛機位置和姿態,如圖3所示。
這里飛機受到的合外力包括氣動力、發動機推力、地面滑跑時作用于起落架上的摩擦力以及飛機的自身重力;合外力矩包括氣動力矩、發動機力矩以及地面滑跑時起落架力矩等。其中,氣動力和氣動力矩是通過給定無人機的氣動系數表計算得到,發動機推力和力矩是根據發動機原始性能參數數據表計算,這些數據表都是飛機的原始試飛曲線或風洞中的吹風試驗數據,能更好的仿真飛機性能。
控制類模型
控制固定翼飛機的飛行過程主要通過操縱機構來操縱飛機的舵面與油門開度來實現的,無論是有人機還是無人機。通常我們利用副翼、方向舵、升降舵及油門舵機來實現對飛機運動的控制。其中副翼、方向舵、升降舵及油門桿的偏轉角分別用δx、δv、δz和δb來表示,作為被控對象的飛機,我們把姿態控制中的三個姿態角ν(滾轉角)、6(俯仰角陽y(偏航角)以及航跡控制中飛行高度H、Zd相對位置和飛行速度V作為被控量。
以無人機的縱向姿態俯仰角控制回路為例,當進行俯仰給定或保持時,該功能將當前無人機的俯仰角姿態作為基準予以保持,任何相對于該基準的俯仰角姿態變化都會通過俯仰角控制回路立刻予以修正。俯仰角控制回路原理如圖4所示。
由俯仰角控制回路原理圖可以得到無人機的俯仰角給定與保持控制率:
俯仰角控制回路主要是控制無人機的爬升和下滑性能,來實現飛機的飛行性能。首先通過俯仰角指令給定俯仰角,與當前俯仰角差值,結合飛機實際俯仰角速率作為控制輸入量,通過一些調整系數來轉變成升降舵控制指令,輸出到升降舵機來控制升降舵,從而實現俯仰角的控制。
飛行仿真訓練數據庫模型
利用數據庫技術對仿真原始數據進行管理是研制飛行仿真系統時較為關鍵的一項技術。鑒于飛行實時仿真系統需要大量的建模數據,采用數據庫技術來進行管理是非常必要的。尤其是氣動數據、發動機推力數據和環境大氣數據等需要采用數據庫管理,在仿真中實時地進行查詢等計算處理。氣動數據常常是由多維數據表構成,如何在實時環境中快速準確地進行計算關系到整個仿真系統的性能和逼真度。該軟件系統中,創建了一個用來存儲和管理原始數據的數據庫,保證程序對數據高效率的調用。該數據庫由數據輸出、數據輸入、數據索引和數據表系統等組成,結構如圖5所示,
數據輸入是對數據庫中進行數據輸入的程序接口。數據輸出是實現從數據庫中獲取所需數據等功能。數據索引能夠將欲檢索的行在數據庫中快速地檢索到。數據表由一系列表單組成,是整個數據庫的核心部分。我們按照飛機型號分為通用數據表和型號專用數據表。通用數據表包括大氣數據表和用戶數據等;型號專用數據表存貯的是表征無人機特征的數據表,包括該型無人機的飛機的氣動數據表、發動機系統數據表以及飛機質量和慣性矩數據表、需要設置的故障參數表等。
仿真結果
本系統為針對培訓某型無人機操作手而開發的一套仿真系統,仿真操作手地面站操控界面,如圖6所示,主要為系統提供飛行仿真中控制指令、航點編輯,并以圖形和文字形式反饋無人機實時的狀態信息;仿真無人機實時飛行姿態以及飛行環境,如圖7所示,為教練員實時監控飛機、設置飛行故障以及評估飛行操作手訓練效果提供更直觀的操作。
結論
本文介紹了某型無人機飛行仿真訓練系統的整體設計方案,闡述了該系統的主要設計思想及實現方法。模擬了某無人機的真實的操作界面,包飛機的主界面、飛機參數顯示、儀表系統、地圖顯示系統、操作輸入系統、航跡航點管理等功能;同時按照某無人機的真實的尺寸進行建模并在系統中根據動力學模型的數據模擬出飛機各種動作;并加設了教練員操控界面,實現了故障動態設置與模擬功能,教練員可以通過教練員終端,在操作手正在訓練的同時,隨機觸發各種無人機的故障或非正常狀態,以訓練操作手的應急反應能力。這對于評估無人機操作手的操作品質,提高訓練員的飛行水平,節省研制費用有極其重要的意義。