劉永平,謝玉林
(巴中職業技術學院,四川 巴中 636600)
目前,工廠已經研究出多種工業機械,加快了社會發展進程,提高了工業生產效率[1]。但是,大規模的機械生產難免會出現機械故障問題,影響工廠生產效益,甚至出現嚴重事故,造成巨大的經濟損失和人員傷亡。所以國內外都在研究機械故障出現時產生的電子信號,通過電子信號識別機械故障,降低經濟損失和人員傷亡[2]。當前,國內外對電子信號的識別主要分為時域信號、頻域信號以及時頻域信號3個方面。其中,時域信號多作為故障診斷的原始依據,頻域信號多用作故障的識別和評價,時頻域信號多用于判斷設備運行過程中可能出現的剝落、裂紋、松動以及沖擊等故障[3]。而在故障識別方面,國內外多采用神經網絡、支持向量機以及聚類分析等故障識別方法,與故障信號識別連用的方式,深入分析機械存在的故障[4]。但是,上述的研究方法,分別存在收斂速度慢、故障樣本數量有限以及耗費大量人力財力和時間等問題,所以提出采用DSP信號處理器作為機械電子信號故障識別的手段之一。DSP是一種嵌入式微處理器,屬于計算機的CPU類。在DSP中,具有一種特殊結構,可以實時處理數字信號,編寫數字信號處理算法,提高故障信號的處理效率[5]。為此,采用DSP設計一種電子信號故障識別方法,提高電子信號識別效率,增加故障識別速度。
由于電子信號屬于人耳難以聽見辨別的聲波信號,需要采用振動信號采集裝置采集電子信號,并將采集到的電子信號保存至控制器[6]。所以,此次采集電子信號所選擇的振動信號采集裝置由MEMS單軸敏感加速度傳感器、模擬數字信號轉換器以及DSP信號處理器組成,具有無振動時輸出電壓為供電電壓,靈敏度為24.2 mV/g、滿量程范圍為-70~70 g、供電電壓為3.3~5 V、8引腳密封陶瓷LCC封裝、輸出電壓信號以及諧振頻率為22 kHz等功能特點[7]。此次選擇的振動信號采集裝置只需要通過代碼控制模數轉換器的采樣頻率即可采集和存儲電子信號。
在采集設備電子信號時,需要將此次選擇的振動信號采集裝置安裝在軸承座上,為此采用的振動信號采集裝置需要具有尺寸小、重量輕、容易集成以及耗電低等特點[8]。選擇具有較低電壓的MEMS單軸敏感加速度傳感器中的ADXL001-70Z型傳感器,將供電電壓維持在3.3~5 V,且可以與控制器公用一個電源,降低電源的使用量和使用頻率。
選擇具有兩檔可調的AD7656型號模擬數字信號轉換器,將電壓控制在±10 V和±5 V,提高電子信號的轉換時間,降低信號采集過程中產生的干擾信號。選擇具有低功耗和可以用代碼直接控制的DSP信號處理器,促使振動信號采集裝置可以直接將采集到的電子信號進行預處理,方便提取電子信號特征。當信號采集完畢后,會直接存儲至DSP。
在使用振動信號采集裝置采集電子信號時,需要采集到最低采樣頻率。最低采樣頻率要大于等于2倍的信號最高頻率成分。當采集到的電子信號存在異常值時,需要針對AD7656型號模擬數字信號轉換器轉換數字信號過程中產生的野點和其輸出電壓信號過程中產生的數據均值,采用DSP信號處理器進行處理,去掉采集轉換電子信號時產生的野點和數據均值。
DSP信號處理器在去掉野點和均值的過程中,需要采用C語言程序調試,將存儲在DSP中的電子信號導出。此時,需要采用Matlab算法計算出DSP信號處理器處理電子信號的參考值,并與C語言代碼運行結果進行對比。當C語言代碼運行結果與Matlab算法得到的參考值存在較大差距時,就需要重新調試C語言程序,以免影響DSP信號處理器處理電子信號效果。
由于Matlab算法與C語言代碼運在數據運算精度和數據動態范圍兩方面會出現數據的量化誤差,為此針對C語言程序調試過程如下:步驟1,使用振動信號采集裝置采集電子信號;步驟2,分別采用Matlab算法和C語言代碼處理采集到的電子信號;步驟3,將處理后的信號進行對比;步驟4,判斷出現誤差大小;步驟5,當誤差較大時,更改C語言代碼運行程序,并重復步驟2和步驟3;步驟6,當誤差較小時,確定C語言程序調試結果。此時,即可按照上述過程采集電子信號,并對采集好的電子信號進行預處理,提取電子信號特征,識別故障。
經過DSP采集處理后的電子信號已經突出了電子信號的局部特征,可以得到電子信號對應的頻譜圖,增強了頻率的分辨率。所以,提取電子信號特征參數時,在局部特征時間尺度上,可以將電子信號分解為多分量信號,從而得到電子信號瞬時頻率參數。
由于多分量信號在某一時刻每一個分量都有屬于自己的瞬時頻率,因此需要計算瞬時頻率解析信號相位的導數。此時,需要定義電子信號,并讓當時信號與定義信號一致,才能得到瞬時頻率。其電子信號特征參數值提取過程如下。
步驟1,尋找存儲在DSP信號處理器電子信號序列的所有局部極大值,并將尋找到的最大值全部鏈接起來,形成信號上的上包絡線,再尋找電子信號時間序列的所有局部最小值,形成信號的下包絡線,得到上包絡線和下包絡線之間的平均值曲線。
步驟2,采用未分上下包絡線的原始電子信號序列,減去平均值曲線,得到去掉低頻成分的新電子信號序列,并提取出瞬時頻率參數,所滿足的條件如下:(1)保證得到的電子信號極值點在零軸線上下波動,且相鄰的極大值點和極小值點之間的連線需要穿過零軸線;(2)電子信號的上包絡線和下包絡線需要在零軸線兩側對稱,且兩線之間的均值等于零。
步驟3,判斷新的電子信號序列是否滿足條件(1)和條件(2)。
步驟4,當新的電子信號序列滿足條件(1)和條件(2)時,則原始電子信號序列可以作為第一個多分量信號。
步驟5,當新的電子信號序列不能滿足條件(1)和條件(2)時,則將新的電子信號序列作為原始電子信號序列,并重復步驟1~步驟3,重新判斷新的電子信號序列是否滿足條件(1)和條件(2),若不滿足條件(1)和條件(2),則繼續循環,直至得到滿足條件(1)和條件(2)的電子信號序列。
步驟6,讓第二個多分量信號等于第一個多分量信號,則可以將第二個多分量信號作為原始電子信號中的一個,滿足條件(1)和條件(2)的第一階分量,且屬于原始電子信號序列中的高頻成分。
步驟7,將第一階分量從原始電子信號序列中分離出來,得到除第一階分量外的原始電子信號序列,再將這個信號作為原電子信號。
步驟8,不斷重復步驟1~步驟5,得到第二階乃至第n階分量,直至不能在原電子信號序列中得不到滿足條件(1)和條件(2)的分量,自動結束分量挑選循環,從而輸出最新的電子信號序列。
根據這個電子信號特征值提取過程以及參數提取條件,可以得到IMF參數,且IMF參數具有在時間軸上均值為零、繞零軸線上下波動等特點。
提取到的電子信號IMF特征參數需要使用具有svm.h、svm.cpp、svm-scale.c、svm-train.c以及svm-predict.c共5個C/C++實現的源代碼文件的Libsvm軟件包。此時,就可以利用Libsvm軟件包所具有的多種語言實現源代碼,翻譯DSP代碼在計算機中的可執行文件,識別故障信息。其故障識別流程如下。
步驟1,基于電子信號IMF參數提取結果,采用Libsvm軟件包文件所有文件,一起翻譯儲存在控制器中的IMF特征參數,得到IMF特征參數的訓練樣本,形成訓練參數數據集。
步驟2,重新設定數據歸一化參數,將數據歸一化區間控制在[-1,1],并按照對應關系,將訓練數據集中的參數縮放至區間[-1,1],讓訓練數據集中的參數屬于[-1,1]。
步驟3,將歸一化后的數據作為訓練模塊的輸入,并進行多次訓練。
步驟4,形成訓練模型,并將模型分為支持向量個數、數據中類別個數、每一個類別的向量個數。
步驟5,將訓練模型與檢測識別的原始電子信號序列一起輸入,完成故障信息的預測分類,輸出故障識別結果。
基于5個故障識別步驟,需要針對Libsvm軟件包文件中的代碼進行分離處理,并改寫DSP信號處理器中的源代碼,形成一個新的代碼文件,在DSP信號處理器中運行,提高DSP信號處理器對電子信號故障的識別速度。
將5個故障識別步驟以代碼的方式存儲至DSP信號處理器,尋找電子信號序列中存在的故障信號,并根據Libsvm軟件包文件以C/C++實現源代碼代表信息的翻譯。
為驗證此次研究的電子信號故障識別方法,選擇齒輪作為此次實驗的研究對象,并將此次研究的電子信號故障識別方法記為實驗A組,傳統故障識別方法記為實驗B組,對比兩組故障識別方法對故障位置識別的準確率。
此次選擇的齒輪存在內圈故障,其故障數據為0.016 7、0.001 8、-0.017 9、-0.009 3 以 及 0.018 6,其正常數據為0.385 8、-0.244 0、0.304 7、-0.008 5以及0.065 7。采用兩組方法,分別識別齒輪存在的故障,其故障識別結果如下:實驗A組故障識別數據為0.018 2、0.008 1、-0.017 9、-0.005 9以及0.003 0;實驗B組故障識別數據為0.003 1、-0.002 5、0.001 1、-0.005 6以及0.002 7。
從如上數據中可以看出,實驗B組故障識別結果得到的雖然不是正常數據,但是也并非齒輪原本的內圈故障數據,且對故障位置識別不準確,而實驗A組故障識別結果,雖與齒輪故障給出的樣本數據并不一致,但是與其十分接近。由此可見,此次研究的電子信號故障識別方法可以準確識別故障位置。
此次研究基于DSP的電子信號故障識別方法,充分利用DSP信號處理器對電子信號的處理功能,降低故障識別時間,提高電子信號處理速度,增加故障識別準確率。但是,此次研究的基于DSP的電子信號故障識別方法,未曾深入研究電子信號處理和特征提取的計算過程,未曾采用圖表的形式分析電子信號所對應的具體故障。因此,在今后的研究中,還需深入研究電子信號處理和特征提取的計算過程,畫出電子信號對應的頻譜,分析不同的電子信號對應的設備故障,為大型設備故障研究提供更多的參考信息。