江敏,周琴,齊龍,盧風(fēng)順
(1. 綿陽(yáng)職業(yè)技術(shù)學(xué)院 機(jī)電工程系,四川 綿陽(yáng) 621000;2. 中國(guó)空氣動(dòng)力研究與發(fā)展中心 計(jì)算空氣動(dòng)力研究所,四川 綿陽(yáng) 621000)
一直以來(lái),航空/航天飛行器的設(shè)計(jì)和研制都涉及許多學(xué)科(如空氣動(dòng)力學(xué)、結(jié)構(gòu)力學(xué)、熱力學(xué)等),是一個(gè)非常復(fù)雜的迭代過(guò)程。早在20世紀(jì)80年代,SOBIESZCZANSKI-SOBIESKI J[1]便指出飛行器設(shè)計(jì)時(shí)必須考慮多個(gè)學(xué)科之間的交互,否則肯定無(wú)法得到最優(yōu)設(shè)計(jì)。因此,多學(xué)科優(yōu)化設(shè)計(jì)(MDO)成為國(guó)內(nèi)外航空/航天領(lǐng)域的一個(gè)研究熱點(diǎn)[2-3]。
多學(xué)科優(yōu)化設(shè)計(jì)框架是MDO的計(jì)算機(jī)軟件載體,美國(guó)國(guó)家航空航天局(NASA)將其視為實(shí)現(xiàn)未來(lái)計(jì)算流體力學(xué)技術(shù)革命的六項(xiàng)關(guān)鍵技術(shù)之一[4]。優(yōu)秀MDO框架的必要技術(shù)特征包括友好的人機(jī)交互界面、適應(yīng)分布式計(jì)算環(huán)境、集成多種學(xué)科分析程序、提供豐富的優(yōu)化算法、易擴(kuò)展和維護(hù)等。目前,國(guó)際上已有iSIGHT和ModelCenter等成熟的商業(yè)軟件,同時(shí)也有諸如pyACDT[5]和OpenMDAO[6]等原型系統(tǒng)。而國(guó)內(nèi)的MDO框架大多是基于國(guó)外商業(yè)軟件二次開發(fā)得到的:西工大的谷良賢等[7]于2004年研究了多學(xué)科設(shè)計(jì)優(yōu)化集成環(huán)境的集成模式,但未研制出具體的MDO軟件;王麗芹等[8]基于iSIGHT提出了一種多學(xué)科綜合優(yōu)化框架的解決方案,探討了其在導(dǎo)彈武器系統(tǒng)研制中的應(yīng)用前景;針對(duì)機(jī)床整機(jī)結(jié)構(gòu)方案設(shè)計(jì)問(wèn)題,牛文鐵等[9]利用iSIGHT搭建了機(jī)床的整機(jī)結(jié)構(gòu)方案設(shè)計(jì)及集成優(yōu)化系統(tǒng)框架,取得了較好的多學(xué)科優(yōu)化設(shè)計(jì)效果。
可以看出,在多學(xué)科優(yōu)化設(shè)計(jì)[10-11]框架研究方面,國(guó)內(nèi)與國(guó)外還存在非常大的差距,目前主要集中在如何利用商業(yè)軟件搭建可用的工程解決方案,而在軟件系統(tǒng)化、產(chǎn)品化方面還有很長(zhǎng)的路要走。因此,在我國(guó)航空航天工業(yè)大力發(fā)展自主計(jì)算流體力學(xué)軟件的大背景下,迫切需要發(fā)展一款具有自主知識(shí)產(chǎn)權(quán)的MDO框架軟件。
在設(shè)計(jì)MDO軟件時(shí),需嚴(yán)格遵循軟件工程領(lǐng)域的高內(nèi)聚、低耦合設(shè)計(jì)思路,并借鑒一些大型企業(yè)級(jí)軟件的分層特點(diǎn),將其體系結(jié)構(gòu)設(shè)計(jì)為圖1所示的界面層、自適應(yīng)優(yōu)化層、通信協(xié)議層、管理層和功能支撐層。采用該設(shè)計(jì)方案有如下兩個(gè)方面的好處:一是結(jié)構(gòu)清晰,方便自頂向下的整體設(shè)計(jì);二是各層之間的關(guān)聯(lián)性較弱,可以按模塊分解協(xié)同開發(fā)時(shí)的任務(wù)量。
圖1 MDO軟件體系結(jié)構(gòu)
界面層允許用戶通過(guò)友好的人機(jī)交互接口來(lái)操作MDO框架軟件,主要采用MVC(模型-視圖-控制)模式和事件機(jī)制來(lái)驅(qū)動(dòng)整個(gè)系統(tǒng)的運(yùn)行。該層除包含豐富的界面控件元素外,還提供了工作流定義、過(guò)程監(jiān)控以及輸入、輸出功能。
自適應(yīng)優(yōu)化層是多學(xué)科優(yōu)化設(shè)計(jì)的核心部分,它集成EI修正、代理模型[12]、優(yōu)化目標(biāo)處理、專家系統(tǒng)等模塊和通用的優(yōu)化設(shè)計(jì)算法,借助計(jì)算流體力學(xué)(CFD)技術(shù)或試驗(yàn)數(shù)據(jù)庫(kù)的數(shù)據(jù)支撐,完成各種氣動(dòng)外形的優(yōu)化設(shè)計(jì)功能。
通信協(xié)議層主要用來(lái)保證分布式MDO框架的整體互通,例如借助SSH終端協(xié)議實(shí)現(xiàn)遠(yuǎn)程登錄,利用SFTP文件傳輸協(xié)議實(shí)現(xiàn)各種數(shù)據(jù)文件的上傳/下載功能。
管理層主要負(fù)責(zé)為自適應(yīng)優(yōu)化層生產(chǎn)、收集和存儲(chǔ)數(shù)據(jù),提供目錄管理、文件傳輸?shù)然A(chǔ)功能。根據(jù)專家系統(tǒng)模塊生成的“靜態(tài)”計(jì)算狀態(tài)表,管理層將學(xué)科分析程序調(diào)度到本地或者集群上執(zhí)行,并根據(jù)計(jì)算結(jié)果自動(dòng)生成“動(dòng)態(tài)”計(jì)算狀態(tài)表,最終生產(chǎn)出計(jì)算目標(biāo)/約束所需要的數(shù)據(jù)。這些數(shù)據(jù)通常需要進(jìn)行特定的處理和轉(zhuǎn)換,并且按照預(yù)定義的規(guī)則寫入數(shù)據(jù)庫(kù)來(lái)實(shí)現(xiàn)數(shù)據(jù)的永久性存儲(chǔ)。
功能支撐層集成眾多的學(xué)科分析程序(如計(jì)算流體力學(xué)CFD、計(jì)算電磁學(xué)CEM、計(jì)算結(jié)構(gòu)動(dòng)力學(xué)CSD等),為整個(gè)優(yōu)化設(shè)計(jì)流程提供基礎(chǔ)數(shù)據(jù),是決定MDO框架計(jì)算能力和設(shè)計(jì)精度的關(guān)鍵。另外,該層還包括計(jì)算資源相關(guān)的基礎(chǔ)設(shè)施,包括本地計(jì)算資源和大規(guī)模集群資源。
工作流[13-14]就是一系列相互銜接、自動(dòng)進(jìn)行的業(yè)務(wù)活動(dòng)或任務(wù),目前已廣泛應(yīng)用到各類信息化系統(tǒng)中,主要用來(lái)提高辦公效率、規(guī)范性和適應(yīng)性。
圖2為進(jìn)行多學(xué)科優(yōu)化設(shè)計(jì)時(shí)的完整流程,包含順序、循環(huán)等復(fù)雜邏輯。除此之外,在滿足輸入條件的前提下,用戶可能僅僅需要某些子業(yè)務(wù),而不必走完整個(gè)設(shè)計(jì)流程。表1僅列出10余種優(yōu)化設(shè)計(jì)子業(yè)務(wù)示例,并未覆蓋所有的子業(yè)務(wù)集合。因此,非常有必要借助工作流技術(shù)實(shí)現(xiàn)優(yōu)化流程的自由定制,提高M(jìn)DO框架的適應(yīng)性。
圖2 多學(xué)科優(yōu)化時(shí)的完整業(yè)務(wù)流程
表1 多學(xué)科優(yōu)化設(shè)計(jì)存在的業(yè)務(wù)流程舉例
MDO框架采用的開發(fā)工具基本上屬于開源或者免費(fèi)軟件。下面逐個(gè)進(jìn)行介紹。
集成開發(fā)環(huán)境采用Eclipse (Juno版)。它是一個(gè)開源的、基于Java的可擴(kuò)展開發(fā)平臺(tái),借助插件機(jī)制來(lái)構(gòu)建集成開發(fā)環(huán)境,已支持Java、C/C++、Fortran、Python、PHP等眾多語(yǔ)言。
編程語(yǔ)言采用C++和Python。它們都是面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言,其中C++為編譯型,而Python為解釋型的。C++/Python混合編程已被廣泛用于復(fù)雜系統(tǒng)的開發(fā)實(shí)踐。Python版本號(hào)為2.7.5。
圖形開發(fā)包采用wxWidgets。它是一款針對(duì)桌面端或者移動(dòng)應(yīng)用的圖形界面開發(fā)框架,包含大量的圖形用戶接口,擁有默認(rèn)的程序執(zhí)行方式和事件處理機(jī)制。同時(shí),它是完全跨平臺(tái)的并且具備很好的本地視窗效果。此處采用2.9.5版本的wxWidgets。
數(shù)據(jù)庫(kù)服務(wù)器采用MySQL。它是世界上比較流行的開源關(guān)系型數(shù)據(jù)庫(kù),可支持擁有上千萬(wàn)條記錄的大型數(shù)據(jù),具備較好的可移植性。MDO框架借助它實(shí)現(xiàn)均勻設(shè)計(jì)、學(xué)科分析結(jié)果的持久性存儲(chǔ)。MySQL采用的是5.1.73社區(qū)版。
遠(yuǎn)程訪問(wèn)采用針對(duì)Python的SSH模塊Paramiko。它是一款免費(fèi)軟件,實(shí)現(xiàn)了針對(duì)安全遠(yuǎn)程連接的SSH2協(xié)議,具備遠(yuǎn)程訪問(wèn)、文件傳輸?shù)裙δ?。在此采用的Paramiko版本為1.9.0。
1)自適應(yīng)優(yōu)化設(shè)計(jì)
自適應(yīng)優(yōu)化設(shè)計(jì)模塊能夠根據(jù)尋優(yōu)結(jié)果自動(dòng)判斷是否進(jìn)行修正。該過(guò)程不需要用戶的任何干預(yù)性操作;更重要的是,它可以提高得到優(yōu)化結(jié)果的可能性。
以采用代理模型的優(yōu)化為例來(lái)闡述自適應(yīng)優(yōu)化設(shè)計(jì)。整個(gè)優(yōu)化過(guò)程包含一個(gè)自適應(yīng)迭代步驟:如果目標(biāo)尋優(yōu)后未得到優(yōu)化解,該模塊會(huì)根據(jù)EI修正準(zhǔn)則生成新的采樣點(diǎn),對(duì)它們?cè)俅芜M(jìn)行學(xué)科分析,并根據(jù)新采樣點(diǎn)和原采樣點(diǎn)的學(xué)科分析結(jié)果,重新構(gòu)建代理模型和目標(biāo)尋優(yōu),直到獲得滿意的優(yōu)化解為止。關(guān)于采用代理模型和EI (expected improvement) 修正準(zhǔn)則的算法細(xì)節(jié),請(qǐng)參考孫俊峰等人的研究成果[15],在此不再贅述。
2)目標(biāo)/約束定義
下面以一個(gè)簡(jiǎn)單的例子來(lái)說(shuō)明如何定義目標(biāo)和約束。假設(shè)某優(yōu)化問(wèn)題的目標(biāo)為最大化馬赫數(shù)0.6時(shí)的最大升力系數(shù)、約束為最大升力系數(shù)>0.94,那么可以將該目標(biāo)和約束組合定義為
其中clmax0d6為優(yōu)化變量,而等號(hào)右側(cè)的數(shù)學(xué)形式依賴于具體的優(yōu)化程序。
3)專家系統(tǒng)
專家系統(tǒng)模塊實(shí)際處理的是優(yōu)化變量,目前可支持切片型、插值型和定制型三類優(yōu)化變量。
對(duì)切片型優(yōu)化變量來(lái)說(shuō),其變量值可以從學(xué)科分析計(jì)算結(jié)果中直接提取或者經(jīng)過(guò)簡(jiǎn)單整理得到。例如,假設(shè)優(yōu)化變量clmax0d6表示馬赫數(shù)0.6時(shí)的最大升力系數(shù),那么clmax0d6便屬于切片型。求解切片型優(yōu)化變量時(shí),專家系統(tǒng)模塊會(huì)生成一系列靜態(tài)的計(jì)算狀態(tài)表;所有狀態(tài)計(jì)算完畢后便可整理計(jì)算結(jié)果,得到切片型優(yōu)化變量的值。
圖3描述了MDO框架運(yùn)行時(shí)的邏輯流程,即經(jīng)過(guò)項(xiàng)目配置、問(wèn)題定義、采樣、學(xué)科分析等必要步驟,然后才能進(jìn)行建模和優(yōu)化。下文著重介紹整個(gè)MDO框架的數(shù)據(jù)流關(guān)系。
圖3 MDO框架運(yùn)行流程
MDO框架的數(shù)據(jù)流涉及設(shè)計(jì)空間變量范圍、采樣文件、靜態(tài)計(jì)算狀態(tài)表和修正采樣數(shù)據(jù)等四種數(shù)據(jù),其中第一種數(shù)據(jù)是采樣步驟的輸入,而后三種是學(xué)科分析的輸入。
在設(shè)計(jì)空間定義步驟,MDO框架以表格形式和半交互方式幫助用戶定義設(shè)計(jì)空間,其最終輸出是每個(gè)設(shè)計(jì)變量的范圍。
對(duì)于所有的設(shè)計(jì)變量,當(dāng)在其相應(yīng)范圍內(nèi)給每個(gè)設(shè)計(jì)變量取值,便形成了一個(gè)采樣點(diǎn);依此類推,可以得到規(guī)定數(shù)量的采樣點(diǎn)(即初始采樣點(diǎn)集,主要用于學(xué)科分析階段的網(wǎng)格生成步驟)。
在優(yōu)化變量配置部分,專家系統(tǒng)模塊輔助生成“靜態(tài)”計(jì)算狀態(tài)表,方便多學(xué)科分析過(guò)程的實(shí)現(xiàn)。需要注意的是,在執(zhí)行多學(xué)科分析時(shí),MDO框架會(huì)根據(jù)學(xué)科分析結(jié)果自動(dòng)生成“動(dòng)態(tài)”計(jì)算狀態(tài)表,從而進(jìn)行某些特定類型(例如插值型和定制型)的學(xué)科分析。
為檢驗(yàn)MDO框架的實(shí)際性能,本節(jié)基于該優(yōu)化框架對(duì)某航天器外形進(jìn)行多學(xué)科多目標(biāo)優(yōu)化設(shè)計(jì),對(duì)應(yīng)的優(yōu)化問(wèn)題如下式所示:
其中下標(biāo)0代表基準(zhǔn)外形。
該航天器的外形由多個(gè)部件構(gòu)成,其中機(jī)身是此次優(yōu)化重點(diǎn)關(guān)注的部位,選取的設(shè)計(jì)變量為機(jī)身頭部半徑、機(jī)身最大寬度、第三段后部上半部高度、第四段長(zhǎng)度、機(jī)身后部V尾切平面起點(diǎn)對(duì)應(yīng)角度、機(jī)身后部V尾切平面角度和機(jī)身座艙起始處角度。針對(duì)上述7個(gè)設(shè)計(jì)變量,試驗(yàn)設(shè)計(jì)采用7因素6水平的均勻設(shè)計(jì)表U60(67),樣本數(shù)為60,即對(duì)60個(gè)外形進(jìn)行學(xué)科分析。多目標(biāo)優(yōu)化算法的運(yùn)行參數(shù)設(shè)置如下:種群規(guī)模400,優(yōu)化代數(shù)400,交叉概率0.8,變異概率0.2。
在進(jìn)行多學(xué)科分析、建模和優(yōu)化后,可以得到包含14個(gè)樣本的解集。經(jīng)驗(yàn)證,其中10個(gè)樣本是優(yōu)化解,它們相對(duì)于基準(zhǔn)外形的優(yōu)化效果如圖4所示。從圖中可以看出,整體性能較好的外形為opt2、opt3和opt9,這些外形的3個(gè)指標(biāo)性能都提高2%以上。對(duì)于指標(biāo)Heat_m7a15,外形opt4、opt8和opt10表現(xiàn)較好,性能都比基準(zhǔn)外形提高8%以上。對(duì)于指標(biāo)Cl_m0d2a12,性能最好的外形為opt1、opt2和opt3,它們都比基準(zhǔn)外形的性能提高5%以上。因此,設(shè)計(jì)者可根據(jù)實(shí)際情況選擇自己所需要的優(yōu)化外形。
對(duì)于該航天器外形,MDO框架得到的優(yōu)化結(jié)果與人工操作的完全相同,但前者具有更高的自動(dòng)化程度。
針對(duì)國(guó)內(nèi)自主產(chǎn)權(quán)優(yōu)化設(shè)計(jì)框架欠缺的問(wèn)題,本文基于工作流技術(shù)設(shè)計(jì)實(shí)現(xiàn)了一款多學(xué)科多目標(biāo)氣動(dòng)外形優(yōu)化設(shè)計(jì)框架。該MDO框架能夠整合氣動(dòng)力、氣動(dòng)熱等學(xué)科分析程序,集成各類多目標(biāo)優(yōu)化算法、代理模型以及模型參數(shù)化技術(shù),支持本地計(jì)算和后臺(tái)大規(guī)模集群計(jì)算,借助數(shù)據(jù)庫(kù)實(shí)現(xiàn)關(guān)鍵數(shù)據(jù)的持久存儲(chǔ),可提高優(yōu)化設(shè)計(jì)過(guò)程的自動(dòng)化程度。該MDO框架的實(shí)現(xiàn),有助于解決國(guó)內(nèi)優(yōu)化設(shè)計(jì)領(lǐng)域自主軟件欠缺的問(wèn)題。
下一步的工作內(nèi)容包括兩個(gè)方面:一是升級(jí)軟件的工作流引擎;二是利用其他工程算法,進(jìn)一步對(duì)所研制的MDO軟件進(jìn)行大規(guī)模測(cè)試。