江敏,周琴,齊龍,盧風順
(1. 綿陽職業(yè)技術(shù)學院 機電工程系,四川 綿陽 621000;2. 中國空氣動力研究與發(fā)展中心 計算空氣動力研究所,四川 綿陽 621000)
一直以來,航空/航天飛行器的設(shè)計和研制都涉及許多學科(如空氣動力學、結(jié)構(gòu)力學、熱力學等),是一個非常復(fù)雜的迭代過程。早在20世紀80年代,SOBIESZCZANSKI-SOBIESKI J[1]便指出飛行器設(shè)計時必須考慮多個學科之間的交互,否則肯定無法得到最優(yōu)設(shè)計。因此,多學科優(yōu)化設(shè)計(MDO)成為國內(nèi)外航空/航天領(lǐng)域的一個研究熱點[2-3]。
多學科優(yōu)化設(shè)計框架是MDO的計算機軟件載體,美國國家航空航天局(NASA)將其視為實現(xiàn)未來計算流體力學技術(shù)革命的六項關(guān)鍵技術(shù)之一[4]。優(yōu)秀MDO框架的必要技術(shù)特征包括友好的人機交互界面、適應(yīng)分布式計算環(huán)境、集成多種學科分析程序、提供豐富的優(yōu)化算法、易擴展和維護等。目前,國際上已有iSIGHT和ModelCenter等成熟的商業(yè)軟件,同時也有諸如pyACDT[5]和OpenMDAO[6]等原型系統(tǒng)。而國內(nèi)的MDO框架大多是基于國外商業(yè)軟件二次開發(fā)得到的:西工大的谷良賢等[7]于2004年研究了多學科設(shè)計優(yōu)化集成環(huán)境的集成模式,但未研制出具體的MDO軟件;王麗芹等[8]基于iSIGHT提出了一種多學科綜合優(yōu)化框架的解決方案,探討了其在導(dǎo)彈武器系統(tǒng)研制中的應(yīng)用前景;針對機床整機結(jié)構(gòu)方案設(shè)計問題,牛文鐵等[9]利用iSIGHT搭建了機床的整機結(jié)構(gòu)方案設(shè)計及集成優(yōu)化系統(tǒng)框架,取得了較好的多學科優(yōu)化設(shè)計效果。
可以看出,在多學科優(yōu)化設(shè)計[10-11]框架研究方面,國內(nèi)與國外還存在非常大的差距,目前主要集中在如何利用商業(yè)軟件搭建可用的工程解決方案,而在軟件系統(tǒng)化、產(chǎn)品化方面還有很長的路要走。因此,在我國航空航天工業(yè)大力發(fā)展自主計算流體力學軟件的大背景下,迫切需要發(fā)展一款具有自主知識產(chǎn)權(quán)的MDO框架軟件。
在設(shè)計MDO軟件時,需嚴格遵循軟件工程領(lǐng)域的高內(nèi)聚、低耦合設(shè)計思路,并借鑒一些大型企業(yè)級軟件的分層特點,將其體系結(jié)構(gòu)設(shè)計為圖1所示的界面層、自適應(yīng)優(yōu)化層、通信協(xié)議層、管理層和功能支撐層。采用該設(shè)計方案有如下兩個方面的好處:一是結(jié)構(gòu)清晰,方便自頂向下的整體設(shè)計;二是各層之間的關(guān)聯(lián)性較弱,可以按模塊分解協(xié)同開發(fā)時的任務(wù)量。

