





















摘要:針對波浪傳感器故障診斷困難、故障類型無法識別、診斷耗時長的問題,提出一種基于小波包分解、降維與k-近鄰算法(k-nearest neighbor algorithm,KNN)分類網絡的波浪傳感器故障診斷方法。首先將原始信號進行標準差標準化處理,然后對標準化后的數據進行小波包3層分解,將分解后的第3層8個頻帶上的數據進行歸一化處理,作為提取的特征向量,采用t-SNE降維算法對特征數據進行降維,最后將降維后的特征數據輸入到KNN分類網絡中進行故障分類檢測。實驗結果表明,該方法能夠提高波浪傳感器故障診斷的準確度和診斷速度,對正常狀態和6種故障狀態的診斷準確率能夠達到93.55%。
關鍵詞:波浪傳感器;小波包分解;t-SNE非線性降維算法;k-近鄰算法;故障診斷
中圖分類號:TP83 文獻標志碼:A 文章編號:1002-4026(2023)04-0001-09
開放科學(資源服務)標志碼(OSID):
Wave sensor fault diagnosis method based on t-SNE reduction and KNN algorithm
TAI Penga,b, SONG Miaomiaoa,b*,WANG Boa,b, CHEN Shizhea,b, FU Xiaoa,b, HU Weia,b,
GAO Saiyua,b, CHENG Kaiyua,b, ZHENG Shanshana,b, JIAO Zixuana,b, WANG Longfeia,b
(a. College of Marine Technology and Science; b. Institute of Marine Instrumentation, Qilu University of Technology (Shandong Academy of Sciences), Qingdao 266300, China)
Abstract∶This study proposes an efficient wave sensor fault diagnosis method based on wavelet packet decomposition, dimension reduction, and k-nearest neighbor algorithm(KNN) classification network to address the difficulty of wave sensor fault diagnosis, unidentifiable fault types, and time-consuming diagnosis. First, the standard deviation of the original signal is normalized. The normalized data is then subjected to a three-layer wavelet packet decomposition. The extracted feature vectors represent normalized data from the eight bands on layer 3. The second step involves using the t-distributed stochastic neighbor embedding (t-SNE) algorithm to reduce the dimension of the feature data. Finally, the dimension-reduced feature data is input into the KNN classification network for fault classification and detection. Experimental results show that the proposed method can improve the accuracy and diagnosis speed of the wave sensor fault diagnosis, with a diagnosis accuracy of up to 93.55% for normal and six faulty conditions.
Key words∶wave sensor; wavelet packet decomposition; t-SNE dimension reduction; k-nearest neighbor algorithm; fault diagnosis
隨著海洋觀測技術的不斷發展,利用先進的海洋監測儀器可以監測到準確的水文氣象數據。波浪是一種重要海洋環境要素,其數據質量取決于波浪傳感器的穩定性和可靠性。傳感器發生故障會影響監測數據的完整性和準確性[1],當監測位置處于重要海域時,還將關系到軍事及國防安全。因此,通過波浪傳感器的觀測數據對其進行故障診斷,及時發現傳感器存在的問題,對于重要海域浮標上波浪傳感器的維護具有重要意義。
波浪傳感器輸出的信號是不平穩的,信號的頻率成分較為豐富,單純采用時域或頻域分析法均不能準確高效地檢測出信號的故障特征[2]。為此,國內外學者將時-頻分析法應用于傳感器故障信號的特征提取。馮志剛等[3]利用小波包分解提取各個節點的能量,利用徑向基神經網絡,進行傳感器故障診斷,但只研究了偏差、漂移和周期性干擾三種故障,沒有考慮脈沖、開路和短路等故障類型。He等[4]采用短時傅里葉變換分析軸承信號,但其窗長設定的自適應性不強,只能粗略分析信號的結構。Zhang等[5]同樣對傳感器的輸出信號進行小波變換,在不同尺度上計算了信號發生故障前后的能量變化率,進而監測壓力傳感器的各種故障,但準確率較低且速度較慢。
在波浪傳感器故障診斷方面,傳統的基于統計學方法的故障診斷模型具有計算量大、準確度低等問題,而基于人工智能的神經網絡模型雖然具有較高的準確度,但其可解釋性較差,難以解釋故障原因。因此,如何結合二者的優點,建立準確度高、可解釋性強的故障診斷模型是目前需要解決的問題[6]。本文采用小波包分解的方法提取故障特征,將提取后的故障特征進行降維,再輸入到k-近鄰算法(k-nearest neighbor algorithm,KNN)分類網絡中,實現了將傳感器高維的故障特征數據降維至三維的空間數據,減少了故障診斷的時間,保證了故障診斷的準確率。同時,將復雜的波浪傳感器故障類型之間的關系轉換為直觀的空間近鄰關系,提高了故障診斷的效率。
1 波浪傳感器的故障類型及特征提取
1.1 傳感器的故障類型
受海洋環境影響以及電磁干擾,波浪傳感器會通常會出現6種常見故障:
(1)漂移偏差。當此種故障出現時,隨著觀測時間的推移,傳感器的測量值與真實值之間的偏差將會越來越大。其故障模型為:
式中x為觀測的正常信號,Δm為傳感器測量值與真實值偏差,tstart為初始時刻,xe為故障信號。
(2)固定偏差。當出現此類故障時,傳感器的測量值和真實值之間存在著一個恒定常數的偏移或誤差。
(3)開路故障。當發生此類故障時,傳感器會在正常監測狀態下突然失效,導致其無法正常監測,監測的數據始終為一個常數,這里用測量范圍的最大值來模擬開路故障的故障數據。其故障模型為:
式中m2為測量范圍的最大值。
(4)脈沖故障。當出現此類故障時,傳感器觀測到的數據會出現間隔性、短時性的野值。
(5)短路故障。當出現污染引起的橋路腐蝕,或者發生線路短接時,則可能發生短路故障,與開路故障類似,傳感器采集到的數據始終為一常數,這里用測量范圍的最小值來模擬短路故障的故障數據。其故障模型為:
式中m3為測量范圍的最小值。
(6)周期性干擾。周期性干擾主要是由于波浪傳感器受到了浮標平臺搭載的其他設備的干擾。傳感器的測量信號和真實信號之間始終存在著一定范圍內的擾動。
1.2 故障特征提取
本文利用小波包對原始故障數據進行3層小波包分解,得到8個頻率成分的信號特征,分解在各個頻帶上的信號都具有一定的能量,不同的信號在經過分解后具有不同的能量特征[7],因此可以將分解后的能量作為故障的特征,對分解后的數據進行系數重構,計算分解在各頻帶上的能量,并利用分解在各頻帶上的能量構造特征向量[8],將特征向量進行標準差標準化處理后輸入到故障分類網絡中進行故障分類。小波分解的步驟如圖1所示。
(1)采用標準差標準化方法對7種狀態下的波浪傳感器信號進行標準化處理,避免所提取的特征受到傳感器輸出信號幅值的影響。為標準差標準化處理見公式(4)。
式中S表示傳感器輸出信號的序列,E(S)是S的均值,Dσ是S的標準差。
將標準化后的信號S~進行3層小波包分解,圖2是周期性干擾故障經小波包3層分解后8個頻帶分解系數變化曲線。周期性干擾故障原始信號的采樣頻率為1 Hz,采樣時間為2 000 s。
(2)對分解在各個頻帶上的信號能量進行重構,設Sij為重構后第i層的第j個信號。
(3)計算重構信號Sij的能量Eij,計算方法如公式(5)所示。
式中xjn為Eij各個離散點的幅度,N為重構信號的離散點個數,n為第i層第j個頻帶的離散點。
(4)計算信號的總能量E=∑7j=0Eij,根據計算出的各頻帶能量構造出故障信號的特征向量,并對特征向量進行歸一化標準化處理。特征向量的形式如公式(6)所示。
T=[E30,E31,E32,E33,E34,E35,E36,E37]/E。(6)
圖3顯示了傳感器正常和6種故障狀態下傳感器采集的信號數據的表現形式及其對應的能量分布圖。
基于小波包分析的方法,通過對故障信號進行分解,可以得到原始信號在不同頻帶上的能量分布。此方法可以將故障信號在指定的尺度上進行分解,并得到信號的能量分布,進而達到提取信號特征的目的。信號在經過分解后也折射出了原始故障信號能量分布的整體特征,信號在經過j層小波分解后,總能量也被分解到了2j個不重疊的頻率區間內。然后利用不同的頻率區間內信號能量不同的特點,可以將不同頻率區間內的能量作為原始信號的特征向量來進行故障分類。
2 t-SNE降維及KNN分類
2.1 t-SNE降維
t-SNE(t-distributed stochastic neighbor embedding)降維算法是一種非線性降維的機器學習算法,能夠降低向量維度的同時很好地捕捉到原始數據的復雜流形結構[9-12]。首先將數據點間的高維歐氏距離轉換為代表著相似度的條件概率,然后假設數據點xi到數據點xj的相似度用條件概率pji來表示,pji的值越大表明xi和xj的相似度越高,pji采用公式(7)計算。
式中σi是以xi為中心點的高斯分布的方差。
將各小波包3層分解后的各頻帶能量進行標準化處理后,然后將標準化后的故障特征數據,利用t-SNE降維方法,將小波包分解8個頻帶上的標準化特征向量降維至3維,圖3是利用t-SNE降維的流程。t-SNE更注重全局結構而非局部結構,當在高維空間中兩個點相似度很小,映射到低維空間中相似度卻變得很大,這時相應的懲罰力度卻很小,與實際情況不符。t-SNE在降維的過程中,在經過t分布的處理后,同一類數據在空間上也會更加集中,而不同種類的數據在降維后的空間上則顯得更加稀疏。使得分類的效果更加顯著,由自由度為1的t分布重新定義的qij形式如公式(8)所示。
相應的梯度形式如公式(9)所示:
2.2 KNN算法
k-近鄰算法(KNN)是對最近鄰算法的推廣,屬于基于先驗知識的分類學習算法,其基本思想是:在特征空間中,如果一個樣本的k個近鄰中大多數屬于某一個類別,則將該樣本判斷為此種類別,并具有這種類別的特性[13]。該方法雖然思想較為簡單,但在很多故障分類算法中得到了運用。下面以分類樣本xm為例對KNN算法的計算步驟進行描述:假設訓練樣本的數據集為U={(xi,ci)|i=1,…,N},假定C={cj|j=1,…,M},其中訓練集樣本中xi為p維列向量,ci為xi所對應的類別標簽。KNN算法的流程簡述如下。
(1)根據上面的假設,將歐式距離作為衡量標準,計算出待分類樣本xm和其他樣本間的歐氏距離。計算公式為:
(2)確定最近鄰參數k,找出距離待分類樣本最近的k個近鄰,假設集合Dm={(xmt,cmt)|t=1,…,k},其中xmt表示待分類樣本xm的第t(1≤t≤k)個最近鄰樣本,cmt為xmt所對應的類別。
(3)根據Dm集合中計算得到的k個最鄰近樣本的類別來進投票,假設投票結果為v=[v1,…,vi,…,vm],最終將投票結果按照少數服從多數的原則進行決策,決策規則為:
將降維后的特征數據作為KNN網絡模型的輸入,輸出結果為診斷故障的類型,KNN算法對經過t-SNE降維后的故障特征從空間緊鄰關系上進行分類,將小波包分解后各故障信號在各個頻帶上不同的能量分布特征轉換為空間的近鄰,將8個頻帶上的數據降維到三維空間上,能夠提升故障診斷的效率。圖5是對故障特征降維后的可視化圖形,從圖形中可以看出,幾種故障類型具有空間上的近鄰關系,將各個故障類型繪制同一個三維坐標系下,能夠很明顯地觀察出各個故障類型具有很好的聚類結果,因此,可以將KNN算法來完成對故障的診斷和分類。改變k值大小,故障分類的準確率也會隨之變化,通過調節KNN分類模型的k值來確定模型的最優結果。
3 故障診斷模型的構建與實現
本文對波浪傳感器采集到的青島小麥島附近海域的正常波浪數據和部分故障數據進行故障模擬處理,根據波浪傳感器各類故障的特征,首先將正常數據加入模擬的噪聲數據,如當傳感器發生漂移偏差時,測量的結果相較于正常數據會出現偏大或者偏小的情況;周期性干擾主要是指波浪傳感器受到了50 Hz電源或浮標平臺搭載的其他設備的干擾。傳感器的測量信號和真實信號之間始終存在著一定范圍內的擾動;開路故障則用波浪傳感器測量范圍的最大值來描述;短路故障因為沒有測量值,這里用最小值零來表示。其次根據傳感器的采樣頻率,對800~1 000條采樣結果進行3層小波包分解,將分解后的各個頻帶上的能量進行標準化處理,然后將得到的8維故障特征通過t-SNE降維處理,將得到的8維特征數據降維至3維,最后將得到的三維數據劃分為訓練集和測試集,輸入到最近鄰網絡中通過空間的近鄰關系進行故障的分類。
本文采用k折交叉驗證的方法對訓練數據和驗證數據進行劃分,將訓練數據中的數據分出一部分作為驗證數據,用來評估模型的訓練效果,即將原始數據分成k組,將每個子集的數據都循環地做一次驗證集,其余(k-1)組數據做訓練集。這樣就會得到k個模型,在計算總體誤差時,就是對每一個模型的均方誤差求加權和。選用交叉驗證的方法來劃分訓練集和驗證集有效地利用了有限的數據,并且評估結果也能夠更接近模型在測試集上的分類結果,可以作為模型優化的指標來進行使用。圖6是故障診斷的模型圖。
4 仿真實驗與分析
本文通過對波浪傳感器進行故障診斷來驗證該方法的有效性。從模擬的故障信號中共提取出189組故障特征數據,其中每種狀態下的特征數據27組,利用k折交叉驗證對數據進行測試集和驗證集的劃分。
4.1 故障診斷準確率對比
當最近鄰數目k=5、6時,在使用t-SNE降維和不使用t-SNE降維的情況下k折數取不同值時分類得準確率對比。
從圖7對比實驗中可以發現,降維之后再利用KNN網絡進行分類,能夠很好地保證數據分類的準確性,隨著k折數的增加,降維后的準確率能夠達到降維前。
圖8是波浪傳感器7中狀態識別結果的混淆矩陣,其中每種狀態有27 組樣本數據。從圖9中可以觀察到,正常狀態下的27組數據,有一組數據被判斷為開路故障,兩組數據被判斷為周期性干擾故障,6種故障的診斷結果也可直觀地從圖中分辨出來。該模型對于脈沖故障、短路故障和周期性干擾故障的診斷效果較好。對周期性干擾的診斷相對于其他故障類型較差,容易將正常狀態下的數據判斷為周期性干擾,因為周期性干擾在較弱的情況下,對于波浪數據而言很難分辨和檢測。總體上,當在5折交叉驗證下,KNN分類網絡的k近鄰數目為6時,分類的準確率達到了91.89%。當在6折交叉驗證下,KNN分類網絡的最近鄰數目為6時,分類的準確率達到了93.55%。
4.2 故障診斷模型時間效率對比
本文除了從降維之后對故障分類的準確率角度進行研究之外,還對降維之后程序的運行時間進行了對比,經過對比實驗發現,降維之后程序的運行時間明顯低于降維之前,并且當數據量越大時,降維后運行低于降維前運行時間的現象就越明顯。由于海洋環境復雜,傳感器的故障類型也在隨著檢測環境的變化而改變,對傳感器的故障類型的診斷時間太長,可能會導致傳感器同時存在兩種或多種故障類型,很難具體確定故障的種類,導致對傳感器的維護成本上升。圖9是當k近鄰數取5交叉驗證的k折數取不同值時,程序運行時間的對比情況。
經過從時間和準確率這兩個方面的對比,發現降維之后再利用KNN網絡進行分類時,不僅能夠保持降維之前的準確率,而且降維之后程序的運行時間也相對縮短,特別是當數據量較大時,程序運行時間縮短的現象也會更加明顯。通過將復雜的訓練過程轉換為空間上的近鄰關系來判斷故障的類型,減少了復雜的計算過程。同時通過對高維數據進行降維處理,減少了故障診斷的時間,提高了對故障的檢測速度,能夠更及時地發現傳感器出現的故障類型,為傳感器的維修和更換提供有力參考。
5 結論
本文主要研究了將t-SNE算法用于故障特征數據的降維,對降維后的數據再利用KNN分類網絡進行故障分類,發現降維后的數據除了能保持分類的準確性之外,相對于降維前,還能夠縮短程序運行的時間。特別是當數據量較大時,所花費的時間成本明顯低于降維之前的高維數據。KNN算法雖然原理簡單,但在分類任務中有著很好的表現,加之t-SNE降維使得相似的樣本能夠聚集在一起,而差異大的樣本能夠有效地分開,避免了其他降維方法樣本分布擁擠、邊界不明顯的缺點。本文提出一種基于小波包分解、降維與k-近鄰算法分類網絡的波浪傳感器故障診斷方法。首先將原始信號進行標準差標準化處理,然后對標準化后的數據進行小波包3層分解得到8個頻帶上的特征值,歸一化處理后將其作為特征向量,采用t-SNE算法對特征數據進行降維,最后將降維后的特征數據輸入到KNN分類網絡中進行故障分類檢測。相較于其他故障診斷方法,本文采用小波包具有更好的特征提取能力,并且通過對故障特征降維后的空間近鄰關系來進行故障診斷和分類,一定程度上解決了現有傳感器故障診斷方法診斷的時間跨度長,準確率較低且自適應能力弱的問題。本文采用的數據來自波浪騎士浮標上搭載的加速度式波浪傳感器,根據其觀測到的正常信號對故障信號進行模擬,并采用模擬的故障數據進行仿真實驗。實驗結果表明,本文提出的方法能夠提高波浪傳感器故障診斷的準確度和診斷速度,對正常狀態和6種故障狀態下的診斷準確率達到了93.55%。
本研究的不足之處在于,當傳感器同時存在兩種或兩種以上的故障時,無法通過此算法完全診斷出所有故障,只能根據預測值判斷其最接近的真實值,劃分為集中同時出現的故障中的一種故障類型。但可以通過縮短提取故障特征的時間跨度,通過一段時間的診斷結果,判斷該傳感器可能出現的多種故障。
參考文獻:
[1]葉小芬, 王起梁, 祝敏, 等. 基于小波包能量和層次熵的D-S證據理論的軸承故障診斷技術[J]. 失效分析與預防, 2021, 16(3):209-214. DOI: 10.3969/j.issn.1673-6214.2021.03.010.
[2]黃芝玲, 陳金峰, 曾永華, 等. 基于小波包模糊熵與RBF神經網絡的滾動軸承故障診斷[J]. 廣東石油化工學院學報, 2021, 31(3):26-29. DOI: 10.3969/j.issn.2095-2562.2021.03.007.
[3]馮志剛, 王祁, 徐濤, 等. 基于小波包和支持向量機的傳感器故障診斷方法[J]. 南京理工大學學報(自然科學版), 2008,32(5): 609-614. DOI: 10.14177/j.cnki.32-1397n.2008.05.006.
[4]HE B, ZHANG J, CHEN T, et al. Penalized reconstruction-based multivariate contribution analysis for fault isolation[J]. Industrial amp; Engineering Chemistry Research, 2013, 52(23): 7784-7794. DOI: 10.1021/ie303225a.
[5]ZHANG H Q, YAN Y. A wavelet-based approach to abrupt fault detection and diagnosis of sensors[J]. IEEE Transactions on Instrumentation and Measurement, 2001, 50(5): 1389-1396. DOI: 10.1109/19.963215.
[6]錢昭勇, 曹裕華, 張雷, 等. 基于雙樹復小波包及SVM的齒輪故障診斷[J]. 指揮與控制學報, 2021, 7(4):415-423. DOI: 10.3969/j.issn.2096-0204.2021.04.0415.
[7]朱興統. 基于小波包分解和K最近鄰算法的軸承故障診斷方法[J]. 裝備制造技術, 2020(2):24-27.
[8]郭偉超, 趙懷山, 李成, 等. 基于小波包能量譜與主成分分析的軸承故障特征增強診斷方法[J]. 兵工學報, 2019, 40(11): 2370-2377. DOI: 10.3969/j.issn.1000-1093.2019.11.022.
[9]姚雪曼. 基于流形學習的降維技術的研究與實現[D].北京: 北京郵電大學, 2017.
[10]劉衛芳. 面向高維復雜數據的降維算法研究[D].西安: 西安電子科技大學, 2014.
[11]安煌, 趙榮珍. 轉子故障數據集降維的CKLPMDP算法研究[J]. 振動與沖擊, 2021, 40(9): 37-42. DOI: 10.13465/j.cnki.jvs.2021.09.005.
[12]邊榮正, 張鑒, 周亮, 等. 面向復雜多流形高維數據的t-SNE降維方法[J]. 計算機輔助設計與圖形學學報, 2021, 33(11): 1746-1754.
[13]丁丹鳳. 空氣檢測設備中KNN算法的研究與實現[D].上海: 上海應用技術大學, 2020.