胡鑫磊, 何紹瑋, 白雪飛
(石家莊鐵道大學(xué)電氣與電子工程學(xué)院,河北 石家莊 050043)
在對軸承狀態(tài)的診斷過程中信號特征頻率的提取是必不可少的,而軸承信號的噪聲消除又是特征頻率提取中最為關(guān)鍵的一部分。通常我們所采集到的軸承信號總是會混入各類噪聲,使得故障特征頻率的提取變得困難,而傳統(tǒng)的FIR濾波器需要有經(jīng)驗的操作人員根據(jù)不同類型的故障信號相應(yīng)的調(diào)整FIR濾波器參數(shù)才能實(shí)現(xiàn)精準(zhǔn)降噪[1]。在這樣的情況下,對自適應(yīng)濾波器的研究成為了一個重要的方向。
自適應(yīng)濾波器由權(quán)值可變的FIR濾波器和權(quán)值更新模塊兩部分組成,通過自適應(yīng)算法更新濾波器參數(shù),來實(shí)現(xiàn)自適應(yīng)濾波的功能。由Widrow和Hoff提出的LMS自適應(yīng)濾波算法,因其算法使用簡便、計算高效等優(yōu)勢,在實(shí)際工程中得到了廣泛地應(yīng)用,是工程領(lǐng)域最常用的自適應(yīng)濾波算法[2]。文獻(xiàn)[3]介紹了關(guān)于LMS算法在自適應(yīng)噪聲消除中的應(yīng)用,但是并未解決當(dāng)需要濾波的信號沒有參考信號時如何處理的問題。文獻(xiàn)[4]針對這一不足之處提出了一種自適應(yīng)噪聲抵消技術(shù)在軸承故障診斷中的應(yīng)用,以軸承故障信號的延時信號作為參考值,可以從軸承的振動信號中提取出故障特征,但是并沒有解決軟件實(shí)現(xiàn)的LMS自適應(yīng)濾波器實(shí)時性不強(qiáng)的問題。
本文基于這種應(yīng)用于軸承故障診斷的LMS的自適應(yīng)濾波器,給出了其適合在FPGA上實(shí)現(xiàn)的方案, 并就這種實(shí)現(xiàn)方案對該算法的性能進(jìn)行了仿真測試。測試結(jié)果表明:在FPGA上實(shí)現(xiàn)的LMS自適應(yīng)濾波器濾波效果良好,并且擁有很好的實(shí)時性能。
LMS算法是目前實(shí)際工程中最簡單也是應(yīng)用最廣泛的一種自適應(yīng)濾波算法,它是以輸出信號y(n)與參考信號d(n)之間差值的最小均方值為準(zhǔn)則的線性濾波算法,該自適應(yīng)濾波系統(tǒng)需要經(jīng)過兩個模塊才能使其性能趨于穩(wěn)定,分別為自適應(yīng)系數(shù)調(diào)整模塊和信號濾波模塊[5]。通過這兩個模塊使該算法構(gòu)成一個反饋系統(tǒng),得到LMS自適應(yīng)濾波算法的基本原理,如圖1所示。

圖1 LMS自適應(yīng)濾波算法基本原理
用瞬時誤差的平方e2(n)來進(jìn)行估計,可以使權(quán)值系數(shù)多次調(diào)整并趨于最佳狀態(tài),此時權(quán)值系數(shù)的更新方程為:
w(n+1)=w(n)-μe2(n)
(1)

(2)
則LMS算法中權(quán)值系數(shù)的更新方程:
w(n+1)=w(n)+2μe(n)X(n)
(3)
綜上可得,LMS自適應(yīng)濾波算法的流程如下:
步驟(1),選定合適的步長μ作為濾波器初始參數(shù)輸入。
步驟(2),將初始權(quán)值設(shè)定為w(0)=0,后面的權(quán)值系數(shù)w(n)根據(jù)計算結(jié)果更新。
步驟(3),給定n時刻的故障信號X(n),參考信號d(n),計算濾波器的輸出y(n)=wT(n)X(n)。
步驟(4),誤差信號計算,e(n)=d(n)-y(n)。
步驟(5),權(quán)值系數(shù)更新計算,w(n+1)=w(n)+2μe(n)X(n)。
步驟(6),將時刻加1,回到步驟(2),重復(fù)以上的步驟,直至達(dá)到最優(yōu)濾波。
上述步驟中,步驟(2)和步驟(4)為算法的濾波過程,步驟(5)為算法權(quán)值的自適應(yīng)調(diào)整過程。LMS算法通過計算參考信號與輸出信號的差來自適應(yīng)改進(jìn)濾波器的權(quán)值系數(shù),使下一次輸出更加精確。
本文的硬件設(shè)計采用了流水線設(shè)計方式,通過將LMS算法分解為幾個連續(xù)的部分[6],可以實(shí)現(xiàn)每個時鐘周期都有一個數(shù)據(jù)輸出。從LMS算法的原理可知,實(shí)現(xiàn)LMS自適應(yīng)濾波器最為關(guān)鍵的是要完成上文所述的算法流程的步驟(3)、步驟(4)和步驟(5)三個部分的計算,這些步驟均為簡單的復(fù)數(shù)運(yùn)算,只包括加法、減法和乘法三種演算方式,三種演算均可以通過Verilog語言編程來實(shí)現(xiàn)。
由于并非每個部分的輸出都是同步完成,因此需要使用數(shù)個數(shù)據(jù)延時模塊來協(xié)調(diào)各運(yùn)算模塊的數(shù)據(jù)流動,以實(shí)現(xiàn)算法內(nèi)部各運(yùn)算模塊的流暢運(yùn)行。本文采用Verilog語言編寫了數(shù)據(jù)延時模塊,插入到算法內(nèi)部以保證各模塊之間數(shù)據(jù)流通高效、穩(wěn)定、正確,得到準(zhǔn)確的計算結(jié)果[7]。
硬件程序采用Verilog語言編寫,通過Vivado 2017.4開發(fā)環(huán)境進(jìn)行代碼綜合以及仿真測試。在本文設(shè)計的Vivado工程中,系統(tǒng)時鐘Clk設(shè)定為100 MHz。圖2是經(jīng)Vivado 2017.4軟件綜合后得到的LMS自適應(yīng)濾波器頂層模塊RTL視圖。

