(海軍工程大學(xué)電子工程學(xué)院 武漢 430033)
目前,軍事通信裝備呈現(xiàn)出集成度更高和造價(jià)更加昂貴的特點(diǎn)。傳統(tǒng)的裝備維修保障訓(xùn)練以實(shí)裝訓(xùn)練為主,面臨人才培訓(xùn)周期長(zhǎng)、訓(xùn)練經(jīng)費(fèi)高、裝備損耗嚴(yán)重和受環(huán)境和條件的限制等問(wèn)題。虛擬故障診斷采用虛擬仿真技術(shù)構(gòu)建裝備訓(xùn)練平臺(tái),使受訓(xùn)人員能夠在虛擬的環(huán)境中接受裝備維修保障訓(xùn)練,有效解決了上述問(wèn)題[1]。設(shè)備故障診斷技術(shù)起源于美國(guó),20世紀(jì)60年代末70年代初在美國(guó)、英國(guó)等國(guó)家取得較大發(fā)展。我國(guó)從20世紀(jì)80年代中期開始研究設(shè)備故障診斷技術(shù),如今已形成高校、研究所及工廠的梯隊(duì)式研究、開發(fā)和應(yīng)用模式[2]。虛擬故障診斷技術(shù)將虛擬現(xiàn)實(shí)技術(shù)與故障診斷技術(shù)相結(jié)合,在虛擬的環(huán)境中模擬故障診斷的整個(gè)過(guò)程,從而實(shí)現(xiàn)故障維修訓(xùn)練的目的。當(dāng)前,電子設(shè)備故障診斷系統(tǒng)已能夠?qū)崿F(xiàn)電路板級(jí)的故障診斷,但是,元件級(jí)故障檢測(cè)極其復(fù)雜,主要依靠人工測(cè)量,憑經(jīng)驗(yàn)判決,準(zhǔn)確性、穩(wěn)定性和效率都難以保證,給日常的裝備保障維修帶來(lái)不便[3]。本系統(tǒng)將虛擬仿真技術(shù)應(yīng)用于元件級(jí)故障診斷,以Delphi為系統(tǒng)平臺(tái)開發(fā)可視化界面,構(gòu)建電路板的三維模型,運(yùn)用Multisim 仿真工具完成電路仿真和故障模擬,生成故障數(shù)據(jù)庫(kù)[4],經(jīng)過(guò)BP 神經(jīng)網(wǎng)絡(luò)的計(jì)算得到故障診斷結(jié)果,實(shí)現(xiàn)了電子設(shè)備元件級(jí)故障診斷。
電子設(shè)備的虛擬故障診斷系統(tǒng)要求既能向受訓(xùn)者展示各電路板的三維模型和拆裝過(guò)程,與受訓(xùn)者進(jìn)行交互,又要根據(jù)測(cè)量的信號(hào),進(jìn)行故障診斷,找出故障點(diǎn),指導(dǎo)受訓(xùn)者完成故障診斷與維修。整個(gè)過(guò)程的實(shí)現(xiàn),要綜合運(yùn)用虛擬仿真、電路仿真與故障模擬、故障診斷和可視化界面開發(fā)等技術(shù)。BP神經(jīng)網(wǎng)絡(luò)是一種并行結(jié)構(gòu)的信號(hào)處理網(wǎng)絡(luò),具有自適應(yīng)性、自學(xué)習(xí)能力和容錯(cuò)性,能夠較好地解決電子設(shè)備元件級(jí)故障診斷的問(wèn)題[5]。考慮到Delphi強(qiáng)大的可視化界面開發(fā)能力,整個(gè)系統(tǒng)以Delphi為開發(fā)平臺(tái)[6]。系統(tǒng)設(shè)計(jì)框圖如圖1所示。
圖1 系統(tǒng)設(shè)計(jì)框圖
通過(guò)電路仿真進(jìn)行故障診斷可以用圖2所示框圖[7]來(lái)表示。
圖2 仿真電路故障診斷框圖
該框圖由測(cè)試信號(hào)發(fā)生器、待測(cè)電路、標(biāo)準(zhǔn)電路和比較分析器四個(gè)模塊構(gòu)成,測(cè)試信號(hào)發(fā)生器產(chǎn)生電路的標(biāo)準(zhǔn)輸入信號(hào),標(biāo)準(zhǔn)電路認(rèn)為是沒有故障的正常電路,待測(cè)電路是對(duì)標(biāo)準(zhǔn)電路設(shè)置某一故障后得到的電路。測(cè)試信號(hào)同時(shí)輸入給待測(cè)電路和標(biāo)準(zhǔn)電路,通過(guò)比較測(cè)試點(diǎn)的信號(hào)波形,就可以得到故障信號(hào)以及發(fā)生故障的元件。
某型通信設(shè)備的電源模塊由整流電路、穩(wěn)壓電路、濾波電路和保護(hù)電路等構(gòu)成[8]。根據(jù)實(shí)際使用和故障診斷經(jīng)驗(yàn),確定電路關(guān)鍵點(diǎn),作為仿真測(cè)量的節(jié)點(diǎn)[9]。系統(tǒng)以Multisim 作為電路仿真工具,通過(guò)對(duì)標(biāo)準(zhǔn)電路設(shè)置特定類型故障(如三極管基極和集電極短路)得到待測(cè)電路,仿真待測(cè)電路和標(biāo)準(zhǔn)電路,得到各測(cè)量節(jié)點(diǎn)的電壓,連同故障類型和故障元件編號(hào)一起存入數(shù)據(jù)庫(kù),就可以構(gòu)成該故障的所有特征信息。
3.2.1 BP神經(jīng)網(wǎng)絡(luò)的基本原理
BP神經(jīng)網(wǎng)絡(luò)由輸入層(Input Layer)、隱含層(Hidden Layer)和輸出層(Output Layer)構(gòu)成,輸入層、輸出層節(jié)點(diǎn)(同神經(jīng)元)個(gè)數(shù)分別由輸入矢量、輸出矢量的維數(shù)決定。隱含層節(jié)點(diǎn)個(gè)數(shù)的確定,目前還沒有統(tǒng)一、準(zhǔn)確的方法,可以參考以下三個(gè)公式[2]:
式中n,h,m分別代表輸入層、隱含層和輸出層節(jié)點(diǎn)數(shù),a為1~10之間的常數(shù)。M為樣本數(shù),當(dāng)i>h時(shí),
三層BP神經(jīng)網(wǎng)絡(luò)的一般結(jié)構(gòu)如圖3所示。
圖3 三層BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖
設(shè)神經(jīng)網(wǎng)絡(luò)的輸入、輸出矢量分別為x=(x1,x2,…,xn)T,y=(y1,y2,…,ym)T。自隱含層開始,從神經(jīng)元j到i的連接權(quán)值為wij(輸入層連接權(quán)值規(guī)定為1),第u層(u=1代表隱含層,u=2代表輸出層)的神經(jīng)元個(gè)數(shù)為Nu,第u層第k個(gè)神經(jīng)元的權(quán)值向量寫為,k=1,2,…,Nu。第u層第k個(gè)神經(jīng)元的輸出記為,狀態(tài)記為,那么
在給定輸入樣本[X,Y]后,BP 神經(jīng)網(wǎng)絡(luò)的權(quán)值將按照使式(8)目標(biāo)誤差函數(shù)的值達(dá)到最小的方向進(jìn)行調(diào)整。
式(8)中,Y為網(wǎng)絡(luò)期望的輸出,為網(wǎng)絡(luò)的實(shí)際輸出且,W是網(wǎng)絡(luò)的權(quán)值矩陣。利用梯度下降最優(yōu)化算法,權(quán)值向量的修正量由式(9)確定:
其中,輸出層的由式(10)得出
對(duì)于隱含層:
上述方法就是BP 算法[2],體現(xiàn)了數(shù)據(jù)正向傳遞、誤差反向傳播的過(guò)程。對(duì)于給定的訓(xùn)練樣本,按照上述方法反復(fù)訓(xùn)練神經(jīng)網(wǎng)絡(luò)來(lái)調(diào)整權(quán)值,直到網(wǎng)絡(luò)實(shí)際輸出與期望輸出之間的誤差在允許的范圍內(nèi)為止。
3.2.2 BP神經(jīng)網(wǎng)絡(luò)的Matlab實(shí)現(xiàn)
Matlab神經(jīng)網(wǎng)絡(luò)工具箱nnet(Neural Network Toolbox)提供了豐富的神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)函數(shù),有圖形用戶界面函數(shù),神經(jīng)網(wǎng)絡(luò)創(chuàng)建、訓(xùn)練和仿真函數(shù),繪圖函數(shù)以及Simulink支持。
BP神經(jīng)網(wǎng)絡(luò)的Matlab實(shí)現(xiàn)主要用到以下三個(gè)函數(shù):
newff(·):BP神經(jīng)網(wǎng)絡(luò)創(chuàng)建函數(shù);
train(·):網(wǎng)絡(luò)訓(xùn)練函數(shù);
sim(·):使用網(wǎng)絡(luò)進(jìn)行仿真。
BP神經(jīng)網(wǎng)絡(luò)的Matlab實(shí)現(xiàn)程序流程圖如圖4所示。
Matlab能快速實(shí)現(xiàn)數(shù)值計(jì)算、信號(hào)處理和圖形分析等功能,編程效率高。Delphi使用全新的可視化編程環(huán)境,在工程開發(fā)中可以方便高效地實(shí)現(xiàn)人機(jī)交互、數(shù)據(jù)采集和端口操作等功能。但是,Delphi在數(shù)值計(jì)算和圖形分析方面,其編程效率遠(yuǎn)遠(yuǎn)低于Matlab。因此,Matlab 和Delphi混合編程,優(yōu)勢(shì)互補(bǔ),能為系統(tǒng)的實(shí)現(xiàn)提供更簡(jiǎn)單高效的途徑。
目前應(yīng)用較多的是利用COM 接口實(shí)現(xiàn)Matlab與Delphi的混合編程。在較早版本的Matlab中,用戶可以利用COM tool命令啟動(dòng)COM Builder的圖形用戶界面,然后通過(guò)添加類和函數(shù)文件,再進(jìn)行相關(guān)的設(shè)置就可以生成COM 組件文件。但是,新版本的Matlab 軟件已不再提供COM tool,取而代之的是Deploy Project工具[10]。
圖4 BP神經(jīng)網(wǎng)絡(luò)的Matlab程序流程圖
系統(tǒng)以Matlab R2011a為開發(fā)工具?;旌暇幊痰倪^(guò)程可概括為:配置編譯環(huán)境、新建COM 工程、添加類和方法,最后編譯完成。
這里,類名決定了導(dǎo)入Delphi的組件的名稱,方法可以是Matlab的函數(shù)文件,其一般格式如下:
function
[y1,y2,…,yn]=func(x1,x2,…,xn)
…
y=f(x1,x2,…,xn);
這里定義了一個(gè)函數(shù)func。
編譯完成后,工程文件夾下將會(huì)生成兩個(gè)文件夾distrib和src,distrib文件夾,里面存放的是動(dòng)態(tài)鏈接庫(kù)形式的COM 組件File_name_1_0.dll,1_0代表版本信息。
在使用組件之前,必須對(duì)組件進(jìn)行注冊(cè)。Matlab在編譯完成之后會(huì)自動(dòng)對(duì)組件進(jìn)行注冊(cè)。在Delphi中安裝此組件,編寫以下程序[11]實(shí)現(xiàn)COM組件的調(diào)用。
上述程序中,COM_Name是被調(diào)用組件的名稱,func是該組件的方法。
電路展示(V)菜單用于展示被測(cè)電路板的模型。通過(guò)故障模擬菜單可以選擇不同類型的故障,這些故障數(shù)據(jù)事先已存儲(chǔ)在數(shù)據(jù)庫(kù)中。建立BP神經(jīng)網(wǎng)絡(luò),設(shè)置好網(wǎng)絡(luò)參數(shù),輸入故障數(shù)據(jù)矢量,系統(tǒng)能完成故障診斷,并定位故障點(diǎn)(元件),給出故障原因,生成維修策略。可以對(duì)系統(tǒng)進(jìn)行性能分析,包括神經(jīng)網(wǎng)絡(luò)的性能分析和維修策略的分析。
本系統(tǒng)基于BP神經(jīng)網(wǎng)絡(luò)的故障診斷方法,利用虛擬現(xiàn)實(shí)技術(shù)、電路仿真技術(shù)、BP 神經(jīng)網(wǎng)絡(luò)的Matlab實(shí)現(xiàn)以及Delphi的可視化開發(fā)技術(shù),實(shí)現(xiàn)了某型通信設(shè)備的虛擬故障診斷系統(tǒng)的設(shè)計(jì)。本系統(tǒng)能夠有效解決有關(guān)故障維修人員在培訓(xùn)中遇到實(shí)際問(wèn)題。經(jīng)驗(yàn)證,該系統(tǒng)能夠可靠運(yùn)行,具有實(shí)際價(jià)值。
[1]趙經(jīng)成,付戰(zhàn)平,鐘小平,等.虛擬仿真訓(xùn)練系統(tǒng)設(shè)計(jì)與實(shí)踐[M].北京:國(guó)防工業(yè)出版社,2008:25-28.
[2]夏虹,劉永闊,謝春麗.設(shè)備故障診斷技術(shù)[M].哈爾濱:哈爾濱工業(yè)大學(xué)出版社,2010:180-203.
[3]張琪,侯加林,閆銀發(fā),等.基于虛擬儀器的電路板故障檢測(cè)與診斷系統(tǒng)的研究[J].電子測(cè)量與儀器學(xué)報(bào),2011,25(2):135-140.
[4]常高祥,徐曉剛,王建國(guó).虛擬維修訓(xùn)練系統(tǒng)中數(shù)據(jù)庫(kù)的應(yīng)用[J].工程圖學(xué)學(xué)報(bào),2010(5):157-162.
[5]陳斌,王高山,楊林輝.基于BP神經(jīng)網(wǎng)絡(luò)的復(fù)雜電子設(shè)備實(shí)時(shí)故障診斷專家系統(tǒng)[J].海軍工程大學(xué)學(xué)報(bào),2004,16(5):105-108.
[6]李淵,陳斌,楊路剛.基于EON 的通信裝備虛擬維修系統(tǒng)的設(shè)計(jì)[J].通信技術(shù),2013,46(1):95-97.
[7]何力.虛擬實(shí)驗(yàn)系統(tǒng)中仿真電路故障診斷的研究與實(shí)現(xiàn)[D].武漢:華中科技大學(xué),2004.
[8]呂志軍,高俊,關(guān)建新.基于高速DSP的跳頻通信系統(tǒng)設(shè)計(jì)[J].信息安全與通信保密,2006(8):97-99.
[9]朱大奇,于盛林,陳小平.基于故障樹分析及虛擬儀器的電子部件故障診斷系統(tǒng)[J].儀器儀表學(xué)報(bào),2002,23(1):16-19.
[10]宋廣東,劉統(tǒng)玉,王晶,等.基于COM 組件的VB 與Matlab混合編程實(shí)現(xiàn)振動(dòng)信號(hào)處理[J].山東科學(xué),2010,23(1):32-35.
[11]胡勁松,周方潔.基于COM 的Matlab與Delphi混合編程研究[J].計(jì)算機(jī)應(yīng)用研究,2005(1):165-166.