張 寧, 劉 銳,2
(1.北京交通大學(xué) 計(jì)算機(jī)與信息技術(shù)學(xué)院,北京 100044;2.國網(wǎng)山東省電力公司 德州供電公司,山東 德州 253011)
在動(dòng)車組自動(dòng)化裝配線的各個(gè)關(guān)鍵組件中,電機(jī)傳動(dòng)系統(tǒng)是最為核心的,但同樣也是最易發(fā)生故障的,因此電機(jī)傳動(dòng)系統(tǒng)的健康狀態(tài)評(píng)估對(duì)于提高整條生產(chǎn)線的可靠性與工作精度、提升生產(chǎn)效率具有重大意義。隨著設(shè)備的維修費(fèi)用在全生命周期費(fèi)用中所占的比重越來越大,“經(jīng)濟(jì)可承受性”成為企業(yè)日益關(guān)注的問題。
傳統(tǒng)的“事后維修”和“計(jì)劃維修”不僅效率低下,還易造成資源浪費(fèi),很難滿足現(xiàn)代智能制造大趨勢(shì)下的設(shè)備運(yùn)維檢修需求,因此基于設(shè)備的“狀態(tài)修”是“可靠性維修”[1]的重要組成部分,其根據(jù)設(shè)備的實(shí)時(shí)運(yùn)行數(shù)據(jù)進(jìn)行狀態(tài)評(píng)價(jià)與風(fēng)險(xiǎn)評(píng)估,已經(jīng)成為一種更為合理的檢修策略。
在設(shè)備維修的早期階段,工程人員使用“故障”與“正常”的二值形態(tài)來描述設(shè)備的工作狀態(tài),隨著相關(guān)技術(shù)的不發(fā)展,人們發(fā)現(xiàn)只用二值函數(shù)來定義設(shè)備狀態(tài)是不完全的,于是便引進(jìn)了生物學(xué)領(lǐng)域中的“健康狀態(tài)”一詞,將復(fù)雜系統(tǒng)的工作狀態(tài)進(jìn)行多級(jí)劃分,這就是設(shè)備的“多值狀態(tài)”。健康狀態(tài)評(píng)估在整個(gè)故障預(yù)測(cè)與健康管理[2]領(lǐng)域中占有非常重要的地位,是PHM系統(tǒng)的核心功能之一。
傳統(tǒng)的健康評(píng)估方法主要有2種,基于信號(hào)分析與基于模型分析。信號(hào)分析的典型文獻(xiàn)如文獻(xiàn)[3]中的定子電流法(MCSA)和文獻(xiàn)[4]中的負(fù)載轉(zhuǎn)矩分析法(LTSA),都是應(yīng)用快速傅里葉變換(FFT)進(jìn)行頻譜分析,以此進(jìn)行健康評(píng)估。文獻(xiàn)[5] 是將電機(jī)學(xué)原理、控制理論與數(shù)學(xué)建模三者相結(jié)合,通過建立多階微分方程對(duì)電機(jī)模型進(jìn)行線性化設(shè)計(jì),從而對(duì)電機(jī)傳動(dòng)系統(tǒng)進(jìn)行綜合的健康狀態(tài)評(píng)測(cè)。
無論是基于信號(hào)處理還是基于數(shù)學(xué)建模的狀態(tài)評(píng)估方法,都需要有豐富的專家知識(shí)、精確的數(shù)學(xué)模型和大量的標(biāo)簽化數(shù)據(jù),然而,這些條件對(duì)于裝配線上的電機(jī)傳動(dòng)系統(tǒng)來說是難以獲取的。本文將整個(gè)電機(jī)傳動(dòng)系統(tǒng)看成一個(gè)黑匣子,采用數(shù)據(jù)驅(qū)動(dòng)的方法,利用實(shí)際電機(jī)傳動(dòng)系統(tǒng)運(yùn)行中較易采集的數(shù)據(jù),即電機(jī)的電流、電壓、轉(zhuǎn)速,對(duì)這三類數(shù)據(jù)進(jìn)行K-Means聚類,提出基于局部異常因子算法去除噪聲點(diǎn),以及通過計(jì)算樣本區(qū)域密度選取初始中心點(diǎn),對(duì)K-Means算法進(jìn)行優(yōu)化。根據(jù)聚類結(jié)果,可對(duì)實(shí)際運(yùn)行中的電機(jī)傳動(dòng)系統(tǒng)健康狀態(tài)評(píng)估,該算法具有廣泛應(yīng)用價(jià)值。
聚類分析[6]是數(shù)據(jù)挖掘領(lǐng)域的一個(gè)重要分支,是一種無監(jiān)督的學(xué)習(xí)方式,相較于監(jiān)督式學(xué)習(xí),聚類算法最大的特征就是無標(biāo)簽式學(xué)習(xí),算法僅僅通過對(duì)數(shù)據(jù)相似程度的計(jì)算,將數(shù)據(jù)分為若干各類。K-Means算法[7]就是一種最為典型的聚類算法,其算法描述如下:
Step1隨機(jī)選擇k個(gè)對(duì)象作為初始簇中心。
Step2計(jì)算每個(gè)數(shù)據(jù)對(duì)象與聚類中心的距離,根據(jù)計(jì)算出的距離,將對(duì)象賦給“相似”的簇。
Step3通過計(jì)算簇的平均值更新簇中心。
Step4迭代Step2與Step3,直至簇中心不再發(fā)生變化。
K-Means算法收斂速度快,簡(jiǎn)單易實(shí)現(xiàn),而且在處理大數(shù)據(jù)集時(shí)可保持較好的伸縮性與高效性。但是傳統(tǒng)K-Means算法存在3個(gè)缺點(diǎn)[8]:①難以選定最佳K值;②K-Means初始化聚類中心時(shí),初始點(diǎn)選取的隨機(jī)性與不確定性,很容易使聚類結(jié)果不穩(wěn)定甚至陷入局部極小值;③原始樣本數(shù)據(jù)中存在的異常數(shù)據(jù)會(huì)影響K-Means算法的收斂,導(dǎo)致聚類結(jié)果出現(xiàn)偏差。
針對(duì)K-Means算法的改進(jìn),文獻(xiàn)[9]中提出了最大最小距離的算法,選擇相互距離最遠(yuǎn)的k個(gè)數(shù)據(jù)對(duì)象作為初始聚類中心;文獻(xiàn)[10]將改進(jìn)后的差分進(jìn)化算法和K-Means算法相結(jié)合,進(jìn)行初始中心點(diǎn)優(yōu)化;文獻(xiàn)[11] 提出了一種結(jié)合關(guān)系矩陣和圖論的分析方法,從而確定K-Means算法的k個(gè)初始中心點(diǎn)。此外,通過K-Means算法還衍生出了諸如K-Means++、K-Medoids、模糊K-Means等聚類算法;文獻(xiàn)[12] 采用遺傳算法求解初始質(zhì)心及遺傳算法用于改進(jìn)K-Means算法;文獻(xiàn)[13] 提出了一種基于減數(shù)聚類的局部敏感K-Means聚類算法,最初的中心是由減數(shù)聚類產(chǎn)生的,而不是隨機(jī)的。但上述研究中,主要的關(guān)注點(diǎn)在聚類中心點(diǎn)的選取,對(duì)于數(shù)據(jù)樣本中的離群點(diǎn)與噪聲點(diǎn)過于敏感問題,還沒有很好的方法,算法的驗(yàn)證多是基于UCI數(shù)據(jù)庫的測(cè)試數(shù)據(jù)集,而對(duì)于實(shí)際工程中數(shù)據(jù)的算法應(yīng)用較少。
針對(duì)樣本數(shù)據(jù)中的異常數(shù)據(jù)會(huì)影響K-Means聚類結(jié)果[14],本文采用LOF算法進(jìn)行優(yōu)化,算法描述如下:
Step1設(shè)樣本空間為Ω,計(jì)算樣本中每個(gè)對(duì)象p與其他對(duì)象o(p,o∈Ω)的歐氏距離d(p,o)。
Step2計(jì)算對(duì)于點(diǎn)p的第k距離dk(p),即dk(p)=d(p,ok)。計(jì)算方法為:計(jì)算點(diǎn)p與集合中其他點(diǎn)oi之間的距離d(p,oi),對(duì)所有距離按照升序排序并組成序列[d(p,o1),d(p,o2),…,d(p,on)],找到序列中的第k個(gè)值d(p,ok),其對(duì)應(yīng)的就是第k距離;定義點(diǎn)p的第k鄰域?yàn)镹K(p),表示p的第k距離以內(nèi)的所有點(diǎn)。
Step3計(jì)算點(diǎn)o到點(diǎn)p的第k可達(dá)距離re_disk(p,o),如果點(diǎn)o位于NK(p)內(nèi),則第k可達(dá)距離為k-dis(p,o);否則,為d(p,o)。其式為
re_disk(p,o)=max{k-dis(p,o),d(p,o)}
(1)
Step4計(jì)算點(diǎn)p的可達(dá)密度loc_re_dek(p),表示NK(p)中各個(gè)點(diǎn)到點(diǎn)p的平均可達(dá)距離的倒數(shù)。其式為
(2)
可達(dá)密度越高,越可能屬于同一類;可達(dá)密度越低,越可能是異常點(diǎn)[15]。
Step5計(jì)算局部離群因子loc_ou_fak(p),表示為鄰域點(diǎn)Nk(p)的局部可達(dá)密度loc_re_dek(o)與點(diǎn)p的局部可達(dá)密度loc_re_dek(p)之比的平均數(shù),其式為
loc_ou_fak(p)=
(3)
局部離群因子的值接近1,表明p與其鄰域點(diǎn)Nk(p)越有可能屬于同一類;大于1,表明p點(diǎn)越可能是異常點(diǎn),因?yàn)閜的密度遠(yuǎn)小于其鄰域點(diǎn)密度;同理,小于1,表明p越可能為密集點(diǎn),因?yàn)閜的密度遠(yuǎn)高于其鄰域點(diǎn)密度。
針對(duì)K-Means在初始聚類中心點(diǎn)的選取方式上過于隨機(jī)化的缺陷,本文通過計(jì)算樣本密度選取初始中心點(diǎn),具體算法為:
① 定義樣本點(diǎn)x的區(qū)域密度des(x)為以x為球心,λ為半徑所形成的球體內(nèi)的樣本個(gè)數(shù),其式為
des(x)={p|dis(x,p)≤λ,p∈Ω,x∈Ω}
(4)
(5)
其中,k為聚類個(gè)數(shù)。
遍歷原始樣本中每一個(gè)點(diǎn)xi以λ為半徑所形成區(qū)域內(nèi)的樣本點(diǎn)數(shù)目。定義屬性ξi為峰值間距,表示任意2個(gè)簇中心的歐氏距離,則對(duì)于樣本點(diǎn)xi,其最短峰值間距計(jì)算程序?yàn)?/p>
Forj=1,2,3,…,n
if(des(xj)>des(xi))
ξij=‖xi-xj‖2
elseξij≈+
ξi=min{ξi1,ξi2,…,ξin}
End for
則對(duì)于每一個(gè)樣本點(diǎn),都對(duì)應(yīng)2個(gè)屬性樣本點(diǎn)區(qū)域密度見表1。
表1 樣本點(diǎn)區(qū)域密度表
按照最短峰值間距進(jìn)行降序排序,則前k個(gè)最短峰值間距對(duì)應(yīng)的樣本點(diǎn)即為初始k的簇中心點(diǎn)。
② 最短峰值間距中獲取的每個(gè)中心點(diǎn)都對(duì)應(yīng)一個(gè)類,計(jì)算每個(gè)中心點(diǎn)到樣本中所有點(diǎn)的距離(可根據(jù)實(shí)際應(yīng)用需求選擇不同的距離公式,如歐氏距離、馬氏距離等),并將每個(gè)點(diǎn)放入與中心點(diǎn)距離最短的那個(gè)類中。
③ 重新選取新的中心點(diǎn)。計(jì)算規(guī)則是在②生成的類中,計(jì)算任意一點(diǎn)與類內(nèi)其他樣本點(diǎn)的方差,選取最小值。
④ 重復(fù)②與③,直至樣本中心點(diǎn)不在發(fā)生變化,則最終聚類結(jié)束。
CP指數(shù)用于評(píng)價(jià)聚類結(jié)果中各個(gè)類的緊密程度,計(jì)算式為
(6)
式中:CP為類內(nèi)各點(diǎn)到聚類中心點(diǎn)的平均距離,CP越低,意味著類內(nèi)聚類距離越近,類內(nèi)越緊密;Ωi為第i類樣本點(diǎn)集;count|Ωi|為第i類中的樣本點(diǎn)個(gè)數(shù);x為第i類的樣本點(diǎn);wi為i類的類中心。
SP指數(shù)用于評(píng)價(jià)聚類結(jié)果類間的分離度,計(jì)算式為
(7)
式中:SP為聚類中心點(diǎn)兩兩之間的最小距離,SP越高,說明類間距離越遠(yuǎn)。
DB指數(shù)[16]表示任意類中的樣本點(diǎn)到中心點(diǎn)的距離均值CP除以該類與其他任意類的最小中心距離SP。DB指數(shù)越小說明類內(nèi)間距越近,類間距離越遠(yuǎn),聚類質(zhì)量越好。
SC指數(shù)[17]是聚類結(jié)果評(píng)價(jià)的重要參數(shù)之一。他既集合了對(duì)聚類結(jié)果凝聚度與分離度的評(píng)價(jià),又可以體現(xiàn)出聚類初始個(gè)數(shù)K對(duì)于聚類結(jié)果的影響。其計(jì)算過程為:
Step1計(jì)算第i個(gè)元素xi與其同一簇內(nèi)所有其他元素距離的平均值avg_i,用于量化簇內(nèi)凝聚度。
Step2選取xi外的一個(gè)簇Λ,計(jì)算xi與Λ中所有點(diǎn)的平均距離lat_i,并且遍歷其他簇,求出最小的平均距離,用于量化簇間分離度。
Step3通過SC_xi=(l_i-avgi)/max(l_i,avgi)計(jì)算輪廓系數(shù)。
Step4計(jì)算所有x的輪廓系數(shù),求出平均值作為當(dāng)前聚類的輪廓系數(shù)。
本文數(shù)據(jù)集基于某動(dòng)車組轉(zhuǎn)向架裝配線中實(shí)際運(yùn)行的工程數(shù)據(jù),數(shù)據(jù)集僅有3個(gè)屬性,分別為電流、電壓、轉(zhuǎn)速,見表2(僅展示部分?jǐn)?shù)據(jù))。本文使用Matlab對(duì)電機(jī)傳動(dòng)系統(tǒng)的原始數(shù)據(jù)進(jìn)行三維展示,見圖1。
表2 部分?jǐn)?shù)據(jù)信息
原始數(shù)據(jù)雜亂無章,現(xiàn)利用優(yōu)化后的K-Means算法進(jìn)行數(shù)據(jù)聚類,挖掘出數(shù)據(jù)中的潛在規(guī)律。通過對(duì)實(shí)際電機(jī)傳動(dòng)系統(tǒng)數(shù)據(jù)進(jìn)行聚類,采取枚舉法計(jì)算輪廓系數(shù),以選擇最佳K值。輪廓系數(shù)與K值的關(guān)系圖見圖2。由圖2可見,K=3時(shí),數(shù)據(jù)聚類的輪廓系數(shù)最好,說明對(duì)于實(shí)際的電機(jī)傳動(dòng)系統(tǒng)運(yùn)行數(shù)據(jù),聚成3類是最好的選擇。
原始K-Means算法與優(yōu)化后的K-Means算法實(shí)現(xiàn)的聚類結(jié)果見圖3,由圖3可以看出,優(yōu)化后的K-Means使得聚類結(jié)果更加合理。
原始K-Means算法與優(yōu)化后的K-Means算法3個(gè)聚類的DB指數(shù)對(duì)比見圖4。從圖4和圖2可見:相較于原始K-Means,優(yōu)化后的K-Means算法類內(nèi)距離變得更小,類間距離變得更大,優(yōu)化效果顯著。
從聚類結(jié)果對(duì)比中可以看出,相較于傳統(tǒng)的K-Means聚類,優(yōu)化后的K-Means算法能夠更好的將電機(jī)傳動(dòng)系統(tǒng)數(shù)據(jù)分為3個(gè)聚類。
表3 最終聚類中心
聚類之后計(jì)算出的3個(gè)類的類中心見表3,由表3可見,3個(gè)類中第1類的電壓最大,電流也最大,然而轉(zhuǎn)速卻是最小的;這與第三類的結(jié)果恰好相反,電壓最小,電流也最小,但轉(zhuǎn)速卻是最大;第2類中的3個(gè)數(shù)據(jù)都是3個(gè)類中的中間數(shù)據(jù)?;陔姍C(jī)工作原理[18]可知,電機(jī)是將電能轉(zhuǎn)換為機(jī)械能的裝置,其中,電流與電壓的乘積可以表示電能,轉(zhuǎn)速的平方可以表示機(jī)械能。因此,第1類中電流和電壓比較大,轉(zhuǎn)速反而小,說明電能供應(yīng)多,但是轉(zhuǎn)化的機(jī)械能比較少,可以反映出電機(jī)傳動(dòng)系統(tǒng)中存在著較大的內(nèi)部阻力,也可理解為磨損較大,健康狀態(tài)較差,進(jìn)而判定第1類數(shù)據(jù)為電機(jī)故障情況下的數(shù)據(jù);同理,第2類數(shù)據(jù)可以表示電機(jī)在中等磨損情況下的運(yùn)行數(shù)據(jù);第3類數(shù)據(jù)可以表示電機(jī)在健康情況下的運(yùn)行數(shù)據(jù)。因此,將各個(gè)聚類與電機(jī)傳動(dòng)系統(tǒng)的狀態(tài)評(píng)估相對(duì)應(yīng),見表4。
表4 電機(jī)傳動(dòng)系統(tǒng)狀態(tài)說明
基于優(yōu)化K-Means的健康狀態(tài)評(píng)估框架見圖5。
評(píng)估框架偽代碼如下:
Input:Original data set(U,I,V)
Output:Target cluster label(Ⅰ,Ⅱ,Ⅲ)
1.Compute1(re_disk(p,o)&&loc_ou_fak(p))
2.Compute2(des(x)&ξ)→(x1,x2,x3)
3.Compute3(Distance &min(SSE))→new(x1,x2,x3)
4.Return cluster label Ⅰ,Ⅱ,Ⅲ
5.Use Add_nagios() &&Add_perfdata()→Icinga
6.Achieve health condition assessment
詳細(xì)描述如下:
輸入:{基于電流、電壓、轉(zhuǎn)速的三維數(shù)據(jù)集}
輸出:{數(shù)據(jù)的聚類標(biāo)簽}
(1) 獲取自動(dòng)化裝配線上的實(shí)際運(yùn)行數(shù)據(jù)集。
(2) 使用LOF算法對(duì)原始數(shù)據(jù)集進(jìn)行去噪,消除其中的噪聲點(diǎn)與異常點(diǎn)。
(3) 通過計(jì)算數(shù)據(jù)集中每個(gè)樣本點(diǎn)區(qū)域密度和高斯分布的覆蓋半徑,依次選擇出3個(gè)樣本點(diǎn)作為初始中心點(diǎn);并且在中心點(diǎn)更新上,將各簇中距簇內(nèi)各樣本點(diǎn)距離方差最小的點(diǎn)作為新的中心點(diǎn)。
(4) 使用add_nagios()接口與add_perfdata()接口將優(yōu)化K-Means實(shí)現(xiàn)的聚類結(jié)果與icinga監(jiān)控平臺(tái)進(jìn)行通信。
(5) 根據(jù)輸出的聚類標(biāo)簽進(jìn)行狀態(tài)識(shí)別,完成設(shè)備健康狀態(tài)評(píng)估。
本論文根據(jù)上述框架實(shí)現(xiàn)了高速列車自動(dòng)化裝配線中對(duì)自動(dòng)化立體倉庫的監(jiān)控,根據(jù)舉升電機(jī)、翻轉(zhuǎn)電機(jī)、行走電機(jī)傳動(dòng)系統(tǒng)的實(shí)際運(yùn)行數(shù)據(jù)對(duì)三者的健康狀態(tài)進(jìn)行評(píng)估,共分為3個(gè)狀態(tài),正常、警報(bào)與嚴(yán)重,分別對(duì)應(yīng)優(yōu)化K-Means聚成的3個(gè)類,系統(tǒng)中分別以綠色、黃色、紅色表示,部分展示界面見圖6。
本文針對(duì)原始K-Means算法中對(duì)數(shù)據(jù)異常點(diǎn)過于敏感的問題,提出了基于局部異常因子算法的優(yōu)化方法,有效地去除數(shù)據(jù)噪聲點(diǎn)的影響;針對(duì)中心點(diǎn)選取過于隨機(jī)性的缺陷,提出一種新的中心點(diǎn)選取方法,即通過計(jì)算樣本點(diǎn)區(qū)域密度,選擇出K個(gè)初始中心點(diǎn),并且新中心點(diǎn)是選取距簇中其他樣本點(diǎn)方差最小的點(diǎn),從而改善了聚類效果。通過實(shí)際項(xiàng)目中電機(jī)傳動(dòng)系統(tǒng)的電流、電壓、轉(zhuǎn)速數(shù)據(jù)證明,優(yōu)化后的K-Means算法使得類間距離變大,類內(nèi)距離變小,聚類效果較好,并且,將這種優(yōu)化的K-Means算法用于實(shí)際的監(jiān)控系統(tǒng),實(shí)現(xiàn)了對(duì)電機(jī)傳動(dòng)系統(tǒng)的健康狀態(tài)評(píng)估。這種基于K-Means的優(yōu)化算法需要計(jì)算區(qū)域密度,隨著數(shù)據(jù)量的不斷加大,將會(huì)顯著增加計(jì)算開銷,可以利用數(shù)據(jù)并行計(jì)算方法提高計(jì)算效率。