結構優化案例1—L型結構優化設計(減重)
1 前言
先前一直想就Optistruct結構優化方面寫個專題,但一直沒有找到以怎樣一種形式開始比較好。如果從優化相關的理論說起,一方面個人水平沒到,另一方面會導致很多沒有接觸過的伙伴壓根看不懂;但是直接從軟件的一些控制參數開始講起又顯得些許無趣。因此決定以這種案例的形式來進行說明,每個案例都會有自己的重點,希望讀者能仔細體會。
2 案例說明
圖 1模型示意圖
如圖所示L型結構(厚度0.1mm),其上端固支于壁面,右端作用一向下的大小為0.05N的荷載,作用范圍為0.5mm。現欲對結構減重70%以上且拐角處應力不超過400MPa。
材料屬性:彈性模量210000MPa,泊松比0.3
3 問題分析
該問題顯然是個優化問題,第一個要求:減重70%說明需要對結構開孔,將應力遠遠低于許用應力的部分去掉,這屬于拓撲優化范疇。第二個要求:拐角處應力不超過400MPa說明需要優化拐角處的形狀,避免應力集中,這屬于形狀優化范疇。
至于如何去理解本例的拓撲優化和形狀優化,這里我以兩者描述問題的不同來簡單區分。
拓撲優化描述的是如何排布單元使得整體結構的性能指標達到最優,實際是描述設計空間中單元的有無問題(哪里需要單元,哪里不需要)。它本身只是在給定的設計空間中不斷刪除或者添加單元,但是本身并不會超出給定的設計空間,比如本例進行拓撲,最終構型不會超出L型。
形狀優化從直觀上去理解就是優化結構的外形,實現的方式是將節點位置作為基本設計變量,這樣通過節點位置的改變來實現形狀的改變,從而來或得滿足設計要求的形狀。它本身不會自主的去刪除單元,而僅僅是將作為設計變量的節點的位置進行改變,可以直觀理解為一種節點拖拽。
4 Optistruct實現流程
由于重點是優化,所以本文直接省略前處理部分,直接從優化開始。這里需要說明的是,這里雖說是案例但是是以交流為角度展開的,并不是教程。下面是前處理完成后的模型(使用板殼單元進行建模):
圖 2有限元分析模型
4.1 初次分析
初次分析的目的是為了確定初始結構的性能,比如剛度,強度等。本例初次分析的重點是獲悉在該網格尺寸下結構的應力分布以及拐角處的應力水平(雖然理論上拐角處應力無限大的,但是在該網格尺寸下仍然可以作為設計目標。)
圖 3 Mise應力云圖(Simple方式平均)
如上圖所示,該結構的應力分布已經比較清晰的展現在了我們的面前,這可以有助于我們對拓撲的結果進行一個合理的判斷。通過觀察應力云圖,我們可以獲悉L型上面部分兩側絕對是主傳力路徑的一部分,深藍色區域是整個結構中的“閑置”部分,拐角處集中應力達到了538MPa。
4.2 減重
對結構應力分布情況有了基本了解之后,我們開始進行減重的優化設計。對于一個基本的優化問題,我們至少有三要素:目標函數,設計變量以及約束條件。
通過最開始的問題分析,我們知道該問題的目標函數為整體的剛度,設計變量為單元的密度(密度體現了單元的有無問題),約束條件為重量<30%原結構。
對應于軟件,我們只需要告訴它這三個要素即可,所有的設置都在analysis(分析)>optimization(優化)面板中進行。
圖 4 topology面板
通過上圖topology(拓撲),我們定義了設計變量(也即設計空間)為所有單元。
圖 5 response面板
通過上圖response(響應),我們定義了兩個響應,這兩個響應一個(體積比)用于定義約束條件,另一個(整體柔度)用于定義目標函數。
圖 6 constrain面板
上圖constrain(約束)定義了一個約束條件,即體積比上限為0.3,這意味著最后優化結果最多占總體結構體積的30%(均勻密度材料的質量問題轉化為體積問題)
圖 7 objective面板
上圖objective(目標)定義目標為總體柔度最小(即剛度最大)。
下面重點來了,按照上述參數我們并不能得到想要的結果,它或許是最優的,但并不一定是方便設計或者可用于設計的。一般對于一個優化問題,我們需要根據實際情況添加一些額外約束,這里稱之為制造約束(主要是考慮到制造方面難易的一些因素)。
圖 8最小尺寸控制
一般情況下我們會添加mindim(最小尺寸控制),這是為了防止出現局部細小的支架結構,因為這些結構往往很難或者無法制備。這里我添加最小尺寸約束為1mm,也即優化的結果中主傳力路徑至少為1mm(這并不是一個強約束,意味著結果中還是有很多大于1mm的部分,后面會進行討論)。
除了工藝約束外,我們有時候還需要調整算法方面的一些參數,就像我們做非線性分析需要調整時間步長,接觸剛度等一樣,對于一個優化問題也有些參數針對具體問題需要調整。
圖 9離散度(罰系數)控制
上圖我設置了離散度為2,這個離散度在基于SIMP的拓撲優化問題中是一個核心概念,就像最開始的問題分析中,將拓撲優化描述成單元有無的問題,也就是存在還是不存在的問題。可以感受到,這是一個典型的離散問題,只能選擇存在或者不存在,要么0(不存在),1(存在)。但是計算機更擅長處理一個連續的問題,因此我們將0、1問題變成0~1問題,但是為了防止問題本質的改變,我們必須構造一種方法,使得在連續問題下,單元也會向著0、1演變,而不容易停留在類似于0.5這種中間數值(中間密度會造成難以識別的優化邊界)。如何去構造就引出了下面的核心式子:
這個式子中的上標P就是我們的離散度,E為彈性模量,ρ為密度。當P越大我們可以感受到密度與彈性模量之間的關系的非線性程度越大,這種非線性有什么用?我們可以通過下面這個圖來解釋
圖 10 SIMP插值模型
當P=1,我們可以看到密度和彈性模量呈線性關系,當P=2,兩者是平方關系,這種關系導致了單元在密度(代表了質量)和彈性模量(代表了剛度)之間需要進行權衡,比如在密度=0.8時,密度增加0.1,可能會導致彈性模量增加0.2倍(假設),這就意味著算法認為一直增加密度會導致剛度增加更多,因此最終會跑到密度=1;反之如果密度=0.2,增加0.1密度,彈性模量可能只增加0.05倍(假設),那么算法認為我繼續增加密度不利于找到最優解,因此向著密度=0跑去。因此,當離散度(罰系數)增大,優化的結果越接近于原始的0、1問題。這個系數取為2(平面問題)、3(空間問題)是推薦值,過大的話理論上可行但是結果往往沒有推薦參數好(理解下,這里的好不是指數學上的好,而是工程上的),這里暫時不做探討,使用推薦值2。
設置好上述參數后我們進行優化計算,得到如下結果:
圖 11拓撲優化結果
如果我們隱去密度小于0.3的部分將會得到完整的結構外形,這個構型的剛度理論上是在該網格密度下“最優”的(由于拓撲優化依賴于網格尺寸,因此這里必須強調在該種網格尺寸下的“最優”解)。
圖 12拓撲優化結果(隱去密度小于0.3)
將該結果導出為stl格式,然后倒入任意三維建模軟件進行重新建模。本例由于是二維模型,因此建模軟件不受限制,但如果是三維模型,建議導入SolidThinking Evolve中進行二次建模。這里模型比較簡單使用Solidworks進行建模即可,結果如下:
圖 13二次幾何模型
4.3 對拓撲結果的分析
這一部分是本文的核心,很多文章都會寫到如何使用Optistruct進行拓撲優化,但是可能會回避里面的一些問題,這里我準備就這些問題好好和大家交流下(如何理解這些問題是做出一個好的優化設計的前提,不光是拓撲優化)。但是本文中我暫時不發表言論,算是留給大家一部分思考空間,歡迎下方留言討論。
4.3.1 應力水平
圖 14優化前后應力水平比較
觀察整體結構各部位的應力水平,可以看到幾個問題:
原始結構主要承力部分Mise應力為230MPa,閑置部分Mise應力為50MPa;優化后結構主要承力部分Mise應力415Mpa,閑置部分170MPa。這個體現了輕量化設計的一個核心:將分擔給閑置(應力水平較小)部分的承載施加到主傳力路徑,相當于“能者多勞”。但是在這種模式下,結構應力達到415MPa(假設400MPa為屈服極限),這時候我們該怎么辦?
拓撲作為一個優化問題,我們想要找到最優解,但是軟件給的結果真的是最優的嗎,還是只是較優?(考慮下優化后仍有一定的“閑置”部分)
很多做分析的伙伴看到那個拐角肯定會很不舒服,那的確是個不合理的結構。但是對于該問題,如何找到拐角處的合理結構?在該例中再加上應力約束是否是一種較好的方法?(分析一個復雜問題的時候我們往往會留主和分解,考慮下優化)
4.3.2 剛度情況
圖 15優化前后剛度比較
剛度情況我們可以通過結構的最大位移簡單比較,可以看到原始結構最大位移0.0924mm,優化后結構0.158mm。于是就有人問了,我優化這個結構的剛度,為什么整體剛度反而降低了?這是一個簡單但是很重要的問題,體現了我們何時知道需要優化以及怎么去優化。
4.3.3 工藝約束
圖 16二次幾何模型主體尺寸
還記得分析中我們加了制造約束—最小尺寸1mm嗎?但是我們仔細看看優化后的結果,0.34mm,0.44mm,0.52mm,0.3mm,這些主要的邊界貌似都比1mm小。怎么回事?是軟件傻還是我們傻?
4.3.4 網絡依賴性
圖 17骨頭微結構
文中強調過:該種網格下的“最優”解。其中“最優”這個已經在第一問中提出了,那么怎么去理解這個“該種”網格。如果網格不斷細化,結果會變成什么樣?(想象下人的骨頭中錯綜復雜的微結構或者樹葉的脈絡)
文章轉載自CAE交流之家公眾號,本文作者ansys-聰聰
工程師必備
- 項目客服
- 培訓客服
- 平臺客服
TOP




















