張朋坤 張 獻 殷 釗 王 萍
(1.92866部隊 青島 266100)(2.海軍工程大學電子工程學院 武漢 400333)(3.92677部隊 大連 116000)
聲納在海洋中的探測能力很大程度上受海洋聲學環(huán)境的影響。同一聲納在不同海洋聲場中的作用距離可相差數(shù)倍。海洋聲速剖面是研究海洋聲場環(huán)境的重要工具,是反映海洋聲速隨深度變化的函數(shù)關系。能否獲取準確的海洋聲速剖面對于發(fā)揮聲納最大探測能力具有十分重要的戰(zhàn)術意義。目前聲納主要依靠聲速探頭采集海洋聲場信息。聲速探頭可實時同步采集海水聲速與深度數(shù)據(jù),通過后臺解算即可繪制出海洋聲速剖面。
近年來,隨著實戰(zhàn)化演訓要求的不斷提高,聲速探頭故障率逐年遞增。然而目前聲速探頭的故障診斷手段還比較單一,主要依靠裝備保障人員憑借自身多年維修經(jīng)驗進行故障定位,不但要求維修人員具有較高的專業(yè)技術能力和深厚的維修經(jīng)驗積累,而且人工診斷效率低、精度差。此外,雖然用戶已經(jīng)在實際裝備日常使用維護中積累了大量聲速探頭實裝數(shù)據(jù)記錄,但卻缺乏從這些隨機的、有噪聲的、模糊的海量數(shù)據(jù)中提取隱含故障規(guī)律的有效手段。針對這一現(xiàn)狀,本文提出一種基于決策樹算法的聲速探頭故障診斷方法,提高了故障診斷效率與精度,為用戶進行聲速探頭故障診斷提供了一定的決策支撐。
決策樹算法是數(shù)據(jù)挖掘領域中經(jīng)典的分類算法,目前已廣泛應用于醫(yī)學診斷、教育數(shù)據(jù)分析、金融分析等領域。在構建決策樹進行分類前,首先要從數(shù)據(jù)集中選取建樹參數(shù)——特征屬性與類屬性,然后再利用樹的結構將數(shù)據(jù)集進行分類。決策樹分類是從根節(jié)點開始,按照決策樹的分支結構對數(shù)據(jù)集中的特征屬性進行測試,根據(jù)不同特征屬性的取值將數(shù)據(jù)集分成不同的數(shù)據(jù)樣本子集,每個數(shù)據(jù)樣本子集構成一子節(jié)點。最終生成的決策樹每個葉節(jié)點對應一個分類,即為類屬性。圖1 給出一個經(jīng)典決策樹的例子。
圖1 經(jīng)典決策樹案例
其中A、B為數(shù)據(jù)集的兩個特征屬性,最頂層的節(jié)點A 稱為根節(jié)點,節(jié)點a1、a2、b1、b2 表示特征屬性的不同取值,C1 和C2 為葉節(jié)點,代表數(shù)據(jù)集的兩個類屬性。依據(jù)該決策樹結構,可得出分類準則,例如,當屬性A 的取值為a1,且屬性B 的取值為b1,那么該數(shù)據(jù)屬于C1類。
決策樹與其他機器學習分類方法相比,具有以下幾個優(yōu)勢:
1)使用決策樹進行分類,不需要使用者對專業(yè)領域有全面深入的研究,不需要接受訓練數(shù)據(jù)集外的知識;2)決策樹分類效率高,尤其適用于訓練集數(shù)據(jù)量較大的情況;3)決策樹分類模型結構直觀、形象,便于大多數(shù)人的理解;4)決策樹分類具有較高的分類準確率。
當前最具影響力的決策樹算法是Quinlan 于1986年提出了著名的ID3 算法[1]。ID3 算法采用基于信息熵定義的信息增益來選擇內(nèi)節(jié)點的最好屬性,運算方法簡單,但其無法對連續(xù)值進行處理,且選擇標準容易傾向于取值較多的屬性。Quinlan 于1993年又提出C4.5算法[2],采用信息增益率作為最優(yōu)屬性的選擇標準,并在ID3 算法基礎上增加了對連續(xù)屬性的離散化處理以及對缺省值的處理。此后又開發(fā)出C5.0 算法,在分類規(guī)則的生成速度上進行了一系列優(yōu)化。
CART算法是由Breiman等于1984年提出來的一種數(shù)據(jù)開發(fā)和預測算法,是一種產(chǎn)生二叉樹的分類技術,既可用于回歸問題也可用于分類問題。特點是既可以處理連續(xù)型數(shù)據(jù),也可處理順序或無序的離散型數(shù)據(jù)。CART 算法選擇具有最小Gini 系數(shù)值的屬性作為分裂屬性[3~7]。目前已有國內(nèi)學者應用CART 算法在航空電子、高鐵軌道、地質勘探等領域進行故障診斷方面的探索與研究,取得良好的應用效果[8~11]。因此本文主要研究CART 算法在聲速探頭故障診斷中的應用。
聲速探頭主要由聲速探測模塊以及深度探測模塊組成,能夠利用聲速探測模塊與深度探測模塊實時獲取艦船所在海區(qū)海洋聲速與深度信息,并通過數(shù)據(jù)解算得到海洋聲速剖面信息。聲速探測模塊可沿固定傳播路徑向海水中發(fā)射循環(huán)脈沖信號,并記錄信號到達時間,通過多次測算得到信號平均傳播延時,利用聲速公式:
在傳播路徑已知條件下,計算得到海水聲速。深度探測模塊通過內(nèi)置壓力傳感器,測量得到當前位置海水壓力,通過該海區(qū)海水深度-壓力關系,測算得到當前深度數(shù)據(jù)。在得到聲速與深度數(shù)據(jù)后,聲速探頭可依據(jù)兩者對應關系繪制海洋聲速剖面。
聲速探頭常見故障主要包含以下三種:深度模塊故障、聲速模塊故障以及供電電源故障。由于聲速探頭安裝在艦船艙外,當艦船起浮時,深度傳感器與聲速傳感器直接暴露在空氣中;當艦船下潛時,深度傳感器與聲速傳感器直接接觸海水。無論是暴露在空氣中,受到陽光暴曬、冰雹等自然天氣的影響,還是浸泡在海水中受到海水腐蝕,惡劣的使用環(huán)境均會對聲速探頭中各種金屬與橡膠元件造成損壞,致使深度模塊、聲速模塊常發(fā)生故障,無法正常采集數(shù)據(jù)。此外,聲速探頭需要其他聲納裝備通過分壓、整流為其提供額定工作電壓。由于受供電電路及艦船整體供電系統(tǒng)的影響,導致聲速探頭經(jīng)常出現(xiàn)因供電電壓不穩(wěn)而無法正常工作的情況。
本文以某艦船自2020年以來某型聲速探頭日常維護及維修數(shù)據(jù)為例,分別運用決策樹算法與人工判決對數(shù)據(jù)集內(nèi)案例進行故障診斷,并將診斷結果進行比較分析。
通過到一線部隊駐地進行實地走訪調研,并查閱某單位某艦船聲速探頭2020-2022年三年日常維護保養(yǎng)與故障修理記錄,整理得到某型聲速探頭2020-2022年各項特征屬性原始數(shù)據(jù)集。然而,通過分析發(fā)現(xiàn),原始數(shù)據(jù)集中包含一定數(shù)量的冗余特征屬性。這些冗余特征屬性不僅不能對故障分類起到有效作用,相反還會在真實分類結果中產(chǎn)生噪聲干擾,影響分類準確度。此外還會加重機器存儲與運算方面的負擔。因此需要對原始數(shù)據(jù)集內(nèi)特征屬性進行約簡與壓縮。經(jīng)過歸納篩選,最終得到電壓信號幅值、深度信號頻率以及聲速信號頻率這三種主要影響聲速探頭工作狀態(tài)的特征屬性。類屬性是最終需要對數(shù)據(jù)樣本進行的分類劃分。結合聲速探頭常見故障分析結果,將聲速探頭類屬性劃分為四種:工作正常、電源故障、深度模塊故障與聲速模塊故障。
本文采用的決策樹算法是在Anaconda 軟件平臺上,基于Python3語言和Scikit-learn庫實現(xiàn)的,采用的操作系統(tǒng)為Win7,CPU 采用Intel Core i5-337U 1.8GHz,內(nèi)存為8G 存儲,128G 固態(tài)硬盤。Anaconda 是一個免費開源的Python 和R 語言的發(fā)行版本,用于計算科學(數(shù)據(jù)科學、機器學習、大數(shù)據(jù)處理和預測分析),Anaconda 致力于簡化包管理和部署,涵蓋了數(shù)據(jù)科學領域常見的Python 庫,目前超過1200 萬人使用Anaconda 各種發(fā)行版本。Scikit-learn 是一個Python 第三方提供的非常強力的機器學習庫,它集成了數(shù)據(jù)預處理、數(shù)據(jù)特征選擇、數(shù)據(jù)特征降維、分類、回歸、聚類模型、模型評估等非常全面的各類算法[12]。
通過分析發(fā)現(xiàn),某型聲速探頭2020-2022年原始數(shù)據(jù)集內(nèi)的數(shù)據(jù)記錄存在一定的冗余、缺省、有噪聲等數(shù)據(jù)缺陷。為避免在數(shù)據(jù)分析過程報錯,提高決策樹分類精度,本文對原始數(shù)據(jù)庫集中的數(shù)據(jù)進行去冗余,數(shù)據(jù)離散化,補齊缺省值處理,并采用min-max 標準,對數(shù)據(jù)進行歸一化處理,標準化公式如下:
其中,x 為原始數(shù)據(jù),min 為該項特征屬性的最小值,max為該項特征屬性的最大值,x*為標準化處理后得到的數(shù)據(jù)。最終得到處理后的數(shù)據(jù)集如表1所示。
表1 數(shù)據(jù)預處理后的數(shù)據(jù)集
通過調用Anaconda 軟件中預裝的sklearn 庫中的分類函數(shù)DecisionTreeClassifier,對表2 中的傳感器數(shù)據(jù)集進行機器學習,偽代碼如下所示:
輸入:傳感器數(shù)據(jù)集樣本
輸出:一棵決策樹
方法:{
(1)調用各種工具庫及函數(shù),例如:from sklearn import tree,import matplotlib.pyplot as plt等;
(2)調用數(shù)據(jù)集樣本,并進行格式轉換;
(3)將數(shù)據(jù)樣本分割為訓練樣本*_train 與檢測樣本*_test;
(4)選用基尼系數(shù)作為選擇標準,創(chuàng)建CART決策樹;
(5)使用訓練樣本訓練模型;
(6)對訓練后的模型進行預測與評估;
(7)決策樹圖形化顯示;
(8)創(chuàng)建IF-Then分類規(guī)則。}
圖2 為機器通過學習訓練樣本得到的決策樹圖形化結果,并將該決策樹在檢測樣本上進行驗證,分類準確率達100%,證明該決策樹結構能夠對給定的聲速探頭原始數(shù)據(jù)集進行有效、準確分類。從根節(jié)點開始遍歷決策樹,可以得到以下分類規(guī)則:
圖2 傳感器故障診斷決策樹
1)如果歸一化后聲速信號頻率值≤0.903,且歸一化后電壓幅度值≤0.899,那么該案例屬于類別1,可判斷為電源故障;如果電壓幅度值>0.899,則此案例屬于類別3,可判斷為聲速模塊故障;
2)如果歸一化后聲速信號頻率值≥0.903,且歸一化后深度信號頻率值≤0.899,那么該案例屬于類別2,即深度模塊故障;如果0.899<深度信號頻率值≤0.971,則此例屬于類別0,即工作正常;如果深度信號頻率值>0.971,那么此例屬于類別3,可判斷為深度模塊故障。
為進一步驗證分類規(guī)則的準確性與擴展性,將該分類規(guī)則應用到8 組最新得到的聲速探頭故障案例中,并將分類結果與專業(yè)技術人員的人工判故結果進行比較,結果顯示依據(jù)分類規(guī)則得到8 組分類結果與專業(yè)技術人員人工判決結果一致,且符合裝備實際故障情況,表明該分類準則與技術人員在實際裝備保障中形成的主觀維修經(jīng)驗吻合得很好,證明決策樹算法具有較高的分類精度,有效地提高分類效率。
本文在簡要論述決策樹算法理論的基礎上,結合聲速探頭原理與常見故障分析,設計了一種基于決策樹算法的聲速探頭故障診斷方法,并利用Anaconda 數(shù)據(jù)軟件在實裝案例數(shù)據(jù)上進行試驗與驗證。試驗結果表明決策樹算法極大提高聲速探頭故障診斷效率,具有較高的分類精度,可為用戶進行聲速探頭故障修理提供一定的決策支撐,提升用戶自修能力,在今后裝備保障工作中具有良好的應用前景與推廣價值。