本文介紹基于Python環(huán)境的元模型技術(shù),包括DOE生成、靈敏度分析、代理模型生成、機(jī)器學(xué)習(xí)模型生成等內(nèi)容。對比優(yōu)化軟件相應(yīng)的技術(shù)方案,基于Python環(huán)境的參數(shù)優(yōu)化具有更高的靈活性和高效性。
案例選取白車身模態(tài)計(jì)算模型做為素材:


本文基于模態(tài)分析參數(shù)優(yōu)化模型為例。設(shè)計(jì)變量包括26個(gè)部件屬性厚度,設(shè)計(jì)響應(yīng)包括扭轉(zhuǎn)模態(tài)和彎曲模態(tài)。為了避免模態(tài)跳階失蹤,需要在程序中加入模態(tài)追蹤函數(shù)。

設(shè)置26個(gè)厚度參數(shù)的上下限值,并生成240個(gè)拉丁方DOE樣本點(diǎn)。

全部DOE樣本點(diǎn)數(shù)據(jù)集:

讀取nastran計(jì)算文件,并獲取所有屬性集。

這里需要對對應(yīng)的部件屬性進(jìn)行厚度修改,修改數(shù)值為DOE樣本點(diǎn)中數(shù)值。


定義一個(gè)生成DOE計(jì)算點(diǎn)的函數(shù),并生成DOE樣本計(jì)算文件。


調(diào)用Nastran進(jìn)行求解計(jì)算,并通過meta生成模態(tài)相關(guān)系數(shù)矩陣結(jié)果,用于模態(tài)追蹤。這里通過pool函數(shù)來設(shè)置nastran多線程計(jì)算。即Pool(N)調(diào)用N個(gè)線程進(jìn)行DOE分析求解計(jì)算。

計(jì)算后會(huì)在每個(gè)DOE樣本文件夾下生成模態(tài)相關(guān)系數(shù)矩陣結(jié)果文件Mac.csv。

定義一個(gè)模態(tài)追蹤函數(shù),通過每個(gè)DOE樣本點(diǎn)的結(jié)果文件mac來獲得彎曲模態(tài)和扭轉(zhuǎn)模態(tài)結(jié)果。并將所有結(jié)果匯總到一個(gè)數(shù)組結(jié)果中。
二.機(jī)器學(xué)習(xí)模型訓(xùn)練

通過機(jī)器學(xué)習(xí)庫sklearn將所有DOE結(jié)果拆分為訓(xùn)練集和測試集。這里測試集為百分之二十。后續(xù)通過這些學(xué)習(xí)進(jìn)行機(jī)器學(xué)習(xí)模型訓(xùn)練,并用同樣的數(shù)據(jù)集進(jìn)行傳統(tǒng)代理模型的創(chuàng)建,本例中使用Kriging代理模型。

通過訓(xùn)練集進(jìn)行支持向量機(jī)模型的訓(xùn)練,并通過測試集進(jìn)行對模型精度的測試。通常CAE分析優(yōu)化代理模型精度是使用R2值進(jìn)行評價(jià)的,一般要求大于95%。

這里定義一個(gè)計(jì)算R2值的函數(shù)。


綠色曲線為真實(shí)CAE計(jì)算值,紅色曲線點(diǎn)為支持向量機(jī)機(jī)器學(xué)習(xí)模型預(yù)測值。


綠色曲線為真實(shí)CAE計(jì)算值,紅色曲線點(diǎn)為貝葉斯嶺回歸機(jī)器學(xué)習(xí)模型預(yù)測值。

以上數(shù)據(jù)中第一列為真實(shí)CAE計(jì)算結(jié)果,第二列為AI模型預(yù)測結(jié)果,第三列為差異百分比。可以看出精度很高。
本例中實(shí)質(zhì)是在進(jìn)行回歸分析,因此回歸機(jī)器學(xué)習(xí)模型都可以用于本例中數(shù)據(jù)的處理。如多項(xiàng)式回歸、嶺回歸、決策樹回歸和神經(jīng)網(wǎng)絡(luò)回歸等。
三.代理模型(元模型)
傳統(tǒng)的代理模型包括徑向基函數(shù)、多項(xiàng)式、Kriging等等模型。本例中介紹Kriging代理模型生成。

定義Kriging代理模型生成函數(shù),并通過訓(xùn)練集進(jìn)行代理模型生成。然后通過訓(xùn)練集進(jìn)行模型精度測試。



可以發(fā)現(xiàn),在小數(shù)據(jù)集時(shí)傳統(tǒng)的代理模型要比機(jī)器學(xué)習(xí)模型精度高的多,而隨著數(shù)據(jù)集的增大時(shí),機(jī)器學(xué)習(xí)模型的精度會(huì)隨著數(shù)據(jù)集的增大而提高。
為了進(jìn)行對比,使用優(yōu)化軟件進(jìn)行相關(guān)分析。本例中使用modefrontier進(jìn)行。通過將數(shù)據(jù)集按8:2分為訓(xùn)練集和測試集數(shù)據(jù)。


為了進(jìn)行對比,選擇Kriging模型。Modefrontier同樣有機(jī)器學(xué)習(xí)模型,如支持向量機(jī)回歸,K近鄰、多層感知機(jī)等等。這方面modefrontier較其他優(yōu)化軟件要先進(jìn)的多。包括數(shù)據(jù)處理等內(nèi)容也較其他優(yōu)化軟件更加豐富。

在測試集中進(jìn)行分析后,代理模型計(jì)算結(jié)果和真實(shí)結(jié)果偏差曲線。
四.敏感度分析

使用增量矩陣法進(jìn)行靈敏度分析


為進(jìn)行對比,同樣在modefrontier軟件中進(jìn)行靈敏度分析。Modefrontier軟件靈敏度分析使用的是平衡樣條法(Smoothing Spline ANOVA)。


靈敏度分析主要進(jìn)行設(shè)計(jì)空間縮減,這與機(jī)器學(xué)習(xí)的降維的目標(biāo)是一樣的。如機(jī)器學(xué)習(xí)的主成分分析,因子分析等。
通過建立的高精度的代理模型或機(jī)器學(xué)習(xí)模型可以進(jìn)行后續(xù)的參數(shù)優(yōu)化分析。
本文通過Python環(huán)境進(jìn)行以上分析。主要包括以下內(nèi)容:
1.通過doepy庫進(jìn)行DOE創(chuàng)建,如拉丁方DOE;
2.通過pyNastran庫對nastran求解文件進(jìn)行模型更新;
3.通過sklearn庫進(jìn)行機(jī)器學(xué)習(xí)模型訓(xùn)練,如支持向量機(jī)模型、貝葉斯嶺回歸模型;
4.通過smt庫進(jìn)行代理模型創(chuàng)建,如Kriging模型;