陳 鋒,嚴(yán) 平,孫世巖,張弘弨
(1.海軍研究院,北京 100161;2.海軍工程大學(xué),湖北 武漢 430033)
測(cè)試的最終目的是隔離故障,而在系統(tǒng)執(zhí)行測(cè)試的過程中,可能根據(jù)得到的部分測(cè)試結(jié)果已經(jīng)能夠隔離故障源,此時(shí)系統(tǒng)不必再進(jìn)行其他的測(cè)試操作。而診斷策略的設(shè)計(jì),會(huì)大大影響測(cè)試成本以及故障隔離速度。診斷策略設(shè)計(jì)工作主要包括:建立故障-測(cè)試相關(guān)性模型;建立相關(guān)性矩陣;優(yōu)選測(cè)試點(diǎn)以及設(shè)計(jì)診斷策略[1-2]。
本文在優(yōu)選測(cè)試點(diǎn)的基礎(chǔ)上,采用與或圖啟發(fā)式搜索算法設(shè)計(jì)了艦炮制導(dǎo)彈藥多故障診斷策略,降低了艦炮制導(dǎo)彈藥測(cè)試成本并提高了故障隔離速度。
診斷策略設(shè)計(jì)的研究一般建立在單故障,即假設(shè)系統(tǒng)某一時(shí)間只發(fā)生一個(gè)故障的前提下,但像艦炮制導(dǎo)彈藥這樣的復(fù)雜系統(tǒng),這種假設(shè)顯然是不成立的。單純地按照單故障的診斷策略下結(jié)論,很可能因?yàn)榇嬖陔[含故障和偽故障而出現(xiàn)誤診或漏診的情況[3]。因此,研究多故障問題的診斷策略的第一步就是識(shí)別系統(tǒng)可能存在的隱含故障和偽故障。
1)隱含故障:系統(tǒng)發(fā)生多個(gè)故障時(shí),系統(tǒng)總體表現(xiàn)的故障特征與其中某一故障的故障特征相同,即系統(tǒng)總的故障特征隱藏了其中一個(gè)故障的故障特征。存在隱含故障很容易使故障診斷出現(xiàn)漏診的情況。
2)偽故障:系統(tǒng)發(fā)生多個(gè)故障時(shí),系統(tǒng)總體表現(xiàn)的故障特征與發(fā)生故障之外的某一故障的故障特征相同,系統(tǒng)總的故障特征與某個(gè)不相關(guān)單元的故障特征相同。存在偽故障很容易使故障診斷出現(xiàn)誤診的情況。
由相關(guān)性分析理論可知,fi的故障特征可用集合FS(fi)={ti|aij=1,tj∈T}來描述,同理,fi和fj同時(shí)發(fā)生的故障特征可用FS(fi,fj)來描述,則有FS(fi,fj)=FS(fi)∪FS(fj)。若存在FS(A)=FS(A)∪FS(B)=FS(AB),則存在隱含故障,且故障B為故障A的隱含故障;若FS(C)=FS(A)∪FS(B)=FS(AB),則存在偽故障,且故障組合{A,B}為故障C的一個(gè)偽故障[4]。
測(cè)試性分析中所采取的檢測(cè)手段均為二值測(cè)試,也就是說每項(xiàng)檢測(cè)的結(jié)論只有通過和不通過兩種,所以可由執(zhí)行測(cè)試的順序以二叉樹形式畫出系統(tǒng)的故障診斷樹,即測(cè)試序列等價(jià)于故障診斷樹?;谶@樣的關(guān)系,診斷策略即測(cè)試序列的優(yōu)化設(shè)計(jì)過程也就等同于生成系統(tǒng)的故障樹的過程。而故障樹又和與或圖在形式上非常相近,因此可視故障診斷樹為一類廣義上的與或圖。因此本文選用啟發(fā)式搜索算法,通過求解與或圖得到優(yōu)化的測(cè)試序列[5-6]。
AO*算法是一種啟發(fā)式搜索算法,該算法的評(píng)估函數(shù)為霍夫曼編碼平均字長。霍夫曼編碼的編碼字長不同,編碼時(shí)通過盡可能使故障概率越大的事件字長越短,使編碼的效率變高。其編碼步驟是,首先,由小到大依次排列故障概率,再將最小的兩個(gè)概率相加,并用得到的概率和將其替換,再將全部故障概率進(jìn)行排列。如此循環(huán),直到得到整個(gè)霍夫曼樹。過程中通常將兩個(gè)最小概率中相對(duì)較小的故障以0編碼,而相對(duì)較大的以1編碼。循環(huán)結(jié)束后,所有故障均與一串二進(jìn)制編碼一一對(duì)應(yīng),加和每個(gè)故障概率與其碼長的乘積,再除以全部概率的總和,計(jì)算結(jié)果就是平均霍夫曼編碼字長。解決故障診斷問題時(shí)上述過程可表示為
(1)
其中,w*(x)為故障集的霍夫曼編碼平均字長,w*(fi)故障fi的霍夫曼編碼字長,且fi∈x。
評(píng)估函數(shù)(HEF)通過故障診斷樹和霍夫曼樹的等價(jià)性來確定。為說明該過程,舉一個(gè)普適性例子,假設(shè)測(cè)試成本大小順序?yàn)?≤c1≤c2≤…≤cn,HEF(x)最小值為
(2)
其中,w′(x)=[w*(x)],為對(duì)模糊故障集X的霍夫曼編碼平均字長取整。
上式即為算法的啟發(fā)式評(píng)估函數(shù),從總的故障集開始向下搜索,當(dāng)所有故障均被搜索到時(shí),由公式(3)計(jì)算實(shí)際的測(cè)試成本,由公式(4)修正測(cè)試成本,由下至上進(jìn)行回溯,直至回溯到根節(jié)點(diǎn)。
(3)
e=min(Exi)
(4)
其中,Exi為對(duì)模糊故障集X執(zhí)行測(cè)試ti時(shí)的實(shí)際成本,xip、xif分別是對(duì)模糊故障集X執(zhí)行測(cè)試ti時(shí)通過和不通過的子集,ci為ti測(cè)試成本,P(xip)、P(xif)分別為xip、xif的概率和;E(xip)、E(xif)分別為xip、xif實(shí)際的測(cè)試成本。
只考慮單故障時(shí),算法步驟主要有以下兩個(gè)方面:由上至下進(jìn)行評(píng)估和由下至上進(jìn)行修正,具體步驟為:
1)判斷故障集F中元素是否超過兩個(gè),當(dāng)元素超過兩個(gè)時(shí)繼續(xù)進(jìn)行以下步驟,否則轉(zhuǎn)到步驟7);
2)對(duì)故障集F,按照故障-測(cè)試相關(guān)矩陣中測(cè)試與故障的關(guān)系以及每個(gè)故障發(fā)生的概率分別對(duì)每個(gè)測(cè)試進(jìn)行霍夫曼編碼,進(jìn)而評(píng)估其測(cè)試成本:
e=min{ci+HEFxip×P(xip)+HEFxif×P(xif)}
(5)
3)比較所有測(cè)試的測(cè)試成本評(píng)估值,標(biāo)記最小評(píng)估值相應(yīng)的測(cè)試編號(hào),以及該測(cè)試的父節(jié)點(diǎn)和左右子節(jié)點(diǎn);
4)以左子節(jié)點(diǎn)中的模糊故障作為新的故障集合F,重復(fù)步驟1)到7),計(jì)算左子節(jié)點(diǎn)測(cè)試的實(shí)際成本;
5)以右子節(jié)點(diǎn)中的模糊故障作為新的故障集合F,重復(fù)步驟1)到7),計(jì)算右子節(jié)點(diǎn)測(cè)試的實(shí)際成本;
6)比較左右節(jié)點(diǎn)測(cè)試的實(shí)際成本和記錄的測(cè)試評(píng)估成本。若實(shí)際成本大于評(píng)估值,則修正評(píng)估值并刪除該路徑,選擇測(cè)試評(píng)估成本次小的對(duì)應(yīng)的測(cè)試,返回步驟3),否則繼續(xù)向下執(zhí)行;
7)繼續(xù)向上修正評(píng)估代價(jià);
8)重復(fù)步驟1)到7),直至故障集合F中元素個(gè)數(shù)不大于2時(shí),測(cè)試選擇的測(cè)試序列的實(shí)際成本最低,得到最優(yōu)故障診斷樹,算法結(jié)束。
多故障的診斷策略在單故障的設(shè)計(jì)方法上進(jìn)行了擴(kuò)展。其步驟如下:
1)采用上述方法構(gòu)造一個(gè)單故障診斷樹。
2)判斷故障診斷樹所能隔離的故障是否存在隱含故障或偽故障,若不存在,則維修該葉子節(jié)點(diǎn)所對(duì)應(yīng)的故障,不再執(zhí)行其他操作。
3)若存在隱含故障或偽故障,首先通過維修,排除該故障,再針對(duì)該故障的隱含故障集或偽故障集構(gòu)造附加的診斷策略,直至確定系統(tǒng)不存在隱含故障和偽故障[7]。
艦炮制導(dǎo)彈藥控制系統(tǒng)多信號(hào)流圖模型如圖1所示。
圖1 艦炮制導(dǎo)彈藥控制系統(tǒng)多信號(hào)流圖模型
省略優(yōu)選測(cè)試點(diǎn)過程,經(jīng)優(yōu)選測(cè)試點(diǎn)后的艦炮制導(dǎo)彈藥控制系統(tǒng)的相關(guān)矩陣如表1所示,故障源共13個(gè),分別為衛(wèi)星電平轉(zhuǎn)換模塊、衛(wèi)星天線、衛(wèi)星接收模塊、衛(wèi)星定位解算模塊、DSP、地磁傳感器電平轉(zhuǎn)換模塊、地磁傳感器、DSP電平轉(zhuǎn)換模塊、舵機(jī)控制器電平轉(zhuǎn)換模塊、舵機(jī)驅(qū)動(dòng)器、舵機(jī)驅(qū)動(dòng)器電平轉(zhuǎn)換模塊、伺服電機(jī)、電源模塊。故障狀態(tài)共20個(gè),其中G表示全局故障,F表示功能故障,優(yōu)選測(cè)試點(diǎn)共12個(gè)。
將無故障狀態(tài)表示為f0,故障狀態(tài)表示為{f1,f2,…f20}。假設(shè)12個(gè)測(cè)試的代價(jià)相等,均為1。無故障狀態(tài)及20個(gè)故障狀態(tài)的故障概率為
表1 遺傳算法選擇的測(cè)試集合
{0.5,0.02,0.01,0.1,0.02,0.03,0.01,0.01,0.02,0.03,0.01,0.01,0.02,0.03,0.02,0.05,0.01,0.02,0.05,0.02,0.01}。依照上文所述方法,由于故障狀態(tài)較多,測(cè)試代價(jià)評(píng)估值計(jì)算量較大,為節(jié)省計(jì)算時(shí)間,本文通過Matlab編程求取每項(xiàng)測(cè)試的測(cè)試代價(jià)評(píng)估值,再結(jié)合AO*算法步驟求取艦炮制導(dǎo)彈藥控制系統(tǒng)單故障診斷策略,得到的單故障診斷策略如圖2所示。
分析圖2可知,艦炮制導(dǎo)彈藥控制系統(tǒng)內(nèi)的所有故障都能夠被正確檢測(cè)和定位。經(jīng)計(jì)算,測(cè)試代價(jià)為6.74,是原本測(cè)試代價(jià)12的56.2%。因此按照以上得到的診斷策略的順序可以迅速隔離故障源,且所需的測(cè)試成本理論上是最優(yōu)的。
在得到單故障診斷策略的前提下,考慮多故障的情況,不限制并發(fā)故障數(shù)目,分析圖2所示故障樹中各葉子節(jié)點(diǎn)的隱含故障和偽故障,分析結(jié)果如表2所示。
根據(jù)多故障診斷策略設(shè)計(jì)方法,引入維修節(jié)點(diǎn),得到的多故障診斷策略如圖3所示。
若設(shè)置四個(gè)故障點(diǎn),分別為f2、f4、f11和f15。故障表現(xiàn)如表3所示。
圖2 艦炮制導(dǎo)彈藥控制系統(tǒng)單故障診斷策略
表2 控制系統(tǒng)診斷樹中各葉子節(jié)點(diǎn)隱含故障和偽故障分析結(jié)果
圖3 艦炮制導(dǎo)彈藥控制系統(tǒng)多故障診斷策略
表3 設(shè)置故障的故障表現(xiàn)
按照?qǐng)D3所示的診斷策略對(duì)故障進(jìn)行診斷,診斷流程如圖4所示。
圖4 診斷流程
由圖4可看出四個(gè)故障均被定位,則所有故障都可被排除,因此該故障診斷策略有效。
另設(shè)置三個(gè)故障點(diǎn),分別為f5、f10和f16。故障表現(xiàn)如表4所示。
表4 故障表現(xiàn)
按照?qǐng)D3所示的診斷策略對(duì)故障進(jìn)行診斷,診斷流程如圖5所示。
圖5 診斷流程
由圖5可看出,隨機(jī)設(shè)置三個(gè)故障仍可以全部被定位,所有故障都可被排除,進(jìn)一步驗(yàn)證了該診斷策略的有效性,可用于解決艦炮制導(dǎo)彈藥多故障診斷問題。
本文提出了一種艦炮制導(dǎo)彈藥多故障診斷策略的設(shè)計(jì)方法。該方法將AO*算法應(yīng)用到解決艦炮制導(dǎo)彈藥多故障診斷策略設(shè)計(jì)問題上,得到了艦炮制導(dǎo)彈藥多故障診斷策略。通過驗(yàn)證表明,AO*算法對(duì)解決艦炮制導(dǎo)彈藥多故障診斷策略問題有效,達(dá)到了降低艦炮制導(dǎo)彈藥測(cè)試成本和提高故障隔離速度的目的。