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

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

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

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

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

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