溫馨+劉俊+肖龍飛+鄒雙桂+唐文勇
摘要: 為提高彎管成形的數(shù)值優(yōu)化效率,解決小半徑彎管生產(chǎn)困難的問題,采用基于Python的Abaqus腳本接口和用戶圖形界面工具包進(jìn)行腳本功能及用戶界面二次開發(fā),形成專用插件.插件包含彎管成形定義、分析任務(wù)提交及成形結(jié)果查看等3個(gè)模塊,為彎管的系列數(shù)值實(shí)驗(yàn)提供完整、高效且易操作的解決方案.使用此插件進(jìn)行的數(shù)值模擬用時(shí)大幅縮短,且所得結(jié)果與現(xiàn)場實(shí)驗(yàn)吻合良好.
關(guān)鍵詞: 彎管成形優(yōu)化; 數(shù)值實(shí)驗(yàn); 二次開發(fā); 插件; 用戶圖形界面; Python
中圖分類號(hào): TG386;TP311文獻(xiàn)標(biāo)志碼: B
0引言
為節(jié)省空間,工程中傾向于采用彎曲半徑與管徑之比小于1.5的彎管.小半徑彎管在彎制時(shí)易產(chǎn)生外側(cè)減薄、內(nèi)側(cè)起皺和截面扁平化等缺陷.在實(shí)際生產(chǎn)中,為獲得符合成形標(biāo)準(zhǔn)的彎管,針對(duì)每個(gè)管徑規(guī)格,需進(jìn)行多次生產(chǎn)實(shí)驗(yàn)調(diào)試.目前,針對(duì)此成形過程,可采用Abaqus軟件實(shí)現(xiàn)數(shù)值模擬[1],以減少材料消耗并降低人工成本.
彎管成形的數(shù)值實(shí)驗(yàn)具有以下特點(diǎn):第一,彎管成形是包含幾何、邊界和材料的三重非線性過程,要得到收斂且可靠的結(jié)果,需要對(duì)參數(shù)進(jìn)行合理設(shè)置,數(shù)值結(jié)果的可靠性依賴于分析人員的經(jīng)驗(yàn)水平;第二,彎制工藝由管件與6個(gè)模具的接觸作用實(shí)現(xiàn),成形過程變量繁多,取得較優(yōu)的模具設(shè)置常需要進(jìn)行系列數(shù)值實(shí)驗(yàn)[24],而每一次數(shù)值實(shí)驗(yàn)都包括前后處理及分析過程,耗時(shí)很長;第三,Abaqus軟件無法直接提供成形指標(biāo)結(jié)果,需用戶提取變形后的節(jié)點(diǎn)位置自行計(jì)算,僅根據(jù)軟件給出的變形圖很難直觀地判斷缺陷位置.考慮以上特點(diǎn),本文采用Python及GUI Toolkit語言對(duì)Abaqus進(jìn)行二次開發(fā),形成針對(duì)彎管成形數(shù)值實(shí)驗(yàn)的專用插件.
目前,針對(duì)彎管模擬已有一些二次開發(fā)工作.[56]這些工作側(cè)重于對(duì)軟件已有功能的整合,而且只是針對(duì)某一部分進(jìn)行單獨(dú)開發(fā).本文開發(fā)的插件覆蓋前處理、工作提交和后處理整個(gè)過程,并且基于優(yōu)化經(jīng)驗(yàn)添加實(shí)用功能,如系列工作連續(xù)提交及指標(biāo)結(jié)果寫入云圖,為彎管成形數(shù)值實(shí)驗(yàn)提供一整套高效的解決方案,尤其適合系列優(yōu)化.插件還定制符合工程習(xí)慣的界面以簡化分析過程,即使沒有Abaqus軟件基礎(chǔ)的用戶也可以快速掌握使用.
1Abaqus自定義插件
以Abaqus腳本接口二次開發(fā)為主,結(jié)合圖形界面的定制,形成彎管成形模擬的專用插件.插件程序包括腳本接口文件、圖形界面文件和插件注冊(cè)文件3類.腳本接口文件基于Python語言,直接向內(nèi)核發(fā)送命令,針對(duì)建模、分析和后處理全過程實(shí)現(xiàn)功能定義.圖形界面文件和插件注冊(cè)文件基于Abaqus GUI Toolkit語言,前者負(fù)責(zé)對(duì)話框(Dialog)的建立,后者負(fù)責(zé)機(jī)制(Mode)的定義和GUI插件注冊(cè).機(jī)制是連接圖形界面與腳本程序的紐帶,其對(duì)用戶輸入的數(shù)據(jù)進(jìn)行收集檢驗(yàn),形成命令字符串提交至內(nèi)核.注冊(cè)命令引用定義的機(jī)制,當(dāng)插件被選中時(shí),相應(yīng)的GUI機(jī)制被激活,同時(shí)導(dǎo)入腳本接口程序,為GUI命令的調(diào)用做準(zhǔn)備.①為描述插件形成思路及各類文件間配合,以前處理模塊為例,文件的關(guān)鍵語句見圖1.
①Dassault Systèmes Simulia Co. Abaqus GUI Toolkit Users Manual, 2012
圖 1程序文件關(guān)鍵語句及插件形成思路
Fig.1Key statements of program file and plugin development idea
2彎管成形優(yōu)化專用插件
本文開發(fā)的彎管成形優(yōu)化專用插件包含3個(gè)模塊:彎管成形定義模塊、分析任務(wù)提交模塊和成形結(jié)果查看模塊,分別實(shí)現(xiàn)前處理、工作分析及后處理功能.插件分析流程見圖2.
圖 2插件分析流程
Fig.2Analysis flow using plugin2.1彎管成形定義模塊
在采用Abaqus對(duì)彎管成形過程進(jìn)行模擬時(shí),通常設(shè)置接觸、彎曲和卸載3個(gè)分析步.除管件本身與模具的結(jié)構(gòu)建模外,還需定義管件與6個(gè)模具間的多個(gè)接觸、芯棒與芯球的連接以及各模具在不同分析步中的力和位移邊界.此外,還需合理定義分析類型、接觸屬性、邊界條件、網(wǎng)格大小和加速手段并設(shè)置輸出.在滿足功能完整性的前提下,本插件的彎管成形定義模塊采用與軟件自身不同的思路,對(duì)建模流程進(jìn)行極大簡化,同時(shí)將具有一定技術(shù)難度的分析設(shè)置和重復(fù)性操作內(nèi)置在腳本中,無須用戶進(jìn)行定義.手動(dòng)建模流程見圖3,插件建模流程見圖4.圖 3手動(dòng)建模流程
Fig.3Flow of manual modeling process
圖 4插件建模流程
Fig.4Flow of modeling process using plugin
由圖中數(shù)字代表的基本操作步數(shù)可見,使用插件的操作步數(shù)減少近2/3.此外,插件建?;静僮鞑骄鶠閱蝹€(gè)數(shù)據(jù)的輸入,較手動(dòng)建模時(shí)需要進(jìn)行點(diǎn)選、繪圖等操作更加簡便.一般情況,使用插件建立1個(gè)分析文件的用時(shí)不超過5 min,尤其是在進(jìn)行系列優(yōu)化時(shí),僅需改變個(gè)別參數(shù)取值即可快速生成一系列優(yōu)化工作文件,極大地提高數(shù)值優(yōu)化前處理的效率.
界面的定制符合實(shí)際實(shí)驗(yàn)時(shí)的思路,分為基本參數(shù)、過程參數(shù)和分析設(shè)置3個(gè)選項(xiàng)卡,見圖5.基本參數(shù)包含實(shí)驗(yàn)時(shí)無法或不經(jīng)常調(diào)整的參數(shù),主要是管件與模具自身的尺寸和材料參數(shù);過程參數(shù)選擇工程中為提高成形質(zhì)量經(jīng)常調(diào)整的參數(shù).基于優(yōu)化經(jīng)驗(yàn),本插件在模具設(shè)置中選擇彎曲半徑、彎曲角速度、芯棒與管件間隙、芯棒伸出量、壓模側(cè)推力及其相對(duì)側(cè)推速度作為調(diào)整參數(shù).分析設(shè)置中對(duì)網(wǎng)格、分析步、工作名和儲(chǔ)存路徑進(jìn)行定義.用戶只需填寫以上參數(shù)即可自動(dòng)生成用于提交分析的inp文件.因此,即使沒有Abaqus軟件操作基礎(chǔ)的用戶,也可以使用此插件進(jìn)行高效的模擬工作.endprint
2.2分析任務(wù)提交和成形結(jié)果查看
單個(gè)彎管成形工作耗時(shí)很長,而且還常進(jìn)行系列計(jì)算.為有效利用時(shí)間,插件在分析任務(wù)提交模塊添加無人值守時(shí)的連續(xù)提交功能.用戶可以依次選擇多個(gè)inp文件一并提交,由軟件自動(dòng)在前一個(gè)分析任務(wù)完成之后提交下一個(gè)任務(wù).同時(shí),由于過程文件較大,可以選擇計(jì)算完畢后自動(dòng)將其刪除.a)基本參數(shù)b)過程參數(shù)c)分析設(shè)置
圖 5彎管成形定義用戶界面
Fig.5User graphics interface of bended tube forming definition
彎管成形質(zhì)量由3個(gè)指標(biāo)考察:外側(cè)減薄率It,內(nèi)側(cè)起皺率Iw和截面扁平度If.指標(biāo)計(jì)算參數(shù)見圖6,計(jì)算方程為If=D1D0
It=t0min(t′)t0
Iw=max(Iws,Iwb)
Iwb=RmaxRminD0
Iws=DmaxDminD0 (1)式中:Iws和Iwb分別為直線段和曲線段起皺率.
圖 6成形指標(biāo)計(jì)算示意
Fig.6Schematic of forming indexes calculation
在插件提供的成形結(jié)果查看模塊中,用戶只需選擇結(jié)果文件,提取數(shù)據(jù)的時(shí)間點(diǎn)和需要顯示的云圖項(xiàng),腳本程序會(huì)自動(dòng)提取節(jié)點(diǎn)位置信息,按定義計(jì)算出指標(biāo)值,顯示在CAE窗口的信息欄,并寫入文件.為方便用戶觀察起皺位置,指導(dǎo)下一步設(shè)置調(diào)整,插件將起皺高度計(jì)算值與節(jié)點(diǎn)對(duì)應(yīng)寫入結(jié)果云圖,用戶可以隨時(shí)看到起皺高度的分布云圖.模擬工作提交和成形結(jié)果查看的用戶界面見圖7.
圖 7工作提交及后處理用戶界面
Fig.7User interfaces of job submission and postprocessing
3腳本程序要點(diǎn)
腳本接口程序是插件功能實(shí)現(xiàn)的核心.Abaqus腳本接口命令配合Python靈活的數(shù)據(jù)操作功能,可以方便地實(shí)現(xiàn)模型的自動(dòng)化處理.對(duì)應(yīng)插件的3個(gè)模塊,分別編寫腳本接口程序.腳本程序關(guān)鍵語句及其說明如下.#前處理腳本關(guān)鍵語句
p= mdb.models[′Model1′].Part(name=′PIPE′, dimensionality, type)
…
a=mdb. models[′Model1′]. rootAssembly
# 創(chuàng)建部件截面
# 截面、參考點(diǎn)、特性、網(wǎng)格
# 部件裝配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(…)# 建立數(shù)組、調(diào)整位置
# 分析步、接觸、連接單元、邊界
# findAt方法選邊
# 節(jié)點(diǎn)建立數(shù)組
# 場輸出定義
# 選擇節(jié)點(diǎn)組為場輸出區(qū)域
# 定義工作
# 生成用于提交計(jì)算的inp文件#工作提交分析腳本關(guān)鍵語句
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)
# 定義函數(shù)進(jìn)行文件判斷刪除
# 定義文件判斷條件
# 刪除文件命令
# 對(duì)工作隊(duì)列循環(huán)操作
# inp文件創(chuàng)建工作
# 提交工作
# 前個(gè)分析結(jié)束前截?cái)啻a
# 調(diào)用函數(shù)
# 路徑下文件依次調(diào)用函數(shù)#后處理腳本關(guān)鍵語句
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()
# 提取某時(shí)間點(diǎn)節(jié)點(diǎn)坐標(biāo)場輸出
# 管件內(nèi)外側(cè)節(jié)點(diǎn)列表循環(huán)
# 判斷條件
# 寫入直線段節(jié)點(diǎn)序列
# 直線段/曲線段節(jié)點(diǎn)序列循環(huán)
# 寫入內(nèi)側(cè)節(jié)點(diǎn)元數(shù)組
# 內(nèi)側(cè)節(jié)點(diǎn)位移場輸出循環(huán)
# 位移與節(jié)點(diǎn)號(hào)對(duì)應(yīng)
# 計(jì)算皺高
# 寫入皺高列表
# 新建場輸出變量
# 添加數(shù)據(jù)
# 更新結(jié)果文件
①Dassault Systèmes Simulia Co. Abaqus Scripting Users Manual, 2012
②Python Software Foundation, Python 2.7.8 documentation3.1前處理
前處理腳本完成自動(dòng)建模工作,依次進(jìn)行部件、組裝、網(wǎng)格、邊界條件、接觸和分析步等對(duì)象的定義,另將管件內(nèi)外側(cè)節(jié)點(diǎn)分別建立數(shù)組并設(shè)置輸出,供后處理提取數(shù)據(jù).腳本接口文件編寫可以參考Abaqus軟件在GUI建模時(shí)生成的rpy文件.[7]需要注意的是,為保證腳本在重復(fù)運(yùn)行時(shí)的正確性,需對(duì)此參考文件進(jìn)行修正.例如,在屏幕上進(jìn)行點(diǎn)選時(shí),Abaqus默認(rèn)采用內(nèi)部的編號(hào)系統(tǒng)為對(duì)象進(jìn)行標(biāo)記①,但是模型編輯會(huì)改變特征ID,故編寫腳本時(shí)需使用findAt命令對(duì)其進(jìn)行替換,改用坐標(biāo)值標(biāo)記對(duì)象.
3.2分析任務(wù)提交
分析任務(wù)提交腳本接口實(shí)現(xiàn)2個(gè)功能:任務(wù)的連續(xù)分析和過程文件的自動(dòng)刪除.其中,連續(xù)分析通過循環(huán)完成,實(shí)現(xiàn)的關(guān)鍵是waitForCompletion方法的使用.②為實(shí)現(xiàn)過程文件的自動(dòng)清理,定義進(jìn)行文件判斷和刪除的專用函數(shù),利用系統(tǒng)路徑的訪問方法對(duì)目錄中的每個(gè)文件依次調(diào)用此函數(shù)進(jìn)行判斷和刪除.
3.3后處理
以起皺率為例說明后處理腳本中進(jìn)行指標(biāo)自動(dòng)計(jì)算并將結(jié)果寫入文件和云圖的過程.
使用Abaqus命令訪問結(jié)果數(shù)據(jù)庫中特定時(shí)間步的節(jié)點(diǎn)坐標(biāo)輸出項(xiàng).由于變形后直線段與曲線段的起皺率計(jì)算方法不同,使用循環(huán)語句將直線段和彎曲段的節(jié)點(diǎn)分開配對(duì).采用循環(huán)判斷分別生成內(nèi)側(cè)節(jié)點(diǎn)元數(shù)組和皺高列表.為實(shí)現(xiàn)起皺高度的云圖顯示,新建場輸出對(duì)象,添加對(duì)象節(jié)點(diǎn)元數(shù)組和相應(yīng)皺高列表,保存在odb文件中.
4實(shí)例
為驗(yàn)證插件的有效性,使用插件對(duì)某次現(xiàn)場實(shí)驗(yàn)進(jìn)行模擬分析.目標(biāo)管件外徑為114 mm,厚度為4.5 mm.進(jìn)行2次現(xiàn)場實(shí)驗(yàn)以對(duì)比不同的壓模側(cè)推力對(duì)成形結(jié)果的影響:第1次側(cè)推螺栓緊,第2次側(cè)推螺栓松.對(duì)應(yīng)2次模擬時(shí)壓模側(cè)推力的設(shè)置為100和50 kN,其余參數(shù)一致.使用插件的“彎管成形定義”模塊,生成第1次實(shí)驗(yàn)的待提交inp文件,耗時(shí)3 min,模型見圖8.
圖 8插件生成模型
Fig.8Model for plugin generation
以第1次實(shí)驗(yàn)為基礎(chǔ),改變過程參數(shù)中側(cè)推力的取值,即可生成第2次實(shí)驗(yàn)的分析任務(wù)文件.之后在“工作連續(xù)提交定義”模塊選擇這2個(gè)inp文件,勾選完成后刪除過程文件選項(xiàng)后提交.分析完畢后,信息欄中列出被刪除的過程文件和工作的接連提交情況,見圖9.最后,使用“成形結(jié)果查看”模塊,選擇結(jié)果文件、時(shí)間點(diǎn)和云圖項(xiàng),插件自動(dòng)計(jì)算指標(biāo)并寫入相應(yīng)文件,結(jié)果同樣顯示在CAE信息欄,見圖9.同時(shí),插件將起皺高度寫入結(jié)果云圖,界面自動(dòng)轉(zhuǎn)到所選的云圖項(xiàng)顯示.計(jì)算得到的第1次成形后彎管厚度云圖見圖10,最小厚度的位置和減薄率與現(xiàn)場實(shí)驗(yàn)吻合良好,見表1.同時(shí),由起皺高度云圖可見,當(dāng)螺栓緊時(shí),管件后部出現(xiàn)皺高3.7 mm的褶皺,與現(xiàn)場實(shí)驗(yàn)結(jié)果吻合,見圖11.無論是現(xiàn)場實(shí)驗(yàn)還是采用插件數(shù)值模擬得到的結(jié)果均顯示,側(cè)推螺栓過緊對(duì)彎管成形有負(fù)面影響.圖 9信息欄
Fig.9Message area
圖 10厚度云圖
Fig.10Thickness contour
圖 11起皺云圖和實(shí)驗(yàn)對(duì)比
Fig.10Comparison of wrinkling contour and experiment
5結(jié)論
利用Abaqus腳本接口程序及圖形界面工具包,形成針對(duì)彎管成形數(shù)值優(yōu)化的專用插件.利用插件可實(shí)現(xiàn)以下功能.
1)輸入必要的參數(shù)值即可自動(dòng)生成模型,建模時(shí)間為5 min以內(nèi).在過程參數(shù)一欄修改個(gè)別參數(shù)即可快速生成系列任務(wù)文件.
2)支持無人值守時(shí)多個(gè)分析任務(wù)連續(xù)提交及過程文件自動(dòng)刪除,可有效利用時(shí)間.表 1插件模擬與現(xiàn)場實(shí)驗(yàn)結(jié)果對(duì)比
Tab.1Comparison of results of simulation using plugin and field experiment描述原厚度/mm成形后最小厚度/mm減薄率/%現(xiàn)場實(shí)驗(yàn)值插件模擬值現(xiàn)場實(shí)驗(yàn)值插件模擬值現(xiàn)場實(shí)驗(yàn)值插件模擬值螺栓緊4.400~4.5004.5003.3003.35025.00~26.6725.56螺栓松4.400~4.5004.5003.4003.40922.73~24.4423.44endprint
3)自動(dòng)計(jì)算成形指標(biāo),顯示在信息欄,寫入文件并實(shí)現(xiàn)指標(biāo)云圖顯示,方便用戶觀察缺陷產(chǎn)生位置,指導(dǎo)下一步調(diào)整.
通過前后處理的自動(dòng)化和系列工作分析時(shí)間利用率的提高,彎管成形數(shù)值優(yōu)化效率得以大幅度提升.采用開發(fā)的插件對(duì)現(xiàn)場實(shí)驗(yàn)進(jìn)行模擬,所得結(jié)果與實(shí)際吻合良好.本文給出的插件形成思路和功能開發(fā)要點(diǎn)可供其他系列優(yōu)化數(shù)值實(shí)驗(yàn)的二次開發(fā)參考.參考文獻(xiàn):
[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的數(shù)控彎管專用前處理模塊開發(fā)[J]. 航空工程進(jìn)展, 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的數(shù)控彎管專用后處理模塊的拓展[J]. 塑性工程學(xué)報(bào), 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]郭霞, 關(guān)志東, 劉遂, 等. 基于Python的Abaqus二次開發(fā)在層壓板修理模擬中的應(yīng)用[J]. 計(jì)算機(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