曹金鳳,王志文,高 明,賈舒安,孫志偉,薛茂林,張澤明
(1.青島理工大學(xué) 機械與汽車工程學(xué)院,山東 青島 266520;2.賽輪集團股份有限公司,山東 青島 264200)
進入新世紀(jì),國內(nèi)各大輪胎企業(yè)為提高產(chǎn)品質(zhì)量,降低生產(chǎn)成本,在輪胎設(shè)計與研發(fā)過程中投入了大量的人力和財力。隨著計算機技術(shù)的發(fā)展,CAE仿真作為一項成熟的計算機工程輔助技術(shù)被越來越多地應(yīng)用到輪胎設(shè)計研發(fā)過程中[1]。輪胎性能的研究也由單純的試驗逐漸轉(zhuǎn)變?yōu)樵囼炁c仿真技術(shù)相結(jié)合。
Abaqus軟件作為目前國際上最為先進的通用非線性有限元仿真分析軟件之一,廣泛應(yīng)用于機械制造、石油化工、航空航天、汽車交通、土木工程以及電子工程等科學(xué)研究領(lǐng)域[2-3]。由于Abaqus軟件具有豐富的材料屬性庫和單元庫,因此多數(shù)企業(yè)和科研機構(gòu)使用其進行產(chǎn)品性能仿真。Abaqus軟件應(yīng)用領(lǐng)域較多,用戶要獲得設(shè)計仿真所需的專用功能,則需通過編寫腳本的方式對Abaqus軟件進行二次開發(fā)。國內(nèi)外眾多學(xué)者針對各自相關(guān)領(lǐng)域?qū)baqus軟件進行了二次開發(fā),霍永強等[4]基于Python語言對Abaqus軟件進行二次開發(fā),建立冷滾打成形參數(shù)化建模插件,僅需要在交互界面中改變相對應(yīng)的模型尺寸及工藝參數(shù),就可以快速建立有限元仿真模型。宋穎等[5]用Python語言開發(fā)了圓柱形橡膠堆快速建模和結(jié)果分析的程序,實現(xiàn)了前處理參數(shù)化建模及后處理結(jié)果輸出的自動化。曹金鳳等[6]基于Python語言和C#語言研發(fā)的輪胎多方案有限元分析結(jié)果自動后處理系統(tǒng)可以根據(jù)需求自動獲取、處理Odb文件中的海量數(shù)據(jù),將分析結(jié)果自動生成PPT有限元分析報告。G.HUAN等[7]針對Abaqus軟件中裝配體內(nèi)應(yīng)力分布不均勻等問題,基于Python語言編寫了能計算應(yīng)力值的插件。劉湘云等[8]基于Abaqus腳本語言Python開發(fā)了含開孔復(fù)合材料層壓板剩余強度分析快速建模程序,通過人機交互實現(xiàn)參數(shù)化自動建模。郭玲等[9]開發(fā)了針對薄壁管數(shù)控彎曲應(yīng)用的Abaqus軟件后處理程序,可用于薄壁管彎曲起皺的判斷和起皺區(qū)域的確定以及最大壁厚減薄量的計算和其所在位置的確定。以上專家學(xué)者對Abaqus軟件的二次開發(fā)在一定程度上都實現(xiàn)了Abaqus/CAE未有的專屬功能。
輪胎的每一次性能仿真后均需對結(jié)果進行后處理,提取數(shù)據(jù)、整理成報告并保存到相應(yīng)的文件夾中。仿真分析是一項耗時很長的工作,再加上重復(fù)、繁瑣冗雜的后處理工作,對CAE工程師是一個極大的考驗[10]。為避免耗時長、效率低的數(shù)據(jù)整理工作,使CAE工程師從繁雜重復(fù)的整理工作中解脫出來,將更多的時間和精力用于研發(fā)新產(chǎn)品,本工作基于Python語言和Abaqus軟件,設(shè)計開發(fā)了一款針對輪胎仿真結(jié)果后處理的插件,可實現(xiàn)軟件背景顏色、圖例字體和風(fēng)格、云圖變形選項的選擇及模型旋轉(zhuǎn)、動畫顯示與保存、場變量和歷史變量結(jié)果輸出等功能,無需在Abaqus軟件后處理界面中執(zhí)行大量重復(fù)的操作,能夠極大地提高仿真工程師的工作效率。
Abaqus是功能強大的非線性有限元分析軟件,其自帶的Python二次開發(fā)接口具有簡單易學(xué)、功能強大、模塊化、可擴展性、開源、免費面向?qū)ο蟮葍?yōu)點,可以方便地開發(fā)自動前處理、分析結(jié)果后處理、材料庫定制、GUI插件開發(fā)等任務(wù)[11-12]。
Abaqus/CAE將用戶在其圖形界面中進行的各種操作轉(zhuǎn)化成內(nèi)核命令解釋執(zhí)行,因此可將需要多次重復(fù)執(zhí)行的一系列繁雜的后處理操作過程編寫成Abaqus/CAE內(nèi)核腳本程序,用戶只需執(zhí)行腳本并設(shè)定相應(yīng)參數(shù),就能快捷、方便地完成同一后處理流程的多次重復(fù)操作。
Abaqus GUI程序開發(fā)為用戶提供一個交互式的圖形操作界面,方便用戶進行相關(guān)操作,其最終目的仍是通過執(zhí)行Abaqus/CAE內(nèi)核命令實現(xiàn)復(fù)雜的有限元后處理流程。Abaqus/CAE GUI界面與內(nèi)核命令之間的交互方式如圖1所示。Abaqus軟件主要包括3類對象模型:Session,Mdb和Odb對象,而后處理二次開發(fā)主要是對結(jié)果數(shù)據(jù)庫對象Odb進行操作,將數(shù)據(jù)提取并保存到指定文件夾,供后續(xù)調(diào)用。
圖1 Abaqus/CAE GUI與內(nèi)核命令通信關(guān)系
本研究選用某型號輪胎,基于AutoCAD軟件繪制輪胎材料分布圖,將其導(dǎo)入Abaqus軟件生成有限元模型,如圖2所示。在Abaqus/CAE中模擬輪胎與路面的接觸過程,設(shè)置仿真工況如下:rebar加強筋單元嵌入橡膠基體單元,模擬骨架材料對輪胎橡膠的增強作用,路面模擬為剛體;固定輪輞并向輪胎內(nèi)表面施加0.32 MPa的壓力來模擬輪胎充氣過程;分析路面與輪胎接觸狀況,施加總車質(zhì)量1/4的負荷完成輪胎加載[13]。分析完成后將Odb文件保存到指定文件夾。
圖2 輪胎有限元模型
本工作基于Abaqus的GUI腳本和內(nèi)核腳本開發(fā)了Visual Setting和Output兩個插件,實現(xiàn)了輪胎仿真分析結(jié)果處理自動化,實現(xiàn)過程如下。
(1)將輪胎后處理分析中的代碼宏錄制完畢,所有的Python命令都已寫入安裝根目錄的abaqusMacros.py宏文件,用戶可以根據(jù)需求對該文件進行編輯,生成內(nèi)核腳本文件。
(2)使用Abaqus/CAE的Plug-ins子菜單中的RSG對話框構(gòu)造器,設(shè)計制作自動后處理插件。
(3)使用RSG對話框構(gòu)造器創(chuàng)建自定義圖形用戶界面,并將內(nèi)核腳本文件與GUI標(biāo)簽頁中的內(nèi)核函數(shù)綁定,實現(xiàn)參數(shù)傳遞,完成參數(shù)化程序設(shè)計。
基于Abaqus軟件后處理腳本的開發(fā)有兩種方法,分別是直接編寫腳本和錄制宏文件。對于在Abaqus/CAE界面中能夠完成的操作,采用錄制宏文件的方法生成腳本的效率更高,因此本工作選用錄制、修改宏文件的方法生成腳本。
啟動Abaqus/CAE界面,創(chuàng)建新的宏文件并錄制,如圖3所示。
圖3 錄制宏文件界面
首先,利用Abaqus軟件自帶的openOdb()函數(shù)打開Odb文件,并創(chuàng)建窗口,代碼如下:
在Abaqus/CAE后處理過程中需要重復(fù)操作的步驟,例如設(shè)置圖例的字體、修改窗口的背景顏色等都需要錄制。修改背景顏色的代碼示例如下:
其中,不同的符號和字母組合表示不同的顏色,#FFFFFF代表白色,#FF0000代表紅色,#A3B1C6代表默認(rèn)的漸變色。
設(shè)置圖例的字體、大小、與視圖窗口距離的代碼(其中選擇字體為Times New Roman,字號為14,距離視窗左上的水平與豎直距離分別設(shè)為形參X,Y)如下所示:
如果后處理中需要繪制動畫,可錄制如下所示代碼:
輪胎仿真分析輸出結(jié)果通常以圖和表的形式顯示,因此需要在Abaqus/CAE界面中錄制繪制應(yīng)力、應(yīng)變、位移曲線圖所需的代碼,部分代碼如下:
上述代碼中,將PART-1-1部件中的1號節(jié)點的應(yīng)力數(shù)據(jù)以曲線圖的形式顯示。
完成代碼錄制后,打開Abaqus軟件安裝根目錄下的abaqusMacros.py文件,修改編輯錄制代碼,實現(xiàn)步驟如下。
(1)導(dǎo)入相應(yīng)的Abaqus模塊、Excel數(shù)據(jù)處理模塊。
(2)刪除import section,import regionToolset等宏文件自動導(dǎo)入的相關(guān)模塊代碼行和Abaqus自動生成的視窗代碼行。
(3)定義各個變量的參數(shù),即插件制作中的Keyword參數(shù)。
(4)設(shè)定插件中的Text與腳本中的變量參數(shù)一一對應(yīng),實現(xiàn)Abaqus GUI與內(nèi)核命令之間的正確通訊。
(5)導(dǎo)入Python中的第三方數(shù)據(jù)庫xlwt,xlrt,將Odb文件中的計算數(shù)據(jù)導(dǎo)入Excel。讀取Odb文件中數(shù)據(jù)的代碼如下:
(6)腳本修改完成后重新保存為.houchuli.py文件,便于后續(xù)插件制作時調(diào)用。
Python核心代碼開發(fā)完成后,為了使各參數(shù)輸入更加便捷、高效,還需要定義參數(shù)輸入界面。使用Abaqus軟件自帶的RSG快速創(chuàng)建插件(Ping-in)的方法來定義參數(shù)輸入界面。實現(xiàn)方法如下:在Abaqus/CAE中選擇Plug-ins菜單→Abaqus→RSG Dialog Builder,彈出RSG對話框構(gòu)造器操作。
修改標(biāo)題為Visual Settings,設(shè)置單選按鈕(Radio Button),Keyword與腳本中定義的函數(shù)要一致,且多個單選按鈕共用一個Keyword,設(shè)定某個單選按鈕的文本為默認(rèn),按照同樣的方法設(shè)置其他單選按鈕。
設(shè)置文本框按鈕,文本標(biāo)簽為文本名,類型選擇Float,Keyword設(shè)置與腳本中參數(shù)對應(yīng)。
設(shè)置插件滑塊,首先設(shè)定最小值與最大值,選擇整數(shù)類型,并設(shè)定好Keyword和Default。設(shè)置組合框類型為Standard,并分別設(shè)置組合框中各個項目文本名。
按照上述方法完成插件輸入界面的設(shè)置,如圖4所示。
圖4 Visual Setting插件RSG對話框設(shè)置效果界面
切換到Kernel標(biāo)簽頁,選擇修改后宏文件houchuli.py來加載內(nèi)核模塊,在下拉列表中選擇houchuli函數(shù),如圖5所示。重新切換到GUI標(biāo)簽頁,保存對話框,設(shè)計完成后的界面如圖6所示。此時,所有的插件文件都保存于根目錄的abauqs_plugins文件夾。
圖5 內(nèi)核模塊綁定效果
圖6 模型視圖處理輸入界面
按照同樣的方法制作將Odb文件中的數(shù)據(jù)輸出到指定文件夾下Excel表中的插件,效果如圖7所示。
圖7 Odb文件數(shù)據(jù)輸出選擇界面
重新啟動Abaqus/CAE,Plug_ins菜單下將出現(xiàn)本次開發(fā)的兩款插件Visual Setting和Output。
選擇和輸入制定的模型后處理參數(shù),單擊OK按鈕,Abaqus/CAE窗口視圖即出現(xiàn)如圖8所示的效果圖,用戶可以隨時截圖或者選擇輸出圖片到指定文件夾。
圖8 插件運行效果展示圖
本工作基于Abaqus軟件內(nèi)置的Python二次開發(fā)接口,通過修改錄制宏文件的方法,開發(fā)了針對輪胎仿真分析處理Odb文件的兩款插件,得到下列結(jié)論。
(1)對于開發(fā)的輪胎仿真分析后處理插件,用戶只需選擇要處理的Odb文件,按照需求指定輸出數(shù)據(jù),單擊OK按鈕,數(shù)據(jù)即自動保存到指定的文件夾中,可大幅減少CAE工程師數(shù)據(jù)整理的工作量,將原需要數(shù)小時甚至幾天的數(shù)據(jù)處理工作縮短至3 min內(nèi)完成,大大提高了仿真后處理的效率。
(2)所開發(fā)插件與Abaqus軟件無縫連接,用戶使用Abaqus軟件對輪胎模型仿真分析得到Odb文件后,可直接在Plug-ins菜單下選用插件對數(shù)據(jù)結(jié)果進行整理,方便快捷。
(3)采用Python語言對Abaqus軟件進行二次開發(fā),實現(xiàn)輪胎有限元分析結(jié)果的自動后處理,該研究思路和開發(fā)方法可推廣應(yīng)用于機械、汽車、航空航天等領(lǐng)域。