王昱欽,王 鑫,劉保強(qiáng),李 軼,洪 晟
(1.江蘇自動(dòng)化研究所,江蘇 連云港 222000;2.中國(guó)人民解放軍32381 部隊(duì),北京 100000;3.北京航空航天大學(xué) 網(wǎng)絡(luò)空間安全學(xué)院,北京 100191)
在工作時(shí)機(jī)械設(shè)備基本都存在比較明顯的振動(dòng)情況,如果想要監(jiān)測(cè)設(shè)備的運(yùn)行狀態(tài),是可以通過(guò)分析機(jī)械設(shè)備所產(chǎn)生的振動(dòng)信號(hào)來(lái)實(shí)現(xiàn)的,并且通過(guò)分析監(jiān)測(cè)結(jié)果的變化情況可以在早期及時(shí)地發(fā)現(xiàn)機(jī)械設(shè)備可能出現(xiàn)的故障情況[1]。但是如果要想通過(guò)設(shè)備所產(chǎn)生的振動(dòng)信號(hào)對(duì)其運(yùn)行狀態(tài)情況獲得非常準(zhǔn)確的評(píng)估或預(yù)測(cè)結(jié)果,則需要對(duì)機(jī)械設(shè)備所產(chǎn)生的大量高頻振動(dòng)數(shù)據(jù)進(jìn)行有效分析[2],為了能夠有效采集到大量高頻振動(dòng)數(shù)據(jù),需要安裝大量的傳感器用于采集機(jī)械設(shè)備在工作時(shí)所產(chǎn)生的高頻振動(dòng)數(shù)據(jù)[3]。但是現(xiàn)有的基于ZigBee、藍(lán)牙技術(shù)等低功耗、低速率的無(wú)線傳輸技術(shù)是無(wú)法滿足此類應(yīng)用需求的,無(wú)法滿足需求的原因主要有兩個(gè)方面[4]:(1)對(duì)高頻振動(dòng)數(shù)據(jù)進(jìn)行采集會(huì)快速消耗終端節(jié)點(diǎn)所使用的電池電量,進(jìn)而影響整個(gè)采集系統(tǒng)的工作壽命;(2)大量數(shù)據(jù)的無(wú)線傳輸會(huì)嚴(yán)重占用系統(tǒng)帶寬資源,從而會(huì)造成傳輸過(guò)程丟包率的升高,最終會(huì)影響到數(shù)據(jù)分析的準(zhǔn)確性[5]。
對(duì)數(shù)據(jù)進(jìn)行壓縮的主要目的就是想要通過(guò)傳感器在邊緣側(cè)的運(yùn)算,較大幅度地減少數(shù)據(jù)在無(wú)線傳輸過(guò)程中所消耗的能耗,雖然這樣會(huì)損失傳感器的部分能耗[6],但只要確保傳感器所消耗的這部分能耗要大大低于傳輸過(guò)程所需能耗,就可以實(shí)現(xiàn)總能耗的減少,但并不是所有的數(shù)據(jù)壓縮算法都可以達(dá)到這一目的的[1]。針對(duì)上述問(wèn)題,本文首先對(duì)現(xiàn)有多種振動(dòng)數(shù)據(jù)壓縮算法進(jìn)行了研究,對(duì)現(xiàn)有壓縮算法存在的問(wèn)題進(jìn)行了分析,并在此基礎(chǔ)上提出了一種面向無(wú)線通信的數(shù)據(jù)壓縮算法——K-means 聚類-DCT 雙重壓縮算法。通過(guò)實(shí)際驗(yàn)證表明,采用該算法對(duì)振動(dòng)數(shù)據(jù)進(jìn)行數(shù)據(jù)聚合,可以非常明顯地提高數(shù)據(jù)壓縮的效率,從而在傳輸時(shí)將冗余數(shù)據(jù)有效減少[7]。而在相同數(shù)據(jù)量情況下,采用改進(jìn)算法的峰值信噪比與其他算法相比,具有更好的性能。
設(shè)備預(yù)測(cè)性維護(hù)是通過(guò)采集機(jī)械設(shè)備運(yùn)行時(shí)所產(chǎn)生的振動(dòng)數(shù)據(jù),然后對(duì)振動(dòng)數(shù)據(jù)進(jìn)行分析,通過(guò)分析所采集到振動(dòng)數(shù)據(jù)并根據(jù)分析結(jié)果來(lái)確認(rèn)機(jī)械設(shè)備的運(yùn)行狀態(tài)是否正常。奈奎斯特采樣定理指出,如果需要對(duì)模擬數(shù)字信號(hào)進(jìn)行轉(zhuǎn)換,在其轉(zhuǎn)換的過(guò)程當(dāng)中,如果采樣頻率是所采樣信號(hào)中最高頻率的2 倍及以上時(shí),完成采樣后所得到的數(shù)字信號(hào)就能夠?qū)⒃夹盘?hào)中的全部信息完整地保留下來(lái)[8]。機(jī)械設(shè)備可能在特定情況下產(chǎn)生高頻振動(dòng),為防止振動(dòng)數(shù)據(jù)在采樣后頻域出現(xiàn)混疊情況,在對(duì)振動(dòng)數(shù)據(jù)進(jìn)行采樣時(shí),有必要采用較高的采樣頻率。這造成了傳感器將采集大量的振動(dòng)數(shù)據(jù),由于無(wú)線傳感器對(duì)于功耗的要求,將大量數(shù)據(jù)直接上傳至采集基站無(wú)疑將大大降低無(wú)線傳感器的實(shí)際使用壽命。為有效延長(zhǎng)傳感器實(shí)際使用壽命,在確保較高采樣頻率的前提下,通常會(huì)應(yīng)用數(shù)據(jù)壓縮算法對(duì)傳感器采集到的振動(dòng)數(shù)據(jù)進(jìn)行壓縮,從而能夠?qū)鞲衅鱾鬏敂?shù)據(jù)的效率大幅提高,并且可以將數(shù)據(jù)傳輸?shù)臅r(shí)間大大降低,最終大幅降低傳感器的實(shí)際功耗。通過(guò)壓縮算法來(lái)提高數(shù)據(jù)傳輸效率是振動(dòng)監(jiān)測(cè)領(lǐng)域通用做法[9]。
無(wú)線傳感器所采用的壓縮算法可分為無(wú)損壓縮算法和有損壓縮算法。其中無(wú)損壓縮算法是指接收到被壓縮的數(shù)據(jù)后能夠?qū)嚎s后的數(shù)據(jù)完整恢復(fù)的算法,最為典型的無(wú)損壓縮算法有LZW 壓縮算法、Huffman編碼、行程編碼方法等[10]。LZW 壓縮算法是一種基于字符字典庫(kù)的無(wú)損壓縮算法,該算法通過(guò)建立一個(gè)字符字典庫(kù),用一個(gè)數(shù)字來(lái)代表放入字符字典庫(kù)中的第一次出現(xiàn)的字符串,如果這個(gè)字符串再次出現(xiàn)時(shí),即可用表示它的數(shù)字來(lái)代替,然后使用較短長(zhǎng)度編碼來(lái)對(duì)較長(zhǎng)的字符串進(jìn)行標(biāo)識(shí),通過(guò)這樣的方法來(lái)最終實(shí)現(xiàn)對(duì)數(shù)據(jù)的壓縮[11];Huffman 編碼是一種用于無(wú)損壓縮的熵編碼算法,該算法首先會(huì)統(tǒng)計(jì)出需要壓縮的數(shù)據(jù)當(dāng)中所有字符出現(xiàn)的概率,然后在對(duì)數(shù)據(jù)進(jìn)行重構(gòu)的過(guò)程中是按照字符出現(xiàn)概率的高低進(jìn)行的,使用較短的編碼字符來(lái)代替所有出現(xiàn)概率高的字符,最終將整體數(shù)據(jù)量壓縮到最小[12];行程編碼方法也叫RLE 壓縮編碼,是Golomb 于1966 年提出的一種相對(duì)簡(jiǎn)單的編碼技術(shù),其原理是將由相同數(shù)值組成的連續(xù)數(shù)值串通過(guò)數(shù)值串的長(zhǎng)度以及代表數(shù)值來(lái)表示,從而使得壓縮后的數(shù)據(jù)量要小于初始的數(shù)據(jù)量[13]。目前有損壓縮算法主要都是對(duì)現(xiàn)有算法的改進(jìn)或者裁剪,其中比較典型的有損壓縮算法主要有小波變換方法、時(shí)間順序近似方法等。
對(duì)于預(yù)測(cè)性維護(hù),在滿足系統(tǒng)要求的前提下,可對(duì)振動(dòng)數(shù)據(jù)進(jìn)行有損壓縮。Liu 和Cheng[14]提出了一種應(yīng)用于設(shè)備狀態(tài)監(jiān)測(cè)的傳感器數(shù)據(jù)壓縮方法,方法是用DWT 和DSC 實(shí)現(xiàn)對(duì)振動(dòng)數(shù)據(jù)的壓縮處理。Steffen 等人在文獻(xiàn)[15]中提出了一種傳感器的自適應(yīng)壓縮算法,該方案對(duì)傳感器性能要求非常高,而傳感器往往出于節(jié)能考慮,采用的控制處理器性能都比較低,復(fù)雜的壓縮算法增加了傳感器的處理時(shí)間,導(dǎo)致數(shù)據(jù)無(wú)法及時(shí)發(fā)送[16]。Yoon[17]提出了一種基于無(wú)線傳感器網(wǎng)絡(luò)自適應(yīng)壓縮率的選擇方案,該方案可以根據(jù)電池的電量狀況來(lái)選擇不同的壓縮模式,在電池電量充足時(shí),自適應(yīng)選擇使用高性能的壓縮方案;反之,在電池電量較低時(shí),則自適應(yīng)選擇計(jì)算量相對(duì)較低的壓縮方案,通過(guò)該方式實(shí)現(xiàn)能量使用的均衡。在文獻(xiàn)[18]中,作者提出基于近似多項(xiàng)式的數(shù)據(jù)壓縮算法,并將其應(yīng)用于非周期信號(hào)測(cè)量中。在文獻(xiàn)[19]中,作者提出了一種應(yīng)用于無(wú)線傳感器網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)膲嚎s效率較高的無(wú)損壓縮算法,該算法的核心采用了LZW 算法[11],實(shí)際由于LZW 算法較復(fù)雜,對(duì)于傳感器硬件壓力過(guò)大,且對(duì)RAM 要求過(guò)高,使用該算法將極大地影響傳感器功耗,由于LZW 算法為通用壓縮算法,實(shí)際用于傳感器數(shù)據(jù)壓縮性能提高有限。
但是大部分的以上工作并不適用于機(jī)械振動(dòng)的振動(dòng)數(shù)據(jù)壓縮,由于算法復(fù)雜度以及低功耗無(wú)線傳感器的資源限制,其中有些算法不適用于此類應(yīng)用場(chǎng)景。鑒于此,本文著重針對(duì)機(jī)械振動(dòng)數(shù)據(jù)的監(jiān)測(cè),提出了一種新的高效數(shù)據(jù)壓縮算法,在重復(fù)考慮算法復(fù)雜度和計(jì)算復(fù)雜度的同時(shí),對(duì)振動(dòng)數(shù)據(jù)處理有著更高的壓縮效率,適用于預(yù)測(cè)性維護(hù)的應(yīng)用場(chǎng)景。
沒(méi)有一種壓縮算法能適用于各種傳感器數(shù)據(jù)的壓縮,例如振動(dòng)旋轉(zhuǎn)電機(jī)的振動(dòng)數(shù)據(jù)壓縮算法,用于往返振動(dòng)所采集的信號(hào)時(shí),可能性能也存在問(wèn)題。因此,算法需要針對(duì)所監(jiān)測(cè)對(duì)象進(jìn)行設(shè)計(jì)。機(jī)械振動(dòng)信號(hào)在時(shí)域變換較快,但是在頻域表現(xiàn)為重疊和噪聲[20]。Kmeans 聚類-DCT 雙重壓縮算法針對(duì)預(yù)測(cè)性維護(hù)數(shù)據(jù)特點(diǎn),本文首先利用K-means 算法對(duì)振動(dòng)數(shù)據(jù)進(jìn)行聚合分類,再根據(jù)振動(dòng)信號(hào)頻域特點(diǎn)進(jìn)行離散余弦變換(Dis‐cret Cosine Transform,DCT)壓縮。壓縮流程如圖1所示。
圖1 數(shù)據(jù)壓縮流程
針對(duì)振動(dòng)數(shù)據(jù)特點(diǎn)對(duì)ADC 所采集到的數(shù)據(jù)進(jìn)行初步類,主要步驟如下:
(1)將ADC 采集的振動(dòng)數(shù)據(jù)D={x1,x2,…,xn},任取k個(gè)數(shù)作為聚類中心,用M={m1,m2,…,mk}表示。
(2)算出N={n1,n2,…,nm}與聚類中心M之間的歐式距離,N∈D且N?M。
(3) 比較距離值,依據(jù)d(mi,ni)=min{d(m1,ni),d(m2,ni),…,d(mk,ni)},將振動(dòng)數(shù)據(jù)D根據(jù)最小距離劃分為k類O={o1,o2,…,ok}。
(4) 重新計(jì)算O中數(shù)據(jù)均值,作為新的中心M?,重復(fù)步驟(1)~(3)。將數(shù)據(jù)重新歸類為新的k類
(5) 比較O與O*中數(shù)據(jù)情況,如果數(shù)據(jù)依然存在變化,重復(fù)步驟(4),直到每類中數(shù)據(jù)對(duì)象在誤差平方和函數(shù)收斂時(shí),停止迭代。
對(duì)振動(dòng)信號(hào)進(jìn)行FFT 能直觀地反映信號(hào)的頻域特點(diǎn),振動(dòng)信號(hào)可能包含多個(gè)高頻域振動(dòng)信號(hào),或是分布在寬頻的隨機(jī)信號(hào)構(gòu)成。振動(dòng)信號(hào)在基于K-means 聚類算法處理后,利用離散余弦變換的變換域壓縮,去除信號(hào)的相關(guān)性,減少冗余數(shù)據(jù)。由于小波變換具有良好的時(shí)域定位和能量集中特性,對(duì)歸類后的振動(dòng)信號(hào)f(x)進(jìn)行DCT 變換,用下列公式表示:
其中,k(m,x)為DCT 變換的變換核。
將振動(dòng)數(shù)據(jù)變換到頻域后,對(duì)變換后的數(shù)據(jù)進(jìn)行量化,并采用Huffman 編碼對(duì)變換后的數(shù)據(jù)進(jìn)行二次數(shù)據(jù)壓縮。
無(wú)線振動(dòng)傳感器硬件基于STMicroelectronics 公司低功耗單片機(jī)STM32l476 實(shí)現(xiàn),振動(dòng)MEMS 芯片采用ADI 公司ADXL1002,線性度為±0.1%,量程為±50 g。采樣頻率20 kHz,采用ADI 公司ADS8689 16 位ADC。采用K-means 聚類-DCT 雙重壓縮算法,與標(biāo)準(zhǔn)DCT、DWT、LZO 編碼進(jìn)行壓縮對(duì)比。
STM32l476 MCU 一款基于高性能的Arm? Cortex?-M4 32 位內(nèi)核,最大工作頻率為為80 MHz??紤]到采集的振動(dòng)數(shù)據(jù)量,傳感器采用UWB 模塊實(shí)現(xiàn)無(wú)線通信,將數(shù)據(jù)采集數(shù)據(jù)通過(guò)UWB 模塊發(fā)送至實(shí)驗(yàn)計(jì)算機(jī),再使用仿真工具對(duì)數(shù)據(jù)進(jìn)行處理。測(cè)試環(huán)境由SD&PTI PE 型通用振動(dòng)臺(tái)功放設(shè)備及泰克AFG1062 任意波形函數(shù)信號(hào)發(fā)生器構(gòu)成,AFG1062 生成正弦振蕩波形,經(jīng)由功放設(shè)備放大,驅(qū)動(dòng)振動(dòng)臺(tái)振動(dòng)。傳感器硬件如圖2 所示。在真實(shí)測(cè)試環(huán)境中,傳感器采用磁吸方式吸附在傳動(dòng)機(jī)構(gòu)電機(jī)的軸向位置,與電機(jī)軸水平位置垂直,并采用粘膠固定。
圖2 傳感器硬件圖
為評(píng)估算法效果,文中使用壓縮率衡量算法壓縮情況,壓縮率定義如式(1)所示:
由于DCT 是有損壓縮方式,本文用峰值信噪比(Peak Signal to Noise Ratio,PSNR)來(lái)評(píng)估壓縮質(zhì)量,計(jì)算公式如式(2)、式(3)所示。
其中,Ns為總采樣數(shù)據(jù)量,為壓縮后的振動(dòng)數(shù)據(jù)。
實(shí)驗(yàn)分別采集1 k、2 k、4 k、16 k 個(gè)點(diǎn),每個(gè)點(diǎn)為16 bit浮點(diǎn)數(shù),每次采集10 次,使用MATLAB 進(jìn)程處理,并對(duì)每種算法的實(shí)驗(yàn)結(jié)果進(jìn)行均值處理,結(jié)果如表1 所示。
表1 實(shí)驗(yàn)數(shù)據(jù)表
從圖3 和圖4 的實(shí)驗(yàn)結(jié)果看,采用K-means 算法對(duì)振動(dòng)數(shù)據(jù)進(jìn)行數(shù)據(jù)聚合,可以非常明顯地提高數(shù)據(jù)壓縮的效率,從而在傳輸時(shí)將冗余數(shù)據(jù)有效減少。而在相同數(shù)據(jù)量情況下,改進(jìn)算法在峰值信噪比方面與其他算法相比具有更好的性能。
圖3 壓縮率曲線
圖4 PSNR 曲線
本文針對(duì)預(yù)測(cè)性維護(hù)振動(dòng)數(shù)據(jù)的特點(diǎn),對(duì)DCT 算法進(jìn)行了針對(duì)性的改進(jìn),并且通過(guò)K-means 聚類算法對(duì)振動(dòng)數(shù)據(jù)進(jìn)行了進(jìn)一步處理,根據(jù)數(shù)據(jù)特性將數(shù)據(jù)進(jìn)行了相應(yīng)分類,從而可以更好地利用DCT 算法的壓縮性能。通過(guò)對(duì)實(shí)驗(yàn)數(shù)據(jù)的處理分析,與DCT、DWT、LZO 算法進(jìn)行對(duì)比,雙重壓縮算法在壓縮率和峰值信噪比上具有更好的性能。