圖1 MDO軟件體系結(jié)構(gòu)
界面層允許用戶通過友好的人機交互接口來操作MDO框架軟件,主要采用MVC(模型-視圖-控制)模式和事件機制來驅(qū)動整個系統(tǒng)的運行。該層除包含豐富的界面控件元素外,還提供了工作流定義、過程監(jiān)控以及輸入、輸出功能。
自適應(yīng)優(yōu)化層是多學科優(yōu)化設(shè)計的核心部分,它集成EI修正、代理模型[12]、優(yōu)化目標處理、專家系統(tǒng)等模塊和通用的優(yōu)化設(shè)計算法,借助計算流體力學(CFD)技術(shù)或試驗數(shù)據(jù)庫的數(shù)據(jù)支撐,完成各種氣動外形的優(yōu)化設(shè)計功能。
通信協(xié)議層主要用來保證分布式MDO框架的整體互通,例如借助SSH終端協(xié)議實現(xiàn)遠程登錄,利用SFTP文件傳輸協(xié)議實現(xiàn)各種數(shù)據(jù)文件的上傳/下載功能。
管理層主要負責為自適應(yīng)優(yōu)化層生產(chǎn)、收集和存儲數(shù)據(jù),提供目錄管理、文件傳輸?shù)然A(chǔ)功能。根據(jù)專家系統(tǒng)模塊生成的“靜態(tài)”計算狀態(tài)表,管理層將學科分析程序調(diào)度到本地或者集群上執(zhí)行,并根據(jù)計算結(jié)果自動生成“動態(tài)”計算狀態(tài)表,最終生產(chǎn)出計算目標/約束所需要的數(shù)據(jù)。這些數(shù)據(jù)通常需要進行特定的處理和轉(zhuǎn)換,并且按照預(yù)定義的規(guī)則寫入數(shù)據(jù)庫來實現(xiàn)數(shù)據(jù)的永久性存儲。
功能支撐層集成眾多的學科分析程序(如計算流體力學CFD、計算電磁學CEM、計算結(jié)構(gòu)動力學CSD等),為整個優(yōu)化設(shè)計流程提供基礎(chǔ)數(shù)據(jù),是決定MDO框架計算能力和設(shè)計精度的關(guān)鍵。另外,該層還包括計算資源相關(guān)的基礎(chǔ)設(shè)施,包括本地計算資源和大規(guī)模集群資源。
工作流[13-14]就是一系列相互銜接、自動進行的業(yè)務(wù)活動或任務(wù),目前已廣泛應(yīng)用到各類信息化系統(tǒng)中,主要用來提高辦公效率、規(guī)范性和適應(yīng)性。
圖2為進行多學科優(yōu)化設(shè)計時的完整流程,包含順序、循環(huán)等復(fù)雜邏輯。除此之外,在滿足輸入條件的前提下,用戶可能僅僅需要某些子業(yè)務(wù),而不必走完整個設(shè)計流程。表1僅列出10余種優(yōu)化設(shè)計子業(yè)務(wù)示例,并未覆蓋所有的子業(yè)務(wù)集合。因此,非常有必要借助工作流技術(shù)實現(xiàn)優(yōu)化流程的自由定制,提高MDO框架的適應(yīng)性。

圖2 多學科優(yōu)化時的完整業(yè)務(wù)流程

表1 多學科優(yōu)化設(shè)計存在的業(yè)務(wù)流程舉例
MDO框架采用的開發(fā)工具基本上屬于開源或者免費軟件。下面逐個進行介紹。
集成開發(fā)環(huán)境采用Eclipse (Juno版)。它是一個開源的、基于Java的可擴展開發(fā)平臺,借助插件機制來構(gòu)建集成開發(fā)環(huán)境,已支持Java、C/C++、Fortran、Python、PHP等眾多語言。
編程語言采用C++和Python。它們都是面向?qū)ο蟮某绦蛟O(shè)計語言,其中C++為編譯型,而Python為解釋型的。C++/Python混合編程已被廣泛用于復(fù)雜系統(tǒng)的開發(fā)實踐。Python版本號為2.7.5。
圖形開發(fā)包采用wxWidgets。它是一款針對桌面端或者移動應(yīng)用的圖形界面開發(fā)框架,包含大量的圖形用戶接口,擁有默認的程序執(zhí)行方式和事件處理機制。同時,它是完全跨平臺的并且具備很好的本地視窗效果。此處采用2.9.5版本的wxWidgets。
數(shù)據(jù)庫服務(wù)器采用MySQL。它是世界上比較流行的開源關(guān)系型數(shù)據(jù)庫,可支持擁有上千萬條記錄的大型數(shù)據(jù),具備較好的可移植性。MDO框架借助它實現(xiàn)均勻設(shè)計、學科分析結(jié)果的持久性存儲。MySQL采用的是5.1.73社區(qū)版。
遠程訪問采用針對Python的SSH模塊Paramiko。它是一款免費軟件,實現(xiàn)了針對安全遠程連接的SSH2協(xié)議,具備遠程訪問、文件傳輸?shù)裙δ堋T诖瞬捎玫腜aramiko版本為1.9.0。
1)自適應(yīng)優(yōu)化設(shè)計
自適應(yīng)優(yōu)化設(shè)計模塊能夠根據(jù)尋優(yōu)結(jié)果自動判斷是否進行修正。該過程不需要用戶的任何干預(yù)性操作;更重要的是,它可以提高得到優(yōu)化結(jié)果的可能性。
以采用代理模型的優(yōu)化為例來闡述自適應(yīng)優(yōu)化設(shè)計。整個優(yōu)化過程包含一個自適應(yīng)迭代步驟:如果目標尋優(yōu)后未得到優(yōu)化解,該模塊會根據(jù)EI修正準則生成新的采樣點,對它們再次進行學科分析,并根據(jù)新采樣點和原采樣點的學科分析結(jié)果,重新構(gòu)建代理模型和目標尋優(yōu),直到獲得滿意的優(yōu)化解為止。關(guān)于采用代理模型和EI (expected improvement) 修正準則的算法細節(jié),請參考孫俊峰等人的研究成果[15],在此不再贅述。
2)目標/約束定義

