優化的結果應該是五花八門的,不要期望軟體給出一個獨一無二的最優解,解讀優化結果並做出優秀的設計方案是工程師的工作。
子曰:“知之者不如好之者,好之者不如樂之者。” 使用OptiStruct對結構進行優化探索的過程可以說是其樂無窮,不僅可以幫你更好地認識結構,還能產生設計的靈感。本講主要是從“變數”這個視角來聊OptiStruct優化。
優化本質上是種數學演算法,無論Altair Compose™、MATLAB、python、EXCEL都內置優化演算法。OptiStruct中無論是拓撲/形貌還是形狀/尺寸,實際上後臺真正的優化變數都是純數學變數。優化演算法只和這些純數學變數打交道,不同優化類型的差別在於數學變數關聯的物理模型屬性(單元剛度、網格位置或者厚度等)不同。優化的過程中優化變數的變化帶動了有限元模型也發生了相應的變化。
簡單的數學模型可以使用Compose把函數的三維曲面畫出來,這樣一眼就能看出最大值的位置了。幫助文檔有個例子展示OptiStruct純數學優化的例子(模型中有一個單元,那是和優化無關的),有興趣的可以看看。
當然,HyperStudy更適合完成這類工作。模型在電腦裡的位置如下:
C:\Program Files\Altair\2019\demos\hwsolvers\optistruct\examples\box.fem
使用Compose代碼繪製圖像是很容易的,從繪圖開始學Compose也比較有趣(部分函數來自網路)。有時優化問題的最優解只有一個,比如抛物面:
有時優化問題的解會成對出現,像馬鞍面:
大部分情況下工程優化問題都會有很多局部最優解,比如下面像噴泉樣子的曲面,這時尋找全域最優解就要費點勁了(沒有優化演算法可以保證幫你找出全域最優解):
如果回應的非線性程度不高,變數也不是很複雜,回應有可能像下圖中的多峰函數:
高度非線性的優化問題的回應面可能是這樣的(通常還要複雜得多):
以上各圖都只是在兩個變數 + 一個回應的情況。實際工程問題基本上都有成千上萬個變數和回應。既無法繪圖說明,也難以直觀想像,還是交給OptiStruct優化演算法比較靠譜。
以上純屬開場白,一講到Compose就忘記刹車了,下面正式開始介紹OptiStruct優化相關的內容。
拓撲優化
大體來說大部分工程問題的解決有賴於拓撲優化。熟話說:良好的開端是成功的一半。拓撲優化就是那個開端。拓撲優化的結果和優化空間(也就是拓撲優化的變數)的定義有莫大關係。幫助檔中有一個經典例子:
設計變數:綠色部分單元
優化目標:最小化柔度
約束:優化區域的體積百分比≤20%
模型中紅色部分是非設計區域,而且施加了1、2方向的約束。優化結果如下:
不能不說優化結果有種美感,而且是對稱的。
也許很多人會感到奇怪,為什麼優化結果中沒有下圖中黃色部分的材料。
只能說在工程問題中工程師的直覺經常是靠不住的,尤其是在動力學和高度非線性的領域。
這個例子是考驗軟體優化演算法的一個經典考題,接下來把這個題目略加變化,讓它接近工程實際。左側施加一對力偶,兩個工況單獨作用。
設計變數:綠色單元
優化目標:最小化體積
約束1:右側工況下,載入點位移≤2.5
約束2:左側工況下,載入點位移≤1.5
優化結果如下:
可以看出右側的結果變化不大,但是左邊的結果卻很不相同(因為載荷不同)。可以肯定地說要讓設計工程師拍腦袋想出這個匪夷所思的設計是相當有難度的,何況這已經是極簡的設計空間在極簡載荷工況下的結果。所以,幾乎在所有的場合都應該問一下自己:“這個結構可以OptiStruct一下嗎?”
實際上,這兩個載荷工況的作用位置可能互換。這是非常常見的,就像左側機翼上的載荷也有可能在右側機翼出現,所以兩個機翼應該是對稱的。這裡我們也施加一個左右對稱的製造約束,然後重新進行優化,結果如下:
從結果可以看出,左側的載荷主導了結果。原因何在?看一下兩個的柔度值大小就明白了。差了近1000倍。
實際工程中還會面臨很多其它的考慮,例如某些位置是必須開孔的(比如有一根軸要通過)。對稱約束升級為上下對稱+左右對稱。
優化結果變成了這樣:
以上是二維情況下設計空間變化對優化結果的影響。如果零件是從一塊大型厚鋼板切出來的,情況大概就是這個樣子。但是這種情況實際工程中是比較少見的,更常見的情況是使用加強筋在平板上進行加強,因為這樣材料利用效率高很多。
接下來就來做這樣的優化。簡單起見,這裡把兩個載荷變成一起作用,設置優化基礎厚度1(這部分不參與優化)。
優化約束相應調整如下:
設計變數:綠色單元
優化目標:最小化體積
約束1:右側工況下,載入點位移≤0.08
約束2:左側工況下,載入點位移≤0.1
優化結果如下:
換句話說只需要在圖示位置焊接4mm厚度的加強筋即可。
如果是鑄造件,使用實體單元進行優化效果更佳。優化結果如下:
如果是航空航太等非常在乎重量的行業,可以直接優化出lattice結構,然後通過3D列印製造。
局部放大圖:
這塊板子也可以用形貌優化/尺寸優化/自由尺寸優化/形狀優化/自由形狀優化,具體取決於應用場景、製造水準、成本限制等。
拓撲優化還可以用於確定整個結構的有無,比如焊點的有無或者是整塊板的有無。下圖中把筋板整體作為設計變數。
設計變數:所有筋板
優化目標:最小化柔度
約束1:體積百分比≤0.2
約束2:部分零件的體積≤300000
約束3:小端位移≤1.5
約束4:第5階模態≥600
關鍵的設置只有如下一項,其餘設置和普通拓撲優化一致。
局部的優化結果類似下圖:
拓撲優化設計空間的構造在複雜3D零件上有時是比較複雜的,除了以前的幾何工具之外,2019新介面還提供了幾個很好用的工具,趕緊去試一下吧(自帶影片説明,這裡就不演示了)。
對於真正複雜的情況,還可以試試Altair Evolve™和其它CAD軟體。這些工作和優化本身相比都只能算髒活累活。
形貌優化
汽車、電子和很多其它行業都大量用到鈑金件和塑膠吹塑件。鈑金件的製造特點是既可以通過拉延筋增加剛度也可以通過沖孔減重。
吹塑件一般厚度單一,但是形狀可以非常複雜。幫助檔中有個水箱的例子,用帶3方向對稱的形貌優化一次性得到了最終設計,結果堪稱完美。該汽油桶的製造方式為吹塑,優化結果基本上不需要做大的修改。另外,這個設計方案也頗具美感。形貌優化的實際操作很簡單,這裡略過。
形貌優化還經常可以和拓撲優化聯合使用,因為實際製造鈑金件的時候確實可以既沖出拉延筋又沖出一些孔。如果使用兩步法來優化,無論先拓撲再形貌還是先形貌再拓撲的優化效果都沒有聯合優化的效果好。這裡使用相機裡面的一個鈑金件作為例子說明:
優化類型: 拓撲+形貌
設計變數:紅色區域
優化目標: 最小化品質
約束1: 剛度不低於原始設計(測載入點位移)
約束2: 前6階頻率 > 原設計對應頻率
另外,還設置了最小成員尺寸和對稱約束。
優化結果如下:
可以使用Altair HyperMesh™的Ossmooth工具得到比較規則的幾何。然後再導入到CAD軟體中進行零件設計。
尺寸優化
尺寸優化是最簡單的,也是最常用的優化方法之一。具體操作可以看下面這個船艙模型的優化。
設計變數:板厚(離散變數)
優化目標: 品質最小化
約束:應力水準≤300MPa。
優化設置過程大約需要4分鐘,操作影片如下:
優化後得到的新尺寸如何賦給原始模型呢?在這裡直接導入.prop檔並覆蓋原始屬性即可。
這個船體模型雖然有限元模型看起來挺龐大,但是從優化操作的層面看其實是很簡單的,只是用了一下離散變數。
接下來再看一個模型簡單但是優化變數彼此不互相獨立的情況。
如果只希望兩個屬性(比如厚度)永遠相同,最簡單的方法就是直接在如下面板中關聯到同一個變數。
如果希望兩個變數具有某種線性關係(等差數列、等比數列都是)也很簡單,只需要在如下面板中填寫
優化結果如下:
如果希望是更複雜的關係,則需要自己寫一個方程。例如希望一塊板的厚度是另外兩個板的厚度中較厚的一個值。首先,需要創建方程式。
然後在DLINK2裡面設置引數和因變數
新的優化結果如下:
更加常見的情況是將變數關係用在形狀變數或者梁截面變數上,方法類似,本文中不再贅述。
一維單元數量眾多時創建變數比殼單元要麻煩一些。可能需要編寫腳本。請看下例:
設計變數:所有梁單元的半徑
優化目標: 體積最小
約束:中心位移≤15
優化前半徑都是0.3,最大位移16.5。
優化操作很簡單,不過優化建模比較麻煩,所以寫了一個腳本實現:
分comp->創建屬性->賦屬性->創建變數->關聯變數和屬性
完整的操作影片如下:
【HyperMesh寶典】系列還有3期就結束了。本講只是揭開了優化的冰山一角,如果大家覺得有必要我們正考慮開一個優化的專題,專門寫怎麼使用優化技術解決實際問題。OptiStruct和HyperStudy優化的書也已經在寫,預計在明年和大家見面。
只有自己動手才能真正學會優化,本講使用的大部分模型都可從以下連結下載。
下一講我們將從響應的角度進一步介紹OptiStruct優化,敬請期待。
留言列表