萬(wàn)翔,屈衛(wèi)東
燃?xì)廨啓C(jī)與活塞式內(nèi)燃機(jī)和蒸汽動(dòng)力裝置相比有結(jié)構(gòu)簡(jiǎn)單,小而輕的特點(diǎn),廣泛應(yīng)用于軍事、航空、工業(yè)、電力等領(lǐng)域。由于在高溫高壓環(huán)境下高速運(yùn)轉(zhuǎn),很容易產(chǎn)生故障。故障的直接排除比較困難,并且會(huì)帶來(lái)較大的經(jīng)濟(jì)損失,故借助于數(shù)學(xué)模型先進(jìn)行故障仿真和診斷,防患于未然,有著很高的經(jīng)濟(jì)價(jià)值,目前已經(jīng)成為國(guó)內(nèi)外研究的熱點(diǎn)。
故障診斷的方法很多,不乏一些經(jīng)典理論,像神經(jīng)網(wǎng)絡(luò)、模糊理論、專(zhuān)家系統(tǒng)、小波分析等,但基于統(tǒng)計(jì)學(xué)原理的支持向量機(jī)(Support Vector Machine)理論有其特有的優(yōu)勢(shì),其分類(lèi)的效果不受樣本數(shù)量的限制,在小樣本的情況下依然能得出比較理想的效果。燃?xì)廨啓C(jī)的故障樣本數(shù)量有限,神經(jīng)網(wǎng)絡(luò)等理論不適合小樣本,支持向量機(jī)是一種比較理想的算法。
同一個(gè)故障往往是由多種原因造成的,燃?xì)廨啓C(jī)也是如此,因此故障診斷并不僅僅是簡(jiǎn)單的分類(lèi),還需要通過(guò)有效的方法計(jì)算出多個(gè)原因所占的比重,以方便維護(hù)人員及時(shí)有效的處理和預(yù)防故障。
本文通過(guò)現(xiàn)有燃機(jī)的典型故障樣本訓(xùn)練支持向量機(jī),通過(guò)循環(huán)采集算法實(shí)時(shí)獲取燃機(jī)模型的最新運(yùn)行數(shù)據(jù),并通過(guò)樣本方差將實(shí)時(shí)樣本標(biāo)準(zhǔn)化。采用支持向量機(jī)處理多分類(lèi)問(wèn)題的“一對(duì)多”方法,通過(guò)判別函數(shù)值的大小計(jì)算隸屬度。訓(xùn)練過(guò)程及診斷過(guò)程如圖1所示:
圖1 SVM訓(xùn)練與診斷示意圖
傳統(tǒng)統(tǒng)計(jì)學(xué)是眾多機(jī)器學(xué)習(xí)方法的基礎(chǔ),這些方法都是基于經(jīng)驗(yàn)風(fēng)險(xiǎn)最小化原則的。但有時(shí)候經(jīng)驗(yàn)誤差過(guò)小反而使得推廣能力下降,這就是過(guò)學(xué)習(xí)問(wèn)題。統(tǒng)計(jì)學(xué)習(xí)理論是針對(duì)小樣本學(xué)習(xí)的理論,并提出了結(jié)構(gòu)風(fēng)險(xiǎn)最小化原則。支持向量機(jī)方法就是建立在此基礎(chǔ)上的,根據(jù)有限的樣本信息,在模型的復(fù)雜性和學(xué)習(xí)能力之間尋求最佳折衷,以期獲得最好的推廣能力。它的特點(diǎn)是:可以很好的解決小樣本問(wèn)題和分類(lèi)問(wèn)題,既可以解決神經(jīng)網(wǎng)絡(luò)等方法所固有的過(guò)學(xué)習(xí)和欠學(xué)習(xí)問(wèn)題,還具有很強(qiáng)的非線性分類(lèi)能力。
SVM是從線性可分情況下的最優(yōu)分類(lèi)面發(fā)展而來(lái)的。設(shè)給定訓(xùn)練集為其中,再假設(shè)該訓(xùn)練集中的所有向量均可被一個(gè)超平面線形劃分,并且距超平面最近的異類(lèi)向量之間的距離最大,則該超平面為最優(yōu)超平面。其中距離超平面最近的異類(lèi)向量被稱(chēng)為支持向量(Support Vector)。如圖2所示,黑點(diǎn)和白點(diǎn)代表兩類(lèi)樣本,H為最優(yōu)超平面。
圖2 最優(yōu)分類(lèi)面示意圖
不失一般性,設(shè)對(duì)所有樣本xi滿足下列不等式:
點(diǎn)x到超平面H的距離為:
最優(yōu)分類(lèi)面問(wèn)題可以表示成優(yōu)化問(wèn)題,即在式(2)的約束下,求式(3)的最小值:
求解此優(yōu)化問(wèn)題,首先定義如下的Lagrange函數(shù):
這是一個(gè)二次函數(shù)的尋優(yōu)問(wèn)題,存在唯一解。解上述問(wèn)題后得到的最優(yōu)分類(lèi)面函數(shù)為:
這時(shí)對(duì)于未知樣本x,只需按上式計(jì)算f(x),就可以判定所屬的分類(lèi)。
對(duì)非線性分類(lèi)問(wèn)題,若在原始空間的簡(jiǎn)單最優(yōu)分類(lèi)面不能得到滿意的結(jié)果,則可以通過(guò)非線性變換轉(zhuǎn)化為某個(gè)高維空間中的線性問(wèn)題。SVM通過(guò)核函數(shù)巧妙的解決了這個(gè)問(wèn)題。
核函數(shù)變換后目標(biāo)函數(shù)變?yōu)椋?/p>
相應(yīng)的分類(lèi)函數(shù)也變?yōu)椋?/p>
常用的核函數(shù)有:
q次多項(xiàng)式函數(shù)
徑向基函數(shù)
其中:S形函數(shù)采用雙曲正切函數(shù)tanh。
Sigmoid函數(shù)
上式就是常用的3層神經(jīng)網(wǎng)絡(luò)的判別函數(shù),其隱節(jié)點(diǎn)對(duì)應(yīng)支持向量。
SVM分類(lèi)函數(shù)在形式上類(lèi)似于一個(gè)神經(jīng)網(wǎng)絡(luò),輸出是s個(gè)中間節(jié)點(diǎn)的線性組合,每個(gè)中間節(jié)點(diǎn)對(duì)應(yīng)一個(gè)支持向量,如下圖所示:
圖3 支持向量機(jī)的分類(lèi)示意圖
支持向量機(jī)方法最初是針對(duì)兩分類(lèi)問(wèn)題提出的,而故障診斷問(wèn)題是一個(gè)典型的多分類(lèi)問(wèn)題。支持向量機(jī)方法要應(yīng)用于故障診斷問(wèn)題就必須進(jìn)行擴(kuò)展。將支持向量機(jī)方法延伸到多類(lèi)分類(lèi)問(wèn)題還處于初步研究階段?;镜慕鉀Q思路是構(gòu)造多個(gè)2類(lèi)分類(lèi)器并組合起來(lái)完成多類(lèi)分類(lèi)。目前,典型的支持向量機(jī)多分類(lèi)方法是一對(duì)一方法和一對(duì)多方法。
“一對(duì)一”方法是由Kressel提出的,該算法在N類(lèi)訓(xùn)練樣本中構(gòu)造所有可能的2類(lèi)分類(lèi)器,分別選取2個(gè)不同類(lèi)別構(gòu)成一個(gè)SVM子分類(lèi)器,結(jié)果共構(gòu)造N(N-1)/2個(gè)分類(lèi)器,組合這些2類(lèi)分類(lèi)器用投票法決策。
對(duì)于N類(lèi)問(wèn)題構(gòu)造N個(gè)2類(lèi)分類(lèi)器,第i個(gè)SVM分類(lèi)器用第i類(lèi)中的訓(xùn)練樣本作為正的訓(xùn)練樣本,而將其他的樣本作為負(fù)的訓(xùn)練樣本。測(cè)試時(shí),對(duì)測(cè)試數(shù)據(jù)分別計(jì)算各個(gè)子分類(lèi)器的判別函數(shù)值,并選取最大判別函數(shù)值所對(duì)應(yīng)的類(lèi)別作為測(cè)試數(shù)據(jù)的類(lèi)別。
本文在“一對(duì)多”方法的基礎(chǔ)上提出改進(jìn)方法,同樣的,對(duì)于N類(lèi)問(wèn)題構(gòu)造N個(gè)2類(lèi)分類(lèi)器,第i個(gè)SVM分類(lèi)器用第i類(lèi)中的故障訓(xùn)練樣本作為正的訓(xùn)練樣本,將其他的樣本作為負(fù)的訓(xùn)練樣本。測(cè)試時(shí),對(duì)測(cè)試數(shù)據(jù)分別計(jì)算各個(gè)子分類(lèi)器v的判別函數(shù)值
可以允許一個(gè)樣本屬于多個(gè)故障類(lèi),根據(jù)支持向量機(jī)的計(jì)算原理,距離分類(lèi)面越近的向量其穩(wěn)定閾值越小,被誤診的可能性越大。故診斷重合的向量中,可根據(jù)距離來(lái)計(jì)算隸屬度,而距離直接反應(yīng)在判別函數(shù)的值上。
由于故障樣本對(duì)應(yīng)的故障原因可能有多種,在故障診斷時(shí)必須通過(guò)隸屬度函數(shù)來(lái)計(jì)算可能原因的概率。在N類(lèi)問(wèn)題中屬于子分類(lèi)v的隸屬度函數(shù)可以如下計(jì)算:
訓(xùn)練及診斷過(guò)程如圖所示:
圖4 “一對(duì)多”改進(jìn)方法訓(xùn)練與診斷示意圖
如圖5所示:
燃機(jī)模型仿真席:實(shí)現(xiàn)燃機(jī)過(guò)程的計(jì)算及狀態(tài)顯示;
控制系統(tǒng)仿真席:實(shí)現(xiàn)控制系統(tǒng)計(jì)算,控制規(guī)律的優(yōu)化,控制參數(shù)的在線整定;
故障診斷仿真席:完成故障診斷,故障處理,傳感器數(shù)據(jù)融合,故障數(shù)據(jù)庫(kù)的管理;
仿真系統(tǒng)管理席:實(shí)現(xiàn)系統(tǒng)同步,顯示,控制與管理。
圖5 仿真系統(tǒng)結(jié)構(gòu)圖
本仿真系統(tǒng)的軟件實(shí)現(xiàn)主要由matlab與labview完成,matlab用來(lái)搭建系統(tǒng)數(shù)學(xué)模型和控制系統(tǒng),完成計(jì)算,labview用來(lái)制作用戶界面,完成各個(gè)仿真席之間的通訊。
3.2.1 Labview 共享變量
仿真席之間如何通訊,方法有很多,在這里我們選用labvew的共享變量進(jìn)行通訊。Labview的共享變量功能是基于psp協(xié)議,用來(lái)在不同vi,不同的計(jì)算機(jī)之間實(shí)時(shí)數(shù)據(jù)共享,具有傳輸速度快,多點(diǎn)傳輸,編程簡(jiǎn)單等特點(diǎn)。
3.2.1 Labview Matlab Script
Labview調(diào)用matlab的主要方法有,DLL調(diào)用,ActiveX調(diào)用,還有Labview自帶的Matlab Script節(jié)點(diǎn),在工程實(shí)現(xiàn)上,對(duì)穩(wěn)定性和可靠性要求高,采用Labview自帶的工具既可以方便維護(hù),也有很好的可靠性,實(shí)際上也是使用ActiveX技術(shù),執(zhí)行效率高。
通過(guò)共享變量和Matlab script節(jié)點(diǎn)建立起來(lái)的仿真系統(tǒng),可以方便的進(jìn)行數(shù)據(jù)采集,燃機(jī)模型在第一臺(tái)仿真席中運(yùn)行,故障診斷仿真席通過(guò)共享變量引擎實(shí)時(shí)采集燃機(jī)的運(yùn)行數(shù)據(jù),數(shù)據(jù)的處理(包括求平均值、計(jì)算方差、向量標(biāo)準(zhǔn)化等)都在Labview中進(jìn)行,故障診斷通過(guò)Labview Matlab Script節(jié)點(diǎn)進(jìn)行運(yùn)算,診斷結(jié)果反應(yīng)在Labview的界面上,如圖6所示:
圖6 Labview界面簡(jiǎn)圖
故障的發(fā)生直接反應(yīng)在熱力學(xué)參數(shù)的變化上,通過(guò)分析溫度壓力等數(shù)據(jù),可以進(jìn)行故障定位。以壓氣機(jī)排氣溫度的采集為例,每10ms采集一次排氣溫度傳感器值,存入Data1,采集10次后求平均值,作為第一個(gè)樣本數(shù)據(jù),存入Data2,即100ms保存一個(gè)值,Data2中存放10個(gè)數(shù),即1秒內(nèi)的10個(gè)樣本,存滿后,下一個(gè)值進(jìn)來(lái)時(shí),將數(shù)組整體前移一位,去掉第一個(gè)數(shù),新值存入數(shù)組末尾讓數(shù)組的十個(gè)數(shù)保持最新,一直循環(huán)采集。labview的程序結(jié)構(gòu)如圖7所示:
圖7 數(shù)據(jù)采集流程圖
數(shù)據(jù)采集進(jìn)來(lái)后,對(duì)樣本數(shù)據(jù)進(jìn)行處理,可以提高支持向量機(jī)的運(yùn)算效率和分類(lèi)準(zhǔn)確性。處理方法為:利用標(biāo)準(zhǔn)方差將向量零化和單位化,存入數(shù)組Data3中,具體過(guò)程如圖8。
圖8 向量的標(biāo)準(zhǔn)化
下圖9是故障診斷部分的程序,采用Matlab Script節(jié)點(diǎn)完成程序編寫(xiě)。
圖9 故障診斷部分程序簡(jiǎn)圖
無(wú)論用什么方法建立故障診斷系統(tǒng),最主要的是故障判據(jù)的取得。搜集整理許多作者的研究工作,對(duì)3種典型故障的判據(jù)列于下表1:
表1 故障類(lèi)型和判據(jù)
按照此故障類(lèi)型和判據(jù),訓(xùn)練支持向量機(jī),個(gè)數(shù)為3個(gè),建立60個(gè)故障樣本(包含3種典型故障),30個(gè)用來(lái)訓(xùn)練支持向量機(jī),30個(gè)用來(lái)檢驗(yàn)分類(lèi)準(zhǔn)確率。
通過(guò)matlab仿真,分別選取線性核函數(shù),多項(xiàng)式核函數(shù),徑向基函數(shù)的結(jié)果列于表2。
表2 訓(xùn)練及效果比較
其中分類(lèi)結(jié)果最好的是三次多項(xiàng)式,故選用三次多項(xiàng)式核函數(shù)。
實(shí)時(shí)提取燃機(jī)運(yùn)行樣本,通過(guò)仿真,模擬故障的發(fā)生,提取5個(gè)樣本并進(jìn)行在線診斷,選用三次多項(xiàng)式核函數(shù),根據(jù)公式(12),判別函數(shù)值如表3:
表3 故障樣本判別函數(shù)值表
根據(jù)“一對(duì)多”改進(jìn)方法和公式(13),可得各個(gè)故障的隸屬度如表4。
表4 隸屬度表
以第三個(gè)樣本為例,診斷結(jié)果在前面板上顯示如下,可以清楚的看到各個(gè)故障發(fā)生與否和發(fā)生概率,如圖10所示。
圖10 故障診斷顯示界面
本文在支持向量機(jī)“一對(duì)多”方法的基礎(chǔ)上進(jìn)行改進(jìn),通過(guò)判別函數(shù)值計(jì)算隸屬度。從仿真系統(tǒng)中提取實(shí)時(shí)樣本,標(biāo)準(zhǔn)化后使用多分類(lèi)支持向量機(jī)進(jìn)行診斷,從故障診斷的結(jié)果可以看出,支持向量機(jī)在小樣本的情況下,能夠很準(zhǔn)確的進(jìn)行樣本分類(lèi)和故障定位,診斷結(jié)果合理高效。并且使用labview搭建的顯示界面方便直觀,如配合一定的數(shù)據(jù)采集硬件,可以進(jìn)行系統(tǒng)擴(kuò)展,搭建在線故障診斷與監(jiān)控系統(tǒng)。
[1]白鵬,張喜斌,張斌.支持向量機(jī)理論及工程應(yīng)用實(shí)例[M].西安:西安電子科技大學(xué)出版社,2008:43-57.
[2]羅穎鋒,曾進(jìn).基于支持向量機(jī)的燃?xì)廨啓C(jī)故障診斷[J].熱能動(dòng)力工程,2004,33(4):354-357.
[3]秦玉平,王秀坤,艾青.基于模糊支持向量機(jī)的多主題文本分類(lèi)算法研究[J].小型微型計(jì)算機(jī)系統(tǒng),2008,3:548-551.
[4]戴洪德,陳明,李娟.基于多層子支持向量機(jī)的多傳感器故障診斷[J].儀器儀表學(xué)報(bào),2006,27(6):1737-1739.
[5]XU Qi-hua,SHI Jun.Fault Diagnosis for Aero-engine Applying a New Multi-class Support Vector Algorithm[J].Beijing:CHINESE JOURNAL OFAERONAUTICS,2006,19(1):175-182.
[6]于凡.支持向量機(jī)在智能故障診斷中的應(yīng)用研究[D].華北電力大學(xué),2007.
[7]黃曉光.基于熱力參數(shù)的燃?xì)廨啓C(jī)故障診斷[D].上海:上交通大學(xué),2000.