,
(上海交通大學(xué) 船舶海洋與建筑工程學(xué)院,上海 200030)
船舶主機(jī)遙控系統(tǒng)是實(shí)現(xiàn)船舶機(jī)艙高度自動(dòng)化的前提,一般由執(zhí)行器、控制器、傳感器、齒輪箱驅(qū)動(dòng)器、連接電纜等部分組成,其中控制器是主機(jī)控制系統(tǒng)的核心部分[1]。所以對(duì)主機(jī)遙控系統(tǒng)特別是控制器的各類故障現(xiàn)象進(jìn)行迅速準(zhǔn)確的分析并及時(shí)排除有著非常重大的現(xiàn)實(shí)意義。傳統(tǒng)模擬電路故障診斷方法,如故障字典法,、參數(shù)識(shí)別法等,由于自身的局限性和工作量過(guò)大等問(wèn)題,其診斷效果并不理想。為了實(shí)現(xiàn)更加快速準(zhǔn)確地模擬電路智能故障診斷,必須尋求其它方法。人工神經(jīng)網(wǎng)絡(luò)憑借其無(wú)需建立診斷對(duì)象的精確數(shù)學(xué)模型、非線性映射、高速的自組織和自學(xué)習(xí)推理能力等特性[2],成為故障診斷的一種有效方法和手段,在模擬電路故障診斷中也己獲得較成功的應(yīng)用。
反向傳播神經(jīng)網(wǎng)絡(luò)簡(jiǎn)稱BP神經(jīng)網(wǎng)絡(luò),是一種典型的前向式神經(jīng)網(wǎng)絡(luò),是迄今為止應(yīng)用最普遍的一種神經(jīng)網(wǎng)絡(luò),在模擬電路故障診斷中目前也是以BP網(wǎng)絡(luò)為主。圖1為采用簡(jiǎn)化符號(hào)來(lái)表示的三層BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖,每層都有自己的權(quán)值矩陣W、偏置值向量b、凈輸入向量n和一個(gè)
圖1 三層神經(jīng)網(wǎng)絡(luò)的簡(jiǎn)化表示
輸出向量a,各變量的維數(shù)均直接標(biāo)出,這樣就可以不必費(fèi)心去猜變量的類型或維數(shù),一目了然。這里引入了額外的符號(hào)來(lái)區(qū)分這些層次,即每個(gè)變量都附加一個(gè)上標(biāo)來(lái)表示其所處層次。這樣,第一層的權(quán)值矩陣記為W1,第二層的權(quán)值矩陣記為W2,以此類推[3]。它的工作方式是一種有教師的學(xué)習(xí)算法,即它必須已知每種輸入模式的精確輸出結(jié)果。
基于人工神經(jīng)網(wǎng)絡(luò)的模擬電路故障診斷系統(tǒng)主要包括兩個(gè)過(guò)程:學(xué)習(xí)(訓(xùn)練)過(guò)程和診斷(測(cè)試)過(guò)程,每個(gè)過(guò)程都包括數(shù)據(jù)預(yù)處理和特征提取兩部分。模擬電路故障診斷的過(guò)程是把癥狀空間的向量映射到故障空間,即實(shí)現(xiàn)故障特征空間到分類(識(shí)別)空間的映射。如何快速、有效提取優(yōu)質(zhì)的模擬電路故障特征,是進(jìn)行電路故障診斷和測(cè)試的難點(diǎn)和關(guān)鍵所在。
用BP網(wǎng)絡(luò)進(jìn)行電路故障診斷的步驟為:①測(cè)前,將電路的正常狀態(tài)及各種故障狀態(tài)所對(duì)應(yīng)的理論值求出,并作為樣本輸入給BP網(wǎng)絡(luò),訓(xùn)練好BP網(wǎng)絡(luò);②加測(cè)試激勵(lì),將實(shí)際狀態(tài)測(cè)出,經(jīng)過(guò)一定預(yù)處理后把數(shù)據(jù)提供給訓(xùn)練好的BP網(wǎng)絡(luò)進(jìn)行測(cè)試。訓(xùn)練好的網(wǎng)絡(luò)不僅能識(shí)別已經(jīng)訓(xùn)練過(guò)的樣本,而且能通過(guò)聯(lián)想推理,識(shí)別未出現(xiàn)過(guò)的樣本,這正是神經(jīng)網(wǎng)絡(luò)智能性的體現(xiàn)[4]。
本文所述柴油機(jī)遙控系統(tǒng)主控制器主要由24個(gè)單獨(dú)的模塊組成。在對(duì)24個(gè)模塊的線路板的具體工作原理進(jìn)行仔細(xì)分析后,通過(guò)系統(tǒng)管理軟件控制數(shù)據(jù)采集卡、專用電源、控制板向被測(cè)模塊相關(guān)引腳輸入一定的激勵(lì)信號(hào),并通過(guò)采集卡各數(shù)字和模擬輸入通道采集各引腳的響應(yīng)信號(hào),由神經(jīng)網(wǎng)絡(luò)模型分析線路板性能,進(jìn)行故障判斷并提示故障點(diǎn)位置及其故障類型,并給出維修提示。診斷時(shí),首先將大規(guī)模電路按照某種原則撕裂為若干個(gè)小網(wǎng)絡(luò),再利用 BP 網(wǎng)絡(luò)的診斷原理分別對(duì)每一個(gè)子網(wǎng)絡(luò)進(jìn)行診斷。M6P3作為柴油機(jī)遙控系統(tǒng)24個(gè)模塊中屬于比較簡(jiǎn)單的一個(gè)模塊,以此模塊為例進(jìn)行故障診斷。電路原理見(jiàn)圖2。
圖2 柴油機(jī)遙控系統(tǒng)模塊M6P3電路原理
如圖2所示,這個(gè)模塊面板上有5個(gè)接插件X1,X2,…,X5,通過(guò)連線與測(cè)試控制板相連,然后運(yùn)行系統(tǒng)軟件里對(duì)每個(gè)模塊單獨(dú)編制的測(cè)試進(jìn)程程序,通過(guò)控制采集卡、控制板上的單片機(jī)和繼電器等元件來(lái)控制模塊各引腳和采集卡對(duì)應(yīng)通道間的通斷,實(shí)現(xiàn)對(duì)模塊各引腳激勵(lì)信號(hào)輸入和對(duì)應(yīng)引腳響應(yīng)信號(hào)采集的過(guò)程自動(dòng)化,再通過(guò)訓(xùn)練好的故障診斷神經(jīng)網(wǎng)絡(luò)來(lái)診斷故障并給出維修提示,這樣就大大減少了診斷過(guò)程的復(fù)雜性,并實(shí)現(xiàn)了測(cè)試的智能性。
在此模塊中,全部的可能故障可分為三大類:①接插件各引腳連線故障;②繼電器故障,各開關(guān)不能有效動(dòng)作;③電容短路故障。通過(guò)仔細(xì)分析,為了減少神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的復(fù)雜性及考慮到采集卡輸入輸出通道數(shù)目的有限性,將測(cè)試過(guò)程分成9個(gè)獨(dú)立的小階段。這9個(gè)階段因故障類型均為硬故障,故采用同一個(gè)訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)。原理闡述如下。
從圖2中可以看到X5:A1與X2:b0~b9,X5:A2與X1:b0~b9,X5:A3與X4:a0~a9,X5:A4與X3:a0~a9,X5:Б1與X4:c0~c9,X5:B2與X3:c0~c9各腳均互連,另還有14組諸如X1:a8與X1:a9兩兩互連的引腳,9個(gè)開關(guān)和3個(gè)電容(只檢測(cè)電容有無(wú)短路),據(jù)此分為9個(gè)檢測(cè)階段,每個(gè)階段均采取10輸入10輸出的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),10輸出編號(hào)為0~9,在每一檢測(cè)階段每一編號(hào)對(duì)應(yīng)某一特定的故障?,F(xiàn)以第一檢測(cè)階段即檢測(cè)X5:A1與X2:b0~b9連線故障來(lái)具體闡述其實(shí)現(xiàn)過(guò)程:通過(guò)采集卡對(duì)X5:A1施加直流+5 V電壓激勵(lì),通過(guò)采集卡數(shù)字端口檢測(cè)X2:b0~b910個(gè)引腳的電平情況,即這里采取的神經(jīng)網(wǎng)絡(luò)故障特征提取方法是根據(jù)CMOS電平來(lái)確定的,高為1,低為0,然后作為神經(jīng)網(wǎng)絡(luò)的輸入,經(jīng)過(guò)訓(xùn)練好的BP網(wǎng)絡(luò)處理后,10個(gè)輸出中若有某編號(hào)(在這階段編號(hào)0~9對(duì)應(yīng)X2:b0~b9)如3號(hào)輸出為0,說(shuō)明X2:b3與X5:A1有斷線故障,若輸出為1則表示正常。
需特別說(shuō)明的是,對(duì)繼電器各開關(guān)進(jìn)行故障檢測(cè)時(shí),各繼電器均上電,對(duì)應(yīng)于常閉開關(guān)的編號(hào)輸出為1,表示故障,輸出為0則正常,與常開開關(guān)相反。
關(guān)于BP神經(jīng)網(wǎng)絡(luò)的應(yīng)用主要包括:確定網(wǎng)絡(luò)結(jié)構(gòu)、訓(xùn)練BP網(wǎng)絡(luò)、測(cè)試訓(xùn)練過(guò)的BP網(wǎng)絡(luò)。確定網(wǎng)絡(luò)結(jié)構(gòu)包括確定網(wǎng)絡(luò)的隱層數(shù)及各隱層的單元數(shù)。對(duì)于網(wǎng)絡(luò)的層數(shù),不少學(xué)者做了理論上的研究。Lippmann提出,有2個(gè)隱層的神經(jīng)網(wǎng)絡(luò)可以解決任何形式的分類問(wèn)題[5]。之后,Robert Hecht Nielson從理論上證明,對(duì)于任何在閉區(qū)間內(nèi)的一個(gè)連續(xù)函數(shù)都可以用具有一個(gè)隱層的BP網(wǎng)絡(luò)來(lái)逼近,因而一個(gè)三層的BP網(wǎng)絡(luò)可以完成任意的M維到m維的映射[6]。這一理論在設(shè)計(jì)BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)時(shí)可以作為一個(gè)基本原則。實(shí)際上,增加層數(shù)的目的是找到輸入輸出變量之間的映射關(guān)系,進(jìn)一步降低誤差,提高學(xué)習(xí)精度,但另一方面,這樣做也使得網(wǎng)絡(luò)結(jié)構(gòu)復(fù)雜化,從而增加了網(wǎng)絡(luò)權(quán)值的訓(xùn)練時(shí)間。
本文用于故障診斷的BP神經(jīng)網(wǎng)絡(luò)采用三層結(jié)構(gòu),除輸入和輸出層外只有一個(gè)隱性層,而通過(guò)隱層單元數(shù)的設(shè)置來(lái)調(diào)節(jié)誤差。眾所周知,隱層節(jié)點(diǎn)數(shù)必須設(shè)置合適,否則若節(jié)點(diǎn)數(shù)過(guò)少,學(xué)習(xí)的容量有限,不足以存儲(chǔ)訓(xùn)練樣本中蘊(yùn)含的所有規(guī)律;節(jié)點(diǎn)數(shù)過(guò)多會(huì)增加網(wǎng)絡(luò)的訓(xùn)練時(shí)間,且會(huì)將樣本中非規(guī)律性的內(nèi)容存儲(chǔ)進(jìn)去,反而降低泛化能力。對(duì)此,除了許多學(xué)者提出不少經(jīng)驗(yàn)公式外,也有人提出試湊法, 即初始放入足夠多的隱層單元, 然后把學(xué)習(xí)后那些不起作用的隱層單元逐步去掉, 一直減少到不可收縮為止或者初始時(shí)放入比較少的隱層單元, 學(xué)習(xí)一定的次數(shù)后, 不成功再增加隱層單元數(shù), 一直達(dá)到比較合理的隱層單元數(shù)為止[7]。本文通過(guò)經(jīng)驗(yàn)公式首先將隱層單元數(shù)確定在一個(gè)范圍中,然后通過(guò)試湊法將此范圍稍加擴(kuò)大,比較這些模型的仿真結(jié)果,以此確定網(wǎng)絡(luò)的結(jié)構(gòu)。根據(jù)第二部分的輸入輸出數(shù)和某經(jīng)驗(yàn)公式,初步確定隱層單元數(shù)的范圍在 6~15之間,而為了體現(xiàn)出隱層單元數(shù)對(duì)模型精度、訓(xùn)練速度的影響,在仿真中,將這個(gè)范圍稍微放大將隱層單元數(shù)取在 6~20之間,仿真并比較各結(jié)果。
BP網(wǎng)絡(luò)通過(guò)調(diào)整網(wǎng)絡(luò)的權(quán)值和閾值建立起了輸入與輸出之間的隱含數(shù)學(xué)關(guān)系,實(shí)現(xiàn)了對(duì)學(xué)習(xí)樣本的記憶,從而具有分類的功能。但是傳統(tǒng)的BP算法自身仍有缺陷和不足,比如收斂速度慢,再如,由于采用梯度下降訓(xùn)練算法,因此有可能陷入局部極小。這些缺陷和不足都將導(dǎo)致對(duì)電路故障診斷效率不能達(dá)到最優(yōu)。針對(duì)這一點(diǎn),考慮了一些改進(jìn)網(wǎng)絡(luò)學(xué)習(xí)和訓(xùn)練的算法,包括動(dòng)量方法和Levenberg-Marquardt數(shù)值優(yōu)化算法。反向傳播的動(dòng)量改進(jìn)(MOBP)公式如下[8]:
ΔWm(k)=γΔWm(k-1)-(1-γ)αsm(am-1)T
Δbm(k)=γΔbm(k-1)-(1-γ)αsm
(1)
F(x)——均方誤差函數(shù)。
加入動(dòng)量因子γ的動(dòng)量方法有助于減少訓(xùn)練過(guò)程中振蕩的數(shù)目,可以加速收斂。Levenberg-Marquardt算法主要優(yōu)點(diǎn)是算法的每次迭代都能減少平方誤差和。其權(quán)重和閾值更新公式為
X(k+1)=X(k)-(JTJ+μI-1)JTe
(2)
式中:J——誤差對(duì)權(quán)值微分的雅可比矩陣;
e——誤差向量。
最后通過(guò)上述介紹的經(jīng)驗(yàn)公式和試湊法,確定BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)為10-20-10,采用反向傳播的動(dòng)量改進(jìn)(MOBP)的學(xué)習(xí)方法和Levenberg-Marquardt算法的訓(xùn)練方法,網(wǎng)絡(luò)圴方誤差MSE=1×10-10。訓(xùn)練結(jié)果見(jiàn)圖3。
圖3 BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練結(jié)果顯示
從圖3中可以看出,1 min 02 s后,神經(jīng)網(wǎng)絡(luò)就能訓(xùn)練達(dá)到所要求的精度。接下來(lái)通過(guò)隨機(jī)生成一組模擬輸入向量(共200個(gè)),并用訓(xùn)練好的網(wǎng)絡(luò)來(lái)產(chǎn)生其輸出結(jié)果,試驗(yàn)結(jié)果表明網(wǎng)絡(luò)的實(shí)際輸出跟理論輸出幾乎一致,從而能達(dá)到所訓(xùn)網(wǎng)絡(luò)診斷故障的目的。
改進(jìn)的算法能有效加快網(wǎng)絡(luò)的收斂速度,縮短訓(xùn)練時(shí)間,而且對(duì)系統(tǒng)電路的硬故障診斷準(zhǔn)確率極高,能真正實(shí)現(xiàn)快速自動(dòng)智能的故障檢測(cè)功能。但是應(yīng)該指出的是,就一些元器件的軟故障,如電阻、電容或三極管參數(shù)偏離正常值等,用BP神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)這類故障類型的判斷有著一定的欠缺。
[1] 陳鴻瓔.船舶柴油機(jī)主機(jī)遙控[M].北京:人民交通出版社,1996.
[2] 王 承.基于神經(jīng)網(wǎng)絡(luò)的模擬電路故障診斷方法研究[D].電子科技大學(xué),2005.
[3] Hagan Martin T, Demuth Howard B, Beale Mark H.神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)[M].戴葵,譯.北京:機(jī)械工業(yè)出版社,2002.
[4] 譚陽(yáng)紅,何怡剛,陳洪云,等.大規(guī)模電路故障診斷神經(jīng)網(wǎng)絡(luò)方法[J].電路與系統(tǒng)學(xué)報(bào),2001,6(4):25-28.
[5] Lippmann R P.An introduction to computing with neural nets[J].IEEE ASSP Magazine,1988,16(1):4-22
[6] Nielson R H.Theory of the backpropagation neural network[C]∥Washington,DC,OSA: International Joint Conference on Neural Net Works, 1989.
[7] 張立明.人工神經(jīng)網(wǎng)絡(luò)的模型及其應(yīng)用[M].上海:復(fù)旦大學(xué)出版社,1995.
[8] 丁士圻,郭麗華.人工神經(jīng)網(wǎng)絡(luò)基礎(chǔ)[M].哈爾濱:哈爾濱工程大學(xué)出版社,2008.