宋穎,榮繼剛,馬秋成,黃友劍,王金輝
(1. 湘潭大學(xué),湖南 湘潭 411105; 2. 株洲時代新材料科技股份有限公司,湖南 株洲 412000)
隨著我國鐵路領(lǐng)域的快速發(fā)展,尤其是高鐵的飛躍發(fā)展,人們對軌道交通的減振效果和降噪要求越來越高。一方面,過多的噪聲和過大的振動將影響乘客的舒適性和軌道沿線居民的日常生活;另一方面,噪聲和振動也可能損壞車上相關(guān)電子設(shè)備以及軌道周邊建筑物[1]。為了更好地解決這一問題,減振元件將廣泛運用于高速鐵路和城市軌道上。減振元件使車輛在提高運行速度和增加載質(zhì)量的同時,還能提高車輛的穩(wěn)定性和舒適性,降低運行的噪聲,減少磨耗件[2]。然而,要使減振元件具有優(yōu)良的隔振性能和可靠的使用壽命,就必須通過合理的計算設(shè)計出減振效果較好的減振元件結(jié)構(gòu)[3]。目前主要是通過結(jié)構(gòu)仿真技術(shù)實現(xiàn)減振元件的結(jié)構(gòu)優(yōu)化設(shè)計,這往往需要反復(fù)建立減振件的有限元模型,這是一項繁瑣而費時的工作[4]。
橡膠堆(圖1)作為典型的減振元件,具有良好的減振效果,其廣泛應(yīng)用于車輛轉(zhuǎn)向架和高速磁浮原型車電磁鐵模塊中。為了更準(zhǔn)確和有效地完成橡膠堆結(jié)構(gòu)的優(yōu)化設(shè)計,本文基于ABAQUS的二次開發(fā)功能,使用Python語言開發(fā)了圓柱形橡膠堆快速建模、計算和結(jié)果分析的程序,根據(jù)仿真結(jié)果能夠快速評價不同減振元件的減振效果,并分析了仿真剛度值和經(jīng)驗公式計算剛度值相對于試驗剛度值的差異,實現(xiàn)減振元件高效、準(zhǔn)確的設(shè)計功能。

圖1 圓柱形橡膠堆圖
如圖2所示,設(shè)n層圓柱形橡膠堆的半徑為r,每層橡膠的高度為h,在受到垂向力時,圓柱形橡膠的垂向剛度K1可根據(jù)式(1)計算[5]。
(1)

圖2 圓柱形橡膠堆的受載示意圖
式中:Ac為橡膠承載面積,Ac=πr2,r為橡膠堆的橡膠半徑;n為橡膠堆的橡膠層數(shù);h為每層橡膠原有高度;E為橡膠的彈性模量,根據(jù)橡膠的硬度得出;μ1為垂向形狀系數(shù),可根據(jù)式(2)進(jìn)行計算。
μ1=1.2(1+1.65×S2)
(2)
式中S為面積比,可根據(jù)式(3)進(jìn)行計算。
(3)
式中Af為橡膠堆的橡膠單層圓周表面積,Af=2πrh。
對橡膠堆進(jìn)行二次開發(fā)的界面開發(fā)的方式主要有以下兩種[6]。
1)創(chuàng)建Plug-ins插件程序;
2)創(chuàng)建用戶應(yīng)用程序。
對于第2種方法,利用創(chuàng)建其他的應(yīng)用程序(如Visual Studio、Visual Basic等)對ABAQUS軟件進(jìn)行可視化界面開發(fā),它可以進(jìn)行一些相對復(fù)雜界面的設(shè)計開發(fā),并且還可以實現(xiàn)一些Plug-ins插件程序不能實現(xiàn)的功能。但是這種方法所需的程序相對復(fù)雜,需要創(chuàng)建新的接口和傳入?yún)?shù),不容易編寫程序;而Plug-ins插件程序創(chuàng)建可視化界面相對簡單方便。Plug-ins插件程序提供了一些基本控件,用戶可以更直觀地對可視化界面添加所需的文本框、圖片、標(biāo)題、輸入框、下拉選框及相關(guān)操作提示等功能,從而快速地建立一個較為友好的可視化界面[7]。因此,本文采用第1種方式進(jìn)行可視化界面開發(fā),利用ABAQUS軟件的GUI工具包中的命令或者借助RSG(Really Simple GUI)對話框構(gòu)造器開發(fā)Plug-ins插件程序。程序可以執(zhí)行用戶所添加的函數(shù),然后通過自制的可視化界面輸入相關(guān)參數(shù),實現(xiàn)手動進(jìn)行模型前后處理的復(fù)雜操作過程。插件程序基于ABAQUS/CAE中2個各自獨立的執(zhí)行程序Kernel與GUI之間互相通信完成的交互[8-9]。
用戶進(jìn)行界面設(shè)計必須在abaqus_plugins文件夾(位于安裝目錄 empabaqus_plugins)下注冊Plug-ins插件程序才能進(jìn)行。在啟動ABAQUS/CAE后,單擊“Plug-ins菜單”—“Abaqus”—“RSG Dialog Builder...”。[10]
如圖3和圖4所示,橡膠堆前處理的仿真模塊將設(shè)置成Model setting和Material and load setting 兩個界面;通過界面的設(shè)置和輸入相關(guān)參數(shù),程序?qū)⒖焖偻瓿蓭缀谓!①x予材料、邊界條件、施加載荷及網(wǎng)格劃分等操作,并自動將作業(yè)提交分析,從而得出所需要的分析結(jié)果。

