飛行動態模擬

建立虛擬實境飛行動態模擬系統之現代戰機

空氣動力模型

Aerodynamics motion modeling for the VR-based Modern Air Fighter Simulation System
研究生:邱裕欽    指導教授:林進燈 莊仁輝
主  題

  現代的航空器系統對飛行員而言是既複雜又具挑戰的工作環境,而飛行訓練是危險性高、花費極為昂貴、人員培植不易且承擔不起重大損失的尖端科技類的訓練。因此,藉由地面的模擬飛行,達到實際飛行訓練的要求,不但節省訓練飛行員的花費亦可保障人員安全及航空器的損害。本文研究的目的在於虛擬實境的系統上建立以國軍二代戰機為主的空氣動力數學模型,利用其風洞測試數據並以空氣力學的觀點來計算航空器於大氣環境上飛行時的力和力矩。進行動態模式數據處理分析並進而建立以常態多項式表示的氣動力空氣動力係數模型。藉由參數估測運算與空氣動力係數模型修正,以拉近飛行模擬器與真實飛機的動態響應間的差距,提高飛行模擬器的真實程度。

由於在一般非線性的模擬存在系統辨識中模式建立與參數估測問題,包括以一般數值解法的不易及因初始猜測值不當而可能導致之積分發散及收歛不良的問題,運用基因程式(Genetic Programming)的概念,一種啟發式自組織建立模型方法(Self-organizing modeling)藉由用輸入變量及演化的多項式來近似地表示非線性系統的輸入輸出關係,配合適應函數(fitness function)選擇最佳結果作自我模式修正, 可快速建立空氣動力係數常態多項式數學模型。由於實際飛行資料取得不易,本文將藉由風洞測試數據來驗證本法在橫向與縱向飛行動態上其誤差在非線性空氣動力模擬應用上能接受的範圍之內,進而完成現代戰機空氣動力模型。由於個人電腦日漸普及,且由於個人電腦上的效能可說是突飛猛進,直逼專業級的繪圖工作站,但個人電腦的價格卻遠不及工作站電腦的十分之一,所以為了開發出強大逼真的視覺模擬場景並能有效降低開發成本,我們必需考慮如何在個人電腦上發展出效能如同專業繪圖工作站的即時視覺模擬場景,我們採用Flight Gear飛行模擬軟體作為虛擬實境場景的表現,Flight Gear的程式碼與說明文件都採用Gnu公用執照(Gnu Public License)做為其版權宣告。基於Flight Gear開放的原則,本文利用Flight Gear的程式碼,而從中發展出軍用機為主的模擬器。Flight Gear計畫對基礎景觀系統做了非常詳實的表現,地面景觀的構成是基於美國地質測量(U.S. Geological Survey)出版的衛星資料來製作。這些可自由取得的地形資料加上Flight Gear本身提供的景觀建立工具,至少原則上,可讓任何人創造出自己的地形景觀。而Flight Gear飛行模擬軟體影像發展套件以OpenGL API方式提供了較佳的開發方式。

  在系統整合部份,本實驗室已在六軸運動平台的製作與控制上累積了相當程度的經驗與技術,希望在具備了六軸運動平台控制技術與虛擬實境場景發展工具之後,以平價的個人電腦為基本架構,自行利用開放環境發展飛行模擬軟體FlightGear 開發「虛擬實境場景」以及和「動態模擬模組」、「六軸運動平台」之間的整合。虛擬實境場景底層的軟體架構,使用Linux作業系統所提供的Shared Memory、Socket、FILE等各種通訊介面來作為各個獨立模組的通訊管道,本文並利用TCP/IP網路連線功能來與六軸運動平台控制器作連結,採用位置控制和沖淡演算(Washout)控制兩種方式在平台上模擬F-16戰機六軸姿態和力的表現。最後將虛擬實境場景、即時動態模擬模組、六軸運動平台、力操控搖桿整合成為一完整之即時船舶動態模擬訓練系統。

  故本文旨在開發「現代戰機空氣動力模型動態模擬訓練系統」當中,「虛擬實境場景」與「動態模擬模組」,並藉由網路與其它多台控制運算電腦搭配,完成與六軸運動平台「位置控制器」、「Washout控制器」之整合,使該系統可勝任於「船舶動態模擬訓練系統」的相關應用。也希望在透過本論文的發表,能對這個領域有所貢獻。

說  明

F-16戰機飛行動態系統建立

   飛機視為剛體,就運動而包含有六個自由度(Degree of freedom),故其運動可用六個變數來陳述;互為垂直的三個重心分速;及對穿過重心三垂直軸的旋轉,以三個角速度表示。而角位移則以尤拉角表示。物體與空氣作相對運動時作用在物體上的力﹐簡稱氣動力,而航空器基本受力如圖(1)所示。它由兩個分布力系組成﹕一是沿物體表面法線方向的法向分佈力系﹐另一是在表面切平面上的切向分佈力系。空氣動力通常就是指這兩個力系的合力。將空氣動力分解為三個方向上的分量。軸平行於氣流方向且正向與氣流方向相反﹐軸在飛行器對稱面內與軸垂直且正向指向航空器上方﹐ 軸垂直於平面﹐指向右翼﹐則合力在三個軸上的分量分別稱為阻力、側向力,升力。若空氣動力作用點與飛行器重心不重合﹐則飛行器還受到一個合力矩的作用﹐它在 三個軸上的分量分別稱為滾轉力矩、偏航力矩和俯仰力矩。因此航空器所受總力可由三個部分所構成。

