高玉瓊,呂利葉,李建飛,宋學(xué)官
(大連理工大學(xué)機(jī)械工程學(xué)院,遼寧 大連 116023)
代理模型是一種被廣泛應(yīng)用于工程設(shè)計(jì)及優(yōu)化問題中的數(shù)學(xué)近似方法[1]。在復(fù)雜系統(tǒng)的設(shè)計(jì)空間中,能夠以較少樣本點(diǎn)為基礎(chǔ)擬合出系統(tǒng)輸入?yún)?shù)和輸出值之間的關(guān)系,具有擬合精度好、成本低、工作效率高等特點(diǎn)。常用的代理模型技術(shù)包括多項(xiàng)式擬合曲面(Polynomial Regression Surface,PRS)[2]、徑向基函數(shù)(Radial Basis Function,RBF)[3]、克里金(Kriging,KRG)[4]等,基于代理模型技術(shù)的優(yōu)化設(shè)計(jì)流程一般,如圖1所示。i SIGHT和MATLAB具有強(qiáng)大的計(jì)算及優(yōu)化能力,但操作門檻較高,對(duì)于用戶的專業(yè)知識(shí)能力和計(jì)算機(jī)的硬件水平要求較高。借助可視化工具GUI可以降低代理模型技術(shù)的使用難度,在解決問題的過程中為用戶提供現(xiàn)有任務(wù)和解決方案之間的用戶行為交互及數(shù)據(jù)傳輸,用戶在界面上的操作結(jié)果可以被展現(xiàn)在MATLAB的圖形窗口中[5]基于MATLAB的用戶圖形界面工具開發(fā)應(yīng)用十分廣泛:文獻(xiàn)[6]開發(fā)出基于MATLAB GUI的圖像處理平臺(tái),文獻(xiàn)[7]設(shè)計(jì)出全局敏感度分析工具箱,文獻(xiàn)[8]開發(fā)出數(shù)據(jù)驅(qū)動(dòng)的相似分類法(SIMCA)用戶界面。
提出了一種基于MALTAB用戶圖形界面的代理模型優(yōu)化設(shè)計(jì)工具箱,該工具箱主要包含試驗(yàn)設(shè)計(jì)、建立代理模型、預(yù)測(cè)及優(yōu)化三個(gè)模塊。通過數(shù)值分析實(shí)例證明該工具箱的實(shí)用性,能夠很好的幫助用戶解決常見工程設(shè)計(jì)優(yōu)化問題,同時(shí)也能夠推廣代理模型技術(shù)的應(yīng)用。
圖1基于代理模型的設(shè)計(jì)及優(yōu)化流程圖Fig.1 The Flow Chart of Surrogate-Based Design and Optimization
SBDO工具箱包含四個(gè)模塊。用戶打開主界面后,依據(jù)窗口提示首先打開試驗(yàn)設(shè)計(jì)窗口進(jìn)行隨機(jī)抽樣取點(diǎn)。該界面囊括了四種常用抽樣方法,分別是拉丁超立方試驗(yàn)設(shè)計(jì)(Latin Hyper?cube Design,LHD)、全析因試驗(yàn)設(shè)計(jì)(Full-factorial Design,F(xiàn)FD)、Box-Behnken試驗(yàn)設(shè)計(jì)(Box-Behnken Design,BBD)和中心復(fù)合試驗(yàn)設(shè)計(jì)(Central Composite Design,CCD)。用戶只需要按提示在界面輸入框中輸入自變量的數(shù)目和取值范圍,便可以選擇任意一種抽樣方法對(duì)自變量進(jìn)行取點(diǎn),由于代理模型的建立和精度檢測(cè)需要訓(xùn)練點(diǎn)及檢測(cè)點(diǎn),用戶需要進(jìn)行兩次抽樣,抽樣結(jié)果通過保存按鈕保存在DOE_Points.xlsx表格中,相應(yīng)的響應(yīng)值需要用戶通過仿真計(jì)算得到。
完成抽樣取點(diǎn)后關(guān)閉DoE界面,可在主界面上按提示點(diǎn)擊按鈕打開建立代理模型窗口。該界面包含三種常用的代理模型理論,分別為PRS、RBF和KRG。用戶導(dǎo)入訓(xùn)練點(diǎn)和測(cè)試點(diǎn)信息后,通過切換代理模型方法,便可以建立代理模型并檢測(cè)其精度,檢測(cè)指標(biāo)的計(jì)算結(jié)果將會(huì)以數(shù)值方式顯示。界面還包含有基于期望的加點(diǎn)方法,若模型精度為達(dá)到要求,用戶可更換代理模型類型、重新抽樣或通過添加訓(xùn)練點(diǎn)來增加模型擬合精度。
完成上述工作后,最后打開預(yù)測(cè)及優(yōu)化窗口,在該界面中用戶可通過優(yōu)化算法找到最優(yōu)解,待優(yōu)化問題的目標(biāo)函數(shù)既可以是通過上一步建立的代理模型擬合值,也可以是用戶自定義函數(shù)。此界面包含常用的遺傳算法(Genetic Algorithm,GA)、多目標(biāo)遺傳算法(Multi-Objective Genetic Algorithm)和粒子群算法(Parti?cle Swarm Optimization,PSO)等。各模塊的結(jié)果將會(huì)以數(shù)值或圖形顯示在用戶界面中,SBDO工具箱的框架圖,每一個(gè)模塊都包含了若干理論方法,如圖2所示。
圖2 SBDO工具箱的框架圖Fig.2 The System Block Diagram of SBDO Toolbox
抽樣通常是基于代理模型的設(shè)計(jì)及優(yōu)化方法的第一步,是一種用計(jì)算機(jī)模擬實(shí)驗(yàn)取樣過程的數(shù)理統(tǒng)計(jì)方法,在試驗(yàn)設(shè)計(jì)模塊中能夠隨機(jī)生成建立代理模型所需要的訓(xùn)練點(diǎn)和檢測(cè)點(diǎn)。為了使代理模型更加貼近真實(shí)的變量和響應(yīng)值之間的關(guān)系,樣本點(diǎn)應(yīng)隨機(jī)分布并盡量布滿設(shè)計(jì)空間。該模塊主要包含四種試驗(yàn)設(shè)計(jì)方法,其中LHD常用于自變量多維分布的設(shè)計(jì)空間,它能快速生成大量近似隨機(jī)分布的樣本點(diǎn)[9],是一種應(yīng)用廣泛的抽樣方法;FFD是一種多因素交叉分組設(shè)計(jì)方法,所得到的樣本點(diǎn)與真實(shí)抽樣實(shí)驗(yàn)結(jié)果相同,展現(xiàn)出每個(gè)變量的所具有的全部水平組合方式,得到的樣本點(diǎn)信息量較多;BBD常適用于響應(yīng)面分析,它是一類基于三層不完全因子設(shè)計(jì)的可旋轉(zhuǎn)或近似可旋轉(zhuǎn)二階設(shè)計(jì),適合自變量因素(維度)較少時(shí)使用。CCD是二階二次型設(shè)計(jì)方法,與BBD的適用范圍類似,但在相同因素下的實(shí)驗(yàn)次數(shù)比BBD更多。
該模塊旨在引導(dǎo)用戶通過界面操作,建立一個(gè)代理模型以近似模擬自變量與目標(biāo)函數(shù)之間的關(guān)系并檢驗(yàn)?zāi)P途龋缑嬷羞€提供了一種加點(diǎn)準(zhǔn)則以增強(qiáng)模型的擬合精度。該模塊主要包含三種典型代理模、精度檢驗(yàn)和加點(diǎn)策略。
2.2.1多項(xiàng)式響應(yīng)曲面代理模型
多項(xiàng)式響應(yīng)曲面代理模型也被稱作為多項(xiàng)式回歸分析,是一種基于最小二乘法的回歸分析方法,擬合結(jié)果具有良好的連續(xù)性和可導(dǎo)性,能較好的去除數(shù)字噪聲的影響,易于后續(xù)尋找最優(yōu)解。對(duì)于n維變量,它的多項(xiàng)式公式基本形式為:
2.2.2徑向基函數(shù)代理模型
徑向基函數(shù)是一種用于離散多變量數(shù)據(jù)的插值擬合方法,它的計(jì)算速度較快,擬合精度及魯棒性較好。其響應(yīng)值可以看作各種徑向基函數(shù)的線性組合,基本數(shù)學(xué)表達(dá)式為:
在建立代理模型的過程中,為了得到唯一解,徑向基函數(shù)中的矩陣應(yīng)為方陣,因此指定徑向基函數(shù)代理模型基本公式可以表示為ΨW=Y,W的計(jì)算公式為W=Ψ-1Y。常用的徑向基函數(shù)有線性函數(shù),立方型函數(shù),高斯函數(shù),多重二次曲面函數(shù),倒多重二次曲面函數(shù)等類型。
2.2.3 Kriging代理模型
Kriging模型是一種估計(jì)方差最小的無偏估計(jì)模型,是基于高斯過程的內(nèi)插擬合方法,在處理局部數(shù)據(jù)突變的問題時(shí)擬合精度較高,可以較好的處理各類各向同性或各向異性問題,但它的數(shù)學(xué)公式較為復(fù)雜,建立代理模型時(shí)的計(jì)算工作量較大。Kriging代理模型的基本數(shù)學(xué)公式為:
式中:f(x)—已知的近似模擬模型;z(x)—高斯隨機(jī)過程。
高斯過程的期望為0,協(xié)方差矩陣為:
式中:σ2—z(x)的方差;R—相關(guān)系數(shù)矩陣相關(guān)函數(shù),最常用的是高斯函數(shù)。
則基于Kriging的最佳預(yù)測(cè)估計(jì)響應(yīng)值計(jì)算式為:
式中:f—由n個(gè)樣本點(diǎn)的輸出值組成的列向量;r—未知點(diǎn)x與樣本點(diǎn)之間的相關(guān)向量。
方差的最大似然估計(jì)(Maximum Likelihood Estimates,MLEs)為:
高斯函數(shù)中的未知參數(shù)θ的計(jì)算公式為:
在本模塊中,用戶可選擇優(yōu)化算法在整個(gè)設(shè)計(jì)及優(yōu)化空間中尋找最優(yōu)解決方案。該模塊內(nèi)置2種優(yōu)化算法用于解決無約束最小值問題,1種優(yōu)化算法用于解決帶約束的非線性規(guī)劃問題,以及遺傳算法GA、多目標(biāo)遺傳算法和粒子群算法PSO。GA是一種基于自然選擇和生物進(jìn)化的尋優(yōu)算法,在尋優(yōu)過程中,通過模擬自然生物界的選擇、交叉和變異過程找到最優(yōu)解;多目標(biāo)遺傳算法可以針對(duì)多個(gè)目標(biāo)值得到Pareto最優(yōu)解;PSO是一種從隨機(jī)初始值開始,通過迭代來搜尋最優(yōu)解的進(jìn)化算法。對(duì)于算法中的目標(biāo)函數(shù),用戶既可選擇使用在上一步中建立的代理模型進(jìn)行預(yù)測(cè),也可以自定義目標(biāo)函數(shù)數(shù)學(xué)關(guān)系式。在搜尋最優(yōu)解的過程中,全局敏感度分析結(jié)果也將以表格形式展現(xiàn)在本模塊界面上,它體現(xiàn)了各個(gè)變量對(duì)于輸出值的影響程度。
基于上述的理論及系統(tǒng)框架,接下來就可以借助MALAB GUI來設(shè)計(jì)并完成用戶界面的搭建和應(yīng)用。首先根據(jù)用戶的操作習(xí)慣和界面功能設(shè)計(jì)出界面的理論框架布局,隨后在GUIDE中設(shè)計(jì)好控件分布和排列,最終在MATLAB編輯器中編寫功能函數(shù)、數(shù)據(jù)傳遞、控件補(bǔ)完、邏輯調(diào)配和錯(cuò)誤警示等功能。完成上述工作后可以開始運(yùn)行程序并驗(yàn)證SBDO工具箱的實(shí)用性。經(jīng)過測(cè)試后的SBDO工具箱可用于工程實(shí)踐。在開發(fā)SBDO工具箱的過程中,最主要的工作是對(duì)于用戶界面的設(shè)計(jì)和代碼編寫。為了更好的用戶體驗(yàn),工具箱的界面設(shè)計(jì)嚴(yán)格遵循簡單性、一致性、習(xí)常性的原則。各模塊的顯示窗口被分為多個(gè)區(qū)域展現(xiàn)輸入、設(shè)置項(xiàng)切換、結(jié)果顯示等功能。在用戶操作的過程中會(huì)檢測(cè)用戶輸入項(xiàng)是否完整、格式是否正確而及時(shí)彈出警示框,數(shù)據(jù)能夠及時(shí)存檔,不會(huì)因突發(fā)異常而丟失,具有很好的連續(xù)性和用戶體驗(yàn)。
工具箱主界面包含軟件的圖標(biāo)、三大模塊按鈕和最終結(jié)果顯示框等內(nèi)容,如圖3所示。用戶可按照提示依次點(diǎn)擊試驗(yàn)設(shè)計(jì)、建立代理模型、優(yōu)化等按鈕來打開各模塊的窗口并得到相應(yīng)的結(jié)果,未操作過的面板底色為灰色,操作過的面板為白色。最終的設(shè)計(jì)及優(yōu)化結(jié)果也將呈現(xiàn)在主界面下方的文字框中。
圖3 SBDO工具箱主界面框架設(shè)計(jì)及窗口顯示Fig.3 The Frame Design and Display of SBDO Toolbox’s Main Window
試驗(yàn)設(shè)計(jì)模塊的用戶界面包含多個(gè)顯示和功能區(qū)域,如圖4所示。
圖4試驗(yàn)設(shè)計(jì)模塊的框架設(shè)計(jì)和窗口顯示Fig.4 The Frame Design and Display of DOE Module Window
用戶可在左上角選擇抽樣方法,輸入自變量的維度和取值范圍,在右側(cè)切換抽樣方法的設(shè)置項(xiàng)后點(diǎn)擊相應(yīng)按鈕,則樣本點(diǎn)數(shù)據(jù)將會(huì)展現(xiàn)在右下角的表格中,用戶可點(diǎn)擊畫圖選擇查看各樣本點(diǎn)在空間分布的情況。在該界面中,抽樣方法的選項(xiàng)均有默認(rèn)值,若用戶無需選擇其他選項(xiàng),保持默認(rèn)狀態(tài)即可。樣本點(diǎn)產(chǎn)生后,用戶可選擇將樣本點(diǎn)保存到excel表格,或默認(rèn)在空間中保存為mat文件,以便于根據(jù)樣本點(diǎn)仿真計(jì)算得到對(duì)應(yīng)的響應(yīng)值。在該模塊中,用戶可以以少量簡單操作完成抽樣并直觀查看抽樣結(jié)果。
建立代理模型模塊的理論框架和最終展示效果,如圖5所示。窗口主要分為兩個(gè)區(qū)域:模型選項(xiàng)及顯示區(qū)域、模型數(shù)據(jù)操作區(qū)域。用戶可在左上角的彈出式菜單中選擇需要建立的代理模型的類型并設(shè)置相應(yīng)的選項(xiàng)。建立和檢測(cè)代理模型所需的訓(xùn)練點(diǎn)和測(cè)試點(diǎn)可以直接采用上一步的DoE結(jié)果,也可以從excel表格中導(dǎo)入,顯示在右下角的表格中。模型的精度檢測(cè)結(jié)果將會(huì)顯示在右下角的表格中,用戶也可以在右上角選擇變量來查看代理模型的插值擬合圖形。若模型檢測(cè)結(jié)果精度不足,可以點(diǎn)擊加點(diǎn)按鈕進(jìn)行加點(diǎn)重新建立代理模型并檢測(cè)精度。本模塊中的PRS、RBF和KRG代理模型源代碼來源于Felipe A.C.Viana[10]。
圖5 建立模型模塊的框架設(shè)計(jì)和窗口顯示Fig.5 The Frame Design and Display of Construction of Surrogate Model Module
預(yù)測(cè)及優(yōu)化模塊的用戶界面,如圖6所示。在該模塊中,用戶可根據(jù)選擇不同的優(yōu)化算法,提示輸入優(yōu)化問題中自變量和約束等相關(guān)信息,優(yōu)化過程中的目標(biāo)函數(shù)可以選擇由上一步建立的代理模型根據(jù)最優(yōu)解近似預(yù)測(cè),也可以自行定義函數(shù)或數(shù)學(xué)關(guān)系式。最終的優(yōu)化結(jié)果將會(huì)顯示在左下角的白色文本框中,全局敏感度分析結(jié)果則以表格形式展現(xiàn)。右側(cè)的優(yōu)化算法參數(shù)設(shè)置項(xiàng)在不同的算法時(shí)也不一樣,用戶可根據(jù)實(shí)際情況進(jìn)行切換調(diào)整或保持默認(rèn)狀態(tài)。在進(jìn)行設(shè)計(jì)和優(yōu)化過程中,用戶操作不當(dāng)或輸入?yún)?shù)不完整時(shí)將會(huì)及時(shí)彈出錯(cuò)誤警示框進(jìn)行提示。
圖6 預(yù)測(cè)及優(yōu)化模塊的框架設(shè)計(jì)和窗口顯示Fig.6 The Frame Design and Display of Prediction∕Optimization Module Window
為了驗(yàn)證SBDO工具箱的實(shí)用性,本章將利用SBDO工具箱完成一系列數(shù)值算例,用于測(cè)試工具箱的功能、用戶體驗(yàn)和展示效果。在進(jìn)行數(shù)值算例驗(yàn)證的過程中,按照基于代理模型的工程設(shè)計(jì)及優(yōu)化流程,首先在試驗(yàn)設(shè)計(jì)模塊進(jìn)行抽樣得到若干訓(xùn)練點(diǎn)和檢測(cè)點(diǎn)信息,隨后在建立代理模型模塊建立代理模型并檢測(cè)模型精度,最后在預(yù)測(cè)及優(yōu)化模塊利用優(yōu)化算法尋找最優(yōu)解??紤]到不同代理模型的原理和擬合效果不同,單一測(cè)試函數(shù)的結(jié)果并不具有代表性,因此本次采用25組不同特性的測(cè)試函數(shù)進(jìn)行檢測(cè)。這些函數(shù)既有非線性也有線性,自變量維度在(2~16)之間。樣本點(diǎn)對(duì)應(yīng)的真實(shí)響應(yīng)值由測(cè)試函數(shù)求得,預(yù)測(cè)值則分別由PRS、RBF、KRG三種代理模型求得,以此看出各代理模型的擬合精度,RMSE的值,如表1所示。r2的值,如圖7所示。值得一提的是,檢測(cè)結(jié)果與代理模型技術(shù)本身的特點(diǎn)有關(guān),SBDO工具箱意在為用戶提供簡單實(shí)用的代理模型技術(shù)的工具,而不能更改代理模型的擬合結(jié)果。
表1 25個(gè)測(cè)試函數(shù)在三種代理模型中的RMSE值Tab.1 RMSE of Three Surrogate Models in 25 Test Functions
圖7 SBDO工具箱中三種代理模型的r2值Fig.7 r2 of Three Surrogate Models in SBDO Toolbox
通過數(shù)值算例的操作及結(jié)果展示,SBDO工具箱可以完成簡單的工程設(shè)計(jì)及優(yōu)化的全部過程。對(duì)同一個(gè)測(cè)試函數(shù),不同代理模型的擬合精度不同,而不同性質(zhì)的測(cè)試函數(shù)則體現(xiàn)了代理模型廣闊的應(yīng)用范圍和優(yōu)缺點(diǎn)。通過SBDO工具箱,用戶可以通過輸入變量信息、切換選項(xiàng)設(shè)置、點(diǎn)擊按鈕等操作得到建模和優(yōu)化的結(jié)果。若建立的代理模型精度不符合要求,用戶可以通過加點(diǎn)操作、切換代理模型類型或重新抽樣取點(diǎn)等操作取得改善。
主要提出了一種基于代理模型的設(shè)計(jì)及優(yōu)化MATLAB工具箱SBDO,主要通過試驗(yàn)設(shè)計(jì)、建立代理模型、預(yù)測(cè)及優(yōu)化界面引導(dǎo)普通用戶解決常見工程設(shè)計(jì)及優(yōu)化問題。該系統(tǒng)具有很強(qiáng)的實(shí)用性、交互性和開放性。用戶的操作門檻低,且不需要掌握專業(yè)的機(jī)械結(jié)構(gòu)、優(yōu)化算法、編程等專業(yè)知識(shí)即可使用,有助于推廣代理模型理論的使用范圍。
在今后的工作過程中,SBDO工具箱將被應(yīng)用于實(shí)際工程設(shè)計(jì)優(yōu)化問題,并將在不斷的實(shí)踐和反饋過程中進(jìn)行改善和升級(jí)。目前工具箱中所包含的理論方法還不夠多,界面設(shè)計(jì)仍有完善空間。我們期待為用戶提供一個(gè)方法更加多元、界面更加美觀、使用更加方便的基于代理模型的工程設(shè)計(jì)及優(yōu)化工具箱。