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