圖(1):航空器基本受力

 

空氣動力含引擎推力部分其總力表示為:

產生的空氣動力力矩為:

 

 

 

F-16戰機空氣動力係數識別

 

整體飛行器數學模型中包含了該飛行器動態的表現,如引擎、起落架、飛行控制面的狀態以及外在環境所造成的影響等,為了研究其非線性系統的整體行為就必須建立非線性數學模型。系統識別一般可稱為逆向工程,利用系統輸入與系統響應來推導系統模型,但其非線性數學模型複雜的程度即使在高速電腦迅速發展的今日應用傳統的數值方法亦相當費時。對於難以從經驗知識得到模型結構的複雜的非線性系統,應用生物控制論中的演化方法以多項式來近似地表示非線性系統的輸入輸出關係。在本節中將提出以基因程式(Genetic Programming) 為基礎的啟發式自組織建立模型(self-organization modeling) 來建立多項式函數所組成的級數,以其具有可近似任意函數的的性質,進而完成現代飛行器的空氣動力的非線性數學模型。

美國史丹福大學的教授柯薩(Koza),針對電腦研究上的一項重點問題,"如何使電腦能在不提供它詳盡程式指令下,自發學習解決問題?"而創造了「基因程式」。基本上他是根據遺傳演算法的機制,將原本以位元串構成的單元,推廣到以程式構成的單元。而每個單元的適應度是由其程式對環境的執行結果而定。所以「基因程式」,就是將傳統「遺傳演算法」的搜尋位元串狀態空間,推廣到搜尋程式行為空間。而隨著其單元結構由位元串修改成程式,所有相應的遺傳機制也必須作調整,以對應各單元的程式結構。為了讓單元程式可以演化,所以其中的程式必須被表示為剖析樹結構。因此柯薩就採用,利於樹狀結構操作的LISP語言,作為「基因程式」的程式語言。「基因程式」的機制中,與「遺傳演算法」的不同點大致上為: 1. 在初始時必須依照環境,決定演化單元程式所需的函式集(function set),如算術運算子、數學函數、邏輯運算子等與元素集(terminal set),通常是一般的常數或是變數,以隨機組合函式集與元素集來產生初始群體的各單元程式。 2. 重複執行下列子步驟直到符合目標的衡量標準。

( 1 ) 執行每一代演化的族群所產生的程式,並根據對其系統解的近似程度定義適應值(fitness value)。

( 2 ) 進行演化下一代族群程式;其機制依據族群個體中適應值(fitness value)的高低,可以排定每個個體適應度的順序,使得適應值高個體有較高機率被選擇來交配(crossover)而產生下一代族群。

有二種方法進行演化下一代族群;

i. 複製:如圖(2),先從母代中選二個欲做基因交換的樹,分別在二顆樹上隨機選取二個交換節點,將自這個節點以下的二顆子樹交換,若是二個被選取的交換節點都是根節點的話,交換基因後自然還是原來的那二顆樹。

ii. 交配:如圖(3),若隨機選取選取交換節點根節點外之任意節點的話,一旦做基因交換後,就產生兩顆新的子樹。 3. 根據基因程式的控制因素,如族群的大小,和想要跑幾個世代而產生最後的程式可能為系統的最佳解或是近似解。

圖(2):個體複製 (3):個體交配及其子代

 

 

啟發式自組織建立模型(self-organization modeling)是對無法以經驗等方式建立數學模式的未知系統,應用測試未知系統所收集的數據資料為根據區分為實驗組與檢驗組,以基因程式的模式作為學習機制,將輸入變數作交配(crossover)後所產生下一代族群中的多項式帶入實驗組數據資料,並以其輸出結果以適應函數比對檢驗組數據資料近似的程度定義適應值來選擇或淘汰部分個體,作為下一子代的輸入。最後,如基因程式的控制因素,設定結束條件所產生結果的常態多項式可能為系統的最佳解或是近似解。以下我們將針對這種方法以例子說明此一做法;

1. 在初始時必須依照環境也就是測試未知系統所收集的數據資料,決定演化單元程式所需的輸入變數及初始的多項式。如圖 (4)Step I;在一般動態或靜態系統模擬中可採用二次多項式來建立,亦即;

並觀察未知系統中之獨立變數作為輸入,如 ,並以二次多項式 作為所要產生的族群函數及其輸出

