楊 慧 毛好好 霍緯綱
(中國(guó)民航大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 天津 300300)
QAR是飛機(jī)標(biāo)準(zhǔn)配置組件,真實(shí)地記錄了飛行過程中的各種參數(shù)。隨著民航運(yùn)輸業(yè)整體規(guī)模的擴(kuò)大, 航空安全更加引人關(guān)注。近年來隨著技術(shù)的不斷進(jìn)步,以QAR為代表的飛行數(shù)據(jù)記錄設(shè)備不斷更新升級(jí),數(shù)據(jù)采集數(shù)量與質(zhì)量都有很大提高,日益引起各航空運(yùn)營(yíng)商的高度重視[1]。針對(duì)QAR數(shù)據(jù)的研究,目前常用的方法是序列相似性匹配、小波變換、決策樹以及關(guān)聯(lián)規(guī)則等。如之前所做的QAR數(shù)據(jù)多維子序列的相似性搜索,基于 FP-Tree 的 QAR 數(shù)據(jù)故障檢測(cè)研究等。但是這些方法主要關(guān)注在異常數(shù)據(jù)的檢測(cè)與診斷,而忽略了故障或異常發(fā)生前后的狀態(tài)。
隱馬爾可夫模型(HMM)作為動(dòng)態(tài)時(shí)間序列統(tǒng)計(jì)模型,具有嚴(yán)謹(jǐn)?shù)臄?shù)據(jù)結(jié)構(gòu)和可靠的計(jì)算性能,早期成為語音識(shí)別的主流技術(shù)[2]。近幾十年來, 隱馬爾科夫模型被廣泛地應(yīng)用于各領(lǐng)域中,比如語音識(shí)別、行為識(shí)別、 生物學(xué)、 控制和經(jīng)濟(jì)領(lǐng)域等。黃曉彬等[3]對(duì)中國(guó)股市進(jìn)行信息探測(cè), 使用貝葉斯和馬爾科夫鏈蒙特卡洛的方法,驗(yàn)證了該模型對(duì)市場(chǎng)信息的識(shí)別能力較強(qiáng)。隨著研究的深入,國(guó)內(nèi)外已開始把 HMM 方法引入到狀態(tài)監(jiān)測(cè)和故障診斷領(lǐng)域[4]。于天劍等[5]的HMM在電機(jī)軸承上的故障診斷,利用HMM方法與ANFIS方法相結(jié)合的情況來對(duì)故障問題進(jìn)行建模,在頻域內(nèi)提取特征值,用ACC算法進(jìn)行故障分類、最后用隱馬爾可夫模型方法進(jìn)行了故障預(yù)測(cè)。柳姣姣等的基于隱馬爾科夫模型的時(shí)空序列預(yù)測(cè)方法[6],提出了基于時(shí)空密度聚類的隱馬爾科夫模型。本文提出一種基于聚類的HMM模型,針對(duì)QAR數(shù)據(jù)特點(diǎn),分析發(fā)生故障或異常時(shí)QAR數(shù)據(jù)中不同屬性的變化特點(diǎn),提取主要影響屬性進(jìn)行分析。通過對(duì)其聚類進(jìn)行數(shù)據(jù)離散化,并將其分為多個(gè)狀態(tài),對(duì)故障或異常發(fā)生的過程進(jìn)行HMM建模。以狀態(tài)序列的形式描述故障或異常發(fā)生的過程,以飛機(jī)空中顛簸故障為例,建立空中顛簸故障HMM模型,并檢驗(yàn)了該模型的有效性。
本文的目標(biāo)是分析QAR數(shù)據(jù),由于QAR數(shù)據(jù)是從傳感器獲取的流數(shù)據(jù),其采樣頻率一般為每秒采樣一次,數(shù)據(jù)量非常巨大。
QAR數(shù)據(jù)存在著以下幾個(gè)特點(diǎn):(1) 數(shù)據(jù)量巨大;(2) 時(shí)間性很強(qiáng);(3) 參數(shù)種類眾多;(4) 干擾多,隨機(jī)性強(qiáng),具有很多的不確定因素;(5) 需要很強(qiáng)的經(jīng)驗(yàn)知識(shí)。
一個(gè)HMM即為五元組λ={N,M,A,B,π},N為模型狀態(tài)數(shù),M為觀察狀態(tài)數(shù)。為了簡(jiǎn)便,常記為三元組λ={A,B,π}來表示一個(gè)隱馬爾可夫模型。
隱馬爾可夫模型(HMM)通常解決三個(gè)基本問題,針對(duì)三個(gè)問題并提出相對(duì)應(yīng)的解決算法:
問題一:評(píng)估問題,即某個(gè)模型下觀察值序列的概率計(jì)算問題。
問題二:解碼問題,即隱馬爾可夫模型的最優(yōu)狀態(tài)序列問題。
問題三:學(xué)習(xí)問題,即隱馬爾可夫模型各種參數(shù)的訓(xùn)練問題。
HMM能夠?qū)Ψ瞧椒€(wěn)信號(hào)變化的規(guī)律進(jìn)行統(tǒng)計(jì)并建立參數(shù)化模型。QAR為時(shí)序數(shù)據(jù),在飛機(jī)從正常到發(fā)生故障的過程中, 每個(gè)階段的QAR數(shù)據(jù)在不斷地發(fā)生變化。若對(duì)QAR的這些觀測(cè)數(shù)據(jù)進(jìn)行處理,通過學(xué)習(xí)訓(xùn)練出λ={A,B,π},用 HMM來統(tǒng)計(jì)性地描述這些QAR數(shù)據(jù)的改變,以狀態(tài)序列的形式描述故障的演化過程,并通過解碼,得到最優(yōu)的狀態(tài)趨勢(shì)序列,可以更好地識(shí)別飛機(jī)的狀態(tài)趨勢(shì)。
以空中顛簸故障為例,空中顛簸是威脅飛行安全的故障之一,而且空中顛簸的發(fā)生具有隨機(jī)性,每次顛簸的強(qiáng)度也具有隨機(jī)性??罩蓄嶔び绊慟AR數(shù)據(jù)不斷發(fā)生變化,若把空中顛簸數(shù)據(jù)的狀態(tài)趨勢(shì)分成三個(gè)等級(jí):嚴(yán)重顛簸、輕微顛簸和正常。由于空中顛簸故障發(fā)生在飛機(jī)飛行途中,地面人員無法直接得知顛簸程度,故可將空中顛簸故障發(fā)生時(shí)的狀態(tài)趨勢(shì)作為隱馬爾可夫模型的隱狀態(tài)??罩蓄嶔す收习l(fā)生時(shí),QAR數(shù)據(jù)的多個(gè)屬性值受到影響而發(fā)生異常,QAR數(shù)據(jù)是可以直接觀測(cè)到的。故可以作為隱馬爾可夫模型的觀測(cè)值,通過分析QAR數(shù)據(jù),也就是分析觀測(cè)值,訓(xùn)練得出隱馬爾可夫模型參數(shù),即隱馬爾可夫模型的學(xué)習(xí)問題。狀態(tài)轉(zhuǎn)換如圖1所示。
圖1 狀態(tài)轉(zhuǎn)換圖
訓(xùn)練得到空中顛簸故障的隱馬爾可夫模型參數(shù)后,給定一個(gè)新的QAR時(shí)間序列,即可推測(cè)序列中數(shù)據(jù)所對(duì)應(yīng)的最優(yōu)的空中顛簸狀態(tài)趨勢(shì),進(jìn)行狀態(tài)趨勢(shì)分析,即隱馬爾可夫模型的解碼問題。但是由上面對(duì)QAR數(shù)據(jù)特點(diǎn)可知,QAR數(shù)據(jù)是高維數(shù)據(jù),數(shù)據(jù)量大,且不同屬性的數(shù)據(jù)類型也不相同,同一屬性的觀測(cè)值繁多。而隱馬爾可夫模型的觀測(cè)值的狀態(tài)是有限的,故現(xiàn)在面臨的問題是如何對(duì)QAR進(jìn)行處理,使其符合隱馬爾可夫模型中對(duì)觀測(cè)值的要求。
通過以上分析可知,由于QAR數(shù)據(jù)具有高維度、數(shù)據(jù)量龐大和數(shù)據(jù)復(fù)雜等特點(diǎn),想要建立空中顛簸故障的隱馬爾可夫模型,需對(duì)QAR數(shù)據(jù)進(jìn)行處理,使其離散化為有限個(gè)狀態(tài)值,從而符合隱馬爾可夫模型對(duì)觀測(cè)值的要求。本文選擇用聚類算法對(duì)其QAR數(shù)據(jù)進(jìn)行處理,但是直接對(duì)原始數(shù)據(jù)聚類,效率太低,在聚類之前先對(duì)QAR數(shù)據(jù)進(jìn)行分段線性表示。然后利用改進(jìn)的廣度優(yōu)先鄰居搜索聚類算法對(duì)QAR數(shù)據(jù)進(jìn)行聚類,根據(jù)聚類結(jié)果對(duì)數(shù)據(jù)進(jìn)行離散化。最后利用訓(xùn)練數(shù)據(jù)得到隱馬爾科夫模型參數(shù)。
分段線性表示有數(shù)據(jù)壓縮和過濾的作用。時(shí)間序列的線性分段表示方法很多,各類時(shí)間序列的特征不同,因此,分段表示及分析的方法也就不同。其次,我們對(duì)各類時(shí)間序列分析的目的也不相同,針對(duì)QAR數(shù)據(jù)的分析,因?yàn)檎G闆r的時(shí)間序列是平穩(wěn)波動(dòng)、有規(guī)律的,但發(fā)生異?;蚬收蠒r(shí)就會(huì)出現(xiàn)突然的、零星的尖峰,這些異常則是我們關(guān)注的重點(diǎn)。針對(duì)眾多時(shí)間序列的分段線性算法,選擇合適QAR數(shù)據(jù)的分段算法,才能更好表示數(shù)據(jù)。選擇合適的時(shí)間序列分段表示方法,不僅可以壓縮飛行參數(shù)的數(shù)據(jù)量,同時(shí)還可以有效剔除原始參數(shù)序列中的噪聲干擾。
廖俊等[7]提出的基于趨勢(shì)轉(zhuǎn)折點(diǎn)的分段線性表示,是只通過計(jì)算某個(gè)數(shù)據(jù)與前后兩個(gè)數(shù)據(jù)的差值或距離來判斷趨勢(shì)點(diǎn)或特征點(diǎn),都是局部算法,其精度和壓縮比都不能很好地平衡。
如圖2所示,在第400數(shù)據(jù)點(diǎn)附近,當(dāng)出現(xiàn)一段數(shù)據(jù)連續(xù)上升或連續(xù)下降,且每次上升和下降的幅度較小時(shí),存在的轉(zhuǎn)折點(diǎn)或特征點(diǎn)無法識(shí)別,故不適合QAR數(shù)據(jù)。
圖2 基于特征點(diǎn)的分段線性表示
自底向上分段算法,設(shè)置擬合誤差閾值α,首先將將N個(gè)待分段的時(shí)間序列數(shù)據(jù)點(diǎn)兩兩連接 ,劃分成不重合的N/2個(gè)初始分段即劃分為相鄰點(diǎn)的短序列,此時(shí)的擬合誤差為0。然后將相鄰兩個(gè)短序列連接起來成為一個(gè)較長(zhǎng)序列 ,再次計(jì)算中間所有點(diǎn)的擬合誤差,找到誤差最小且小于閾值α的分段即為第二個(gè)分段。依此方式循環(huán),從中選擇擬合代價(jià)最小的 ,如果該最小值小于分段閾值α, 則合并對(duì)應(yīng)的兩個(gè)相鄰段, 直到所有分段的擬合誤差都小于閾值α,分段完成。
但是自底向上算法進(jìn)行分段時(shí),設(shè)定誤差閾值,雖然可以保證分段的精確度,但是所得的分段數(shù)無法確定,不利于進(jìn)一步的分析。故本文借鑒固定分段數(shù)的思想,提出基于固定分段數(shù)的自底向上(BU)線性分段算法。
算法的主要思想:設(shè)置最大分段數(shù)N,擬合誤差閾值e,進(jìn)行自底向上的線性分段時(shí),依次遍歷,分別計(jì)算兩點(diǎn)中間的所有點(diǎn)與該兩點(diǎn)之間的最小二乘擬合線段的誤差平方和,找到誤差平方和最小且小于誤差閾值e的線段,即為新的一個(gè)分段,用M記錄已經(jīng)得到的分段數(shù),當(dāng)M大于N時(shí),停止分段。這樣既保證了分段精度,也避免了由于精度值設(shè)置太大出現(xiàn)太多分段的現(xiàn)象,而且還可以根據(jù)實(shí)際情況的需要來確定分段數(shù)目。
擬合誤差的平方和公式為:
Err=∑(y-y′)2
(1)
式中:y和y′分別表示兩個(gè)分段點(diǎn)之間在同一時(shí)間點(diǎn)tc上的原始時(shí)間序列值和擬合值。其中擬合值是在兩個(gè)分段點(diǎn)連接起來的線段上tc時(shí)刻對(duì)應(yīng)的值,計(jì)算公式如下(其中k代表線段的斜率):
k=(y1-y2)/(t1-t2)
(2)
y′=y1-k×t1+k×tc
(3)
在QAR數(shù)據(jù)中,參數(shù)眾多,下面主要以06AccelVert屬性的數(shù)據(jù)作為實(shí)驗(yàn)數(shù)據(jù),具體說明實(shí)驗(yàn)結(jié)果。對(duì)數(shù)據(jù)進(jìn)行預(yù)處理,提取所需要的巡航階段QAR數(shù)據(jù)。采用上文提到的基于固定分段數(shù)的自底向上線性分段算法對(duì)1 000條飛機(jī)巡航階段數(shù)據(jù)進(jìn)行線性分段。規(guī)定分段的擬合誤差閾值為0.5,分段數(shù)為20,分段數(shù)達(dá)到20時(shí),停止分段。
圖3中x軸表示時(shí)間,y軸表示當(dāng)前時(shí)間的飛機(jī)06AccelVert屬性的取值。
圖3 基于固定分段數(shù)的BU分段結(jié)果圖(長(zhǎng)度1 000)
時(shí)間序列分段后,需要選擇合適的模式來表示數(shù)據(jù),不同的表示方式對(duì)后面的聚類也會(huì)有所影響。在大多數(shù)的線性分段算法方法中,常用線段平均值描述線段,也有其他的描述方法。章登義等[9]用斜率和長(zhǎng)度描述線段?;谥匾c(diǎn)的飛機(jī)發(fā)動(dòng)機(jī)數(shù)據(jù)異常子序列檢測(cè)[9]中則是用中值描述線段。針對(duì)QAR數(shù)據(jù),分別用對(duì)兩種表示方法進(jìn)行分析。這兩種方法描述QAR數(shù)據(jù)都有一定的局限。
第一,QAR數(shù)據(jù)正常時(shí)波動(dòng)不大,波動(dòng)較大時(shí)也不會(huì)超過0.4,因此會(huì)出現(xiàn)很多斜率很接近,但長(zhǎng)度相差較大的線段所表示的狀態(tài)是相同的。而針對(duì)線段斜率和長(zhǎng)度進(jìn)行聚類時(shí),由于長(zhǎng)度差異較大,這些狀態(tài)相同的線段無法聚到一個(gè)類中。
第二,QAR數(shù)據(jù)異常時(shí),數(shù)據(jù)波動(dòng)較大,線段端點(diǎn)值較正常值差別很大,當(dāng)用線段中點(diǎn)值來表示數(shù)據(jù)時(shí),端點(diǎn)值被抵消,嚴(yán)重降低了異常數(shù)據(jù)與正常數(shù)據(jù)的差別。
根據(jù)以上的分析,使用線段的斜率和長(zhǎng)度,或者斜率與中值都無法很好地表示線段。故本文針對(duì)QAR數(shù)據(jù)的特點(diǎn)對(duì)線段的表示方法進(jìn)行改進(jìn),采用線段的斜率和線段端點(diǎn)值差的絕對(duì)值來表示。
圖4中x軸是分段后所的線段的序列,一共20條線段,y軸是線段的值,其中虛線表示線段的斜率,實(shí)線表示線段的兩端點(diǎn)的差的絕對(duì)值??梢钥闯觯甭首兓^大的線段兩端差的絕對(duì)值也較大,斜率變化小的線段兩端差的絕對(duì)值小,該方法能很好地表示數(shù)據(jù),更利于線段的聚類。
圖4 所得分段的斜率和端點(diǎn)差的絕對(duì)值
廣度優(yōu)先鄰居搜索聚類[10]即廣度優(yōu)先搜索某對(duì)象的直接鄰居和間接鄰居,將找到符合條件的所有鄰居合并聚成一類。接著重復(fù)該步驟完成所有對(duì)象的聚類。
算法的基本思路是從待聚類的對(duì)象中的任意對(duì)象開始,基于廣度優(yōu)先和距離參數(shù)r,依次搜索該對(duì)象的直接鄰居和間接鄰居,對(duì)找到的每一個(gè)對(duì)象進(jìn)行評(píng)估。如果符合設(shè)定的參數(shù)θ標(biāo)準(zhǔn) ,則將它們聚為一類。接著重復(fù)該步驟直到所有對(duì)象都已聚類完畢。
廣度優(yōu)先鄰居搜索聚類存在一定的局限性,因?yàn)椴捎孟嗨凭仃嚤硎緦?duì)象之間的相似性,當(dāng)數(shù)據(jù)量太大時(shí),算法效率降低。QAR數(shù)據(jù)是時(shí)序數(shù)據(jù),數(shù)據(jù)量巨大,針對(duì)這一局限性,對(duì)廣度優(yōu)先鄰居搜索聚類進(jìn)行改進(jìn)以更好地適用于QAR數(shù)據(jù)。
QAR數(shù)據(jù)為流數(shù)據(jù),即時(shí)序數(shù)據(jù)。關(guān)于時(shí)序數(shù)據(jù)的聚類,倪巍偉等[11]曾提出一種基于分區(qū)的思想,即首先按照時(shí)間順序?qū)?shù)據(jù)進(jìn)行分區(qū),然后對(duì)分區(qū)中的數(shù)據(jù)進(jìn)行聚類。本文對(duì)廣度優(yōu)先鄰居搜索聚類的算法進(jìn)行改進(jìn)時(shí),借鑒了分區(qū)的思想。即將QAR數(shù)據(jù)劃分為數(shù)據(jù)塊,每個(gè)數(shù)據(jù)塊包含相同數(shù)目的數(shù)據(jù)點(diǎn),分別對(duì)每個(gè)區(qū)塊內(nèi)的QAR數(shù)據(jù)進(jìn)行廣度優(yōu)先鄰居搜索聚類。得到每個(gè)區(qū)塊內(nèi)的聚類結(jié)果后,計(jì)算聚類中心,再對(duì)所得的聚類結(jié)果進(jìn)行廣度優(yōu)先鄰居搜索聚類,合并相似度高的類,得到最終的聚類結(jié)果。即二次廣度優(yōu)先鄰居搜索聚類。
定義1設(shè)QAR時(shí)序數(shù)據(jù)X(X1,X2,…,XN)長(zhǎng)度為N,數(shù)據(jù)劃分長(zhǎng)度為S,則數(shù)據(jù)被劃分成M塊。M=N/S。
用上文中提出的基于固定分段數(shù)的自底向上分段算法對(duì)每個(gè)區(qū)塊內(nèi)的數(shù)據(jù)進(jìn)行分段。
定義2設(shè)某區(qū)塊的分段數(shù)為c,用線段斜率和端點(diǎn)差的絕對(duì)值表示數(shù)據(jù),數(shù)據(jù)表示為((k1,d1),(k2,d2),…,(kc,dc))。
飛機(jī)發(fā)生故障時(shí)表現(xiàn)為QAR數(shù)據(jù)波動(dòng)異常,異常點(diǎn)往往是孤立點(diǎn)或者離群點(diǎn),與同類算法相比, 改進(jìn)的廣度優(yōu)先搜索聚類算法具有實(shí)現(xiàn)簡(jiǎn)單、復(fù)雜度低和容易設(shè)定最佳參數(shù)等優(yōu)點(diǎn), 并且能夠很好地識(shí)別孤立點(diǎn),發(fā)現(xiàn)任意形狀的聚類。就QAR數(shù)據(jù)特點(diǎn)而言,該算法合適對(duì)QAR數(shù)據(jù)進(jìn)行聚類。
QAR數(shù)據(jù)是一種時(shí)序序列,針對(duì)時(shí)間序列的數(shù)據(jù)挖掘,通常要將數(shù)據(jù)點(diǎn)密集的長(zhǎng)時(shí)間的序列轉(zhuǎn)換成相對(duì)稀疏的具有特定意義的符號(hào)序列,即轉(zhuǎn)化為相對(duì)簡(jiǎn)單且易于分析處理的形式[12]。采用二次廣度優(yōu)先鄰居搜索聚類算法對(duì)序列進(jìn)行聚類,分析聚類結(jié)果,給每類賦予相應(yīng)的類別標(biāo)簽,并用類標(biāo)簽代替原始數(shù)值序列,實(shí)現(xiàn)數(shù)據(jù)離散化。為隱馬爾科夫模型的建立做準(zhǔn)備。
QAR數(shù)據(jù)的隱馬爾可夫模型的模型建立大致分為以下三個(gè)階段:第一階段,線性分段,對(duì)QAR數(shù)據(jù)進(jìn)行壓縮;第二階段:聚類,得到聚類結(jié)果,分析聚類結(jié)果,實(shí)現(xiàn)數(shù)據(jù)符號(hào)化,得到觀測(cè)狀態(tài);第三階段:使用前向后向算法訓(xùn)練數(shù)據(jù)建立HMM模型。
具體實(shí)現(xiàn)步驟如下:
步驟1進(jìn)行QAR數(shù)據(jù)預(yù)處理,得到最初的原始數(shù)據(jù),并將其分為訓(xùn)練數(shù)據(jù)和測(cè)試數(shù)據(jù)。
步驟2對(duì)所有數(shù)據(jù)用基于固定分段數(shù)的自底向上分段算法進(jìn)行線性分段表示。
步驟3對(duì)分段后所得線段用二次廣度優(yōu)先鄰居聚類算法進(jìn)行聚類,得到結(jié)果,分析聚類結(jié)果,實(shí)現(xiàn)數(shù)據(jù)符號(hào)化,得到觀測(cè)狀態(tài),將數(shù)據(jù)序列都轉(zhuǎn)化為有限個(gè)觀測(cè)態(tài)的序列。
步驟4用MATLAB中estimate方法初始化模型參數(shù)λ0。
步驟5訓(xùn)練數(shù)據(jù)的序列作為離散隱馬爾科夫的觀測(cè)序列,用EM算法訓(xùn)練隱馬爾科夫模型參數(shù),即隱馬爾可夫模型的學(xué)習(xí)問題,獲得最優(yōu)模型λ。
實(shí)驗(yàn)工具選用MATLAB R2010a,實(shí)驗(yàn)平臺(tái)配置為2.13 GHz的CPU、6 GB內(nèi)存的PC,操作系統(tǒng)為Windows 7,實(shí)驗(yàn)數(shù)據(jù)某B737型飛機(jī)記錄的數(shù)據(jù)。
本文的QAR數(shù)據(jù),來自于已經(jīng)過QAR譯碼的CSV文件。CSV文件的QAR數(shù)據(jù)是已經(jīng)過譯碼后的工程值文件。 通過對(duì)CSV文件的研究可知,飛機(jī)發(fā)生的許多故障通常和一部分QAR數(shù)據(jù)屬性相關(guān),因此可以從發(fā)生的故障類型和發(fā)生故障的機(jī)型著手,去查看QAR數(shù)據(jù)CSV文件中的相關(guān)屬性列,并選取某些屬性和某些故障作針對(duì)性的研究??罩蓄嶔す收舷嚓P(guān)的屬性主要有EPR(發(fā)動(dòng)機(jī)壓比)、EGT(排氣溫度)、ALV(垂直加速度)、VIB(振動(dòng))、N1(低壓轉(zhuǎn)子轉(zhuǎn)速)和N2(高壓轉(zhuǎn)子轉(zhuǎn)速)。按照層次分析法,專家對(duì)空中顛簸故障發(fā)生相關(guān)屬性重要程度進(jìn)行了統(tǒng)計(jì)和調(diào)查。根據(jù)專家經(jīng)驗(yàn)可得飛機(jī)在空中是否有空中顛簸的故障發(fā)生主要與飛機(jī)的垂直加速度的屬性值有關(guān),故本文只提取垂直加速度ALV數(shù)據(jù)來分析空中顛簸故障。數(shù)據(jù)預(yù)處理后得到飛機(jī)巡航階段的垂直加速度(ALV)數(shù)據(jù),用其中 57 576條數(shù)據(jù)作為訓(xùn)練數(shù)據(jù)。
運(yùn)用改進(jìn)的廣度優(yōu)先鄰居搜索聚類算法對(duì)數(shù)據(jù)聚類。首先對(duì)訓(xùn)練數(shù)據(jù)進(jìn)行分區(qū),這里取每個(gè)區(qū)長(zhǎng)度分別為S=1 000,對(duì)每個(gè)數(shù)據(jù)區(qū)進(jìn)行基于固定分段數(shù)的自底向上線性分段,并用每個(gè)線段的斜率和端點(diǎn)值差的絕對(duì)值表示線段,即此時(shí)每條線段可用二維上的點(diǎn)來表示。下面以某個(gè)區(qū)為代表進(jìn)行說明,圖5為57區(qū)數(shù)據(jù),圖6為第57區(qū)的聚類結(jié)果。
圖5 第57區(qū)的線段
圖6 第57區(qū)線段聚類結(jié)果
每個(gè)分區(qū)聚類結(jié)束后都要計(jì)算并記錄下每一類的聚類中心,聚類中心即為每類中線段的平均值,存儲(chǔ)在新的數(shù)據(jù)文件中。用分區(qū)聚類結(jié)束后,所有類的聚類中心在同一個(gè)數(shù)據(jù)文件中。針對(duì)這些聚類中心進(jìn)行二次聚類,即并合并相似度高的類,聚類結(jié)果如圖7所示。
圖7 對(duì)區(qū)塊類的聚類中心的聚類結(jié)果
對(duì)聚類結(jié)果進(jìn)行分析,圖7中斜率接近0的線段,線段的端點(diǎn)值差的絕對(duì)值也小,這樣的線段被聚為一類,這類數(shù)據(jù)幾乎沒有變化,即數(shù)據(jù)趨勢(shì)為平穩(wěn);圖7中斜率小于0,且端點(diǎn)差的絕對(duì)值在0.2附近的線段被聚為一類,這些數(shù)據(jù)趨勢(shì)為輕微下降;同樣圖7中斜率大于0,且端點(diǎn)差的絕對(duì)值在0.2附近的哪一類線段的數(shù)據(jù)趨勢(shì)為輕微上升;斜率小于0,且端點(diǎn)差絕對(duì)值變化較大的數(shù)據(jù),其數(shù)據(jù)趨勢(shì)為突然下降;同理,斜率大于0,且端點(diǎn)差絕對(duì)值變化較大的數(shù)據(jù),其數(shù)據(jù)趨勢(shì)為突然上升。
對(duì)所得聚類結(jié)果進(jìn)行統(tǒng)計(jì),根據(jù)以上分析、匯總可得到訓(xùn)練數(shù)據(jù)的趨勢(shì)情況,匯成表格結(jié)果見表1。
表1 線段趨勢(shì)情況
通過以上對(duì)聚類結(jié)果的分析與統(tǒng)計(jì),采用效果最合適的聚類對(duì)其數(shù)據(jù)進(jìn)行符號(hào)化,用5種趨勢(shì)的標(biāo)簽代替原始數(shù)據(jù)的值作為離散隱馬爾科夫的觀測(cè)序列。故此時(shí)隱馬爾科夫的觀測(cè)狀態(tài)共有5種,即平穩(wěn)、輕微上升、輕微下降、突然上升和突然下降。分別用0、1、-1、2、-2表示。圖8為訓(xùn)練數(shù)據(jù)的線段的趨勢(shì)。
圖8 線段趨勢(shì)圖
由分析可知,飛機(jī)發(fā)生空中顛簸故障時(shí),主要影響到的是飛機(jī)垂直加速度(ALV)的屬性值。故將飛機(jī)的運(yùn)行狀態(tài)作為隱馬爾科夫的隱狀態(tài),即設(shè)定隱馬爾可夫模型的隱狀態(tài)有三種,分別是正常、輕微顛簸和嚴(yán)重顛簸,用數(shù)值1、2、3表示。根據(jù)聚類中心值可初步確定觀測(cè)序列所對(duì)應(yīng)的初始的狀態(tài)序列。在已知觀測(cè)序列和預(yù)設(shè)狀態(tài)序列的情況下,可用MATLAB中的hmmestimate方法估計(jì)狀態(tài)轉(zhuǎn)移概率矩陣和發(fā)射概率矩陣。將此作為EM算法的初始值。
根據(jù)得出的觀測(cè)序列及與其對(duì)應(yīng)的狀態(tài)序列估計(jì)其狀態(tài)轉(zhuǎn)移概率矩陣和發(fā)射概率矩陣,并采用前向后向算法得出訓(xùn)練后的狀態(tài)轉(zhuǎn)移概率矩陣和發(fā)射概率矩陣。分別如下:
訓(xùn)練前:
訓(xùn)練后:
用訓(xùn)練所得HMM模型預(yù)測(cè)測(cè)試數(shù)據(jù)中飛機(jī)的運(yùn)行狀態(tài)。數(shù)據(jù)同樣來自某 B737型飛機(jī)記錄的并經(jīng)過數(shù)據(jù)預(yù)處理后得到的飛機(jī)巡航階段的垂直加速度(ALV)數(shù)據(jù),從中提取四組數(shù)據(jù),分別是2 000條、2 000條、5 000條、5 000條。首先對(duì)四組測(cè)試數(shù)據(jù)結(jié)合之前的聚類方法,運(yùn)用k-近鄰算法得出其分類標(biāo)簽,完成數(shù)據(jù)的符號(hào)化,即用線段的趨勢(shì)來表示符號(hào)化數(shù)據(jù)。然后采用Viterbi算法預(yù)測(cè)其狀態(tài)。
下面為測(cè)試數(shù)據(jù)中不同的兩段數(shù)據(jù)的預(yù)測(cè)情況對(duì)比。圖9為數(shù)據(jù)1中某段原始數(shù)據(jù),圖10為該段數(shù)據(jù)的預(yù)測(cè)結(jié)果。
圖9 數(shù)據(jù)1中某段原始數(shù)據(jù)
圖10 數(shù)據(jù)1中某段預(yù)測(cè)結(jié)果
圖9為原始序列圖,橫坐標(biāo)為數(shù)據(jù)序列號(hào),縱坐標(biāo)為垂直加速度屬性值。圖10是預(yù)測(cè)結(jié)果圖,其中橫坐標(biāo)還是數(shù)據(jù)序列號(hào),縱坐標(biāo)為飛機(jī)運(yùn)行狀態(tài)。從中可以看出,在飛機(jī)出現(xiàn)空中顛簸時(shí),垂直加速度數(shù)據(jù)異常,該模型能夠預(yù)測(cè)出異常數(shù)據(jù),并判斷其顛簸的程度。圖10識(shí)別出了兩段嚴(yán)重顛簸狀態(tài)。
四組數(shù)據(jù)的具體預(yù)測(cè)結(jié)果如表2所示。
表2 預(yù)測(cè)情況統(tǒng)計(jì)
通過以上大量的測(cè)試實(shí)驗(yàn),該模型能很好地預(yù)測(cè)原數(shù)據(jù)的狀態(tài)趨勢(shì)。但是當(dāng)需要識(shí)別的數(shù)據(jù)長(zhǎng)度增加時(shí),其預(yù)測(cè)精度有所降低,但大部分的狀態(tài)能夠預(yù)測(cè)??芍ㄟ^對(duì)QAR的數(shù)據(jù)進(jìn)行趨勢(shì)分析,以平穩(wěn)、輕微上升、輕微下降、突然上升和突然下降這5種趨勢(shì)來表示QAR數(shù)據(jù),將QAR數(shù)據(jù)轉(zhuǎn)化為有限個(gè)觀測(cè)值,作為隱馬爾可夫模型的觀測(cè)序列。經(jīng)過學(xué)習(xí)訓(xùn)練建立的隱馬爾可夫模型能很好地預(yù)測(cè)空中顛簸數(shù)據(jù)的狀態(tài)趨勢(shì)。雖然該模型目前能夠預(yù)測(cè)出顛簸狀態(tài),但是飛機(jī)出現(xiàn)空中顛簸是不確定性的,因此需要大量的監(jiān)控歷史數(shù)據(jù)來不斷訓(xùn)練學(xué)習(xí),才能保證更加精確地預(yù)測(cè)飛機(jī)的運(yùn)行狀態(tài)。
本文針對(duì)傳統(tǒng)的QAR數(shù)據(jù)分析方法只關(guān)注異常點(diǎn)而忽略了QAR的狀態(tài)趨勢(shì)特征的問題。通過分析QAR數(shù)據(jù)與飛機(jī)空中顛簸故障,針對(duì)大量QAR數(shù)據(jù),提出一種基于聚類的HMM模型,分析發(fā)生故障或異常時(shí)QAR數(shù)據(jù)中不同屬性的變化特點(diǎn)。通過對(duì)聚類進(jìn)行數(shù)據(jù)離散化得出數(shù)據(jù)的狀態(tài)趨勢(shì),并用類標(biāo)簽代替原始數(shù)值序列,進(jìn)行數(shù)據(jù)離散化,對(duì)飛機(jī)巡航階段空顛簸故障數(shù)據(jù)進(jìn)行了有效處理,建立了有效的HMM模型。用HMM來統(tǒng)計(jì)性地描述故障發(fā)生時(shí)QAR數(shù)據(jù)的改變,以狀態(tài)序列的形式描述故障的演化過程,并能夠根據(jù)觀測(cè)數(shù)據(jù)有效識(shí)別飛機(jī)所處運(yùn)行狀態(tài)趨勢(shì),成功驗(yàn)證了該方法的有效性。
[1] 曹惠玲,周百政.QAR數(shù)據(jù)在航空發(fā)動(dòng)機(jī)監(jiān)控中的應(yīng)用研究[J].中國(guó)民航大學(xué)學(xué)報(bào),2010,28(3):15-19.
[2] Jiang H,Li X,Liu C.Large margin hidden Markov models for speech recognition[J].IEEE Transactions on Audio Speech & Language Processing,2005,14(5):1584-1595.
[3] 黃曉彬,王春峰,房振明,等.基于隱馬爾科夫模型的中國(guó)股票信息探測(cè)[J].系統(tǒng)工程理論與實(shí)踐,2012,32(4):713-720.
[4] 張璇,周峰.隱馬爾科夫模型應(yīng)用領(lǐng)域、熱點(diǎn)及趨勢(shì)分析——基于CiteSpaceII[J].現(xiàn)代商貿(mào)工業(yè),2015,36(15):63-65.
[5] 于天劍,陳特放,陳雅婷,等.HMM在電機(jī)軸承上的故障診斷[J].哈爾濱工業(yè)大學(xué)學(xué)報(bào),2016,48(2):184-188.
[6] 柳姣姣,禹素萍,吳波,等.基于隱馬爾科夫模型的時(shí)空序列預(yù)測(cè)方法[J].微型機(jī)與應(yīng)用,2016,35(1):74-76.
[7] 廖俊,于雷,羅寰,等.基于趨勢(shì)轉(zhuǎn)折點(diǎn)的時(shí)間序列分段線性表示[J].計(jì)算機(jī)工程與應(yīng)用,2010,46(30):50-53.
[8] 章登義,歐陽(yáng)黜霏,吳文李.針對(duì)時(shí)間序列多步預(yù)測(cè)的聚類隱馬爾科夫模型[J].電子學(xué)報(bào),2014(12):2359-2364.
[9] 楊慧,王光霞.基于重要點(diǎn)的飛機(jī)發(fā)動(dòng)機(jī)異常子序列檢測(cè)[J].計(jì)算機(jī)工程與設(shè)計(jì),2016,37(9):2543-2547.
[10] 錢江波,董逸生.一種基于廣度優(yōu)先搜索鄰居的聚類算法[J].東南大學(xué)學(xué)報(bào)(自然科學(xué)版),2004,34(1):109-112.
[11] 倪巍偉,陸介平,陳耿,等.基于k均值分區(qū)的數(shù)據(jù)流離群點(diǎn)檢測(cè)算法[J].計(jì)算機(jī)研究與發(fā)展,2006,43(9):1639-1643.
[12] 任江濤,何武,印鑒,等.一種時(shí)間序列快速分段及符號(hào)化方法[J].計(jì)算機(jī)科學(xué),2005,32(9):166-169.