圖3 Model setting界面

圖4 Material and load setting界面
一個模型進(jìn)行仿真計算的順序一般為:建立set,賦予材料和裝配;建立分析步和接觸屬性;施加載荷和劃分網(wǎng)格;計算和后處理。本文將按照此順序編寫代碼。
橡膠堆是一個有規(guī)律的模型。可以通過旋轉(zhuǎn)草圖實現(xiàn)。因此首先建立草圖,當(dāng)橡膠堆只有一層的時候,就沒有隔板,只有底板、橡膠和頂板3個set;當(dāng)橡膠堆層數(shù)>1時,就有底板、橡膠、隔板和頂板4個set。建立橡膠堆的set大概分為以下幾個步驟:
1)程序中可以使用循環(huán)語句在草圖中陣列某些線段來實現(xiàn)模型的建立,如圖5所示的草圖。

圖5 Sketch
2)通過旋轉(zhuǎn)命令將草圖旋轉(zhuǎn)360°得到幾何模型。
3)對模型進(jìn)行切割,將掩碼轉(zhuǎn)成index表示,通過對cells的定義來建立set,比如橡膠(rubber)的建立程序如下:
p = mdb.models['Model-1']. parts['Part-1']
c = p.cells
sstr1=c[1∶2]
newstr=sstr1
for i in range(2,Layers+1):
S1=2*i-1
S2=2*i
sstri=c[S1∶S2]
newstr=newstr+sstri
cells = newstr
p.Set(cells=cells, name='rubber')
對之前建立的set進(jìn)行材料賦予,并在可視化界面的Material and load setting界面中填寫材料參數(shù),完成材料賦予;然后對模型進(jìn)行裝配,由于建立的模型只有一個part,所以直接進(jìn)行裝配,不需要添加其他的約束。
計算橡膠堆的軸向剛度,建立分析步,分析步代碼實現(xiàn)如下:
mdb.models['Model-1']. StaticStep(name='vertical-load', previous='Initial', initialInc=0.1, nlgeom=ON)
session.viewports['Viewport:1']. assemblyDisplay.setValues(step='vertical-load')
設(shè)置橡膠堆切向行為的摩擦系數(shù)為0.25,并設(shè)置通用接觸。
分析步中對橡膠堆load point軸向施加load1的力,添加邊界條件時對fixed point進(jìn)行全約束,打開load point的y方向的自由度。
頂板、隔板和底板都是金屬材料,網(wǎng)格屬性不需要重新賦予,用初始的C3D8R即可。將頂板、隔板和底板的網(wǎng)格層數(shù)設(shè)為3。由于橡膠材料的特殊性,需要對橡膠的網(wǎng)格屬性重新定義,將橡膠的網(wǎng)格屬性定義為C3D8H,在程序中也是通過定義cells的值來定義橡膠網(wǎng)格的屬性,部分代碼如下:
elemType1=mesh.ElemType(elemCode=C3D8H, elemLibrary=STANDARD)
elemType2=mesh.ElemType(elemCode=C3D6, elemLibrary=STANDARD)
elemType3=mesh.ElemType(elemCode=C3D4, elemLibrary=STANDARD)
p = mdb.models['Model-1']. parts['Part-1']
c = p.cells
cells = c[1∶2]+c[6∶7]+c[8∶9]+c[13∶14]
pickedRegions =(cells, )
p.setElementType(regions=pickedRegions, elemTypes=(elemType1, elemType2, elemType3))
前處理完成后,ABAQUS將自動在工作目錄寫入job命令文件并提交作業(yè)進(jìn)行計算;當(dāng)計算完成后,程序?qū)⒆詣幼x取ODB文件里的數(shù)據(jù),然后將所需要的應(yīng)力、應(yīng)變云圖和剛度曲線圖導(dǎo)出到指定文件夾中,這樣就能節(jié)約大量的手動操作時間,部分程序代碼實現(xiàn)如下:
session.mdbData.summary()
o3=session.openOdb(name='D:/A2019/temp/xjd_10_ceng.odb')
session.viewports['Viewport:1']. setValues(displayedObject=o3)
session.viewports['Viewport:1']. makeCurrent()
session.viewports['Viewport:1']. odbDisplay.display.setValues(plotState=CONTOURS_ON_DEF, ))
session.printToFile(fileName='D:/A2019/temp/picture/10ceng_S.png', format=PNG,
canvasObjects=(session.viewports['Viewport: 1'], ))
在固定圓柱形橡膠堆的自由高度為253.5mm、自由直徑為286mm、垂向載荷為118 100N的工況下,對圓柱形橡膠堆進(jìn)行結(jié)構(gòu)優(yōu)化,要求得到一個垂向剛度為[17.5×(1±15%)]kN/mm的圓柱形橡膠堆。為此,通過ABAQUS仿真、試驗以及經(jīng)驗公式3種方式計算得出垂向剛度值。
利用之前開發(fā)的Model setting界面和Material and load setting界面,分別輸入不同橡膠層數(shù)的結(jié)構(gòu)來達(dá)到最好的減振效果,本文將分別對7層、8層、9層、10層、11層、12層、13層的7個橡膠堆模型進(jìn)行垂向剛度計算。在可視化界面上分別輸入各層相關(guān)的參數(shù),程序?qū)⒖焖偕捎邢拊P停詣訉⒆鳂I(yè)提交計算。計算完成后,將自動導(dǎo)出應(yīng)力應(yīng)變云圖、剛度曲線圖。整合7個橡膠堆的垂向剛度曲線,如圖6所示。圖7為實驗室對橡膠堆進(jìn)行垂向載荷試驗圖。