2. 如圖 (4)Step II;將獨立變數 根據族群函數以不重複的方式兩兩作交配,帶入二次多項式中產生第一子代。而每一子代的個數為若前一代數量為m 則每一子代可產生m(m-1)/2的個體。以圖 4-3Step II為例,第一代族群中共可產生10個個體,且第一子代族群中所產生如2次式的多項式,其次方數及變數個數小於或等於2

(4)啟發式自組織建立模式流程一

3. 如圖(5) Step III,將輸入變數作交配(crossover)後所產生下一代族群中的多項式帶入未知系統的實驗組數據資料,將輸出的結果配合適應函數評估(fitness criterion)出族群中常態多項式對檢驗組數據資料的近似程度定義出個別適應值來選擇或淘汰部分個體,作為下一子代的輸入。常用的適應函數如最小誤差平方法作為評估方法。而在本章在所採用的適應函數稱為預測誤差法(Predict Square Error)將於下一節中說明。在此一步驟中,我們將適存的子代所產生的輸出以代數的方法取代並代表其常態多項式,亦即 ,作為下一子代交配的輸入。

4. 如圖(5)4-4 Step IV,其中黑方格代表族群中所選擇適應值高的個體,將最佳之子代個體重覆圖 4-3Step II,而得到下一世代的群體,新群體子代中所產生的如2次式的多項式中由於包含了前一父代第二次多項式,故其展開的多項式中其次方數及變數個數小於等於4

(5)啟發式自組織建立模式流程二

4. 如圖(6) Step V,重複圖4-4 Step III,淘汰部份個體。在此一步驟中,我們將適存的子代所產生的輸出以代數的方法取代並代表其常態多項式,亦即 ,作為下一子代交配的輸入。

5. 如圖(6) Step VI,經過三代的演化後顯示出選擇各子代的結果,並將 所代表的常態多項式於最後的二次多項式中展開,所產生的常態多項式中,由於包含了祖父代及父代的二次多項式,故其展開的多項式中其次方數及變數個數小於或等於8,且其結果為近似於未知系統測試數據的特性。

(6)啟發式自組織建立模式流程三

由數值分析的角度來看,由於演化過程中的系統會趨向複雜。因此演化可視為適應性複雜系統的變化過程,尤其在大部份複雜非線性的數學問題上,因為缺乏解析決定的求解方法,啟發式自組織建立模式便成為最有效的數值分析工具。另一方面啟發式自組織建立模式可視為類似搜尋的最佳化演算法。因為其本質是非決定性的,所以能搜尋問題空間內所有的可能解答。而在啟發式自組織建立模式的群體中,大量個體追隨環境利基,聚集而形成各式族群。不同族群也就代表了、用以解決問題的不同途徑與其資訊 這就是啟發式自組織建立模式含有多樣性以解決問題的能力。

適應函數

在產生新一代的多項式後,利用適應函數(Fitness function)來進行選擇適存度較高的個體生存,其中適應函數亦稱為價值函數(cost function),在以風洞實驗數據為標準進行演化式計算時我們採用最小平方價值函數(Least-Squares Cost Function)為基礎的預測誤差法(Predict Error Method)來作為適應函數稱為預測最小平方誤差(Predict Squares Error)。

設非線性系統的模型為;


式中 是系統的輸出 是輸入θ 是參數(它們可以是向量)。在估計參數時模型的形式 是已知的﹐經過輸入N 筆實驗數據 ,當方程式的個數大於未知數的個數時通常無一解可滿足,但可求得最小平方解係數解 ,帶入原方程式 求得預測的輸出 ,及目標函數最小誤差平方和 求得最小平方誤差 ,由於考慮數據分佈的特性,應用機率統計的方法利用平均數與變異數可進一步預測出每一代生存的最佳標準,亦即 。其中 亦即表示檢驗數據的變異性。其中 風洞實驗數據 N利用風洞實驗數所建立的常態多項式所求得預測 的平均值,m為多項式項數。所以 PSE的值即是用來作為篩選族群個體的標準。

系統整合

 

  在我們對F-16戰機完成其數學模型建立及非線性空氣動力係數識別後,將其加入飛行模擬訓練系統如圖(7),除了場景畫面與動態模擬模組之間的搭配外,還必須加入網路連線功能來與六軸運動平台「位置控制器」、「Washout濾波控制器」以及力操控搖桿等外部硬體模組整合。為此我們在本章「系統整合」當中,先提出整個虛擬實境動態模擬之架構,介紹虛擬實境中所使用的各項工具及整個系統中的相互關係,然後提出通訊介面模組的觀念,透過網路來連接操控模擬訓練系統與其它外部硬體。而本章除了對虛擬實境場景的底層軟體架構、場景連線、六軸運動平台通訊及搖桿通訊介面模組加以說明最後,將介紹船舶操控模擬訓練系統與這些外部模組整合起來的整個系統流程,以展示最終完整的即時動態視覺船舶操控模擬訓練系統。

圖(7)F-16戰機飛行動態模擬流程