下面以一個簡單的例子來說明如何定義目標和約束。假設(shè)某優(yōu)化問題的目標為最大化馬赫數(shù)0.6時的最大升力系數(shù)、約束為最大升力系數(shù)>0.94,那么可以將該目標和約束組合定義為
其中clmax0d6為優(yōu)化變量,而等號右側(cè)的數(shù)學形式依賴于具體的優(yōu)化程序。
3)專家系統(tǒng)
專家系統(tǒng)模塊實際處理的是優(yōu)化變量,目前可支持切片型、插值型和定制型三類優(yōu)化變量。
對切片型優(yōu)化變量來說,其變量值可以從學科分析計算結(jié)果中直接提取或者經(jīng)過簡單整理得到。例如,假設(shè)優(yōu)化變量clmax0d6表示馬赫數(shù)0.6時的最大升力系數(shù),那么clmax0d6便屬于切片型。求解切片型優(yōu)化變量時,專家系統(tǒng)模塊會生成一系列靜態(tài)的計算狀態(tài)表;所有狀態(tài)計算完畢后便可整理計算結(jié)果,得到切片型優(yōu)化變量的值。
圖3描述了MDO框架運行時的邏輯流程,即經(jīng)過項目配置、問題定義、采樣、學科分析等必要步驟,然后才能進行建模和優(yōu)化。下文著重介紹整個MDO框架的數(shù)據(jù)流關(guān)系。

圖3 MDO框架運行流程
MDO框架的數(shù)據(jù)流涉及設(shè)計空間變量范圍、采樣文件、靜態(tài)計算狀態(tài)表和修正采樣數(shù)據(jù)等四種數(shù)據(jù),其中第一種數(shù)據(jù)是采樣步驟的輸入,而后三種是學科分析的輸入。
在設(shè)計空間定義步驟,MDO框架以表格形式和半交互方式幫助用戶定義設(shè)計空間,其最終輸出是每個設(shè)計變量的范圍。
對于所有的設(shè)計變量,當在其相應(yīng)范圍內(nèi)給每個設(shè)計變量取值,便形成了一個采樣點;依此類推,可以得到規(guī)定數(shù)量的采樣點(即初始采樣點集,主要用于學科分析階段的網(wǎng)格生成步驟)。
在優(yōu)化變量配置部分,專家系統(tǒng)模塊輔助生成“靜態(tài)”計算狀態(tài)表,方便多學科分析過程的實現(xiàn)。需要注意的是,在執(zhí)行多學科分析時,MDO框架會根據(jù)學科分析結(jié)果自動生成“動態(tài)”計算狀態(tài)表,從而進行某些特定類型(例如插值型和定制型)的學科分析。
為檢驗MDO框架的實際性能,本節(jié)基于該優(yōu)化框架對某航天器外形進行多學科多目標優(yōu)化設(shè)計,對應(yīng)的優(yōu)化問題如下式所示:
其中下標0代表基準外形。
該航天器的外形由多個部件構(gòu)成,其中機身是此次優(yōu)化重點關(guān)注的部位,選取的設(shè)計變量為機身頭部半徑、機身最大寬度、第三段后部上半部高度、第四段長度、機身后部V尾切平面起點對應(yīng)角度、機身后部V尾切平面角度和機身座艙起始處角度。針對上述7個設(shè)計變量,試驗設(shè)計采用7因素6水平的均勻設(shè)計表U60(67),樣本數(shù)為60,即對60個外形進行學科分析。多目標優(yōu)化算法的運行參數(shù)設(shè)置如下:種群規(guī)模400,優(yōu)化代數(shù)400,交叉概率0.8,變異概率0.2。
在進行多學科分析、建模和優(yōu)化后,可以得到包含14個樣本的解集。經(jīng)驗證,其中10個樣本是優(yōu)化解,它們相對于基準外形的優(yōu)化效果如圖4所示。從圖中可以看出,整體性能較好的外形為opt2、opt3和opt9,這些外形的3個指標性能都提高2%以上。對于指標Heat_m7a15,外形opt4、opt8和opt10表現(xiàn)較好,性能都比基準外形提高8%以上。對于指標Cl_m0d2a12,性能最好的外形為opt1、opt2和opt3,它們都比基準外形的性能提高5%以上。因此,設(shè)計者可根據(jù)實際情況選擇自己所需要的優(yōu)化外形。
對于該航天器外形,MDO框架得到的優(yōu)化結(jié)果與人工操作的完全相同,但前者具有更高的自動化程度。
針對國內(nèi)自主產(chǎn)權(quán)優(yōu)化設(shè)計框架欠缺的問題,本文基于工作流技術(shù)設(shè)計實現(xiàn)了一款多學科多目標氣動外形優(yōu)化設(shè)計框架。該MDO框架能夠整合氣動力、氣動熱等學科分析程序,集成各類多目標優(yōu)化算法、代理模型以及模型參數(shù)化技術(shù),支持本地計算和后臺大規(guī)模集群計算,借助數(shù)據(jù)庫實現(xiàn)關(guān)鍵數(shù)據(jù)的持久存儲,可提高優(yōu)化設(shè)計過程的自動化程度。該MDO框架的實現(xiàn),有助于解決國內(nèi)優(yōu)化設(shè)計領(lǐng)域自主軟件欠缺的問題。
下一步的工作內(nèi)容包括兩個方面:一是升級軟件的工作流引擎;二是利用其他工程算法,進一步對所研制的MDO軟件進行大規(guī)模測試。