高 旭,龍 兵,楊興霽,王義琴
(電子科技大學(xué)自動(dòng)化工程學(xué)院,四川 成都 611731)
為了降低復(fù)雜電子系統(tǒng)故障診斷的測(cè)試周期與費(fèi)用,必須在設(shè)計(jì)階段就對(duì)系統(tǒng)的可測(cè)試性加以保證。而通過(guò)測(cè)試性的建模與分析來(lái)研究復(fù)雜系統(tǒng)的可測(cè)性是一種準(zhǔn)確且有效的方法。為了確??蓽y(cè)性分析結(jié)果的準(zhǔn)確性和分析效率,必須借助于相關(guān)的輔助分析工具來(lái)進(jìn)行系統(tǒng)的可測(cè)性分析,并確定整個(gè)系統(tǒng)可測(cè)性設(shè)計(jì)與故障診斷方案。計(jì)算機(jī)輔助建模與仿真分析軟件工具主要有ARINC公司的基于信息流模型的系統(tǒng)可測(cè)性和維護(hù)軟件POINTER[1],QIS公司的基于多信號(hào)模型的分析工具TEAMS[2]。這些軟件均采用圖形化建模技術(shù),與傳統(tǒng)的采用直接程序設(shè)計(jì)進(jìn)行可測(cè)性分析建模方法相比,具有直觀、簡(jiǎn)單易用等優(yōu)點(diǎn)。因此具備圖形化建模的功能是可測(cè)性分析軟件開(kāi)發(fā)的趨勢(shì)。
目前可視化圖形建模環(huán)境的開(kāi)發(fā)主要是用VB、VC或Delphi等開(kāi)發(fā)工具從圖形底層開(kāi)發(fā)完成的,這種開(kāi)發(fā)模式一旦涉及較復(fù)雜的圖形技術(shù),代碼量將急速膨脹使軟件的開(kāi)發(fā)周期較長(zhǎng)、后期維護(hù)困難。對(duì)此,利用Visio繪圖控件提供的二次開(kāi)發(fā)功能,以VC++6.0為編譯工具開(kāi)發(fā)了基于多信號(hào)模型的可測(cè)性分析的軟件。該文首先介紹多信號(hào)模型建模技術(shù)和圖形化建模環(huán)境的具體實(shí)現(xiàn)方法;然后闡述了多信號(hào)模型的建模方法和可測(cè)性分析指標(biāo)的算法;最后以具體實(shí)例介紹了以Visio繪圖控件為支撐的可測(cè)性分析軟件的實(shí)現(xiàn)和應(yīng)用。
圖形化可測(cè)性軟件需要設(shè)計(jì)出用于表示多信號(hào)模型的4類節(jié)點(diǎn)和有向連線的元件符號(hào),這些繪圖元件放在繪圖工具箱中,如圖1所示。圖形化建模時(shí),用鼠標(biāo)把圖元拖拽繪圖區(qū),通過(guò)準(zhǔn)確的連接構(gòu)造多信號(hào)模型圖。在Visio中,用于繪圖的圖元稱為圖件,放置圖件的繪圖工具箱稱為模具。Visio本身提供了大量的模具及主控形狀,選中所符合的形狀單擊右鍵選擇添加到新建的模具中,也可以在繪圖區(qū)內(nèi)繪制出所需的繪圖元件符號(hào)并編輯,然后用鼠標(biāo)拖拽到新建的模具中,單擊新建模具上每個(gè)形狀下方的文本,為每個(gè)形狀鍵入一個(gè)新名稱,為新模具命名后保存即可。
圖1 繪圖工具箱
Microsoft Visio對(duì)象模型表示Visio引擎通過(guò)Automation展示的對(duì)象、屬性、方法和事件,同時(shí)也描述了對(duì)象彼此之間的相關(guān)方式[3]。它以方便的模型管理及豐富的Automation為用戶提供了可用于各種領(lǐng)域的完備的解決方案。在解決方案中實(shí)現(xiàn)Automation 有 4種基本方法:(1)Visio庫(kù)(VSL);(2)VBA 宏;(3)COM 加載項(xiàng);(4)獨(dú)立的 EXE 程序。在該文的軟件平臺(tái)的設(shè)計(jì)中,采用的是第4種方式,即將Visio ActiveX Control控件嵌入VC++工具開(kāi)發(fā)的應(yīng)用程序中。Visio控件是一個(gè)Microsoft ActiveX控件,可以通過(guò)該控件的API來(lái)訪問(wèn)Visio對(duì)象模型,從而使得利用Visio繪圖控件的解決方案更易于開(kāi)發(fā)和調(diào)試。該文通過(guò)Visio控件的實(shí)例來(lái)實(shí)現(xiàn)以編程方式對(duì)Visio控件進(jìn)行全方位的訪問(wèn)和控制。使用Visio繪圖控件的Document或Window屬性獲得Application對(duì)象的引用,然后就可以進(jìn)一步獲取Visio對(duì)象模型中的其他對(duì)象。另外在Visio中,與圖形對(duì)應(yīng)的有一個(gè)ShapeSheet電子表格[4],可以通過(guò)ShapeSheet來(lái)對(duì)圖形進(jìn)行編輯和改變、用公式的方式精確地描述和控制圖形以及設(shè)置圖形的屬性和進(jìn)行事件的定義等。ShapeSheet內(nèi)容豐富,可以通過(guò)它實(shí)現(xiàn)許多與圖形化建模相關(guān)的功能。而在Visio控件中,ShapeSheet也被作為一個(gè)Shape對(duì)象,所以可以通過(guò)編程的方式來(lái)操縱ShapeSheet。該控件還公開(kāi)了所有Visio Window和Document事件,這些事件涵蓋了用戶可能對(duì)圖形和頁(yè)面的所有操作,這些操作在發(fā)生的時(shí)候?qū)⒂|發(fā)對(duì)應(yīng)的事件。通過(guò)這些事件,可以編寫自己的響應(yīng)函數(shù),構(gòu)建功能強(qiáng)大的圖形化建模編輯環(huán)境。
多信號(hào)模型是由Somnath Deb[5]等于1994年提出的,是指利用分層有向圖表示系統(tǒng)結(jié)構(gòu)、功能、測(cè)試構(gòu)成,僅對(duì)故障傳播特性建模的一種方法。在多信號(hào)模型中,組成單元的故障模式劃分為功能故障(functional failure)和完全故障(general failure)2種類型。
多信號(hào)模型主要由3類節(jié)點(diǎn)構(gòu)成:
(1)模塊節(jié)點(diǎn)(module node),表示一個(gè)具有特定功能集(依據(jù)信號(hào)劃分)的硬件或模塊。
(2)測(cè)試點(diǎn)節(jié)點(diǎn)(test point node),表示物理的或邏輯的測(cè)量操作位置。
(3)連接線(link),表示有向連接線,為故障提供連接通路。
另外,對(duì)于復(fù)雜系統(tǒng)建模還可能用到用于冗余連接的表決節(jié)點(diǎn)(and node)和用于內(nèi)部連接的變動(dòng)關(guān)系的開(kāi)關(guān)節(jié)點(diǎn)(switch node)。
可測(cè)性模型的建模過(guò)程一般可分為以下3個(gè)步驟:
(1)熟悉建模對(duì)象,在可測(cè)性分析軟件中畫(huà)出表述元件組成和基本連接關(guān)系的基本模型。
(2)向模塊添加信號(hào)集,并向測(cè)試點(diǎn)添加測(cè)試和測(cè)試集。
(3)調(diào)整、修正和校驗(yàn)?zāi)P?,考慮系統(tǒng)的特殊情況以使模型更加合理。例如如果一個(gè)系統(tǒng)有不同的工作模式,則要使用開(kāi)關(guān)節(jié)點(diǎn)建模;如果系統(tǒng)存在冗余,則用并聯(lián)節(jié)點(diǎn)配置冗余元件。
該文以磁帶播放機(jī)為例,把一磁帶播放機(jī)系統(tǒng)劃分為:電源(power_sup)、磁頭(tape_head)、前置放大器(pre_amp)、功率放大器(power_amp)、三路揚(yáng)聲器(woofer,mid_range,tweeter)和指示燈(LED)。假設(shè)在系統(tǒng)內(nèi)部沒(méi)有測(cè)試點(diǎn),系統(tǒng)的狀態(tài)只能在其輸入節(jié)點(diǎn)上被檢測(cè)到,比如通過(guò)檢測(cè)3個(gè)揚(yáng)聲器的輸出信號(hào)和觀察電源指示燈的狀態(tài)進(jìn)行。圖2顯示了該系統(tǒng)的多信號(hào)模型。圖中信號(hào) s1,s2,s3,s4,s5,s6分別代表高頻(treble)、低頻(bass)、中頻(midrange)、信噪比(SNR)、額定功率失真(distortion)和電源指示燈(LED)。系統(tǒng)每個(gè)組件對(duì)應(yīng)一組表征其特征的信號(hào);每個(gè)測(cè)試點(diǎn)對(duì)應(yīng)一組在該點(diǎn)可以檢測(cè)到的信號(hào)。該系統(tǒng)的多信號(hào)模型定義如下:
故障源集 C={power_sup,LED,tape,pre_amp,power_amp,woofer,midranger,tweeter};信號(hào)集 S={s1,s2,s3,s4,s5,s6};測(cè)試點(diǎn) TP={TP1,TP2},測(cè)試集 T={T,W,M,L};信號(hào)檢測(cè)集ST={s1(TP1),s2(TP2),s3(TP2),s4(TP2),s5(TP2),s6(TP1)}={s1(T),s2(W),s3(M),s4(T),s5(W),s6(L)}。
其中,T在測(cè)試點(diǎn)TP2檢測(cè)信號(hào)s1,s4;W在測(cè)試點(diǎn)TP2檢測(cè)信號(hào)s2,s5;M在測(cè)試點(diǎn)TP2檢測(cè)信號(hào)s3;L在測(cè)試點(diǎn)TP1檢測(cè)信號(hào)s6。
圖2 磁帶播放機(jī)系統(tǒng)的多信號(hào)模型圖
利用開(kāi)發(fā)的可測(cè)性軟件對(duì)圖2所示的磁帶播放機(jī)系統(tǒng)的多信號(hào)模型圖進(jìn)行建模,如圖3所示。
圖3 磁帶播放機(jī)系統(tǒng)的建模結(jié)果
應(yīng)用多信號(hào)模型進(jìn)行可測(cè)性分析,計(jì)算各種可測(cè)性指標(biāo)。首先分析系統(tǒng)的結(jié)構(gòu)、功能和測(cè)試策略,構(gòu)建系統(tǒng)的多信號(hào)模型,計(jì)算基于多信號(hào)模型的依賴矩陣;然后完成系統(tǒng)的單故障特性分析、多故障特性分析和計(jì)算各種可測(cè)性指標(biāo)。
多信號(hào)模型的一種表示形式是有向圖,另一種表示形式是依賴矩陣,即故障測(cè)試依賴矩陣。故障測(cè)試依賴矩陣反映了測(cè)試的診斷能力,是對(duì)系統(tǒng)進(jìn)行可測(cè)性分析的基礎(chǔ),它以故障源作為行索引,可用測(cè)試作為列索引的矩陣D=[dij]。在多信號(hào)模型中,組成單元的故障模式根據(jù)作用結(jié)果不同分為2類:完全故障(指系統(tǒng)喪失主要功能,用字母G表示)和功能故障(指系統(tǒng)喪失部分功能,用字母F表示)。依賴矩陣既包含完全故障信息也包含功能故障信息,通過(guò)遍歷模型圖直接求取依賴矩陣比較困難,該文采取分而治之的策略,即把依賴矩陣D分成完全故障依賴矩陣D(G)和功能故障依賴矩陣D(F)兩部分來(lái)分別進(jìn)行求取,然后再把兩部分合在一起即得到系統(tǒng)的依賴矩陣。
3.1.1 完全故障依賴矩陣的求取
該文先求取多信號(hào)模型圖的鄰接矩陣,然后利用算法求取相應(yīng)的可達(dá)矩陣,最后由可達(dá)矩陣即可得到完全故障依賴矩陣。
要求取模型圖鄰接矩陣,需要對(duì)模型圖中的各模型之間的連接進(jìn)行分析。在Visio繪圖控件中,形狀對(duì)象(CVShape)表示繪圖文件中的基本形、連接線和組合等,附著在形狀上的連接點(diǎn)可看做是連接對(duì)象(CVConnect)。由連接集合(CVConnects)可得到連接對(duì)象,而獲取連接集合的方法有2種:(1)通過(guò)形狀對(duì)象的屬性Connects得到該形狀的連接集合;(2)通過(guò)頁(yè)面對(duì)象(CVPage)的屬性Connects獲取頁(yè)面上的全部連接點(diǎn)集合[8]。該文采用第1種方法,首先遍歷繪圖文件建立模型的形狀列表,其次獲取形狀的所有連接點(diǎn)并遍歷每個(gè)連接點(diǎn),判斷連接點(diǎn)位于連接線的哪一端,若為起始端則獲取連接線的另一端所連接的形狀,再根據(jù)該形狀的信息在形狀列表中查找相應(yīng)的形狀,由此即可判斷兩形狀之間是否相連。根據(jù)列表中形狀的數(shù)目構(gòu)造并初始化矩陣,矩陣元素初始值均為0,依次對(duì)列表中的每個(gè)形狀進(jìn)行分析,兩形狀相連為1,否則為0,即可得到鄰接矩陣。由鄰接矩陣求可達(dá)矩陣的常用算法有逐次平方法、布爾矩陣算法和Warshall算法[9],基于效率和編程易實(shí)現(xiàn)的原則,該文采用布爾矩陣算法。求得可達(dá)矩陣后,再根據(jù)列表中故障源和測(cè)試的數(shù)目構(gòu)造矩陣并用0值進(jìn)行初始化,由可達(dá)矩陣的值即可得出完全故障的可達(dá)矩陣為
3.1.2 功能故障依賴矩陣的求取
同樣根據(jù)列表中故障源和測(cè)試的數(shù)目構(gòu)造矩陣并用0值進(jìn)行初始化,然后對(duì)故障源中的信號(hào)集SC(ci)與測(cè)試集中的信號(hào)集ST(tj)做比較,若SC(ci)與ST(tj)的交集不為空,則dij=1;遍歷整個(gè)故障源與每個(gè)測(cè)試的信號(hào)集做比較(另外,若故障源中無(wú)功能故障,則不進(jìn)行比較,也不存在相應(yīng)的行,如模塊power、LED和pre-amp不存在功能故障),則可得功能故障依賴矩陣。又若測(cè)試不是故障可達(dá)性測(cè)試點(diǎn),則測(cè)試集檢測(cè)不到對(duì)應(yīng)的故障,所以對(duì)功能故障依賴矩陣做如下修正,完全故障依賴矩陣中dij(G)=0時(shí),對(duì)應(yīng)功能故障依賴矩陣中dij(F)=0,可得功能故障依賴矩陣為
由D(G)和D(F)可得依賴矩陣D如表1所示。
故障特性分析可分為單故障特性分析和多故障特性分析。單故障特性分析包括識(shí)別未檢測(cè)故障、冗余測(cè)試和模糊組;多故障特性分析包括故障隱藏和故障冒充。各指標(biāo)概念如下[6,10]:
未檢測(cè)故障:實(shí)際存在但不能被測(cè)試檢測(cè)出來(lái)的故障,對(duì)應(yīng)依賴矩陣中的全零行。
冗余測(cè)試:具有相同檢測(cè)特征的測(cè)試,對(duì)應(yīng)依賴矩陣中相同的列向量。
模糊組:一組具有相同故障特征的故障源,對(duì)應(yīng)依賴矩陣中相同的行向量。圖2所示的磁帶播放機(jī)系統(tǒng)的故障模糊組有:{tape(G),pre-amp(G),power-amp(G),woofer(G),midrange(G),tweeter(G)},{tape(F),tweeter(F)};隱藏故障集:某個(gè)故障Si的故障特征隱藏了另一個(gè)故障Sj的所有故障特征,則稱Sj為Si的故障特征。
表1 磁帶播放機(jī)的依賴矩陣
掩蓋故障集:多個(gè)故障的故障特征的疊加與某個(gè)單故障的故障特征相同。
在圖2所示的磁帶播放機(jī)系統(tǒng)中,power-sup(G)的隱藏故障集為{LED(G),tape(G),pre-amp(G),power-amp(G),woofer(G),midrange(G),tweeter(G),tape(F),power-amp(F),woofer(F),midrange(F),tweeter(F)},掩蓋故障集為{LED(G),tape(G),preamp(G),power-amp(G),woofer(G),midrange(G),tweeter(G),tape(F),power-amp(F),woofer(F),midrange(F),tweeter(F)}。模糊組{tape(G),pre-amp(G),power-amp(G),woofer(G),midrange(G),tweeter(G)}的隱藏故障集為{tape(F),power-amp(F),woofer(F),midrange(F),tweeter(F)};掩蓋故障集為{tape(F),power-amp(F),woofer(F),midrange(F),tweeter(F)}。模糊組{tape(F),tweeter(F)}無(wú)隱藏故障和掩蓋故障。
式中:λ——所有可能發(fā)生故障的故障率之和;
λD——可檢測(cè)到的故障的故障率之和;
λDi——可檢測(cè)到單個(gè)故障的故障率;
λi——各故障的故障率;
λL——可隔離到小于等于L個(gè)可更換單元的故障率之和;
λLi——各個(gè)可隔離到小于等于L個(gè)可更換單元的故障率;
L——規(guī)定的模糊度。
上述可測(cè)性指標(biāo)的具體實(shí)現(xiàn)算法參見(jiàn)文獻(xiàn)[11]。
對(duì)于圖3所示磁帶播放機(jī)系統(tǒng),設(shè)定各組員的故障概率均為0.001,系統(tǒng)完好系數(shù)為70%,根據(jù)上述公式可計(jì)算得FDR=100%,F(xiàn)IR=42.86%。
上述分析結(jié)果在軟件中顯示形式如圖4所示。
利用TEAMS軟件對(duì)圖2所示的磁帶播放機(jī)系統(tǒng)進(jìn)行分析得到的結(jié)果如圖5所示。
圖4 可測(cè)性軟件的分析結(jié)果
圖5 TEAMS可測(cè)性分析結(jié)果
由圖5可知,TEAMS軟件的分析結(jié)果與該文所述的軟件分析結(jié)果一致,TEAMS軟件對(duì)模糊組、未檢測(cè)故障等指標(biāo)在文本中進(jìn)行顯示,經(jīng)對(duì)比與該文所示的結(jié)果也一致。
該文利用VC對(duì)Visio控件進(jìn)行二次開(kāi)發(fā),實(shí)現(xiàn)了基于多信號(hào)模型的圖形化建模系統(tǒng)可測(cè)性分析軟件。該軟件具有界面友好、功能強(qiáng)大和易于使用的特點(diǎn),為系統(tǒng)的設(shè)計(jì)及現(xiàn)有系統(tǒng)的故障診斷提供了方便??梢酝ㄟ^(guò)該軟件進(jìn)行常用可測(cè)性指標(biāo)分析,并評(píng)價(jià)系統(tǒng)是否達(dá)到預(yù)期要求的可測(cè)性目標(biāo),獲知系統(tǒng)故障診斷難易程度,進(jìn)而提高故障診斷效率,對(duì)計(jì)算機(jī)輔助建模與仿真分析軟件工具的研究和開(kāi)發(fā)具有一定參考價(jià)值。
[1]Sheppard J W,Simpson W R.A mathematical model for integrated diagnostics[J].IEEE Design and Test of Computers,1991,8(2):25-38.
[2] Pattirati K R,Raghavan V,Shakeri M,et al.TEAMS:testability engineering and maintenance system[C]∥Proc of American Control Conference,1994:1989-1995.
[3] Microsoft工作室.開(kāi)發(fā)Microsoft Visio解決方案[M].北京:北京大學(xué)出版社,2002.
[4]郭偉偉,孫強(qiáng)宇.Visio圖形化電氣計(jì)算軟件開(kāi)發(fā)技術(shù)的研究[J].電力系統(tǒng)保護(hù)與控制,2008,36(7):71-74.
[5] Deb S,Pattipmi K R,Raghavan V,et al.Multi-signal flow graphs:A novelapproach forsystem testability analysis and fault diagnosis[C]∥Proc IEEE Autotestcon,1994:361-373.
[6] 楊智勇,許愛(ài)強(qiáng),牛雙誠(chéng).基于多信號(hào)模型的系統(tǒng)可測(cè)性建模與分析[J].工程設(shè)計(jì)學(xué)報(bào),2007,14(5):364-368.
[7] 劉海明,易曉山.多信號(hào)流圖的測(cè)試性建模與分析[J].中國(guó)測(cè)試技術(shù),2007,33(1):49-50.
[8] 劉強(qiáng),劉向君,馬旭勃.利用Visio二次開(kāi)發(fā)實(shí)現(xiàn)邏輯圖自動(dòng)分析[J].軟件導(dǎo)刊,2009,8(1):13-15.
[9] 王欣欣,李金寶.關(guān)于由鄰接矩陣求可達(dá)性矩陣的方法[J].吉林化工學(xué)院學(xué)報(bào),2005,22(4):89-94.
[10]Shakeri M,Raghavan V,Pattipati K R.Sequential testing algorithms for multiple fault diagnosis[J].IEEE Trans on SMC,2000,30(1):11-14.
[11]王義琴.基于多信號(hào)模型的電子系統(tǒng)可測(cè)性算法及軟件設(shè)計(jì)[D].成都:電子科技大學(xué),2010:33-48.