吳春波 陳 偉 趙振華 羅 剛 劉璐璐
(南京航空航天大學(xué)能源與動(dòng)力學(xué)院航空發(fā)動(dòng)機(jī)熱環(huán)境與熱結(jié)構(gòu)工業(yè)和信息化部重點(diǎn)實(shí)驗(yàn)室 江蘇 南京 210016)
一般而言,材料在高應(yīng)變率下會(huì)表現(xiàn)出明顯不同的力學(xué)響應(yīng),研究材料在高應(yīng)變率下的力學(xué)行為非常有必要。分離式霍普金森壓桿由此被廣泛應(yīng)用。許多學(xué)者[1-4]利用SHPB裝置對(duì)材料的動(dòng)態(tài)力學(xué)性能開展了研究,其中涉及到的材料包括金屬、聚合物和新型材料,可見SHPB的用途之廣。
SHPB裝置工作示意圖如圖1所示,撞擊桿被發(fā)射后與入射桿發(fā)生碰撞,產(chǎn)生的入射應(yīng)變被入射桿上的應(yīng)變片所記錄,一部分應(yīng)力波在試件和入射桿端面被反射,另一部分波繼續(xù)在透射桿上傳播,透射應(yīng)變被透射桿上的應(yīng)變片記錄。利用應(yīng)變儀和數(shù)據(jù)采集卡可將入射、反射和透射信號(hào)采集并存儲(chǔ)在計(jì)算機(jī)內(nèi)。孫朝翔[5]和牛家樂等[6]利用MATLAB編程實(shí)現(xiàn)了SHPB試驗(yàn)結(jié)果的處理,前者的處理程序不含界面且功能較為單一,后者的程序處理結(jié)果中不包含驗(yàn)證試驗(yàn)數(shù)據(jù)有效性的指標(biāo),且未提及該程序是否被打包為可執(zhí)行程序、是否能夠應(yīng)用于不含MATLAB環(huán)境的計(jì)算機(jī)中。路守克等[7]采用VC++開發(fā)了SHPB試驗(yàn)處理程序,但未涉及到波形濾波,且同樣處理結(jié)果中未包含評(píng)價(jià)試驗(yàn)結(jié)果的指標(biāo)。本文基于PyQt平臺(tái),使用Python語言開發(fā)了SHPB試驗(yàn)數(shù)據(jù)處理程序,程序功能完善,并將其打包成可執(zhí)行程序,方便了相關(guān)試驗(yàn)人員計(jì)算動(dòng)態(tài)應(yīng)力應(yīng)變曲線等試驗(yàn)結(jié)果。
圖1 SHPB裝置工作示意圖
如圖1所示,SHPB裝置包括撞擊桿、入射桿、透射桿、吸收桿、測(cè)速儀、應(yīng)變儀、數(shù)據(jù)采集卡及計(jì)算機(jī)等。在入射桿和透射桿上貼有應(yīng)變片,用以測(cè)量桿上的應(yīng)變。使用SHPB裝置需要滿足以下兩個(gè)基本假設(shè)[8]:
(1) 平面應(yīng)力假設(shè),即平面壓縮波(脈沖)在桿中傳播時(shí)無彌散。
(2) 均勻化假設(shè),試件的應(yīng)力與應(yīng)變?cè)跅U軸向均勻分布。
基于這兩個(gè)假設(shè)可以得到試件的應(yīng)變率、應(yīng)變和應(yīng)力計(jì)算式為:
(1)
式(1)為三波法計(jì)算式,式中:A0和As分別為桿和試件的橫截面積;E0為桿的彈性模量;Ls為試件的初始厚度;εi、εr、εt分別為試驗(yàn)測(cè)得的入射應(yīng)變、反射應(yīng)變和透射應(yīng)變信號(hào);C0為彈性波在桿中的傳播速度。C0計(jì)算式為:
(2)
式中:ρ為桿的密度。
入射桿和透射桿的力分別為:
F1=A0E0[εi(t)+εr(t)]
(3)
F2=A0E0εt(t)
(4)
當(dāng)試件兩端應(yīng)力達(dá)到平衡時(shí),有F1=F2,即:
εi(t)+εr(t)=εt(t)
(5)
將式(5)代入式(1),可得:
(6)
式(6)為一波法計(jì)算式,將式(5)代入式(6)中的第三式可得二波法[9]。
根據(jù)上述公式可計(jì)算得試件的工程應(yīng)力-應(yīng)變曲線,接著通過工程應(yīng)力應(yīng)變與真實(shí)應(yīng)力應(yīng)變之間的換算式可以得到試件的真實(shí)應(yīng)力-應(yīng)變曲線:
εT(t)=ln(1+ε(t))σT(t)=(1+ε(t))·σ(t)
(7)
PyQt是用于跨平臺(tái)GUI程序開發(fā)的工具包,將強(qiáng)大的GUI庫(Qt庫)與Python編程語言結(jié)合在了一起[10],本文使用Python 3.5版本在Pycharm中編寫程序,代碼結(jié)構(gòu)如圖2所示。
圖2 代碼結(jié)構(gòu)
步驟1需要下載相關(guān)的支持包,編寫程序主要需要用到的包及對(duì)應(yīng)功能在表 1中列出。
表1 編寫程序所需的包
步驟2利用QtDesigner設(shè)計(jì)程序界面,由此生成的UI文件可以轉(zhuǎn)換為Python文件。QtDesigner不僅便于直觀地設(shè)計(jì)UI界面,只需要拖動(dòng)鼠標(biāo)即可完成UI對(duì)象的布局,還可以將UI界面與主程序剝離開來,以實(shí)現(xiàn)主程序開發(fā)和UI設(shè)計(jì)互不干涉。
步驟3主程序開發(fā)。在主程序中主要任務(wù)是編寫UI中按鈕、組合框等控件的槽函數(shù)。首先在主程序中創(chuàng)建一個(gè)主窗口類,這個(gè)類繼承之前在QtDesigner中創(chuàng)建的UI類,接著在這個(gè)主窗口類中編寫所需類的方法即可完成主窗口類的編寫。
步驟4程序的打包。由上述3個(gè)步驟即可完成GUI的編寫,為了使程序在無Python環(huán)境中運(yùn)行,使用Pyinstaller將Python文件打包成可執(zhí)行程序。經(jīng)嘗試,打包后的程序可在64位Windows 7及更高版本系統(tǒng)中成功運(yùn)行。
如圖3所示,本程序由4個(gè)模塊組成,即“繪制原始波形”“濾波”“對(duì)齊波形”和“結(jié)果”。下面分別介紹這4個(gè)模塊的具體功能。
圖3 程序功能
在“參數(shù)輸入”框中填寫參數(shù),包括壓桿彈性模量、壓桿密度、壓桿直徑、入射桿長度、透射桿長度、撞擊桿長度、應(yīng)變片與試件距離、應(yīng)變片靈敏度、應(yīng)變儀放大倍數(shù)、應(yīng)變儀橋壓。此外,還需選擇試驗(yàn)件類型,即選擇圓柱體試驗(yàn)件或長方體試驗(yàn)件。首次輸入?yún)?shù)完成后,可點(diǎn)擊“保存參數(shù)”按鈕,點(diǎn)擊后彈出對(duì)話框,選擇保存路徑及名稱,參數(shù)文件即被保存在本地硬盤,便于后續(xù)使用。下次需要輸入?yún)?shù)時(shí),可點(diǎn)擊“載入?yún)?shù)”按鈕,選擇參數(shù)文件即可快速完成參數(shù)輸入。
接著,在“繪圖”框中的下拉框選擇文件類型,文件形式為Excel表格,表格中第一列為時(shí)間(s)。當(dāng)文件中第二、三列的數(shù)據(jù)分別為入射波和反射波應(yīng)變、透射波應(yīng)變時(shí),則應(yīng)選擇下拉框中的“時(shí)間-應(yīng)變”;當(dāng)文件中第二、三列的數(shù)據(jù)分別為入射波和反射波電壓(V)、透射波電壓(V)時(shí),則應(yīng)選擇下拉框中的“時(shí)間-電壓(半橋)”,在這種情況下,需要將電壓信號(hào)轉(zhuǎn)化為應(yīng)變信號(hào),以應(yīng)變片半橋連接形式為例,轉(zhuǎn)化公式為:
(8)
式中:U為需轉(zhuǎn)換的電壓信號(hào);ε為轉(zhuǎn)換后得到的應(yīng)變;g、k、U0分別為應(yīng)變儀放大倍數(shù)、應(yīng)變片靈敏度和橋壓。
文件類型選擇完成后,點(diǎn)擊“打開文件并繪制”按鈕,點(diǎn)擊后彈出對(duì)話框,選擇波形Excel文件,即可在右邊“原始波形”框中繪制原始波形。移動(dòng)鼠標(biāo)出現(xiàn)十字光標(biāo),可顯示鼠標(biāo)當(dāng)前位置的坐標(biāo),這個(gè)功能是調(diào)用了函數(shù)mouseMoved實(shí)現(xiàn)的。圖 4展示了一次試驗(yàn)的原始應(yīng)變波形。
圖4 繪制原始波形模塊
在“濾波”欄中填寫濾波階數(shù),接著點(diǎn)擊“繪制濾波后的波形”按鈕,并滑動(dòng)歸一化截止頻率“Wn”滑塊,即可在“濾波后的入射波及反射波”和“濾波后的透射波”框中繪制濾波后的入射波及反射波、透射波。根據(jù)濾波階數(shù)和歸一化截止頻率“Wn”可以計(jì)算濾波器分子分母系數(shù),進(jìn)而進(jìn)行濾波。圖5展示了濾波之后的波形。
圖5 濾波模塊
在“濾波后的入射波及反射波”和“濾波后的透射波”圖中移動(dòng)鼠標(biāo)出現(xiàn)十字光標(biāo),可顯示鼠標(biāo)當(dāng)前位置的坐標(biāo)。分別選擇入射波起點(diǎn)、入射波終點(diǎn)、反射波起點(diǎn)、透射波起點(diǎn),填入相應(yīng)的輸入框內(nèi),由于此時(shí)波形橫坐標(biāo)為數(shù)據(jù)點(diǎn)序號(hào),因此填入的數(shù)據(jù)須為整數(shù)。
在“對(duì)齊波形”模塊中,點(diǎn)擊“對(duì)齊波形”按鈕,即可繪制波頭對(duì)齊的入射波、反射波和透射波,如圖 6所示。
圖6 對(duì)齊波形模塊
在結(jié)果模塊中,點(diǎn)擊“計(jì)算并繪圖”按鈕,即可繪制如圖7所示的5幅曲線:1) 工程應(yīng)力-應(yīng)變曲線。2) 真實(shí)應(yīng)力-應(yīng)變曲線。3) 時(shí)間-應(yīng)變率曲線。4) 時(shí)間-應(yīng)力曲線。5) Rt曲線。
圖7 計(jì)算模塊
在5幅圖中移動(dòng)鼠標(biāo)出現(xiàn)十字光標(biāo),可顯示鼠標(biāo)當(dāng)前位置的坐標(biāo)?!肮こ虘?yīng)力-應(yīng)變曲線”和“真實(shí)應(yīng)力-應(yīng)變曲線”圖中顯示了應(yīng)力峰值,材料在該應(yīng)變率下的動(dòng)態(tài)強(qiáng)度一目了然。前4幅圖中,對(duì)比了一波法、二波法和三波法的計(jì)算結(jié)果。Rt曲線可以判斷試件是否達(dá)到應(yīng)力平衡,用以評(píng)價(jià)試驗(yàn)的準(zhǔn)確性。點(diǎn)擊“導(dǎo)出數(shù)據(jù)”可將5幅圖中的橫縱坐標(biāo)數(shù)據(jù)導(dǎo)出到指定路徑中的Excel表格中,供后續(xù)專業(yè)繪圖軟件使用。
本文基于PyQt工具包,使用Python語言開發(fā)了SHPB試驗(yàn)數(shù)據(jù)處理程序,該程序能夠方便地實(shí)現(xiàn)原始波形繪制、濾波、波形對(duì)齊、動(dòng)態(tài)應(yīng)力應(yīng)變曲線等結(jié)果的計(jì)算與繪制。最終,該程序被打包成通用的可執(zhí)行程序,能夠?yàn)閯?dòng)態(tài)力學(xué)測(cè)試相關(guān)的試驗(yàn)人員提供極大的便利。