田海勇, 王靖岳, 李建剛
(1.中車大同電力機(jī)車有限公司,山西 大同 037038;2.沈陽理工大學(xué) 汽車與交通學(xué)院,遼寧 沈陽 110159;3.吉林大學(xué) 汽車仿真與控制國家重點(diǎn)實驗室,吉林 長春 130025)
機(jī)械傳動系統(tǒng)中使用最廣泛的設(shè)備之一就有齒輪箱,其經(jīng)常發(fā)生故障的主要零部件有齒輪、軸承和軸等。由于背景噪聲的影響,使得復(fù)合故障特征的分離與提取變得異常困難[1]。同時,齒輪箱故障信號的數(shù)據(jù)量較大,經(jīng)常需要復(fù)雜的矩陣運(yùn)算以及對運(yùn)算結(jié)果進(jìn)行顯示才能得到故障診斷的結(jié)果。
MATLAB具有強(qiáng)大的計算功能,在信號處理方面具有獨(dú)特的優(yōu)勢。但MATLAB也存在一些不足之處,它在界面開發(fā)以及用戶交互方面尚有欠缺,并且其不能脫離軟件的編譯環(huán)境而獨(dú)立運(yùn)行[2],而具有面向?qū)ο蟮某绦蛟O(shè)計思想和良好用戶界面的VB軟件就能很好地解決這一問題。但VB中提供的數(shù)學(xué)函數(shù)的種類較少,不足以滿足一個功能齊全的大型診斷系統(tǒng)[3]。為此,本文將VB與MATLAB相結(jié)合,通過混合編程來實現(xiàn)齒輪箱復(fù)合故障診斷系統(tǒng)的無縫集成設(shè)計,該系統(tǒng)能夠避免MATLAB中大量的復(fù)雜程序命令,縮短開發(fā)周期,提高工作效率,通過對齒輪箱中齒輪點(diǎn)蝕-磨損復(fù)合故障實例分析驗證了系統(tǒng)的正確性,這對于實際故障診斷具有一定的指導(dǎo)意義。
目前,實現(xiàn)VB與MATLAB混合編程的方法有許多,包括Matrix VB技術(shù)、利用M文件、DDE技術(shù)以及ActiveX技術(shù)[4]。這些方法各有優(yōu)缺點(diǎn),如Matrix VB技術(shù)中包含的函數(shù)有限,不能滿足所有的運(yùn)算功能;利用M文件的方法靈活性較差,并且安全性較低;DDE技術(shù)會使程序的代碼數(shù)量增加,從而增加運(yùn)算時間,降低運(yùn)算效率;ActiveX技術(shù)具有自動化程度和執(zhí)行效率較高、編程思想簡單、占用系統(tǒng)資源較少、數(shù)據(jù)交換能力較強(qiáng)等優(yōu)點(diǎn)[5,6]。因此,通過比較分析,本文選擇ActiveX技術(shù)實現(xiàn)VB與MATLAB的混合編程。
COM組件的自動化服務(wù)器既能與MATLAB兼容,又能嵌入ActiveX協(xié)議,并且VB也支持ActiveX自動化控制端的協(xié)議。因此,自動化協(xié)議連接可以在VB與MATLAB之間建立。為了使兩者之間能夠進(jìn)行信息互通互聯(lián),對MATLAB程序的調(diào)用可以用VB實現(xiàn)[7,8]。在創(chuàng)建ActiveX自動化協(xié)議時,通過以下語句在VB中實現(xiàn)兩者之間的聯(lián)系[9,10],即:
Dim Matlab as Object
Set Matlab=CreateObject(“Matlab.Application”)
在設(shè)計復(fù)合故障診斷系統(tǒng)時,首先要考慮該系統(tǒng)的主要功能,既要有讀取信息、信號預(yù)處理和故障診斷等模塊,還要使界面的總體設(shè)計簡潔明了。為了便于今后系統(tǒng)的修改與拓展,必須保證各功能模塊之間互不干擾。本文基于改進(jìn)變分模態(tài)分解方法(Improved Variational Mode Decomposition,IVMD)和經(jīng)驗?zāi)B(tài)分解(Empirical Mode Decomposition,EMD)的復(fù)合故障診斷方法,以齒輪箱中齒輪點(diǎn)蝕-磨損復(fù)合故障為例,將齒輪箱復(fù)合故障診斷系統(tǒng)設(shè)計為4大功能模塊,即登錄模塊、信息采集模塊、幅值域分析模塊和EMD與IVMD分析模塊。
為防止數(shù)據(jù)泄露,保證系統(tǒng)的安全性,設(shè)計了系統(tǒng)登錄模塊。如果賬號或密碼中有一個輸入錯誤,則齒輪箱復(fù)合故障診斷系統(tǒng)會彈出提示“賬號或密碼輸入錯誤,請再次輸入!”,兩者都同時輸入正確后,則會進(jìn)入系統(tǒng)的主界面,如圖1所示。在系統(tǒng)的菜單欄中除了主要功能模塊之外,還包括幫助與退出功能。幫助功能主要用于與系統(tǒng)開發(fā)者進(jìn)行聯(lián)系,獲得系統(tǒng)使用和修改等方面的建議;選擇退出功能能夠直接退出系統(tǒng)。
圖1 系統(tǒng)的登錄界面(主界面)
登入到系統(tǒng)主界面后,信息采集應(yīng)首先完成。數(shù)據(jù)以.txt的形式保存在計算機(jī)的某目錄下。點(diǎn)擊菜單欄的信息采集模塊,彈出界面,該模塊還包含了頻率計算功能。在此界面下輸入相關(guān)的試驗參數(shù),單擊信息讀取并計算的按鈕,則所選擇的故障數(shù)據(jù)會在數(shù)據(jù)顯示控件中出現(xiàn),同時計算出齒輪軸轉(zhuǎn)頻與嚙合頻率,如圖2所示。
圖2 讀取數(shù)據(jù)前后的信息采集模塊界面顯示
在讀取齒輪箱故障數(shù)據(jù)之后,需要對其進(jìn)行幅值域分析,包括時域、頻域和時頻域分析。單擊下拉菜單欄中的幅值域分析模塊,選中時域和頻域分析,單擊運(yùn)行按鈕,在相應(yīng)的控件中會顯示故障數(shù)據(jù)的時域和頻域波形,如圖3(a)所示;單擊返回按鈕,選擇時頻域分析,再單擊運(yùn)行按鈕,在對應(yīng)的控件中會顯示故障數(shù)據(jù)的不同時頻譜圖,如圖3(b)所示。但是從各時頻域圖中可以看到,出現(xiàn)的特征頻率雜亂而且不夠清晰,具體的故障類型難以識別出。
圖3 幅值域分析模塊
2.5.1 EMD分析
單擊菜單欄中的EMD與IVMD分析模塊,在下拉選項中選擇EMD分析,該模塊的主要功能是進(jìn)行降噪處理,同時消除可能存在的虛假模態(tài)分量,為下一步IVMD分析做準(zhǔn)備。EMD分析結(jié)果如圖4(a)所示,同時根據(jù)能量法判斷出了IMF(Intrinsic Mode Function,本征模態(tài)函數(shù))中存在虛假模態(tài);單擊消除虛假模態(tài)按鈕,系統(tǒng)會根據(jù)能量原理消除虛假模態(tài)并得到新的IMF分量,通過選擇與原始信號具有強(qiáng)相關(guān)性的新IMF分量構(gòu)成CIMF(Complex Intrinsic Mode Function)分量,其界面如圖4(b)所示。
圖4 EMD分析及消除虛假模態(tài)分量界面
2.5.2 參數(shù)k與α的選擇
在EMD與IVMD分析模塊的下拉菜單中單擊基于波形法的值選擇,對上面得到的CIMF分量進(jìn)行VMD(Variational Mode Decomposition)分析,根據(jù)波形法來確定參數(shù)k值的范圍。運(yùn)行后得到的結(jié)果如圖5(a)所示,從中可以獲悉,本例k的取值為小于等于4。
在EMD與IVMD分析模塊的下拉菜單中單擊基于包絡(luò)熵的k與α組合選擇選項,計算不同k與α組合時得到的BLIMF(Band Limited Intrinsic Mode Functions)的包絡(luò)熵值,通過分析,選擇包絡(luò)熵值最小時所對應(yīng)的k與α為IVMD分解的最佳參數(shù)組合。運(yùn)行結(jié)果如圖5(b)所示,當(dāng)k=4,α=1 000時為IVMD分解的最佳參數(shù)組合。
圖5 基于波形法與包絡(luò)熵的參數(shù)選擇
2.5.3 IVMD分析及故障診斷
單擊EMD與IVMD分析模塊,選擇IVMD分析選項。首先,在參數(shù)選擇框的下拉菜單中選擇,然后單擊運(yùn)行按鈕, CIMF分量經(jīng)IVMD分解得到的BLIMF分量及其對應(yīng)的頻譜圖如圖6(a)所示。單擊EMD與IVMD分析模塊下的故障特征提取選項,點(diǎn)擊運(yùn)行按鈕,進(jìn)行包絡(luò)解調(diào)并提取故障特征頻率,如圖6(b)所示。與大齒輪點(diǎn)蝕故障特征頻率相近的特征頻率及其倍頻從BLIMF1和BLIMF4的包絡(luò)解調(diào)譜中獲取,與小齒輪磨損故障特征頻率相近的特征頻率及其倍頻從BLIMF2和BLIMF3的包絡(luò)解調(diào)譜中獲取,同時給出了故障診斷結(jié)果及其故障原因與預(yù)防措施。
圖6 IVMD分析及故障診斷界面
本文將VB與MATLAB相結(jié)合,在EMD與IVMD復(fù)合故障診斷方法的基礎(chǔ)上設(shè)計了一個齒輪箱復(fù)合故障診斷系統(tǒng)。系統(tǒng)主界面以及各功能模塊是通過VB編寫完成的,對MATLAB的調(diào)用是利用ActiveX技術(shù)實現(xiàn)的,使得該診斷系統(tǒng)能夠有效地完成故障信息采集、幅值域分析以及復(fù)合故障診斷等功能,并縮短了程序開發(fā)周期、提高了工作效率。