結構工程師狂喜:如何用代理模型快速評估結構強度
迫于領導/甲方/內心的壓力,我們在做結構仿真時,經常要算很多案例。每算一次,都要調整幾何,重畫網格和再次求解。
雖然沒技術含量,但誰做誰知道,很磨人。

本文展示個更快的方法,用代理模型快速評估一個新方案的結構強度。
案例背景是航天飛船的一個薄壁承力結構。結構本身就復雜,受力后還牽涉到非線性和屈曲。用常規的有限元方式去評估它的結構強度,計算成本有億點高。

下面這個表格就是用有限元計算得到的結果,其中X1~X12是結構的設計參數。后面幾列是輸出值,其中就包括我們最關心的應力。

差不多200組,仿真工程師要熬多少個日夜。
我們這個案例要做的,就是基于這些數據,訓練得到一個代理模型。之后再遇到新的結構就直接用代理模型計算,那速度相比有限元不知道快到哪里去了。
創建代理模型第一步,打開數據建模軟件DTEmpower,沒安裝的可以去天洑軟件官網下載,安裝就自帶免費試用。

軟件啟動后,新建項目導入數據表格。
然后創建流程,選擇專業模式。之后在畫布依次拖入數據讀取、空值處理、變量設定、數據清理AIOD、重要性分析MDA,以及數據分割節點。
然后連線,表示數據傳遞。

這些節點都什么作用呢?
數據讀取不說了。
空值處理,將存在空值的數據行刪除。你打開數據表細看,能發現有些行的數據是存在空值的。那這一行就不能用來做模型訓練,需要刪除。
變量設定,確定模型的自變量和因變量。顯然,X1~X12這12列是自變量,應力就是因變量。
數據清理AIOD,刪除異常數據。AIOD會給每組數據的風險值打個分,分數越高表示它是異常值的風險越大,要抓緊刪除,防止影響模型精度。
MDA節點,刪除不重要的變量。模型的自變量很多,但并不是每個都重要。MDA會評估自變量的重要性,對那些不重要的,也要抓緊刪除,防止影響模型精度。
數據分割節點的作用,是把數據分成兩部分,一部分用來做模型訓練,一部分用來測試模型精度,軟件默認按照3:1的比例分割。
接下來,關鍵的一步:生成代理模型。
但生成過程用什么算法呢?不知道,需要嘗試。
所以我們干脆用多種算法同時訓練,最后做模型精度對比,選精度高的。

然后連線。注意,數據分割到模型對比節點這一條線,別忘了做調整。要注意傳遞的數據應該是測試集,test data,而不是訓練集。

流程搭建好,點擊開始跑起來。軟件運行到某一個節點,需要你輸入時會彈出來。
在數據清理節點,散點圖能看出來有兩個點的風險值明顯偏高,那就把這兩個點剔除,害群之馬不可留。

在重要性分析節點,發現大部分變量的重要性都很低,只有X4、X8和X12比較重要。到X3,重要性就只有0.0063了。那我們就把重要性閾值設置為0.01,不重要的都刪了,只保留三個。

運行結束,點開模型對比結果,可查看幾個代理模型的精度。

一般我們看決定系數R2,越大越好,GBDT勝。
平均絕對百分比誤差mape,越小越好,GBDT勝。

接下來,見證奇跡的時刻——用GBDT代理模型評估新結構的應力。
找到GBDT模型,點擊評估,輸入三個設計值,點擊計算,一瞬間就知道了應力結果,快如閃電。

只要新的輸入相比訓練數據沒有過度外推,即范圍不相差太大,評估精度是有保證的。
你還能把這個模型保存或者下載下來,通過模型讀取和模型計算節點調用,批量計算新結構強度。
大功告成,有沒有發現數據建模全程都沒有寫代碼?對代碼過敏者非常友好。
歡迎到天洑軟件官網下載DTEmpower,零門檻上手數據建模,免費試用。
(提示:本案例所用數據在DTEmpower安裝目錄的ApplicationData文件夾下)
工程師必備
- 項目客服
- 培訓客服
- 平臺客服
TOP




