圖2 LMS自適應(yīng)濾波器頂層模塊RTL視圖
圖2所示的自適應(yīng)濾波器的電路圖中Data_in為原始軸承信號的輸入端口,Desired_in為經(jīng)過延遲過后的軸承信號輸入端,Step_size為步長值輸入端,步長值μ一般取2的整數(shù)次方的倒數(shù)(如2-4),Y_out為降噪后的結(jié)果輸出端口。Data_reg為上文提到的數(shù)據(jù)延時模塊,用來協(xié)調(diào)各方信號的流動,使信號流通更加流暢,避免出現(xiàn)資源浪費(fèi)的情況。
LMS模塊為核心的自適應(yīng)濾波模塊,它由數(shù)個LMS_tap模塊串行連接而成,對輸入信號進(jìn)行處理,將每個LMS_tap模塊結(jié)果相加得到最終信號濾波結(jié)果。將LMS模塊展開后可得LMS_tap模塊的RTL級電路圖,如圖3所示。

圖3 LMS_tap模塊RTL視圖
LMS_tap模塊以流水線的方式工作,數(shù)據(jù)輸入后先通過LMS模塊外部的乘法器實(shí)現(xiàn)權(quán)值系數(shù)計算:Δwi(n)=2μei(n)x(n),之后通過tap模塊內(nèi)部的乘法器來計算yi(n)=wi(n)X(N-I+1),通過加法器用來計算ei(n)=di(n)-yi(n),來實(shí)現(xiàn)LMS自適應(yīng)濾波的各部分功能;最終由該tap模塊輸出傳遞到下一個tap模塊的輸入信號x(n)和濾波結(jié)果yi(n)。
用Vivado自帶仿真工具對上述FPGA工程進(jìn)行仿真,選擇從濾波性能和實(shí)時性能這兩個方面對該FPGA工程進(jìn)行分析,來判斷其是否適合于實(shí)際應(yīng)用。
仿真采用的輸入信號為實(shí)測軸承故障信號,用實(shí)際軸承的外圈磨損故障信號對提出的FPGA方案進(jìn)行測試。在測試程序testbench的編寫過程中,采用了readmemh命令從上位機(jī)中讀入采集到的軸承故障信號數(shù)據(jù)用來進(jìn)行濾波測試,濾波結(jié)束后,使用fswrite和fscanf命令將濾波后的軸承數(shù)據(jù)以文本的形式輸出并存儲到上位機(jī)中[8]。圖4為軸承故障信號濾波前后的仿真結(jié)果波形對比圖。

圖4 軸承故障信號仿真結(jié)果對比
圖4中,Sine_display為輸入的軸承故障信號波形圖,Y_out為濾波后得到的濾波數(shù)據(jù)波形圖。對圖4濾波前后波形圖的直觀對比可以得出該LMS自適應(yīng)濾波器在FPGA中已經(jīng)得到了實(shí)現(xiàn)。為了進(jìn)一步分析該方案能否實(shí)現(xiàn)對軸承故障信號特征頻率的提取,將仿真測試程序得到的濾波結(jié)果存儲后利用Matlab對濾波結(jié)果進(jìn)行包絡(luò)解調(diào)[9],圖5與圖6分別為濾波前與濾波后軸承外圈故障信號的包絡(luò)結(jié)果。

圖5 濾波前信號的包絡(luò)結(jié)果

圖6 濾波后信號的包絡(luò)結(jié)果
經(jīng)過對包絡(luò)結(jié)果圖對比分析,可以看出未經(jīng)過任何處理的原始故障信號經(jīng)過包絡(luò)后無法準(zhǔn)確的分辨其倍頻以及提取出準(zhǔn)確的工作頻率,經(jīng)過LMS自適應(yīng)濾波器濾波后的故障信號經(jīng)過包絡(luò)后可以清晰的看出該信號的倍頻,準(zhǔn)確的提取出故障頻率約為28 Hz,說明該自適應(yīng)濾波器的FPGA實(shí)現(xiàn)方案適合于對軸承故障信號進(jìn)行濾波。
為了驗證該FPGA方案的實(shí)時性能,采用3組不同的實(shí)測軸承故障數(shù)據(jù)對系統(tǒng)進(jìn)行了對比測試,測試的結(jié)果如表1所示,其中,軟件實(shí)現(xiàn)的程序由Matlab語言編寫,運(yùn)行在PC機(jī)上。從測試結(jié)果可以看出, 硬件實(shí)現(xiàn)的LMS自適應(yīng)濾波器要比軟件的快2個數(shù)量級。

表1 測試結(jié)果表
仿真結(jié)果表明軸承故障信號經(jīng)過LMS自適應(yīng)濾波器處理之后,信號中噪聲分量明顯降低,可以準(zhǔn)確的提取出故障頻率,達(dá)到了濾波的目的。同時,該方案實(shí)現(xiàn)的LMS自適應(yīng)濾波器具有很強(qiáng)的實(shí)時性能,可以達(dá)到工程實(shí)際要求。