溫馨+劉俊+肖龍飛+鄒雙桂+唐文勇



摘要: 為提高彎管成形的數值優化效率,解決小半徑彎管生產困難的問題,采用基于Python的Abaqus腳本接口和用戶圖形界面工具包進行腳本功能及用戶界面二次開發,形成專用插件.插件包含彎管成形定義、分析任務提交及成形結果查看等3個模塊,為彎管的系列數值實驗提供完整、高效且易操作的解決方案.使用此插件進行的數值模擬用時大幅縮短,且所得結果與現場實驗吻合良好.
關鍵詞: 彎管成形優化; 數值實驗; 二次開發; 插件; 用戶圖形界面; Python
中圖分類號: TG386;TP311文獻標志碼: B
0引言
為節省空間,工程中傾向于采用彎曲半徑與管徑之比小于1.5的彎管.小半徑彎管在彎制時易產生外側減薄、內側起皺和截面扁平化等缺陷.在實際生產中,為獲得符合成形標準的彎管,針對每個管徑規格,需進行多次生產實驗調試.目前,針對此成形過程,可采用Abaqus軟件實現數值模擬[1],以減少材料消耗并降低人工成本.
彎管成形的數值實驗具有以下特點:第一,彎管成形是包含幾何、邊界和材料的三重非線性過程,要得到收斂且可靠的結果,需要對參數進行合理設置,數值結果的可靠性依賴于分析人員的經驗水平;第二,彎制工藝由管件與6個模具的接觸作用實現,成形過程變量繁多,取得較優的模具設置常需要進行系列數值實驗[24],而每一次數值實驗都包括前后處理及分析過程,耗時很長;第三,Abaqus軟件無法直接提供成形指標結果,需用戶提取變形后的節點位置自行計算,僅根據軟件給出的變形圖很難直觀地判斷缺陷位置.考慮以上特點,本文采用Python及GUI Toolkit語言對Abaqus進行二次開發,形成針對彎管成形數值實驗的專用插件.
目前,針對彎管模擬已有一些二次開發工作.[56]這些工作側重于對軟件已有功能的整合,而且只是針對某一部分進行單獨開發.本文開發的插件覆蓋前處理、工作提交和后處理整個過程,并且基于優化經驗添加實用功能,如系列工作連續提交及指標結果寫入云圖,為彎管成形數值實驗提供一整套高效的解決方案,尤其適合系列優化.插件還定制符合工程習慣的界面以簡化分析過程,即使沒有Abaqus軟件基礎的用戶也可以快速掌握使用.
1Abaqus自定義插件
以Abaqus腳本接口二次開發為主,結合圖形界面的定制,形成彎管成形模擬的專用插件.插件程序包括腳本接口文件、圖形界面文件和插件注冊文件3類.腳本接口文件基于Python語言,直接向內核發送命令,針對建模、分析和后處理全過程實現功能定義.圖形界面文件和插件注冊文件基于Abaqus GUI Toolkit語言,前者負責對話框(Dialog)的建立,后者負責機制(Mode)的定義和GUI插件注冊.機制是連接圖形界面與腳本程序的紐帶,其對用戶輸入的數據進行收集檢驗,形成命令字符串提交至內核.注冊命令引用定義的機制,當插件被選中時,相應的GUI機制被激活,同時導入腳本接口程序,為GUI命令的調用做準備.①為描述插件形成思路及各類文件間配合,以前處理模塊為例,文件的關鍵語句見圖1.
①Dassault Systèmes Simulia Co. Abaqus GUI Toolkit Users Manual, 2012
圖 1程序文件關鍵語句及插件形成思路
Fig.1Key statements of program file and plugin development idea
2彎管成形優化專用插件
本文開發的彎管成形優化專用插件包含3個模塊:彎管成形定義模塊、分析任務提交模塊和成形結果查看模塊,分別實現前處理、工作分析及后處理功能.插件分析流程見圖2.
圖 2插件分析流程
Fig.2Analysis flow using plugin2.1彎管成形定義模塊
在采用Abaqus對彎管成形過程進行模擬時,通常設置接觸、彎曲和卸載3個分析步.除管件本身與模具的結構建模外,還需定義管件與6個模具間的多個接觸、芯棒與芯球的連接以及各模具在不同分析步中的力和位移邊界.此外,還需合理定義分析類型、接觸屬性、邊界條件、網格大小和加速手段并設置輸出.在滿足功能完整性的前提下,本插件的彎管成形定義模塊采用與軟件自身不同的思路,對建模流程進行極大簡化,同時將具有一定技術難度的分析設置和重復性操作內置在腳本中,無須用戶進行定義.手動建模流程見圖3,插件建模流程見圖4.圖 3手動建模流程
Fig.3Flow of manual modeling process
圖 4插件建模流程
Fig.4Flow of modeling process using plugin
由圖中數字代表的基本操作步數可見,使用插件的操作步數減少近2/3.此外,插件建模基本操作步均為單個數據的輸入,較手動建模時需要進行點選、繪圖等操作更加簡便.一般情況,使用插件建立1個分析文件的用時不超過5 min,尤其是在進行系列優化時,僅需改變個別參數取值即可快速生成一系列優化工作文件,極大地提高數值優化前處理的效率.
界面的定制符合實際實驗時的思路,分為基本參數、過程參數和分析設置3個選項卡,見圖5.基本參數包含實驗時無法或不經常調整的參數,主要是管件與模具自身的尺寸和材料參數;過程參數選擇工程中為提高成形質量經常調整的參數.基于優化經驗,本插件在模具設置中選擇彎曲半徑、彎曲角速度、芯棒與管件間隙、芯棒伸出量、壓模側推力及其相對側推速度作為調整參數.分析設置中對網格、分析步、工作名和儲存路徑進行定義.用戶只需填寫以上參數即可自動生成用于提交分析的inp文件.因此,即使沒有Abaqus軟件操作基礎的用戶,也可以使用此插件進行高效的模擬工作.endprint
2.2分析任務提交和成形結果查看
單個彎管成形工作耗時很長,而且還常進行系列計算.為有效利用時間,插件在分析任務提交模塊添加無人值守時的連續提交功能.用戶可以依次選擇多個inp文件一并提交,由軟件自動在前一個分析任務完成之后提交下一個任務.同時,由于過程文件較大,可以選擇計算完畢后自動將其刪除.a)基本參數b)過程參數c)分析設置
圖 5彎管成形定義用戶界面
Fig.5User graphics interface of bended tube forming definition
彎管成形質量由3個指標考察:外側減薄率It,內側起皺率Iw和截面扁平度If.指標計算參數見圖6,計算方程為If=D1D0
It=t0min(t′)t0
Iw=max(Iws,Iwb)
Iwb=RmaxRminD0
Iws=DmaxDminD0 (1)式中:Iws和Iwb分別為直線段和曲線段起皺率.
圖 6成形指標計算示意
Fig.6Schematic of forming indexes calculation
在插件提供的成形結果查看模塊中,用戶只需選擇結果文件,提取數據的時間點和需要顯示的云圖項,腳本程序會自動提取節點位置信息,按定義計算出指標值,顯示在CAE窗口的信息欄,并寫入文件.為方便用戶觀察起皺位置,指導下一步設置調整,插件將起皺高度計算值與節點對應寫入結果云圖,用戶可以隨時看到起皺高度的分布云圖.模擬工作提交和成形結果查看的用戶界面見圖7.
圖 7工作提交及后處理用戶界面
Fig.7User interfaces of job submission and postprocessing
3腳本程序要點
腳本接口程序是插件功能實現的核心.Abaqus腳本接口命令配合Python靈活的數據操作功能,可以方便地實現模型的自動化處理.對應插件的3個模塊,分別編寫腳本接口程序.腳本程序關鍵語句及其說明如下.#前處理腳本關鍵語句
p= mdb.models[′Model1′].Part(name=′PIPE′, dimensionality, type)
…
a=mdb. models[′Model1′]. rootAssembly
# 創建部件截面
# 截面、參考點、特性、網格
# 部件裝配a.Instance(name=′PIPE1′, part=p, dependent=ON)…
…
edge1 = e1. findAt((bendradiusdiameter/2, (lclampdie+10), 0),)
a.Set(nodes=nodes1, name=′node_pipe_innerline′)
mdb.models[′Model1′].FieldOutputRequest(name=′FOutput1′, …,variables, …)
regionDef=mdb.models[′Model1′].rootAssembly.sets[′node_pipe_innerline′]
mdb.Job(name=job_name, model=′Model1′,…)
mdb.jobs[jobname].writeInput(…)# 建立數組、調整位置
# 分析步、接觸、連接單元、邊界
# findAt方法選邊
# 節點建立數組
# 場輸出定義
# 選擇節點組為場輸出區域
# 定義工作
# 生成用于提交計算的inp文件#工作提交分析腳本關鍵語句
def scan(dirname, filename, names):
for file in names:
if …:
os.remove(file)
for i in range():
mdb.JobFromInputFile(name = jobqueue [i],…)
mdb. jobs[jobqueue [i]].submit(…)
mdb. jobs[jobqueue [i]]. waitForCompletion()
scan(pathName, jobqueue_real[i], fileall)
os.path.walk(pathName, scan, 0)
# 定義函數進行文件判斷刪除
# 定義文件判斷條件
# 刪除文件命令
# 對工作隊列循環操作
# inp文件創建工作
# 提交工作
# 前個分析結束前截斷代碼
# 調用函數
# 路徑下文件依次調用函數#后處理腳本關鍵語句
coord=odb.steps[′bend′].frames[1].fieldOutputs[′COORD′]
for…in…:
if…:
straight.extend([icoord0Values.nodeLabel,ocoord0Values. nodeLabel])
for istraightLabel in straight:
nodein += (istraightLabel, )endprint
for…in…:
if (icoordValues. nodeLabel == istraightLabel):
…
Hw_in.append(Hw_t)
Hwfield = lastFrame.FieldOutput(name=′Hw′, description=′起皺高度′,…)
Hwfield.addData(position=NODAL, …, labels = nodein, data = Hw_in)
odb.update()
# 提取某時間點節點坐標場輸出
# 管件內外側節點列表循環
# 判斷條件
# 寫入直線段節點序列
# 直線段/曲線段節點序列循環
# 寫入內側節點元數組
# 內側節點位移場輸出循環
# 位移與節點號對應
# 計算皺高
# 寫入皺高列表
# 新建場輸出變量
# 添加數據
# 更新結果文件
①Dassault Systèmes Simulia Co. Abaqus Scripting Users Manual, 2012
②Python Software Foundation, Python 2.7.8 documentation3.1前處理
前處理腳本完成自動建模工作,依次進行部件、組裝、網格、邊界條件、接觸和分析步等對象的定義,另將管件內外側節點分別建立數組并設置輸出,供后處理提取數據.腳本接口文件編寫可以參考Abaqus軟件在GUI建模時生成的rpy文件.[7]需要注意的是,為保證腳本在重復運行時的正確性,需對此參考文件進行修正.例如,在屏幕上進行點選時,Abaqus默認采用內部的編號系統為對象進行標記①,但是模型編輯會改變特征ID,故編寫腳本時需使用findAt命令對其進行替換,改用坐標值標記對象.
3.2分析任務提交
分析任務提交腳本接口實現2個功能:任務的連續分析和過程文件的自動刪除.其中,連續分析通過循環完成,實現的關鍵是waitForCompletion方法的使用.②為實現過程文件的自動清理,定義進行文件判斷和刪除的專用函數,利用系統路徑的訪問方法對目錄中的每個文件依次調用此函數進行判斷和刪除.
3.3后處理
以起皺率為例說明后處理腳本中進行指標自動計算并將結果寫入文件和云圖的過程.
使用Abaqus命令訪問結果數據庫中特定時間步的節點坐標輸出項.由于變形后直線段與曲線段的起皺率計算方法不同,使用循環語句將直線段和彎曲段的節點分開配對.采用循環判斷分別生成內側節點元數組和皺高列表.為實現起皺高度的云圖顯示,新建場輸出對象,添加對象節點元數組和相應皺高列表,保存在odb文件中.
4實例
為驗證插件的有效性,使用插件對某次現場實驗進行模擬分析.目標管件外徑為114 mm,厚度為4.5 mm.進行2次現場實驗以對比不同的壓模側推力對成形結果的影響:第1次側推螺栓緊,第2次側推螺栓松.對應2次模擬時壓模側推力的設置為100和50 kN,其余參數一致.使用插件的“彎管成形定義”模塊,生成第1次實驗的待提交inp文件,耗時3 min,模型見圖8.
圖 8插件生成模型
Fig.8Model for plugin generation
以第1次實驗為基礎,改變過程參數中側推力的取值,即可生成第2次實驗的分析任務文件.之后在“工作連續提交定義”模塊選擇這2個inp文件,勾選完成后刪除過程文件選項后提交.分析完畢后,信息欄中列出被刪除的過程文件和工作的接連提交情況,見圖9.最后,使用“成形結果查看”模塊,選擇結果文件、時間點和云圖項,插件自動計算指標并寫入相應文件,結果同樣顯示在CAE信息欄,見圖9.同時,插件將起皺高度寫入結果云圖,界面自動轉到所選的云圖項顯示.計算得到的第1次成形后彎管厚度云圖見圖10,最小厚度的位置和減薄率與現場實驗吻合良好,見表1.同時,由起皺高度云圖可見,當螺栓緊時,管件后部出現皺高3.7 mm的褶皺,與現場實驗結果吻合,見圖11.無論是現場實驗還是采用插件數值模擬得到的結果均顯示,側推螺栓過緊對彎管成形有負面影響.圖 9信息欄
Fig.9Message area
圖 10厚度云圖
Fig.10Thickness contour
圖 11起皺云圖和實驗對比
Fig.10Comparison of wrinkling contour and experiment
5結論
利用Abaqus腳本接口程序及圖形界面工具包,形成針對彎管成形數值優化的專用插件.利用插件可實現以下功能.
1)輸入必要的參數值即可自動生成模型,建模時間為5 min以內.在過程參數一欄修改個別參數即可快速生成系列任務文件.
2)支持無人值守時多個分析任務連續提交及過程文件自動刪除,可有效利用時間.表 1插件模擬與現場實驗結果對比
Tab.1Comparison of results of simulation using plugin and field experiment描述原厚度/mm成形后最小厚度/mm減薄率/%現場實驗值插件模擬值現場實驗值插件模擬值現場實驗值插件模擬值螺栓緊4.400~4.5004.5003.3003.35025.00~26.6725.56螺栓松4.400~4.5004.5003.4003.40922.73~24.4423.44endprint
3)自動計算成形指標,顯示在信息欄,寫入文件并實現指標云圖顯示,方便用戶觀察缺陷產生位置,指導下一步調整.
通過前后處理的自動化和系列工作分析時間利用率的提高,彎管成形數值優化效率得以大幅度提升.采用開發的插件對現場實驗進行模擬,所得結果與實際吻合良好.本文給出的插件形成思路和功能開發要點可供其他系列優化數值實驗的二次開發參考.參考文獻:
[1]ZHAO G Y, LIU Y L, YANG H, et al. Threedimensional finiteelements modeling and simulation of rotarydraw bending process for thinwalled rectangular tube[J]. Mat Sci & Eng: A, 2009, 499(12): 257261.
[2]LI H, YANG H, ZHANG Z, et al. ‘Size effect related bending formability of thinwalled aluminum alloy tube[J]. Chin J Aeronautics, 2013, 26(1): 230241.
[3]LI H, YANG H. A Study on multidefect constrained bendability of thinwalled tube NC bending under different clearance[J]. Chin J Aeronautics, 2011, 24(1): 102112.
[4]LI H, YANG H, et al. Multiple instabilityconstrained tube bending limits[J]. J Mat Proc Technol, 2014, 214(2): 445455.
[5]蔣華兵, 詹梅, 楊合. 基于Abaqus的數控彎管專用前處理模塊開發[J]. 航空工程進展, 2010, 1(2): 184189.
JIANG Huabing, ZHAN Mei, YANG He. Development of preprocess module of NC tube bending based on Abaqus software using Python[J]. Adv Aeronautical Sci & Eng, 2010, 1(2): 184189.
[6]馮穎, 楊合, 陳德正, 等. 基于Abaqus/Python的數控彎管專用后處理模塊的拓展[J]. 塑性工程學報, 2011, 18(2): 712.
FENG Ying, YANG He, CHEN Dezheng, et al. Abaqus/Pythonbased extension study of postprocessing module of NC tube bending[J]. J Plastcity Eng, 2011, 18(2): 712.
[7]郭霞, 關志東, 劉遂, 等. 基于Python的Abaqus二次開發在層壓板修理模擬中的應用[J]. 計算機輔助工程, 2013, 22(4): 3439.
GUO Xia, GUAN Zhidong, LIU Sui, et al. Application of Abaqus secondary development based on Python in simulation of laminate repair[J]. Comput Aided Eng, 2013, 3439.(編輯武曉英)endprint