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