梁少軍,張世榮,鄭幸,林冬生
(1.陸軍工程大學(xué) 軍械士官學(xué)校,湖北 武漢 430075; 2.武漢大學(xué) 電氣與自動(dòng)化學(xué)院,湖北 武漢 430072)
目前,固定翼無(wú)人機(jī)(UAV)已在全球得到廣泛應(yīng)用,列裝種類和數(shù)量越來(lái)越多。UAV執(zhí)行任務(wù)時(shí)面臨著時(shí)間緊、要求高、運(yùn)行環(huán)境復(fù)雜等問題。UAV本體和外在因素決定了其可靠性,UAV一旦發(fā)生故障而墜機(jī),會(huì)造成極大的經(jīng)濟(jì)損失和難以估量的軍事、政治影響,故提高UAV的可靠性一直是生產(chǎn)廠家和用戶的重點(diǎn)努力方向之一。UAV廠家一般配套了各子系統(tǒng)的自檢及報(bào)警功能模塊,但此類模塊只能對(duì)UAV裝備的健康狀態(tài)作定性判斷,無(wú)法準(zhǔn)確定位故障源,更不能發(fā)現(xiàn)UAV的非器質(zhì)性隱性故障。針對(duì)UAV的可靠性問題,國(guó)內(nèi)外研究者們開展了一系列研究,并取得了一些成果[1-5]。文獻(xiàn)[1-5]表明,在UAV故障診斷研究中,大多采用基于模型或基于多元數(shù)據(jù)統(tǒng)計(jì)的診斷方法,此類方法在穩(wěn)態(tài)或準(zhǔn)穩(wěn)態(tài)過程中可獲得較好效果,但對(duì)變工況的適應(yīng)能力較差。UAV執(zhí)行任務(wù)全流程包含起飛、巡航、遂行任務(wù)、返航、回收等階段,屬于典型的多工況過程,若將UAV的任務(wù)全程簡(jiǎn)單處理為一個(gè)工況,則單一模型將無(wú)法應(yīng)對(duì)UAV的多工況特征,必然會(huì)導(dǎo)致故障漏報(bào)或誤報(bào)。由此可見,UAV多工況對(duì)故障診斷影響較大,故UAV的多工況分類及工況匹配是故障診斷取得成功的必然條件。
UAV工況分類本質(zhì)上是數(shù)據(jù)分組問題,解決該類問題的常用方法是聚類分析。聚類可利用數(shù)據(jù)中描述對(duì)象及其關(guān)系的信息,將數(shù)據(jù)分成不同的簇[6],是數(shù)據(jù)挖掘的常用手段。聚類算法有多種,且可以分為不同種類。其中,帶噪聲的密度聚類(DBSCAN)算法是一種具有噪聲處理能力的劃分式、互斥式、部分聚類算法。該算法通過對(duì)比局部數(shù)據(jù)的密度,尋找被低密度區(qū)域分離的高密度區(qū)域,以隔離高密度區(qū)域和低密度區(qū)域,最后將相近的高密度點(diǎn)連成一片,生成各種簇[7]。該算法可以在噪音數(shù)據(jù)中發(fā)現(xiàn)各種形狀和大小不同的簇,擅長(zhǎng)處理非球狀分布數(shù)據(jù),對(duì)噪聲有較強(qiáng)的魯棒性,且能夠自動(dòng)確定簇?cái)?shù)??梢?,DBSCAN算法適合UAV的運(yùn)行數(shù)據(jù),本文將用它來(lái)對(duì)UAV的全任務(wù)過程進(jìn)行工況分析。需要說明的是,DBSCAN算法中采用歐式距離來(lái)定義密度的方法并不適合高維數(shù)據(jù)。本文將共享近鄰(SNN)算法與DBSCAN算法進(jìn)行結(jié)合,并提出一種新的參數(shù)尋優(yōu)方案,形成一種改進(jìn)型SNN-DBSCAN*算法,以適應(yīng)UAV的工況特征。
UAV數(shù)據(jù)被劃分為多個(gè)工況后,在線故障診斷時(shí)需要首先進(jìn)行工況匹配?;跀?shù)學(xué)模型[8-9]、基于專家知識(shí)[10]以及基于數(shù)據(jù)驅(qū)動(dòng)[11-12]是3類實(shí)現(xiàn)工況匹配的可行方法[13]。其中,前兩類匹配方法都存在一定的局限性,不適合固定翼UAV的多工況分析。具體而言,基于數(shù)學(xué)模型的匹配法需要建立準(zhǔn)確的系統(tǒng)解析模型,基于專家知識(shí)的匹配法則過度依靠專家經(jīng)驗(yàn)和專業(yè)知識(shí)。而固定翼UAV的復(fù)雜性使得精確解析模型和專家知識(shí)都難以獲得,限制了此兩類匹配方法在固定翼UAV上的應(yīng)用?;跀?shù)據(jù)驅(qū)動(dòng)的匹配法則容易實(shí)現(xiàn),只需獲取系統(tǒng)的歷史數(shù)據(jù)和對(duì)應(yīng)的工況標(biāo)簽即可建立工況分類模型。就UAV而言,其運(yùn)行數(shù)據(jù)可以通過數(shù)據(jù)鏈獲得,但工況標(biāo)簽則無(wú)法從運(yùn)行數(shù)據(jù)直觀獲得。
圖1 固定翼UAV多工況聚類及匹配技術(shù)路線Fig.1 Mutiple working condition clustering and matching technology routes of fixed-wing UAV
本文針對(duì)此問題,采用如圖1所示的技術(shù)路線。首先獲取UAV的歷史飛行數(shù)據(jù),采用SNN-DBSCAN*算法進(jìn)行聚類分析,并將聚類結(jié)果作為工況標(biāo)簽。然后使用獨(dú)立成分分析(ICA)法提取各工況的數(shù)據(jù)特征,并融合工況特征和工況標(biāo)簽形成工況訓(xùn)練樣本。最后采用支持向量機(jī)(SVM)學(xué)習(xí)算法對(duì)訓(xùn)練樣本進(jìn)行學(xué)習(xí),建立UAV工況匹配模型。在算法研究基礎(chǔ)上,本文以某型固定翼UAV的實(shí)際飛行數(shù)據(jù)對(duì)算法進(jìn)行了驗(yàn)證。
圖2 無(wú)人機(jī)操控原理Fig.2 Principle of UAV control
UAV遂行任務(wù)全程一般包括起飛- 巡航- 執(zhí)行任務(wù)- 返航- 回收等階段,且各階段會(huì)根據(jù)實(shí)時(shí)任務(wù)變動(dòng)和現(xiàn)實(shí)情況動(dòng)態(tài)調(diào)整飛機(jī)狀態(tài)。不同狀態(tài)下飛機(jī)傳感器與執(zhí)行機(jī)構(gòu)反饋信息具有明顯區(qū)別。圖3展示了UAV執(zhí)行某任務(wù)全程高度、傾斜角、俯仰角、航向角變化曲線。以圖3(a)飛機(jī)高度變化為例,UAV發(fā)射起飛后迅速爬升,在升至1 000 m左右時(shí)改為平飛,之后為避障和執(zhí)行任務(wù)先后兩次采取爬升- 平飛- 俯沖動(dòng)作以臨時(shí)調(diào)整高度。在返航回收階段,飛機(jī)總體以俯沖降高為主直至成功降落??傮w來(lái)看,若僅以飛機(jī)高度變化劃分工況則可分為爬升、平飛、俯沖3種工況。同樣,從圖3(b)飛機(jī)傾斜角變化來(lái)看,該任務(wù)全程可劃分為左傾斜、右傾斜和直飛3種工況。若以圖3(c)飛機(jī)俯仰角變化來(lái)看,可劃分為抬頭、低頭和平飛3種工況。若以圖3(d)飛機(jī)航向角變化來(lái)看,則可劃分為左偏航、右偏航和定航3種工況。從圖3(a)~圖3(d)采樣時(shí)間軸(橫軸)綜合來(lái)看,各工作狀態(tài)交替出現(xiàn),導(dǎo)致UAV工況復(fù)雜。從直觀上看,無(wú)法從UAV的9維數(shù)據(jù)集中簡(jiǎn)單劃分工況,甚至連工況的個(gè)數(shù)也無(wú)法獲得。若僅以某參數(shù)(例如高度)為主導(dǎo)來(lái)處理UAV工況,將會(huì)丟失大量工況信息,造成誤判。因此,本文將采用不需要先驗(yàn)知識(shí)的聚類算法,從數(shù)據(jù)抽象層對(duì)UAV工況進(jìn)行分析。
圖3 UAV飛行曲線Fig.3 UAV flight curve
DBSCAN算法是一種基于密度進(jìn)行聚類的算法,該算法先尋找密度較高的點(diǎn),然后把相近的高密度點(diǎn)連成一片,進(jìn)而生成各種簇。DBSCAN算法以密度為指標(biāo),對(duì)噪聲具有較強(qiáng)的魯棒性,可基于數(shù)據(jù)自主推測(cè)聚類個(gè)數(shù)并能處理任意形狀和大小的簇[14]。DBSCAN算法已經(jīng)廣泛應(yīng)用于多個(gè)領(lǐng)域,如光譜分析、社會(huì)科學(xué)、土木工程、生物醫(yī)學(xué)和化學(xué)等[15]。但經(jīng)典DBSCAN算法需要指定核心點(diǎn)的最小近鄰數(shù)MinPts和鄰域半徑Eps值,且對(duì)數(shù)據(jù)集的密度敏感,難以處理密度不均勻的數(shù)據(jù)集[16]。故經(jīng)典DBSCAN算法無(wú)法直接用于UAV飛行數(shù)據(jù)分析。本文從以下兩個(gè)方面對(duì)DBSCAN算法進(jìn)行改進(jìn):1)引入SNN算法以提高DBSCAN算法應(yīng)對(duì)密度不均勻數(shù)據(jù)集的聚類性能;2)在計(jì)算K近鄰距離KNNd基礎(chǔ)上引入數(shù)據(jù)剪切率、滿意度曲線和合成輪廓系數(shù)(SSC),并提出一套分步自動(dòng)優(yōu)選MinPts、Eps參數(shù)方案,以降低DBSCAN算法對(duì)先驗(yàn)知識(shí)的依賴。
與DBSCAN算法的密度指標(biāo)不同,SNN算法采用相似度來(lái)度量?jī)牲c(diǎn)間距離。SNN距離只依賴于兩個(gè)對(duì)象共享的近鄰個(gè)數(shù),而不是這些近鄰之間的實(shí)際距離,因此能夠基于點(diǎn)的密度進(jìn)行自動(dòng)縮放。SNN距離反映了數(shù)據(jù)空間中點(diǎn)的局部結(jié)構(gòu),對(duì)密度變化和空間維度相對(duì)不敏感,可以用作新的距離度量方式來(lái)改進(jìn)傳統(tǒng)的DBSCAN算法,記為SNN-DBSCAN算法。以下將逐步介紹算法改進(jìn)過程,首先從算法基本定義開始[17-19]。
在數(shù)據(jù)集空間中,若點(diǎn)p的Eps鄰域內(nèi)近鄰個(gè)數(shù)大于等于MinPts,則該點(diǎn)定義為核心點(diǎn)。若點(diǎn)p的Eps鄰域內(nèi)近鄰個(gè)數(shù)小于MinPts,且p落在某核心點(diǎn)的Eps鄰域內(nèi),則該點(diǎn)為邊界點(diǎn)。若點(diǎn)p既非核心點(diǎn)又非邊界點(diǎn),則該點(diǎn)為噪聲點(diǎn)。若點(diǎn)q是核心點(diǎn)且p在q的Eps鄰域內(nèi),則稱p距q直接密度可達(dá)。若存在一條直接密度可達(dá)的鏈條p1,p2,…,pn,n為鏈條數(shù)據(jù)的量,且p1=q,pn=p,pi+1距pi直接密度可達(dá),則稱p距q密度可達(dá)。若在數(shù)據(jù)集D中的p點(diǎn)與q點(diǎn)的前k個(gè)最近鄰中有t個(gè)近鄰是共享的,則稱p距q的共享近鄰距離為t,并將其作為SNN距離,記為SNNd(p,q,k) =t.
在以上SNN距離定義基礎(chǔ)上,將SNN-DBSCAN算法用于分析UAV飛行數(shù)據(jù),算法偽代碼如圖4所示,其中,Nbxi表示距離數(shù)據(jù)點(diǎn)xi的SNN距離不超過Eps的數(shù)據(jù)集合,|Nbxi|表示該集合的數(shù)據(jù)的量。SNN-DBSCAN算法隨機(jī)選擇UAV數(shù)據(jù)集中的1個(gè)點(diǎn)xi,利用圖5所示FindN偽代碼算法計(jì)算距離xi共享近鄰距離不大于Eps的近鄰個(gè)數(shù)|Nbxi|。若|Nbxi| Algorithm 算法1SNN-DBSCAN算法。 Algorithm Input (1)D=[x1,x2,…,xm]T∈Rm×9: 采樣數(shù)據(jù)矩陣 (2)Eps: 距離半徑 (3)MinPts: 閾值 (4)k: SNN近鄰數(shù)量 Algorithm Output C={C1,C2,…,Ct}: UAV數(shù)據(jù)聚類集合 Algorithm Start id=1 Set allU=D//U為未處理的數(shù)據(jù)矩陣 for eachxi∈Udo |Nbxi|=FindN(xi,D,Eps,k)//根據(jù)算法2 if |Nbxi| xi∈Noise//xi判斷為噪聲點(diǎn) else xi∈Cid//xi判斷為核心點(diǎn)并存入對(duì)應(yīng)類標(biāo)聚類集合 all points inNbxi∈Cid Queue=Nbxi//Queue為過程存儲(chǔ)數(shù)據(jù)集 whileQueue≠? Queue=Queue/xj//xj為Queue中任一數(shù)據(jù) |Nbxj|=FindN(xj,D,Eps,k) //根據(jù)算法2 if |Nbxj|≥MinPts set each pointzinNbxj∈Cid ifz∈U Queue=Queue∪z end if end if U=U/xj//將xj從U中剔除 end while end if U=U/xi//將xi從U中剔除 id=id+1 end for Algorithm End 圖4 SNN-DBSCAN算法 Fig.4 SNN-DBSCAN algorithm Algorithm 算法2FindN Algorithm Input (1)xi: 測(cè)試數(shù)據(jù) (2)D=[x1,x2,…,xm]T∈Rm×9: 采樣數(shù)據(jù)矩陣 (3)Eps: 距離半徑 (4)k: SNN近鄰數(shù)量 Algorithm Output |Nbxi| Algorithm Start |Nbxi|=0 for eachxj∈D/xido //取D中與xi不同的數(shù)據(jù)xj ifSNNd(xi,xj,k)≤Eps//根據(jù)子程序SI |Nbxi|=|Nbxi|+1 end if end for Procedure子程序:SNNd(xi,xj,k) SIxi,xj=SI(xi,D,k)∩SI(xj,D,k)//SIxi,xj即xi與xj共享近鄰數(shù)量 Count=k-SIxi,xj returnCount Procedure子程序:SI(xi,D,k) Index=? for eachxj∈D/xido distxi,xj=‖xi-xj‖2/distxi,xj即xi與xj的歐式距離 Index=sort(distxi,xj)[1:k] //升序排序,取前k個(gè)數(shù)據(jù) returnIndex Algorithm End 圖5 FindN算法 Fig.5 FindN algorithm 在上述SNN-DBSCAN算法中,需要人為指定Eps和MinPts,其數(shù)值對(duì)聚類結(jié)果有較大影響。為了降低算法對(duì)先驗(yàn)知識(shí)的依賴程度,需要進(jìn)一步研究Eps和MinPts的參數(shù)優(yōu)化方法。 為尋找合適的[Eps,MinPts]參數(shù)組合以得到最優(yōu)的聚類效果,引入KNNd和SSC概念,對(duì)SNN-DBSCAN算法進(jìn)行改進(jìn)。 KNNd為數(shù)據(jù)集合中每個(gè)數(shù)據(jù)點(diǎn)到其第T個(gè)最近鄰的距離(一般為歐氏距離)[19-20]。計(jì)算D中每個(gè)數(shù)據(jù)點(diǎn)的KNNd距離,并將結(jié)果升序排序,即可得到K近鄰(KNN)距離曲線LineT,其示意如圖6(a)所示,LineT先緩慢增長(zhǎng)后急劇上升。若取曲線拐點(diǎn)P處對(duì)應(yīng)的KNNd和LineT為MinPts和Eps的值[21],則按照拐點(diǎn)啟發(fā)式參數(shù)尋優(yōu)思想,由此方式獲得的參數(shù)組合是較優(yōu)的。以該參數(shù)組合對(duì)UAV數(shù)據(jù)集進(jìn)行DBSCAN算法聚類分析時(shí),序號(hào)小于Num的所有UAV數(shù)據(jù)將會(huì)被標(biāo)記為核心點(diǎn),而大于Num的將被標(biāo)記為邊界點(diǎn)或噪聲點(diǎn)。 圖6 LineT距離曲線Fig.6 LineT distance curve 本文擬在SNN-DBSCAN聚類算法參數(shù)優(yōu)化中采用拐點(diǎn)啟發(fā)式尋優(yōu)方法?;赟NN距離的KNNd記為SNN-KNNd,該距離度量方式會(huì)限制曲線的縱軸最大值(即0 Num=[(1-sr)m], (1) 將sr轉(zhuǎn)化為新的Num值;以Num值為基準(zhǔn)沿縱軸畫一條直線與多條LineT曲線相交,若交點(diǎn)縱坐標(biāo)滿足LineT(Num)≠k則標(biāo)記該曲線為滿意曲線。取交點(diǎn)P處對(duì)應(yīng)的SNN-KNNd值為MinPts值,取此點(diǎn)LineT值為Eps值,即可得到多對(duì)合適的備選參數(shù)組合。為了從備選組合中進(jìn)一步篩選最優(yōu)參數(shù)組合,下文進(jìn)一步采用SSC進(jìn)行分析。 輪廓系數(shù)結(jié)合了凝聚度和分離度,是聚類效果的評(píng)價(jià)指標(biāo)[22]。本文根據(jù)UAV數(shù)據(jù)特征將輪廓系數(shù)與共享近鄰距離融合,重新定義指標(biāo)。設(shè)Xi,j表示簇j的第i個(gè)采樣,Nj為簇j的樣本數(shù),C為總聚類簇集合,|C|為聚類簇總數(shù)。首先,定義凝聚度CHi,j以反映簇內(nèi)部的緊湊程度: (2) 式中:CHi,j為單點(diǎn)凝聚度,表示Xi,j到簇j中所有點(diǎn)的平均SNN距離。 再定義分離度SPi,j,以反映簇與簇之間的分散程度: (3) 式中:SPi,j為單點(diǎn)分離度,表示Xi,j到不包含該點(diǎn)的簇中所有點(diǎn)的最小SNN距離。結(jié)合凝聚度和分離度構(gòu)建SSC,以綜合反映聚類效果的好壞,SSC表示為 (4) 式中:SCi,j=((SPi,j-CHi,j)/max (CHi,j,SPi,j)+1)/2,SSC∈[0,1]。在實(shí)際聚類分析中,SSC需要大于0.5,且SSC越接近1,表明聚類效果越好。在使用SSC對(duì)多個(gè)備選參數(shù)組合進(jìn)行評(píng)價(jià)時(shí),使SSC取最大值的參數(shù)即為最優(yōu)組合。 引入SNNd和SSC概念后,原SNN-DBSCAN聚類算法不再需要預(yù)先人為指定Eps及MinPts值,只需給出T值的大致取值范圍并預(yù)估1個(gè)可接受的數(shù)據(jù)剪切率sr即可自動(dòng)優(yōu)選參數(shù),在一定程度上降低了算法對(duì)先驗(yàn)知識(shí)的依賴。將具有參數(shù)優(yōu)選功能的SNN-DBSCAN算法記為SNN-DBSCAN*算法,圖7所示為該算法的偽代碼,其中Cd表示備選參數(shù)集合,Cd.MinPts表示備選MinPts參數(shù)子集,Cd.Eps表示備選Eps參數(shù)子集,SC(C)表示使用聚類集合C計(jì)算合成輪廓系數(shù),SSCs表示存儲(chǔ)多個(gè)合成輪廓系數(shù)的集合,Eps*表示最優(yōu)Eps參數(shù),MinPts*表示最優(yōu)Minpts參數(shù), |C|表示聚類集合C中子簇的數(shù)量,|Ci|表示序號(hào)為i的子簇內(nèi)數(shù)據(jù)的量。 圖8以框圖形式將2.1節(jié)、2.2節(jié)提出的SNN-DBSCAN*算法原理進(jìn)行了概括。SNN-DNSCAN*算法分兩步實(shí)現(xiàn)參數(shù)尋優(yōu):1)在眾多曲線中挑選出滿意曲線,得到備選參數(shù)組合,并保證被選曲線有較少離群點(diǎn);2)以SSC最大值為標(biāo)準(zhǔn)進(jìn)一步優(yōu)選備選參數(shù)組合。該算法兼顧了離群點(diǎn)與SSC,對(duì)數(shù)據(jù)的先驗(yàn)知識(shí)要求少,實(shí)用性強(qiáng)。 以UAV一次時(shí)長(zhǎng)2.5 h的完整實(shí)飛數(shù)據(jù)為對(duì)象,對(duì)本文所提算法進(jìn)行仿真驗(yàn)證,算法代碼用MATLAB 2018a軟件實(shí)現(xiàn)。UAV數(shù)據(jù)鏈采樣周期短,完整飛行數(shù)據(jù)具有很大體量。本文旨在對(duì)UAV工況進(jìn)行聚類分析,樣本無(wú)需具有很高的采樣速率。故先對(duì)實(shí)飛數(shù)據(jù)進(jìn)行無(wú)偏差抽樣,獲得1 034組抽樣數(shù)據(jù)構(gòu)成樣本集,記作trd. SNN-DBSCAN*算法的相關(guān)參數(shù)設(shè)置如下: (5) Algorithm 算法3 SNN-DBSCAN* Algorithm Input: (1)D={x1,x2,…,xm}∈Rm×9: 采樣數(shù)據(jù)矩陣 (2)k: 計(jì)算SNN時(shí)最大近鄰數(shù)量2.2 SNN-DBSCAN算法參數(shù)優(yōu)化
2.3 UAV工況聚類仿真與分析