本文模型主要使用如下圖所示簡單模型:
大家可以先下載模型跟著教程一步一步操作體驗。 全文模型及操作視頻下載連結如下:
https://nas.altair.com.cn:5001/sharing/kPMjKGJXX。
(建議在電腦端用chrome瀏覽器下載)
形狀優化與自由形狀優化
所謂自由形狀是和形狀優化比較而言的,自由形狀優化節點變形的形式更加自由。 進行形狀優化的時候需要事先創建形狀變數,優化演算法的優化物件就是每個形狀變數的係數。 最終的優化結果只能是原始網格位置與各個形狀的線性疊加。
拿下面這張圖來說,藍色內圈是原始網格邊界,左圖外圈紅線是網格變形創建的形狀變數的最遠處。 如果形狀變數的範圍是 [0, 1],那麼最終優化結果的網格位置只能是藍圈和紅圈之間某個位置的一個圓。 自由形狀優化的每個節點都可以隨意運動。
打個比方,形狀優化就像計劃經濟,自由形狀優化就像市場經濟。
自由形狀優化最常用的場景是解決應力集中問題,當然,也可以用於別的場合。
Altair OptiStruct™。
自由形狀優化演演算法:
classic和vertexmorphing
Altair OptiStruct™ 自由形狀優化演算法分 classic 和 vertex morphing 兩類,vertex morphing 方法自由度更大,但是計算量也會隨之大幅度增加,而且 vertex morphing 方法目前還是 beta 版本,使用時需謹慎。
對於2D單元:
classic 方法中的變數只能是自由邊上的節點。 節點可以沿著 2D 單元自由邊法向移動。
vertex morphing 方法中的變量可以是任意節點,面內的節點的運動方向是單元法向,外側節點可以沿著 2D 單元自由邊法向移動。
以下動畫是一个2D自由形狀變量的例子:
對於3D單元:
classic 和 vertex morphing 方法中的節點變量都只能是外表面的節點(自動忽略內部節點),而且都只能沿著外表面的法向運動。
以下動畫是 3D 自由形狀優化的一個例子:
接下來我們通過具體的例子來說明用法。
例1 內外邊界節點優化
(classic 方法)
優化三要素
設計變數 |
內外邊界節點 |
目標 |
最小化最大應力 |
約束 |
體積不增加 |
變數節點位置如下圖所示,限制四個角點只能沿著y軸方向移動。
01。
優化結果
|
體積 |
最大應力 |
優化前 |
1.52E+07。 |
59.1。 |
優化後 |
1.49E+07。 |
27.3。 |
02。
優化反覆運算動畫
03。
操作視頻
例2 内外边界节点优化
(vertex 方法)
這個例將節點移動的最遠距離透過 2D 單元進行限制,這些單元需要設定為 BMFACE 單元類型。
01。
優化前的應力分佈
02。
優化后的應力分佈
03。
變形結果
04
優化結果
|
體積 |
最大應力 |
優化前 |
1.49641E+07 |
29 |
優化後 |
1.74213E+07 |
2.9 |
(對,你沒有看錯,應力變成了10%! )
例3 實體網格優化
(vertex 方法)
工況和 2D 模型類似,為了應力級別一致修改了力的大小。 設置兩個表面的節點作為自由形狀優化的設計變數。 限制邊界上的節點只能沿著厚度方向運動。
01。
優化前應力
02。
優化后應力
03。
優化後形狀的截面圖(1/4模型)
04
優化結果
|
體積 |
最大應力 |
優化前 |
2.39E+08 |
30.6 |
優化後 |
2.40E+08 |
17.4 |
05
操作過程
拓展:根據製造要求施加
擠壓約束、拔模約束、對稱約束
01。
擠壓約束施加方法
02。
自由形狀變數
自由形狀變數為下圖中的節點,左側箭頭為擠壓約束方向。 限制邊界上的節點只能沿著厚度方向運動。
設定好的模型檔為:
freeshape3D_ext_done.hm。
03。
優化結果
|
體積 |
最大應力 |
優化前 |
2.39480E+08 |
30.6 |
優化後 |
2.39792E+08 |
21.7 |
04
優化前的應力
05
優化后的應力
計劃和市場都是調節經濟的手段,計劃經濟中可以有市場,形狀和自由形狀都是優化的手段,自由形狀優化和形狀優化也是可以同時使用的。
同時創建
形狀變數和自由形狀變數
比如下圖中的零件既希望改變厚度(單一厚度)又希望同時進行變形形狀的優化。 可以同時創建形狀變數和自由形狀變數。
01。
自由形狀變數的節點
02。
形狀變數
形狀變數僅僅是為了改變半徑件的厚度。 元件變數請參考:
03。
優化控制選項
這個例子中的形狀變數使用了離散變數,使用預設的優化演算法時形狀變數可能會不起作用,這時需要加一個優化控制選項:
04
優化結果中
由形狀變數導致的形狀改變
05
優化結果中
由自由形狀變數導致的形狀改變
06
操作視頻
模型檔案:
transport-shackle-start.hm。
transport-shackle-done.hm。
課後練習
本例也可以用 2D 單元進行優化,難度不大,大家可以自己嘗試下~
再放一次全文模型及操作視頻下載鏈接,歡迎大家跟著教程一起跟練:
本文例子來自即將出版的《OptiStruct及HyperStudy優化與工程應用》一書,敬請關注。 祝大家新年快樂,一年比一年更優化! 😄 。
留言列表