化RADOPT及實(shí)例)
自從HyperWorks 13.0版本更新后就有了RADOPT的功能它調(diào)用了OptiStruct中的優(yōu)化功能來對(duì)Radioss模型進(jìn)行優(yōu)化。RADOPT優(yōu)化介紹在Radioss中的RADOPT功能給用戶提供了比較簡(jiǎn)單的方法來設(shè)置優(yōu)化問題。它通過定義優(yōu)化文件name.radopt 然后OptiStruct 產(chǎn)生對(duì)應(yīng)的.fem后綴的Bulk格式的優(yōu)化文件。通常Radioss的模型一般涉及到許多非線性的問題那么OptiStruct使用等效靜載法ESLMEquivalent Static Load Method來對(duì)Radioss模型進(jìn)行相應(yīng)的轉(zhuǎn)換。ESLM是由漢陽大學(xué)Park博士提出的它是一種適用于動(dòng)態(tài)荷載作用下的優(yōu)化設(shè)計(jì)的技術(shù)。等效靜載荷是指在給定的時(shí)間步長(zhǎng)下產(chǎn)生與動(dòng)力/非線性分析相同的響應(yīng)場(chǎng)的載荷。如上圖所示計(jì)算出與該時(shí)間歷程中的每個(gè)時(shí)間步長(zhǎng)相對(duì)應(yīng)的等效靜態(tài)負(fù)載從而在靜態(tài)環(huán)境中復(fù)制該系統(tǒng)的動(dòng)態(tài)/非線性行為。分析計(jì)算的等效靜荷載如上面所解釋的被認(rèn)為是單獨(dú)的荷載情況并且這些多個(gè)荷載情況用于線性響應(yīng)優(yōu)化循環(huán)中。然后將優(yōu)化循環(huán)的更新設(shè)計(jì)傳遞給分析以用于驗(yàn)證和計(jì)算總體收斂。等效靜載法ESLM在OptiStruct中是響應(yīng)瞬態(tài)優(yōu)化的一種有效方法它是動(dòng)態(tài)和非線性的解決方案。更多的關(guān)于等效靜載法ESLM的內(nèi)容參見OptiStruct的用戶手冊(cè)。RADOPT的優(yōu)化流程首先進(jìn)行RADOPT除了常規(guī)的Radioss模型的starter輸入文件和engine輸入文件還需要一個(gè)用于定義優(yōu)化問題的名為name.radopt文件。在RADOPT中優(yōu)化的步驟是1 首先將名為 name.radopt的優(yōu)化文件傳遞給OptiStruct。然后根據(jù)名字name OptiStruct可以自動(dòng)識(shí)別在同一目錄下的相應(yīng)的Radioss的模型輸入文件name_0000.rad 和 name_0001.rad。2 OptiStruct將Radioss模型轉(zhuǎn)換成相應(yīng)的.fem后綴的OptiStruct的優(yōu)化文件并且運(yùn)行優(yōu)化計(jì)算。3 然后OptiStruct將優(yōu)化設(shè)計(jì)變量轉(zhuǎn)換到相應(yīng)的Radioss模型文件中形成新的Radioss模型新的starter 文件 name_rad_s#_i###_0000.rad新的engine 文件 name_rad_s#_i###_0001.rad然后讓Radioss計(jì)算新的Radioss模型這就是外部循環(huán)。與此相對(duì)的運(yùn)行OptiStruct稱為內(nèi)部循環(huán)Inner loop。在第一個(gè)外部循環(huán)中Radioss將首先計(jì)算原有Radioss模型這樣可以作為結(jié)果比對(duì)的基礎(chǔ)。4 在運(yùn)行完 Radioss 的外部循環(huán)后OptiStruct 讀取 Radioss 結(jié)果值。5 如果Radioss結(jié)果值比上一次結(jié)果值要差或不滿足優(yōu)化設(shè)計(jì)的約束等也就是優(yōu)化不收斂那么OptiStruct 的優(yōu)化過程繼續(xù)產(chǎn)生新的設(shè)計(jì)變量后循環(huán)步驟3、4、5直到優(yōu)化設(shè)計(jì)收斂。6 最后RADOPT優(yōu)化設(shè)計(jì)結(jié)束并輸出優(yōu)化后的相應(yīng)的 Radioss模型文件。RADOPT優(yōu)化文件的定義在一個(gè)優(yōu)化設(shè)計(jì)中有優(yōu)化目標(biāo)優(yōu)化約束優(yōu)化設(shè)計(jì)變量每一個(gè)優(yōu)化設(shè)計(jì)都會(huì)有一個(gè)優(yōu)化的目標(biāo)它可以是結(jié)構(gòu)減重(質(zhì)量最小化) 或是性能提高應(yīng)變最小化或內(nèi)能最大化或是體積最小化等等。在RADOPT中使用卡片/DESOBJ來描述。type0或1來選擇最大化還是最小化。在卡片中用優(yōu)化響應(yīng)/DRESP1來定義目標(biāo)描述的是什么。是質(zhì)量還是體積等等。然后用type0或1來選擇最大化還是最小化響應(yīng)。▇ 優(yōu)化的約束優(yōu)化的約束定義了優(yōu)化響應(yīng)的上下限。比如對(duì)某一構(gòu)件我們定義了減重質(zhì)量最小化的目標(biāo)但是構(gòu)件減重后的其他性能比如受力時(shí)最大變形必須仍然滿足一定的條件比如結(jié)構(gòu)某點(diǎn)的位移不超過某個(gè)數(shù)值那么這個(gè)條件就是我們需要的優(yōu)化的約束用卡片/DCONSTR來定義。▇ 優(yōu)化的變量?jī)?yōu)化的變量通常和實(shí)際模型有關(guān)比如它可以是模型中單元屬性比如殼單元的厚度等。它可以用/DVAPREL1卡片定義它還可以是在尺寸優(yōu)化size optimization中的/DESVAR中定義拓?fù)鋬?yōu)化topology optimization的/DTPL卡片中定義形貌優(yōu)化topography optimization的/DTPG卡片中自由尺寸優(yōu)化( free-size optimization)的/DSIZE卡片中自由形狀優(yōu)化Free-shape optimization的/DSHAPE卡片中關(guān)于如何定義上面這些不同類型的優(yōu)化可以參見OptiStruct 用戶手冊(cè)實(shí)際上上面的這些Radioss優(yōu)化卡片非常類似OptiStruct相應(yīng)的卡片比如/DTPL類似OptiStruct中的DTPL卡片。另外如果你已經(jīng)是OptiStruct的用戶你甚至可以使用/BULK, /BULKFMT, /BULKPROP, /BULKMAT以及/BULK/IO卡片將OptiStruct中的bulk格式的優(yōu)化語句直接用在RADOPT的優(yōu)化文件name.radopt中。運(yùn)行RADOPT優(yōu)化有兩種方法運(yùn)行RADOPT優(yōu)化一種是使用求解器窗口Solver GUI運(yùn)行RADOPT。如下圖所示只要輸入文件選擇name.radopt的優(yōu)化文件然后選擇 “-radopt”點(diǎn)擊“運(yùn)行”就可以了。還有一種方法是使用命令行運(yùn)行RADOPT優(yōu)化。那么首先需要確認(rèn)設(shè)置好了環(huán)境變量。比如▇ Linux (bash):export RADIOSS_STARTER$ALTAIR_HOME/hwsolvers/radios/bin/linux64/radioss_starter executableexport RADIOSS_ENGINE$ALTAIR_HOME/hwsolvers/radios/bin/linux64/radioss_engine executable▇ Windows:set RADIOSS_STARTER%ALTAIR_HOME%\hwsolvers\radioss\bin\win64\radioss_starter executableset RADIOSS_ENGINE%ALTAIR_HOME%\hwsolvers\radioss\bin\win64\radioss_engine executable比如下圖所示在windows中設(shè)置RADIOSS_STARTER 環(huán)境變量然后運(yùn)行RADOPT優(yōu)化的命令為直接使用命令▇ Linux (bash):[optistructhost~]$ $ALTAIR_HOME/hwsolvers/optistruct/bin/linux64/optistruct_executable name.radopt –radopt▇ Windows:[optistructhost~]$ $ALTAIR_HOME/hwsolvers/optistruct/bin/win64/optistruct_executable name.radopt -radopt使用腳本▇ Windows中使用OptiStruct腳本[optistructhost~]$ $ALTAIR_HOME/hwsolvers/scripts/optistruct.bat name.radopt –radopt▇ Windows中使用Radioss腳本[optistructhost~]$ $ALTAIR_HOME/hwsolvers/scripts/radioss.bat name.radopt -radoptUsing direct calls to executable (Windows machines)這兩種方法各有所長(zhǎng)前一個(gè)因?yàn)槭褂们蠼馄鹘缑嫠员容^容易操作后一種使用命令的方法可以很方便的使用在自己編寫的其他腳本中。這里再次提醒需要將Radioss模型文件和name.radopt的優(yōu)化文件放在同一工作目錄下。實(shí)例分享Radioss實(shí)體單元拓?fù)鋬?yōu)化Topology Optimization在Radioss中使用/DTPL可以設(shè)置拓?fù)鋬?yōu)化。與典型的優(yōu)化問題一樣在Radioss拓?fù)鋬?yōu)化也有三個(gè)要素目標(biāo)在本例中最小化結(jié)構(gòu)的體積約束本例中最大位移小于5mm設(shè)計(jì)變量鉤實(shí)例拓?fù)鋬?yōu)化設(shè)計(jì)在Radioss中設(shè)置優(yōu)化需要增加一個(gè)單獨(dú)的后綴為radopt的文件并且文件名必須與starter 和engine文件名相同。在這個(gè)后綴為radopt的文件中可以定義優(yōu)化的目標(biāo)優(yōu)化的約束等等。更多關(guān)于Radioss優(yōu)化參見工具書中的 Design Optimization。概要▇ 實(shí)例目標(biāo)這個(gè)實(shí)例的目標(biāo)是介紹如何在實(shí)體單元中設(shè)置拓?fù)鋬?yōu)化。▇ 實(shí)例介紹在鉤狀結(jié)構(gòu)的頂部設(shè)置rigid body,并施加向下的集中力。選擇下圖中紅色部分為優(yōu)化設(shè)計(jì)的區(qū)域。Units: mm, s, ton, N, and MPa▇ 優(yōu)化設(shè)置- 優(yōu)化目標(biāo)最小化紅色優(yōu)化區(qū)域的體積- 優(yōu)化約束Node group 120的最大位移小于5.0 [mm]問題描述▇ 拓?fù)鋬?yōu)化:- 使用優(yōu)化質(zhì)量控制 MEMBSIZ1- 定義拔模方向 DRAW1優(yōu)化設(shè)計(jì)詳細(xì)介紹Radioss 優(yōu)化設(shè)置▇ 優(yōu)化目標(biāo)/DESOBJ 卡片用于定義優(yōu)化的目標(biāo)。在這個(gè)實(shí)例中優(yōu)化的目標(biāo)是最小化type0 min優(yōu)化設(shè)計(jì)響應(yīng)#10 即體積. 在/DRESP1/10中定義的RTYPE3 即為體積這個(gè)可以參見工具書。PTYPE3 以及 grpart4即定義group part ID 為 4 是優(yōu)化區(qū)域。優(yōu)化目標(biāo)設(shè)置點(diǎn)擊圖片可查看高清大圖▇ 優(yōu)化約束在這個(gè)實(shí)例中定義鉤狀結(jié)構(gòu)在集中力的作用下最終位移少于5.0mm以保障結(jié)構(gòu)質(zhì)量。所有需要使用/DCONSTR卡片和/DRESPS1卡片來定義這個(gè)優(yōu)化約束。在/DRESPS1卡片中定義優(yōu)化響應(yīng)是node group ID120的總位移。然后將這個(gè)響應(yīng)#11使用到約束/DCONSTR中并且定義最大值cmax為5.0即node group ID120的總位移不能超過5.0mm。優(yōu)化約束設(shè)置▇ 拓?fù)鋬?yōu)化/DTPL卡片支持下面的拓?fù)鋬?yōu)化設(shè)計(jì)TMIN: 最小化厚度STRESS: 應(yīng)力約束MEMBSIZ: 構(gòu)件尺寸約束MESH: 網(wǎng)格類型DRAW:拔模方向約束EXTR: 擠壓方向約束PATRN: 多模鑄造約束PATREP: 多模鑄造重復(fù)約束更多的關(guān)于拓?fù)鋬?yōu)化的設(shè)計(jì)可以參見工具書/DTPL卡片。在這個(gè)拓?fù)鋬?yōu)化實(shí)例中使用了:▇ 構(gòu)件尺寸約束(設(shè)置 MEMBSIZ1)拓?fù)鋬?yōu)化中構(gòu)件尺寸約束其實(shí)更是一種質(zhì)量控制的方法。在這個(gè)例子中我們?cè)O(shè)置最小直徑MINDIM是1。其實(shí)我們建議MINDIM為單元平均網(wǎng)格的3倍到12倍。在這個(gè)例子中優(yōu)化區(qū)域的固體單元的網(wǎng)格約0.7mm。所以MINDIM將在優(yōu)化中自動(dòng)調(diào)整到單元平均尺寸的3倍。▇ 拔模方向定義 (設(shè)置 DRAW1)在拓?fù)鋬?yōu)化中允許定義拔模方向以便允許模具沿給定方向滑動(dòng)。DTYP用于定義模的類型在這個(gè)實(shí)例中使用DTYP1 即single die的類型這個(gè)類型用于3D優(yōu)化設(shè)計(jì)。拔模的方向可以有兩種不同的方法來定義。一個(gè)使用節(jié)點(diǎn)ID從DAID到DFID的方向。還有一種方法是使用坐標(biāo)從XDAYDAZDA到XDFYDFZDF的方向。不同的拔模方向會(huì)得出不同的拓?fù)鋬?yōu)化結(jié)果。比如下圖中顯示的左邊優(yōu)化結(jié)構(gòu)是拔模方向?yàn)榇怪焙穸确较蚝陀疫厓?yōu)化結(jié)果是拔模方向沿著z方向。不同拔模方向的拓?fù)鋬?yōu)化結(jié)果仿真結(jié)果及結(jié)論運(yùn)行Radioss優(yōu)化的模型后在結(jié)果文件中需要檢查以下幾點(diǎn)1 檢查是否最后一個(gè)設(shè)計(jì)為最優(yōu)設(shè)計(jì)并且是否是可行的feasible設(shè)計(jì)。在*.out 文件 (在這個(gè)實(shí)例中是hook_opt.out) 中的每一個(gè)內(nèi)部迭代中最后是否有下面的信息“FEASIBLE DESIGN (ALL CONSTRAINTS SATISFIED).“ –這個(gè)表面得到的設(shè)計(jì)是好的。“INFEASIBLE DESIGN (AT LEAST ONE CONSTRAINT VIOLATED).” -這個(gè)表明得到的設(shè)計(jì)還需進(jìn)一步優(yōu)化。以上信息也可以在hwsolver.mesg文件中得到。2 在 *.out 文件 (hook_opt.out)中, 檢查每次優(yōu)化的定義以及結(jié)果. 比如通過搜索“Objective Function: Minimize VOLUM”, “Run Type: Topology Optimization” 等等關(guān)鍵字。3 在運(yùn)行Radioss優(yōu)化時(shí)會(huì)自動(dòng)有一個(gè)相應(yīng)的OptiStruct模型*.fem產(chǎn)生這個(gè)模型中是hook_opt.fem。如果用戶熟悉OptiStruct的可以同時(shí)檢查相應(yīng)的優(yōu)化設(shè)置在自動(dòng)產(chǎn)生出的*.fem文件中是否與*.radopt中定義的相一致。在這個(gè)實(shí)例中在比如*.eslout (hook_opt.eslout)中顯示其中的一次優(yōu)化迭代的結(jié)果還可以在每個(gè)ANIM *.h3d, T01 文件中使用HV和HG直觀的觀察每個(gè)優(yōu)化迭代的結(jié)果。最終在這個(gè)實(shí)例中優(yōu)化區(qū)域的體積變化:- 優(yōu)化前體積是 324.715- 拓?fù)鋬?yōu)化后體積是 230.202構(gòu)件體積優(yōu)化的迭代過程下圖顯示了在優(yōu)化過程中總位移一直得到了很好的控制小于5mm構(gòu)件優(yōu)化迭代過程中的最大位移約束的控制