宋宏川,詹浩,魏中成,任浩雷,夏露
1. 西北工業(yè)大學(xué) 航空學(xué)院,西安 710072 2. 中國航空工業(yè)集團(tuán)公司成都飛機(jī)設(shè)計(jì)研究所,成都 610091 3. 西安地平線電子科技有限公司,西安 710072
飛行仿真是以飛行器的運(yùn)動(dòng)情況為研究對(duì)象,面向復(fù)雜系統(tǒng)的仿真。它首先按照飛行器運(yùn)動(dòng)學(xué)、動(dòng)力學(xué)、空氣動(dòng)力學(xué)以及飛行控制原理等有關(guān)理論建立起相關(guān)的數(shù)學(xué)模型,然后以這些模型作為依托進(jìn)行模擬試驗(yàn)與分析研究[1]。
飛行仿真通過空氣動(dòng)力學(xué)的數(shù)學(xué)模型(簡稱氣動(dòng)力模型)計(jì)算飛機(jī)的氣動(dòng)力和力矩,飛機(jī)氣動(dòng)力/力矩決定了飛機(jī)的飛行性能、操縱性和穩(wěn)定性,直接影響到飛行仿真器的質(zhì)量認(rèn)定。因而,氣動(dòng)力模型可能是飛行仿真系統(tǒng)中最重要的數(shù)學(xué)模型[2]。
一般來說,氣動(dòng)力和力矩是狀態(tài)變量V、α、β、p、q、r和控制變量δ的泛函,可以表示為
FA=FA(V(τ),α(τ),β(τ),p(τ),q(τ),
r(τ),δ(τ)) -∞<τ≤t
(1)
式中:V表示飛行速度;α表示飛機(jī)迎角;β表示飛機(jī)側(cè)滑角;p、q、r分別表示繞機(jī)體坐標(biāo)軸系x、y、z軸的旋轉(zhuǎn)角速度;δ表示飛機(jī)控制輸入。常規(guī)氣動(dòng)布局的飛機(jī)δ包括升降舵δe、副翼δa和方向舵δr[3]。氣動(dòng)力不僅依賴于瞬時(shí)飛行狀態(tài)的值還和其運(yùn)動(dòng)歷程相關(guān)[4]。
實(shí)際應(yīng)用使用的絕大多數(shù)都是基于準(zhǔn)定常流動(dòng)假設(shè)下的氣動(dòng)力數(shù)學(xué)模型。準(zhǔn)定常流動(dòng)假設(shè)下的氣動(dòng)力模型,忽略飛行狀態(tài)時(shí)間歷程對(duì)氣動(dòng)力/力矩的影響,氣動(dòng)力/力矩被表示成瞬時(shí)飛行狀態(tài)變量的非線性函數(shù),氣動(dòng)力數(shù)學(xué)模型一般采用滿足相似律的無量綱氣動(dòng)力/力矩系數(shù)表示:
(2)
(3)
為了保證仿真實(shí)時(shí)性,飛行仿真器使用的程序語言基本是編譯型程序語言(Fortran、C、C++和Ada等[5]),因此一旦修改程序就需要重新編譯、鏈接、調(diào)試和測試程序。
然而不同氣動(dòng)布局的飛機(jī),氣動(dòng)力模型一般不相同,使用飛行仿真器仿真不同氣動(dòng)布局的飛機(jī),需要更換氣動(dòng)力模型。
此外,現(xiàn)代飛行器的方案論證、技術(shù)指標(biāo)確定、設(shè)計(jì)分析、生產(chǎn)制造、試驗(yàn)測試、維護(hù)訓(xùn)練和故障處理等各個(gè)階段都需要飛行仿真對(duì)飛行器進(jìn)行全面的系統(tǒng)分析和評(píng)估[1]。在飛行器研制、生產(chǎn)和使用的各個(gè)階段,飛行器氣動(dòng)力數(shù)學(xué)模型的來源包括氣動(dòng)估算、數(shù)值計(jì)算、風(fēng)洞試驗(yàn)、系統(tǒng)辨識(shí)等[6]。在整個(gè)飛行器的生命周期內(nèi),除了氣動(dòng)力模型的來源不同外,由于飛機(jī)的研制、生產(chǎn)和使用是一個(gè)反復(fù)迭代的過程,為了讓飛行仿真更加逼近飛機(jī)真實(shí)的性能和品質(zhì),需要基于不同來源的氣動(dòng)特性數(shù)據(jù)不斷修正飛機(jī)的氣動(dòng)力數(shù)學(xué)模型。因此即使對(duì)同一型號(hào)的飛機(jī)進(jìn)行仿真,飛行仿真器也需要頻繁地修改和完善氣動(dòng)力數(shù)學(xué)模型。
飛行仿真系統(tǒng)的傳統(tǒng)氣動(dòng)力/力矩求解方法把氣動(dòng)力數(shù)學(xué)模型(式(2))硬編碼在氣動(dòng)力解算程序中進(jìn)行求解,隨著現(xiàn)代飛行仿真氣動(dòng)力模型的更換和修改變得越來越頻繁,為了適應(yīng)不同的氣動(dòng)力模型必須頻繁地修改解算程序。因此傳統(tǒng)方法在更換和修改氣動(dòng)模型時(shí),過程繁瑣、花費(fèi)時(shí)間長、重復(fù)工作量大而且通用性低。綜上所述,飛行仿真中傳統(tǒng)的氣動(dòng)力/力矩解算方法逐漸無法滿足現(xiàn)代飛行仿真頻繁更換和修改氣動(dòng)力模型的需求。
本文提出氣動(dòng)力模型樹的概念,用樹形結(jié)構(gòu)和節(jié)點(diǎn)的存儲(chǔ)信息完整地描述氣動(dòng)力模型,并基于可擴(kuò)展標(biāo)記語言(eXtensible Markup Language,XML)設(shè)計(jì)了一種模型存儲(chǔ)格式(Model Based on XML,MBX)來存儲(chǔ)氣動(dòng)力模型樹。探討了MBX存儲(chǔ)格式作為氣動(dòng)力模型數(shù)據(jù)交換標(biāo)準(zhǔn)的可能性以及MBX作為氣動(dòng)力模型交換標(biāo)準(zhǔn)對(duì)飛機(jī)研制、生產(chǎn)和使用的影響。
建立氣動(dòng)力數(shù)學(xué)模型的方法主要有氣動(dòng)估算、計(jì)算流體力學(xué)(Computation Fluid Dynamic,CFD)、風(fēng)洞試驗(yàn)和飛機(jī)系統(tǒng)辨識(shí)等[5]。飛行仿真根據(jù)上述方法提供的氣動(dòng)力數(shù)學(xué)模型計(jì)算氣動(dòng)力和力矩,仿真飛機(jī)的性能、操縱性和穩(wěn)定性。飛行仿真中常用的典型氣動(dòng)力數(shù)學(xué)模型如下所述。
1911年Bryan提出的線性氣動(dòng)力模型,也稱經(jīng)典氣動(dòng)導(dǎo)數(shù)模型,它是在準(zhǔn)定常假設(shè)下,將飛機(jī)的無量綱氣動(dòng)力/力矩系數(shù)表示成瞬時(shí)飛行狀態(tài)變量的線性函數(shù)。經(jīng)典氣動(dòng)導(dǎo)數(shù)模型一直是飛機(jī)操縱性、穩(wěn)定性分析和制定飛行品質(zhì)的基礎(chǔ)[7],也是在飛行仿真中應(yīng)用最廣泛的氣動(dòng)力模型之一。
俯仰力矩系數(shù)的經(jīng)典氣動(dòng)導(dǎo)數(shù)模型可以表示為
(4)
(5)
Digital Datcom(Data Compendium)計(jì)算程序是美國空軍飛行力學(xué)實(shí)驗(yàn)室與麥道公司合作開發(fā)的適用于在飛機(jī)方案設(shè)計(jì)和初始設(shè)計(jì)階段估算飛機(jī)氣動(dòng)特性的氣動(dòng)估算軟件[9-11]。
Digital Datcom在每個(gè)輸入文件設(shè)定的馬赫數(shù)下,輸出的氣動(dòng)力/力矩系數(shù)模型包括縱向靜穩(wěn)定性系數(shù)和縱向/橫航向靜穩(wěn)定性導(dǎo)數(shù)、動(dòng)穩(wěn)定性導(dǎo)數(shù)、增升和控制輸入引起的增量氣動(dòng)系數(shù)等[11]。Digital Datcom輸出的俯仰力矩系數(shù)模型為
(6)
式中:Cmstatic表示俯仰靜穩(wěn)定性系數(shù),在Digital Datcom中通常是關(guān)于迎角的一維表格;ΔCm(δ)表示縱向控制舵面偏轉(zhuǎn)引起的俯仰力矩系數(shù)增量,是關(guān)于縱向控制舵面的一維表格[11]。
風(fēng)洞試驗(yàn)和CFD提供的氣動(dòng)特性數(shù)據(jù),通常是以數(shù)據(jù)表的形式表示氣動(dòng)力的數(shù)學(xué)模型。一種典型的俯仰力矩系數(shù)的氣動(dòng)系數(shù)模型為
Cm=Cm(Ma,α,δe)
(7)
式中:Ma表示飛行馬赫數(shù);Cm(Ma,α,δe)表示當(dāng)前飛行狀態(tài)和控制輸入下的俯仰力矩系數(shù),它是關(guān)于Ma、α和δe的三維表。
在飛行器辨識(shí)領(lǐng)域最常使用的非線性氣動(dòng)力模型有多項(xiàng)式模型和樣條函數(shù)模型,以俯仰力矩系數(shù)為例,說明兩種非線性模型的表達(dá)式。
俯仰力矩系數(shù)的多項(xiàng)式模型[3,8]為
Cm=Cm0+Cmαα+Cmα2α2+Cmα3α3+
(8)
式中:Cmα2是俯仰力矩系數(shù)對(duì)α2的氣動(dòng)導(dǎo)數(shù);Cmα3是俯仰力矩系數(shù)對(duì)α3的氣動(dòng)導(dǎo)數(shù)。
樣條函數(shù)俯仰力矩系數(shù)模型為
(9)
式中:Cm0(α)是關(guān)于α的三次樣條函數(shù)[3]。
氣動(dòng)導(dǎo)數(shù)和氣動(dòng)系數(shù)混合表示的氣動(dòng)力模型也是飛行仿真中最為常見的氣動(dòng)力模型之一。一種氣動(dòng)系數(shù)和氣動(dòng)導(dǎo)數(shù)模型混合表示的俯仰力矩系數(shù)模型為
(10)
飛行仿真中氣動(dòng)力/力矩的傳統(tǒng)求解方法把氣動(dòng)力模型硬編碼在求解程序中,這會(huì)造成當(dāng)需要更換上述不同的氣動(dòng)力模型時(shí),必須修改求解程序。以Digital Datcom估算方法建立的氣動(dòng)力模型(式(6)和表1)為例,說明氣動(dòng)力/力矩求解的傳統(tǒng)方法以及其弊端。
飛機(jī)的俯仰力矩M與無量綱俯仰力矩系數(shù)Cm的關(guān)系可表示為
M=QScACm
(11)
式中:Q表示動(dòng)壓;S表示飛機(jī)參考面積。
1.initialize geometrical parameters of aircraft2.get inputs of aerodynamic force subsystem3.Cm_static←looking up table of CM from digital datcom’s output4.Cmq←value of CMQ5.q_bar←q*cA/2/V6.Cmad←value of CMAD7.ad_bar←ad*cA/2/V8.dCm←looking up table of DCM from digital datcom’s output9.Cm←Cm_static+Cmq*q_bar+Cmad*ad_bar+dCm10.M←Q*S*cA*Cm
上述步驟中,第3~10步都與具體氣動(dòng)力模型的數(shù)學(xué)表達(dá)式有關(guān),數(shù)學(xué)表達(dá)式和表達(dá)式中各項(xiàng)求解方式被硬編碼在求解程序中。如果需要更換氣動(dòng)力模型,上述求解步驟中的第3~10步都需要重新編寫。在實(shí)際的飛機(jī)設(shè)計(jì)、生產(chǎn)和使用過程中,為了獲得準(zhǔn)確的飛機(jī)氣動(dòng)特性,氣動(dòng)力模型需要在不同方法得到氣動(dòng)特性數(shù)據(jù)的基礎(chǔ)上進(jìn)行不斷的修正和優(yōu)化。飛行仿真通過修改程序更換氣動(dòng)力模型的傳統(tǒng)方法,要求飛行動(dòng)力學(xué)研究人員在更換氣動(dòng)力模型時(shí),進(jìn)行大量的開發(fā)工作。因此飛行仿真求解氣動(dòng)力/力矩的傳統(tǒng)方法已經(jīng)不能滿足現(xiàn)代飛行仿真頻繁修改氣動(dòng)力模型以及氣動(dòng)力求解通用性的需求。
表1 Digital Datcom的氣動(dòng)估算數(shù)據(jù)[11]Table 1 Aerodynamic estimation data from Digital Datcom[11]
為了避免硬編碼求解氣動(dòng)力模型的弊端,提高氣動(dòng)力/力矩求解的通用性,飛行動(dòng)力學(xué)研究人員期望飛機(jī)的氣動(dòng)力模型能夠與求解程序分離開,氣動(dòng)力模型能夠像氣動(dòng)數(shù)據(jù)一樣在文件中存儲(chǔ)。仿真程序在不需要修改代碼的情況下,通過讀取、解析不同的氣動(dòng)力模型存儲(chǔ)文件來求解不同的氣動(dòng)力模型。
飛行仿真中求解氣動(dòng)力的傳統(tǒng)方法,是對(duì)氣動(dòng)力數(shù)學(xué)模型數(shù)學(xué)表達(dá)式的每一項(xiàng)進(jìn)行求解,再按照表達(dá)式各項(xiàng)之間的運(yùn)算關(guān)系,最終求解氣動(dòng)力。氣動(dòng)力模型的數(shù)學(xué)表達(dá)式和各項(xiàng)對(duì)應(yīng)的各個(gè)變量,在傳統(tǒng)方法的求解程序中是孤立的,只是按照程序的順序結(jié)構(gòu)進(jìn)行求解。然而,氣動(dòng)力數(shù)學(xué)模型中的數(shù)學(xué)表達(dá)式之間以及表達(dá)式各項(xiàng)之間是存在聯(lián)系的。
式(11)的樹形結(jié)構(gòu)如圖1所示,表示動(dòng)壓Q、飛機(jī)參考面積S、平均氣動(dòng)弦長cA和俯仰力矩系數(shù)Cm是俯仰力矩M的數(shù)學(xué)表達(dá)式中的項(xiàng)。
圖1 樹形結(jié)構(gòu)表示的俯仰力矩Fig.1 Pitch moment represented by tree structure
圖2 俯仰力矩的氣動(dòng)力模型樹Fig.2 Aerodynamic model tree of pitch moment
傳統(tǒng)求解方法中的氣動(dòng)力模型是根據(jù)求解程序以線性順序結(jié)構(gòu)描述氣動(dòng)力模型的氣動(dòng)系數(shù)、氣動(dòng)導(dǎo)數(shù)、飛機(jī)參考量、飛行狀態(tài)、控制輸入和氣動(dòng)數(shù)據(jù)表的關(guān)系,依賴于求解程序的順序。氣動(dòng)力模型樹用樹形結(jié)構(gòu)描述它們之間的層次關(guān)系,并用節(jié)點(diǎn)存儲(chǔ)的內(nèi)容描述了它們之間的運(yùn)算關(guān)系和求解信息,這使得氣動(dòng)力模型不再依賴于求解程序,能夠以氣動(dòng)力模型樹的形式單獨(dú)進(jìn)行存儲(chǔ),實(shí)現(xiàn)了氣動(dòng)力模型與求解程序的分離。
飛行仿真中傳統(tǒng)氣動(dòng)力/力矩求解程序無法求解上述的氣動(dòng)力模型樹,所以本文專門編寫MbxSolver求解器求解以MBX存儲(chǔ)格式存儲(chǔ)的氣動(dòng)力模型樹。與傳統(tǒng)方法相比,氣動(dòng)力模型不再被硬編碼在程序中,而是通過加載以MBX存儲(chǔ)格式存儲(chǔ)的氣動(dòng)力模型樹,解析氣動(dòng)力模型樹,并最終求解氣動(dòng)力/力矩。
因此使用基于MBX存儲(chǔ)格式的求解氣動(dòng)力方法后,更換或修改氣動(dòng)力模型,只需要更換或修改程序外部存儲(chǔ)氣動(dòng)力模型樹的文件,不用修改程序,避免了重新編譯、鏈接、調(diào)試和測試程序的繁瑣過程。
XML從標(biāo)準(zhǔn)通用表示語言SGML(Standard Generalized Markup Language)中派生而來,是W3C(萬維網(wǎng)委員會(huì))設(shè)計(jì)的可以記錄、傳輸和理解多種數(shù)據(jù)的標(biāo)準(zhǔn)格式[13-15]。XML文檔自身就是樹形結(jié)構(gòu),與氣動(dòng)力模型樹的樹形結(jié)構(gòu)完美契合。XML實(shí)質(zhì)上是一種定義語言,它允許開發(fā)者通過自定義元素(Elements)、標(biāo)簽(Tags)和屬性(Attributes)進(jìn)行自我描述并創(chuàng)建符合XML語法規(guī)則的語言標(biāo)準(zhǔn)[16]。氣動(dòng)力模型樹節(jié)點(diǎn)存儲(chǔ)的求解信息可以通過自定義元素、標(biāo)簽和屬性來設(shè)計(jì)存儲(chǔ)格式,最后形成語言標(biāo)準(zhǔn)。很多學(xué)科和行業(yè)都基于XML設(shè)計(jì)存儲(chǔ)格式制定了數(shù)據(jù)的交換和共享標(biāo)準(zhǔn)[17]。
氣動(dòng)力模型數(shù)學(xué)表達(dá)式中的項(xiàng)在氣動(dòng)力模型樹中用節(jié)點(diǎn)表示,氣動(dòng)力模型樹的各個(gè)節(jié)點(diǎn)對(duì)應(yīng)MbxSolver程序中的變量,用來計(jì)算氣動(dòng)力/力矩。數(shù)學(xué)表達(dá)式的項(xiàng)、氣動(dòng)力模型樹的節(jié)點(diǎn)和MbxSolver中的變量存在一一映射的關(guān)系。節(jié)點(diǎn)是樹形結(jié)構(gòu)的基本單位,節(jié)點(diǎn)的存儲(chǔ)格式既要能描述自身存儲(chǔ)的求解必要信息,還要能描述和其他節(jié)點(diǎn)之間的樹形結(jié)構(gòu)。
通過對(duì)典型氣動(dòng)力模型的求解方式的總結(jié)歸納,氣動(dòng)力模型樹的節(jié)點(diǎn)根據(jù)求解方式可以分為4種,分別是常量(Const)、查表(Lookup)、公式(Eq)和輸入(Input)。不同節(jié)點(diǎn)類型所需要的求解信息也不一樣。MBX存儲(chǔ)格式用Cell元素來存儲(chǔ)氣動(dòng)力模型樹的節(jié)點(diǎn),Cell元素具有name、type和content等屬性,分別表示Cell元素的名稱、類型和求解信息。name屬性表示節(jié)點(diǎn)名稱,作為Cell元素的唯一標(biāo)識(shí);type屬性表示節(jié)點(diǎn)的類型;content屬性表示求解此節(jié)點(diǎn)所需的求解信息。
MbxSolver讀取氣動(dòng)模型樹常量節(jié)點(diǎn)對(duì)應(yīng)的數(shù)值就可以完成對(duì)常量節(jié)點(diǎn)的求解,飛機(jī)的參考量如平均氣動(dòng)弦長cA和飛機(jī)參考面積S等都屬于常量節(jié)點(diǎn)。常量類型節(jié)點(diǎn)存儲(chǔ)的求解信息就是它表示物理量對(duì)應(yīng)的數(shù)值。常量節(jié)點(diǎn)——飛機(jī)平均氣動(dòng)弦長cA在XML中存儲(chǔ)格式如圖3所示。
飛機(jī)氣動(dòng)模型樹的查表節(jié)點(diǎn)表明此節(jié)點(diǎn)需要查找對(duì)應(yīng)的氣動(dòng)數(shù)據(jù)表在當(dāng)前飛行狀態(tài)和控制輸入下插值求解。它求解需要的信息是查表節(jié)點(diǎn)對(duì)應(yīng)的整個(gè)氣動(dòng)數(shù)據(jù)表。如果把整個(gè)氣動(dòng)數(shù)據(jù)表都作為存儲(chǔ)的求解信息,會(huì)造成氣動(dòng)力模型樹在XML文件中篇幅臃腫,不利于使用者閱讀、編輯氣動(dòng)力模型和表格的復(fù)用。MBX存儲(chǔ)格式統(tǒng)一存儲(chǔ)氣動(dòng)數(shù)據(jù)表,查表節(jié)點(diǎn)的求解信息簡化為對(duì)應(yīng)數(shù)據(jù)表的名稱。MbxSolver在求解查表節(jié)點(diǎn)時(shí),它通過查表節(jié)點(diǎn)存儲(chǔ)的氣動(dòng)數(shù)據(jù)表名稱,查詢到相應(yīng)的氣動(dòng)數(shù)據(jù)表,然后插值求解。查表節(jié)點(diǎn)和氣動(dòng)數(shù)據(jù)表的存儲(chǔ)設(shè)計(jì)不僅可以顯著減少氣動(dòng)力模型樹在XML文件中存儲(chǔ)的大小,還可以最大化的復(fù)用氣動(dòng)數(shù)據(jù)表。例如不同查表節(jié)點(diǎn)存儲(chǔ)相同的數(shù)據(jù)表名稱,表示不同節(jié)點(diǎn)都使用同一數(shù)據(jù)表進(jìn)行插值,但是氣動(dòng)數(shù)據(jù)表在XML文件中只需要被存儲(chǔ)一次。式(6)中俯仰靜穩(wěn)定系數(shù)Cmstatic查表節(jié)點(diǎn)在XML中存儲(chǔ)的格式如圖4(氣動(dòng)數(shù)據(jù)表來自表1)所示。
圖3 常量節(jié)點(diǎn)的MBX存儲(chǔ)格式Fig.3 MBX storage format of constant node
氣動(dòng)數(shù)據(jù)表的名稱作為氣動(dòng)數(shù)據(jù)表的唯一標(biāo)識(shí),所以在同一個(gè)氣動(dòng)力模型存儲(chǔ)文件中不能出現(xiàn)同名的氣動(dòng)數(shù)據(jù)表。
氣動(dòng)模型樹的公式節(jié)點(diǎn)表明節(jié)點(diǎn)是通過數(shù)學(xué)表達(dá)式計(jì)算得到的,公式節(jié)點(diǎn)存儲(chǔ)的求解信息為數(shù)學(xué)表達(dá)式。圖2俯仰力矩系數(shù)Cm節(jié)點(diǎn)是公式節(jié)點(diǎn),content屬性存儲(chǔ)的是式(6)等式右邊的部分。
圖4 查表節(jié)點(diǎn)的MBX存儲(chǔ)格式Fig.4 MBX storage format of lookup node
氣動(dòng)模型樹除了具有求解信息的節(jié)點(diǎn)外,還使用樹形結(jié)構(gòu)描述了節(jié)點(diǎn)之間的關(guān)系。所以Cell元素除了具有以上的屬性外,為了描述氣動(dòng)模型樹的樹形結(jié)構(gòu),Cell元素可以包含所有類型的Cell子元素。Cell元素的結(jié)構(gòu)見圖6。
圖3~圖5都是單個(gè)節(jié)點(diǎn)的存儲(chǔ),是氣動(dòng)力模型樹的葉節(jié)點(diǎn)。公式節(jié)點(diǎn)一般都會(huì)涉及若干個(gè)節(jié)點(diǎn)的運(yùn)算關(guān)系,以圖2俯仰力矩樹的力矩系數(shù)Cm子樹為例,說明公式節(jié)點(diǎn)以及氣動(dòng)力模型樹的MBX存儲(chǔ)格式(數(shù)據(jù)來自表1)。
圖7表示在MBX存儲(chǔ)格式中俯仰力矩系數(shù)Cm子樹的樹形結(jié)構(gòu)是通過Cell 元素的樹形結(jié)構(gòu)進(jìn)行存儲(chǔ)的。根據(jù)圖2表示的氣動(dòng)力模型樹節(jié)點(diǎn)之間的關(guān)系,Cm數(shù)學(xué)表達(dá)式(式(6))的每一項(xiàng)都是MBX存儲(chǔ)格式中Cm的子節(jié)點(diǎn)。圖7的Cell元素與圖2俯仰力矩系數(shù)Cm子樹的節(jié)點(diǎn)具有一一對(duì)應(yīng)的關(guān)系,所以Cm數(shù)學(xué)表達(dá)式的各項(xiàng)對(duì)應(yīng)的Cell元素都是Cm元素的子元素。圖2的氣動(dòng)力模型樹完全可以使用常量、查表、公式、輸入類型的節(jié)點(diǎn)以及它們之間的樹形結(jié)構(gòu)以MBX存儲(chǔ)格式存儲(chǔ)在XML文件中(圖7)。
圖6 Cell元素結(jié)構(gòu)Fig.6 Cell element structure
圖7 俯仰力矩系數(shù)子樹的MBX存儲(chǔ)格式Fig.7 MBX storage format of pitch moment coefficient subtree
MbxSolver通過兩步初始化建立氣動(dòng)力模型樹,再根據(jù)初始化建立的氣動(dòng)力模型樹和不斷更新的飛行狀態(tài)和控制輸入,求解當(dāng)前的氣動(dòng)力和氣動(dòng)力矩。
MbxSolver首先通過XML解析器,先序遍歷[18]以MBX存儲(chǔ)格式存儲(chǔ)的Cell元素樹,在程序中建立Cell元素的樹形結(jié)構(gòu),創(chuàng)建相應(yīng)的Cell對(duì)象。加載完MBX存儲(chǔ)格式的Cell元素樹后,完成第一步初始化。此時(shí)程序中只有氣動(dòng)力模型樹的樹形結(jié)構(gòu),并未解析節(jié)點(diǎn)的類型和存儲(chǔ)的求解信息。
然后,MbxSolver先序遍歷構(gòu)建好的Cell元素樹,解析氣動(dòng)模型樹各個(gè)節(jié)點(diǎn)的類型和內(nèi)容,根據(jù)節(jié)點(diǎn)各自的類型與求解信息,構(gòu)建節(jié)點(diǎn)與氣動(dòng)數(shù)據(jù)表(查表類型節(jié)點(diǎn))、輸入(輸入類型節(jié)點(diǎn))和其他節(jié)點(diǎn)(公式類型節(jié)點(diǎn))之間的關(guān)系,完成第2步初始化。在程序中形成多棵完整的氣動(dòng)力模型樹。
在仿真計(jì)算中,MbxSolver根據(jù)當(dāng)前的飛行狀態(tài)和控制輸入,反復(fù)后序遍歷[18]構(gòu)建好的氣動(dòng)力模型樹,求解當(dāng)前的氣動(dòng)力/力矩。
飛行仿真求解氣動(dòng)力/力矩的傳統(tǒng)方法首先要對(duì)氣動(dòng)力模型進(jìn)行編碼,在飛行仿真運(yùn)行之前還需要編譯、鏈接、調(diào)試和測試,具體流程如圖8所示。
鑒于XML語言的特點(diǎn)以及其他學(xué)科(化學(xué)的ChemML語言中圖形化的編輯器[19]),研發(fā)了基于MBX存儲(chǔ)格式編輯氣動(dòng)力模型的圖形化編輯器MbxEditor(如圖9所示),降低了編輯氣動(dòng)力模型的難度,提高了工程人員編輯氣動(dòng)力模型的效率。
仿真程序只需要調(diào)用氣動(dòng)力求解器MbxSolver加載編輯好的MBX文件,即可求解飛機(jī)的氣動(dòng)力和氣動(dòng)力矩并進(jìn)行仿真,不需要針對(duì)不同氣動(dòng)模型編寫相應(yīng)的求解程序。具體流程如圖10 所示。
通過傳統(tǒng)方法與基于MBX存儲(chǔ)格式方法的對(duì)比(圖8和圖10),基于MBX存儲(chǔ)格式建立氣動(dòng)力模型的流程不涉及到程序的編碼,不要求飛行動(dòng)力學(xué)研究人員精通相應(yīng)的程序語言,還提供了編輯氣動(dòng)力模型的圖形化界面,降低了建立、修改和更換氣動(dòng)力模型的難度;省略了編譯、鏈接、調(diào)試和測試的流程,節(jié)省了建立、修改和更換氣動(dòng)力模型的時(shí)間。因此,MBX存儲(chǔ)格式大幅提高了現(xiàn)代飛行仿真建立、修改和更換氣動(dòng)力模型的效率。
圖8 飛行仿真中傳統(tǒng)氣動(dòng)力/力矩求解流程Fig.8 Solution procedure of traditional method for aerodynamic force and moment in flight simulation
圖9 MBX文件的編輯器——MbxEditorFig.9 Editor for MBX files——MbxEditor
圖10 飛行仿真中基于MBX的氣動(dòng)力/力矩求解流程Fig.10 Solution procedure of MBX method for aerodynamic force and moment in flight simulation
MBX存儲(chǔ)格式除了成功分離氣動(dòng)力模型與求解程序外,它還能夠作為氣動(dòng)力模型交換的標(biāo)準(zhǔn)用于氣動(dòng)力模型交換。不同氣動(dòng)力模型建立方法得到的氣動(dòng)力模型表達(dá)形式不同,氣動(dòng)數(shù)據(jù)存儲(chǔ)格式不同,氣動(dòng)數(shù)據(jù)存儲(chǔ)的文件格式一般也不同。沒有統(tǒng)一的氣動(dòng)力模型的數(shù)據(jù)交換標(biāo)準(zhǔn),使得氣動(dòng)模型在不同機(jī)構(gòu)之間的交換效率非常低下,會(huì)造成時(shí)間和金錢的浪費(fèi)。文獻(xiàn)[20]曾經(jīng)做過調(diào)查研究,如果在20個(gè)地點(diǎn)的59臺(tái)飛行仿真器之間使用統(tǒng)一的標(biāo)準(zhǔn)移植高精度的飛行動(dòng)力學(xué)仿真模型,可以節(jié)省約690萬美元,移植模型花費(fèi)的時(shí)間也會(huì)從幾個(gè)月/人縮短至一周/人的時(shí)間。標(biāo)準(zhǔn)被應(yīng)用的范圍越廣泛,經(jīng)濟(jì)效益會(huì)越明顯。MBX存儲(chǔ)格式是XML定義的語言標(biāo)準(zhǔn),XML本身是一種用于數(shù)據(jù)交換的常用語言,許多學(xué)科基于XML制定了各自的數(shù)據(jù)交換標(biāo)準(zhǔn),例如有限元標(biāo)記語言——femML、化學(xué)標(biāo)記語言——ChemML、數(shù)學(xué)標(biāo)記語言——MathML等[19]。MBX存儲(chǔ)格式也能夠作為氣動(dòng)力模型存儲(chǔ)的標(biāo)準(zhǔn)得以推廣,不同方法得到的氣動(dòng)力模型都以MBX存儲(chǔ)格式進(jìn)行存儲(chǔ),有利于氣動(dòng)力模型的交換。MBX存儲(chǔ)格式實(shí)現(xiàn)了氣動(dòng)力/力矩求解程序的通用性,標(biāo)準(zhǔn)化了氣動(dòng)力/力矩的求解。氣動(dòng)力模型與求解程序解耦之后,氣動(dòng)力/力矩的求解程序MbxSolver可以被設(shè)計(jì)為求解氣動(dòng)力/力矩的標(biāo)準(zhǔn)程序。飛機(jī)性能計(jì)算、飛行品質(zhì)分析和飛行仿真軟件可以內(nèi)置標(biāo)準(zhǔn)化的求解程序MbxSolver,計(jì)算基于MBX存儲(chǔ)格式的氣動(dòng)力模型的氣動(dòng)力/力矩。
當(dāng)MBX存儲(chǔ)格式成為氣動(dòng)力模型的數(shù)據(jù)交換標(biāo)準(zhǔn)時(shí),不同方法建立氣動(dòng)力模型得到的氣動(dòng)力特性數(shù)據(jù)首先被圖形化的編輯器(MbxEditor)編輯為MBX存儲(chǔ)格式存儲(chǔ)的氣動(dòng)力模型,在已知其他力/力矩特性的基礎(chǔ)上,內(nèi)置MbxSolver的飛行性能計(jì)算軟件和飛行品質(zhì)分析軟件可以計(jì)算飛機(jī)的飛行性能和飛行品質(zhì),內(nèi)置MbxSolver的飛行仿真軟件可以用來對(duì)飛機(jī)進(jìn)行仿真,如圖11所示。因?yàn)樯鲜鲕浖际且訫BX存儲(chǔ)格式作為氣動(dòng)力/力矩?cái)?shù)據(jù)交換標(biāo)準(zhǔn),所以更換或修改氣動(dòng)力/氣動(dòng)模型時(shí),只需要通過MbxEditor編輯氣動(dòng)力模型,不涉及到程序的變化,可以實(shí)現(xiàn)快速優(yōu)化和更換氣動(dòng)力/力矩模型。
圖11 MBX存儲(chǔ)格式作為氣動(dòng)力模型的數(shù)據(jù)交換標(biāo)準(zhǔn)Fig.11 MBX storage format as data exchange standard of aerodynamic model
圖11中用于表示CFD計(jì)算結(jié)果的圖來自于商用計(jì)算流體力學(xué)軟件Fluent。系統(tǒng)辨識(shí)下圖中的CIFER是頻率響應(yīng)綜合辨識(shí)軟件包,它是解決飛機(jī)辨識(shí)困難問題的有效工具。目前,CIFER已經(jīng)被廣泛用于固定翼飛機(jī)、旋翼機(jī)以及UAV項(xiàng)目中[21]。
MBX存儲(chǔ)格式現(xiàn)在已經(jīng)在國內(nèi)研究院所、飛機(jī)制造廠商的某些部門進(jìn)行了應(yīng)用,從實(shí)踐的效果來看,MBX存儲(chǔ)格式標(biāo)準(zhǔn)可以加快飛機(jī)氣動(dòng)力模型交換的過程,從幾周/人縮短至幾天/人。同時(shí),它還能夠縮短逼近飛機(jī)真實(shí)氣動(dòng)特性的反復(fù)迭代過程,從而提高飛機(jī)設(shè)計(jì)的效率。
1) 提出氣動(dòng)力模型樹的概念并通過MBX存儲(chǔ)格式來實(shí)現(xiàn)飛行仿真中氣動(dòng)力求解程序和具體氣動(dòng)力模型的分離。更換和修改氣動(dòng)力模型時(shí),只需要編輯和更換以MBX存儲(chǔ)格式存儲(chǔ)的氣動(dòng)力模型,不涉及到程序的修改,避免了重新編譯、鏈接、調(diào)試和測試的過程,提高了優(yōu)化和更換氣動(dòng)模型的效率。
2) 探討了MBX存儲(chǔ)格式作為氣動(dòng)力模型數(shù)據(jù)交換標(biāo)準(zhǔn)的可能性,MBX存儲(chǔ)格式如果能成為氣動(dòng)力模型的數(shù)據(jù)交換標(biāo)準(zhǔn),它可以促進(jìn)不同氣動(dòng)力建模方法得到的不同氣動(dòng)力模型在風(fēng)洞基地、科研院所、大學(xué)實(shí)驗(yàn)室、制造廠商、試飛基地和使用單位的交換與共享。
3) MBX存儲(chǔ)格式提高了氣動(dòng)力求解的通用性,基于MBX存儲(chǔ)格式開發(fā)了一系列的工具包括圖形化編輯器MbxEditor、通用求解器MbxSolver等。MbxEditor用來編輯保存基于MBX存儲(chǔ)格式的氣動(dòng)力模型,可以降低編輯不同氣動(dòng)力模型的難度,提高更換和修改氣動(dòng)力模型的效率。飛行性能、飛行品質(zhì)和飛行仿真都可以使用標(biāo)準(zhǔn)求解程序MbxSolver對(duì)MbxEditor編輯好的氣動(dòng)力模型進(jìn)行求解,這可以縮短飛機(jī)在設(shè)計(jì)和使用中反復(fù)迭代得到準(zhǔn)確氣動(dòng)力模型的過程。