圖6 垂向剛度曲線圖

圖7 垂向載荷試驗圖
通過仿真的剛度曲線計算出來的7個橡膠堆的垂向剛度值,通過試驗得出的垂向剛度值,根據(jù)式(1)計算得出的經(jīng)驗公式計算垂向剛度值分別如表1所示。

表1 各個層數(shù)的垂向剛度值 單位:kN/mm
通過表1剛度值的對比中可以看出經(jīng)驗剛度值和仿真剛度值是有一定的差異的。這個差異是由于經(jīng)驗計算方法的開發(fā)方式是基于材料的物理結(jié)構(gòu)和經(jīng)驗計算出來的,沒有考慮到一些實際的工況,比如橡膠材料的不同,頂板、底板還有隔板材料和結(jié)構(gòu)的不同等,均會影響計算的準(zhǔn)確度,而仿真剛度值與試驗剛度值是比較接近的。因此,需要通過仿真計算才能更準(zhǔn)確地計算開發(fā)。
從表1可以得出10層橡膠堆的剛度值是最符合要求的,減振效果是最好的。利用二次開發(fā)的界面完成7個模型的剛度計算只需要1~2 h,如果需要逐個建模仿真求解可能需要2~3天的時間,利用二次開發(fā)將極大地提高工作效率。
1)本文研究的圓柱形橡膠堆二次開發(fā)模塊能夠利用ABAQUS提供的腳本接口,開發(fā)了GUI可視化界面,方便快捷地輸入需要的關(guān)鍵參數(shù),程序便能夠自動創(chuàng)建圓柱形橡膠堆有限元仿真模型,自動提交計算,自動導(dǎo)出應(yīng)力應(yīng)變云圖、剛度曲線等;
2)分析了仿真剛度值相比傳統(tǒng)理論公式計算剛度值的準(zhǔn)確性,提高了結(jié)果的準(zhǔn)確性;
3)有效解決手動建模的重復(fù)費時問題,縮減數(shù)據(jù)讀取與處理及結(jié)果輸出等過程,提高了前處理和后處理的效率,可以為其他類似減振元件開發(fā)提供參考。