陳飛 王成雨 李偉剛 楊杰



摘要:針對在飛機弓形結構件噴九工藝中噴丸應力產生多余變形,需要頻繁調整零件不同區域噴丸參數的問題,使用Python語言對Abaqus軟件的前、后處理模塊進行二次開發。所開發的插件可以自動快速實現Abaqus的前處理操作,包括幾何建模、網格劃分和初始應力施加等。該插件可在Abaqus后處理中自動輸出弓形結構件沿半徑方向的最大位移,該位移可視作噴丸強化引起的變形。采用試驗方法驗證所開發插件的有效性,為快速預測不同噴丸參數下弓形件噴丸強化的變形提供參考。
關鍵詞:Abaqus二次開發;Python;噴丸;變形;弓形結構件
中圖分類號:V260.5;V261.934文獻標志碼:B
0引言
在航空工業中,為提高工件的疲勞壽命,鋁合金加工而成的薄壁弓形結構件需要進行噴丸強化處理。弓形結構為非對稱結構,噴丸產生的表面殘余應力會使結構件產生一定的多余變形,因此須調整不同位置的噴丸強度以減小整體變形。
噴丸殘余應力是導致噴丸變形的直接因素,可以通過解析計算、數值模擬和試驗等方法確定噴丸參數與噴丸殘余應力之間的關系。在此基礎上,可利用有限元模擬方法分析殘余應力作用下的工件變形,具體方法有等效熱載荷法、面內擠壓法和直接應力法等。GARIEPY等采用分層殼單元直接應力法研究大尺寸零件的噴丸變形模擬,將彈丸撞擊模擬獲得的平均應力場引人大尺寸零件的有限元模型中模擬零件的變形。賈立勇等主要采用Python語言對Abaqus軟件圖形界面程序進行開發。秦宇等基于Abaqus的Plug-ins有限元插件程序,使用Python語言編寫內核腳本程序,開發用戶定制功能的切削仿真模塊,并用實例驗證所開發模塊功能的有效性。
弓形件為變截面結構,其建模過程較為復雜,且噴丸殘余應力的獲得與施加過程比較繁瑣。針對上述問題,本文利用Python和Fortran腳本語言,在Abaqus中開發用于航空鋁合金弓形結構件噴丸強化變形模擬的仿真插件。該插件可以建立弓形結構件參數化模型,根據輸人的模型參數和噴丸工藝參數自動完成噴丸強化變形模擬,并在后處理中輸出弓形結構件噴丸強化后沿半徑方向的最大變形,可有效簡化弓形結構噴丸模擬繁瑣的建模過程,并獲得殘余應力及其施加過程,為實際噴丸工藝中噴丸參數的確定提供參考。
1Abaqus二次開發和腳本接口
Abaqus是國際公認的大型通用非線性有限元軟件之一,被廣泛應用于機械制造、航空航天、汽車交通和土木工程等諸多領域。為進一步滿足不同用戶在軟件使用過程中的新需求,Abaqus為用戶提供開放的二次開發接口,包括基于Fortran語言的用戶子程序和基于Python語言的腳本接口。前者主要方便用戶開發自定義材料模型、自定義單元和復雜載荷等;后者主要方便用戶根據自身需求開發前、后處理工具(GUI程序),或者輔助用戶實現參數化建模和數據處理。
Abaqus二次開發有以下幾種途徑:(1)使用用戶自定義子程序擴展Abaqus/CAE的功能;(2)通過修改環境初始文件改變Abaqus許多缺省的設置;(3)運行Python編寫的內核腳本文件對前處理和后處理進行簡化;(4)采用Python語言對Abaqus進行圖形界面程序開發,包括GUI插件程序(Plug-ins)的開發和用戶自定義GUI應用程序的開發。本文主要使用第(1)和第(4)中的GUI插件程序開發方法:利用Fortran語言編寫用戶自定義子程序SIGINI,用于施加噴丸殘余應力;采用Python語言編寫插件的注冊文件、圖形界面文件和內核執行文件。將編寫好的程序直接拷貝到Abaqus工作目錄下的Abaqus-plugins文件夾內,再次啟動Abaqus,在CAE主窗口界面下的Plug-ins菜單內會自動出現噴丸模擬插件菜單,見圖1。
2 噴丸應力數據庫建立
采用直接應力法模擬弓形結構件的噴丸強化變形。通過多彈丸撞擊模擬獲得多組噴丸應力曲線(見圖2),利用不同彈丸速度下的應力曲線分析噴丸參數與噴丸應力之間的關系,以此為基礎建立噴丸應力數據庫。利用有限元模擬快速預測弓形結構件在不同彈丸速度下的噴丸強化變形。有限元模擬需要設定噴丸的彈丸撞擊速度,但噴丸工藝中的彈丸速度無法直接獲得,因此采用KLEMENZ的經驗公式推導,即
為使模擬結果接近實際的噴丸效果,建立多彈丸撞擊靶材的三維有限元模型,見圖3。彈丸為直徑0.58mm的球體,初速度為40m/s;靶材的幾何尺寸為5.50mm×5.50mm×2.00mm。為避免模型邊界影響模擬結果,彈丸全部作用在靶材上表面中心2.00mm×2.00mm的區域內,且只統計中心1.00mm×1.00mm區域內的數據。靶材側面設置為對稱約束,靶材底面全固定。為確保計算結果的精度和最終所得應力曲線的平滑度,對彈丸撞擊區域內的網格進行加密,單元尺寸為0.02mm,非撞擊區域的網格尺寸為0.10mm,單元類型采用8節點的減縮單元C3D8R。彈丸和靶材的材料參數見表1,靶材采用Johnson-Cook本構模型,其本構參數設置見表2.
3 噴丸仿真模塊設計
3.1弓形結構件噴丸面介紹
由于筋條面上的噴丸對工件的彎曲變形基本沒有貢獻,所以在有限元模擬中不考慮筋條的影響。為方便在插件中說明弓形件不同區域的噴丸參數,將弓形結構件噴丸區域分為外形外表面、外形內表面和腹板面(包括前、后2個面)3個部分,見圖4。
3.2 用戶圖形界面設計
該噴丸模擬插件共有2個輸入界面:界面一主要為模型參數輸入界面,包括定義工作目錄、模型半徑、模型分段數和每一段的截面參數等;界面二為噴丸工藝參數輸入界面,將弓形結構件的噴丸面分為3個部分,每個面的噴丸參數均包括噴嘴移動速度(mm/s)、彈流量(kg/min)、噴丸壓力(MPa)、彈丸直徑(mm)和噴丸角度(°)。根據實際噴丸工藝要求,可以選擇只對工件的某個面進行噴丸強化模擬,具體插件使用界面見圖5和6。
4 關鍵代碼實現
4.1初始化環境
Python結合Abaqus軟件進行二次開發時,需要用到Abaqus所屬的很多模塊。編寫內核程序需要導人如下重要模塊:其中:abaqus模塊為Abaqus的核心模塊;abaqusConstants模塊為Abaqus內部常量模塊;odbAccess模塊為訪問后處理結果模塊;最后一個模塊導人Python文件處理模塊。
導人上述模塊后可以在腳本語言中使用Abaqus控制界面、引用Abaqus預定義的常量和訪問ODB數據庫,同時也可以執行相關文件的操作命令。
4.2 建模方式
弓形結構件為圓弧狀的變截面結構,采用分段掃描的方法創建幾何體,使用殼單元進行建模,將各處的厚度賦值給殼單元模型。參考GARIEPY等的模擬方法,整個模型均采用3層結構的復合材料常規殼單元,外側2個分層用于定義初始應力場,中間層用于調整模型每一段的厚度。為更好地施加殘余應力,外側2個分層再各自分為25層,逐層施加殘余應力。部分相關代碼如下:
4.3 邊界條件和網格設置
在實際噴丸過程中,需要將工件固定在工作臺上,而在有限元模擬時,為更接近實際的約束情況,邊界條件選擇約束弓形結構件3個頂點的位移自由度,以防止模型產生剛性位移。使用findAt()函數配合坐標點的方式選取相關節點并施加約束。網格劃分采用用戶自定義方式,用戶可以根據自己的要求設置不同的網格尺寸。相關代碼如下:
4.4 添加用戶子程序
參考GARIEPY等對大尺寸零件的噴丸變形模擬方法,將不同噴丸參數下彈丸撞擊單位面積靶材模擬獲得的平均應力場寫人數據庫,然后通過Abaqus用戶子程序SIGINI將沿深度變化的平均殘余應力賦值到幾何模型分層殼單元的每一層上,用戶只需要輸入相關噴丸參數,程序會自動將相應噴丸工藝參數下的平均殘余應力引人工件,從而模擬弓形結構件的噴丸強化變形。相關代碼如下:
4.5 后處理結果輸出
測量實際噴丸變形結果一般采用在檢夾模具上進行貼模的測量方法。為更直觀地體現有限元模擬結果中弓形件沿半徑方向的最大位移,在后處理中提取模型最右端節點沿水平方向和豎直方向的位移,然后通過三角關系計算沿半徑方向的位移,相關代碼如下:
5 應用實例
為驗證該插件的正確性,以某弓形結構件為例,使用相同的噴丸參數對整個工件的表面進行噴丸強化數值模擬和試驗,工件及其測點示意見圖7。
以工件最左下方點為坐標原點、水平方向為x軸、豎直方向為y軸建立直角坐標系。圖7中各個測點的位置坐標見表3。根據測點坐標在檢夾模具上標記出各測點位置以便測量噴丸變形后測點具體位置坐標。具體的噴丸試驗見圖8,在噴丸工作臺上對弓形件進行噴丸,然后使用檢夾模具測量工件變形量。各個面的噴丸參數均設定為噴嘴移動速度1000mm/min、彈流量5kg/min、噴丸壓力0.06MPa、彈丸直徑0.58mm和噴丸角度45°,模擬結果見圖9,弓形件不同位置的模擬結果和試驗結果見表4。從表4中的數據對比可以看出,插件模擬得到的工件變形趨勢與試驗結果一致,證明插件有效。
6 結束語
針對航空弓形結構件建立噴丸仿真插件,可以快速模擬不同參數下的噴丸強化變形,實現噴丸過程的參數化建模,自動完成邊界條件施加、網格劃分和應力添加等前處理操作,快速、有效地預測弓形件在不同噴丸工藝參數下的噴丸強化結果。該插件可以對實際噴丸工藝中噴丸參數的確定提供指導。同時,結合文中相關方法,可以對Abaqus進行軟件擴展,為其他形狀工件在噴丸領域和相關加工領域的二次開發提供借鑒。