A-A+

Hyperworks/Optistruct多目标拓撲優化理論介紹及參數設置

2018年05月15日 22:06:18 CAE 評論 6 條 閱讀 2,505 views 次

在Hyperworks/Optistruct中基于SIMP的多工況靜态拓撲優化數學模型如下:

其中,q為懲罰因子,取值不同代表的優化方法不同。一般取值為2。x是設計區域内的單元相對密度;w為靜态工況的權重,(1-w)為動态工況的權重;wk表示靜态k個工況的權值,所有工況權值和為1;q為懲罰因子,本文取2;Ck(x)為第k個工況的結構總柔度;m為工況數目;Ckmax、Ckmin為第k個工況的總柔度最大值和最小值,從out結果文件中讀取;Λmax、Λmin為優化前後平均特征值的最大值和最小值,從第2部分動态拓撲優化中的結果文件中讀取。本文中假設靜态總柔度比重w=0.6,靜态三個工況比重w1=w2=w3=0.33,動态工況比重為0.4。

通過靜态單目标拓撲優化,分别對每一個靜态工況進行單目标單工況的拓撲優化,可以得到不同的拓撲結構以及優化前後結構的最大柔度Cmax 和最小柔度Cmin(具體求解方法可參考文章《Hyperworks/Optistruct靜态單目标拓撲優化的數學模型及分析流程》)。通過多階固有頻率的優化,可以得到優化前後平均特征值的最大值Λmax和最小值Λmin(具體求解方法可參考文章《Hyperworks/Optistruct動态拓撲優化的分析流程及算法介紹》)。

優化的目标函數為:

将表3中的數據帶入目标函數,即為多目标拓撲優化的目标函數:

F(x1,x2,x3,x4)=rss((0.198/50370*(x1-11610),0.198/48870*(x2-10880),0.198/50530*(x3-11580),0.24/59583*(85452-x4))

注意:1)變量必須用x1,x2,x3,x4表示;2) rss函數表示求各變量的平方和後開方 3)乘法采用*,除法采用/,注意括号的要對應。

在Hyperworks/Optistruct中進行優化參數設置的步驟如下:

1)定義響應。定義Compliance1、Compliance2、Compliance3三個響應,分别對應1、2、3三個工況;定義體積分數響應;定義加權頻率響應Λ(x)。

2) 定義目标函數。在optimization模塊下的dequations裡輸入上式的目标函數F(x1,x2,x­3,x4)。其中rss函數表示求各變量的平方和後開方。

3) 關聯自定函數響應。定義一個類型為function的自定義函數響應F(x1,x2,x­3,x4),然後edit這個響應,把綜合目标函數x1、x2、x­3、x4與第一步定義的響應Compliance1、Compliance2、Compliance3、Λ(x)關聯起來。

特别值得注意的是,F(x1,x2,x­3,x4)中x1代表颠簸工況的柔度,那麼對應的響應是response1,工況必須是loadstep1。這樣就使自定義函數變量與對應的工況、對應的響應相匹配。

4) 定義約束條件。約束體積分數響應,上限為0.3。

5) 定義目标函數。把F(x1,x2,x­3,x4)作為目标函數,使其最小化。

總結:

1)工況對拓撲結構影響很大,如果幾個工況之間載荷及邊界相差不大,可以采用工況加權法;

2)适用于工況的柔度、固有頻率、特征值之間數量級不在一個層面的拓撲優化問題,采用數學處理方法消除了數量級的差别;

3)棋盤格控制參數、中間密度單元控制參數需要多次試算确定。

參考文獻

【1】CAE-小冷,Optistruct多目标拓撲優化,微信公衆号:結構CAE分析,2018-01-16

本站微信公衆賬号,歡迎關注,如有問題可在下方留言也可在公衆賬号提問。

微信公衆賬号

6 條留言  訪客:4 條  博主:2 條

  1. 你好,我發現你的文章很好,但我沒找到公衆号

    • 坐倚北風

      公衆号可直接掃描文章中或文章下面的二維碼,也可以搜索公衆号名稱“數字化設計CAX聯盟”。

      • 你好,在按照你寫的文章進行多目标優化時,出現*** ERROR # 1812 *** Multiple responses are assigned to the DESOBJ objective function. A MINMAX/MAXMIN objective function definition with DOBJREF should be used instead.

        • 坐倚北風

          這應該是響應設置有問題,後續有時間我再寫個詳細的教程來介紹一下多目标拓撲優化這一塊。

  2. zzz

    您好 我正好想要做這一塊的結構優化 已經可以根據一些教程做出結果了 但是一直有一個問題 在hypoermesh/optistruct中是怎麼設置柔度這一響應的呢 用什麼代表柔度呢

  3. 我在進行多工況的優化時,遇到了一個問題,好像是兩個工況分别不同的spc約束作用在一個點上是不行的,請問這樣的問題要怎麼處理呢?大概是這樣的: *** ERROR # 176 *** A dependent d.o.f. of rigid elements is constrained in an SPC set.
    grid id = 287522
    component = 3
    SPC set id = 6

給我留言