葉丹丹,羅繼亮
(華僑大學(xué) 信息科學(xué)與工程學(xué)院,福建 廈門361021)
Petri網(wǎng)結(jié)構(gòu)表示為N=(P,T,Pre Post).其中:P是庫(kù)所的集合,P={p1,p2,…,pn};T是變遷的集合,T={t1,t2,…,tm};Pre:P×T→{0,1,…}是前向關(guān)聯(lián)矩陣,定義了從庫(kù)所到變遷的有向弧的權(quán)值;Post:T×P→{0,1,…}是后向關(guān)聯(lián)矩陣,定義了從變遷到庫(kù)所的有向弧的權(quán)值.標(biāo)識(shí)是n維的列向量m,其元素m(j)是第j個(gè)庫(kù)所的托肯數(shù)目.m0是系統(tǒng)的初始標(biāo)識(shí),變遷tj可表示為一個(gè)m維向量δj,其第j分量等于1.當(dāng)tj發(fā)生后,系統(tǒng)到達(dá)新標(biāo)識(shí)m′=m+D·δj.其中:D=Post-Pre稱為關(guān)聯(lián)矩陣;變遷序列表示為δ,也可以描述為一個(gè)激發(fā)向量δ,其各分量等于相應(yīng)變遷在δ中出現(xiàn)的次數(shù).
在一個(gè)Petri網(wǎng)結(jié)構(gòu)里,存在一個(gè)向量y∶P→Z.如果y≥0,并且y·D=0,可以得到
整個(gè)系統(tǒng)若是可以正常運(yùn)行,則標(biāo)識(shí)m要滿足方程(1).
定義1 設(shè)R為集合S上的一個(gè)關(guān)系,則集合{x∈S|(x,y)∈R,至少一個(gè)y∈S}稱為R的支集,記做SuppR,則Suppy={p∈P|y(p)≠0}.
定義2 Petri網(wǎng)結(jié)構(gòu)里的一個(gè)庫(kù)所不變量y,若不存在另一個(gè)庫(kù)所不變量y′≠y,使得Suppy′?Suppy,則該庫(kù)所不變量y為最小庫(kù)所不變量.
定義3 如果最小庫(kù)所不變量y中各元素的最大公約數(shù)為1,那么y稱為嚴(yán)格最小庫(kù)所不變量.y1就是嚴(yán)格最小庫(kù)所不變量,而y2,y3不是嚴(yán)格最小庫(kù)所不變量.
自Porod和Kratky提出蠕蟲(chóng)狀鏈模型以來(lái),運(yùn)用此模型處理諸如DNA等較為剛性長(zhǎng)鏈的研究逐年增多.近年來(lái),隨著DNA研究的迅猛發(fā)展,蠕蟲(chóng)狀鏈模型也重新被廣泛應(yīng)用.例如,有關(guān)蠕蟲(chóng)狀鏈模型應(yīng)用的文獻(xiàn)自2006—2016年的十年間累計(jì)達(dá)1 552篇(數(shù)據(jù)來(lái)自SciFinder數(shù)據(jù)庫(kù)).因此,厘清一些基本概念就顯得非常重要.
定義4 在一個(gè)Petri網(wǎng)結(jié)構(gòu)里,如果Y是嚴(yán)格最小庫(kù)所不變量組成的集合,并且其中元素是庫(kù)所不變量的最大線性無(wú)關(guān)組,那么Y稱為特征庫(kù)所不變量集.
特征庫(kù)所不變量集Y蘊(yùn)含Petri網(wǎng)結(jié)構(gòu)的系統(tǒng)信息,即Petri網(wǎng)中所有庫(kù)所不變量可由該集合中元素線性表示,它表征了由嚴(yán)格最小庫(kù)所不變量為基底向量所構(gòu)成的空間.若系統(tǒng)可以正常運(yùn)行,則系統(tǒng)Petri網(wǎng)結(jié)構(gòu)中所有庫(kù)所間的關(guān)系須包含于該空間內(nèi).
定義5 在一個(gè)Petri網(wǎng)結(jié)構(gòu)里,Y是一個(gè)特征庫(kù)所不變量集.設(shè)Y內(nèi)包含k個(gè)元素,那么標(biāo)識(shí)m的故障矩陣定義為k×n維的矩陣T(m),它需要滿足下列條件
從嚴(yán)格最小庫(kù)所不變量yi中,可以獲取非零列(j列)所對(duì)應(yīng)的庫(kù)所pj所攜帶的系統(tǒng)信息.若在任意當(dāng)前標(biāo)識(shí)m下,庫(kù)所間關(guān)系不滿足嚴(yán)格最小庫(kù)所不變量yi,則在該yi中攜帶系統(tǒng)信息的庫(kù)所pj可能存在故障,記其T(m)i,j為1;同理,若庫(kù)所間關(guān)系滿足嚴(yán)格最小庫(kù)所不變量yi,則該yi中攜帶系統(tǒng)信息的庫(kù)所pj無(wú)故障,記其T(m)i,j為-1;而yi中零列,即不體現(xiàn)系統(tǒng)信息的庫(kù)所pj的故障情況未知,記其T(m)i,j為0.
故障函數(shù)表征了系統(tǒng)的故障信息,即各個(gè)庫(kù)所發(fā)生故障概率的相對(duì)大小,某一個(gè)pj庫(kù)所的故障函數(shù)f越大,則其發(fā)生故障的可能性越高.在診斷故障的過(guò)程中,計(jì)算出每個(gè)庫(kù)所的故障函數(shù),取其中最大值,也就是故障最有可能發(fā)生的庫(kù)所,這樣就可以鎖定故障范圍了.
輸入:Petri網(wǎng)N,m0和任意當(dāng)前標(biāo)識(shí)m;輸出:故障概率最大的結(jié)點(diǎn)(庫(kù)所).
步驟1 求出Petri網(wǎng)N的關(guān)聯(lián)矩陣D;
步驟2 利用方程(1),計(jì)算一個(gè)特征庫(kù)所不變量集Y={y1,y2,…,yk},k∈Z+;
步驟3 判斷yi·m=y(tǒng)i·m0,i=1,2,…,k,等式是否成立;如果上述等式均成立,則沒(méi)有故障發(fā)生,算法退出;否則,執(zhí)行下一步;
步驟4 根據(jù)定義5,計(jì)算故障矩陣T(m);
步驟5 根據(jù)T(m)和定義6,計(jì)算故障函數(shù)λm;
步驟6 比較n個(gè)庫(kù)所的故障函數(shù)λm(pj),選出最大的λm(pj),則故障出現(xiàn)在第j個(gè)庫(kù)所的概率最大,退出算法.
在算法中,根據(jù)給定的系統(tǒng)Petri網(wǎng)的模型,首先可以求得該P(yáng)etri網(wǎng)的關(guān)聯(lián)矩陣D.如果當(dāng)前標(biāo)識(shí)m可以從初始標(biāo)識(shí)m0到達(dá),則其必須滿足m=m0+D·δ.在式子的兩邊同時(shí)右乘n維的矩陣y,可以得到y(tǒng)·m=y(tǒng)·m0+y·D·δ.當(dāng)y·D=0時(shí),即y·m=y(tǒng)·m0,對(duì)于任何從初始標(biāo)識(shí)m0開(kāi)始可達(dá)的標(biāo)識(shí)m都滿足托肯的總數(shù)是不變量;如果Petri網(wǎng)模型代表的是一個(gè)正常運(yùn)行的系統(tǒng),則對(duì)于任何可達(dá)的當(dāng)前標(biāo)識(shí)m都滿足約束條件y·m=y(tǒng)·m0,通過(guò)方程y·D=0去尋找?guī)焖蛔兞縴.
解這個(gè)齊次方程,利用該方程的基礎(chǔ)解系,可以表示空間中滿足該約束的任意庫(kù)所不變量y,用一個(gè)集合表示基礎(chǔ)解系,即特征庫(kù)所不變量集Y={y1,y2,…,yk},k∈Z+.在這個(gè)集合中,每一個(gè)元素都需要滿足這個(gè)約束條件y·m=y(tǒng)·m0.如果每一個(gè)元素都滿足該約束,即總共有k個(gè)等式成立,則證明在當(dāng)前標(biāo)識(shí)m0下,沒(méi)有故障發(fā)生.如存在約束條件不滿足情況,需要進(jìn)一步去解決;如果是第i個(gè)約束方程不相等,即表示故障有可能會(huì)發(fā)生.在第i個(gè)方程中對(duì)應(yīng)的庫(kù)所不變量yi中,第m個(gè)為非零的列,代表第m個(gè)庫(kù)所中可能存在故障,增加該庫(kù)所故障發(fā)生的可能.令對(duì)應(yīng)的非零列中的故障函數(shù)為+1,零列庫(kù)所不變,將這個(gè)新的列向量作為故障矩陣T(m)的第i行.如果是第j個(gè)約束方程相等,即表示故障不會(huì)發(fā)生,在第j個(gè)方程中對(duì)應(yīng)的庫(kù)所不變量yi中,第n個(gè)為非零的列,代表第n個(gè)庫(kù)所中不會(huì)存在故障,降低該庫(kù)所故障發(fā)生的可能.令對(duì)應(yīng)的非零列中的故障函數(shù)為-1,非零列保持不變,同樣作為新的列向量作為故障矩陣T(m)的第j行,最后將T(m)中每一個(gè)庫(kù)所的故障函數(shù)加大一起,選出最大值,即故障發(fā)生的可能性最大.
在算法中,當(dāng)改變?nèi)我鈽?biāo)志,就需要重新計(jì)算步驟3~6.當(dāng)系統(tǒng)復(fù)雜性增大時(shí),由于故障矩陣和故障函數(shù)計(jì)算的復(fù)雜度是由特征庫(kù)所不變量集決定,而特征庫(kù)所不變量集是根據(jù)Petri網(wǎng)結(jié)構(gòu)的關(guān)聯(lián)矩陣計(jì)算得到的,也就是說(shuō)隨著系統(tǒng)復(fù)雜性的增大,關(guān)聯(lián)矩陣的維數(shù)會(huì)增多,而特征庫(kù)所不變量集中的元素是庫(kù)所不變量y,根據(jù)齊次方程y·D=0,會(huì)隨著關(guān)聯(lián)矩陣的維數(shù)增多,該齊次方程的解是呈現(xiàn)多項(xiàng)式級(jí)增長(zhǎng),因此算法的復(fù)雜度也是多項(xiàng)式級(jí)的,這在工程應(yīng)用上可以得到實(shí)現(xiàn).
圖1為某液體火箭發(fā)動(dòng)機(jī)啟動(dòng)過(guò)程的Petri網(wǎng)模型[12].此圖主要針對(duì)啟動(dòng)過(guò)程建,所以省略了對(duì)單一設(shè)備運(yùn)行參數(shù)的事件監(jiān)控,例如渦輪轉(zhuǎn)速限幅監(jiān)控事件.圖1中各結(jié)點(diǎn)的物理意義如表1所示.表1中:p5是p0狀態(tài)中的一個(gè)子集,即整個(gè)系統(tǒng)就緒(p0)包括了渦輪泵就緒狀態(tài).
圖1 液體火箭發(fā)動(dòng)機(jī)啟動(dòng)過(guò)程Petri網(wǎng)Fig.1 A Petri net for the starting process of liquid propellant rocket engine
表1 圖1Petri網(wǎng)中各結(jié)點(diǎn)的物理意義Tab.1 Correspondence of each transition and places Petri nets in figure 1to its physical meaning
基于上面給定的Petri網(wǎng)模型,根據(jù)算法可以算出該液體火箭發(fā)動(dòng)機(jī)啟動(dòng)過(guò)程的的關(guān)聯(lián)矩陣D為
因此,當(dāng)前標(biāo)識(shí)m′對(duì)應(yīng)的故障矩陣為
下面需要驗(yàn)證實(shí)例的正確性.首先根據(jù)給定的Petri網(wǎng)模型,可以得到該P(yáng)etri網(wǎng)系統(tǒng)的可達(dá)圖,如圖2所示.在圖2中可以看到:任意當(dāng)前標(biāo)識(shí)下,庫(kù)所p5和p6中是不可能同時(shí)存在托肯的;同樣從火箭啟動(dòng)的過(guò)程中看到,只有當(dāng)燃燒劑到達(dá)預(yù)燃室、氧化劑到達(dá)預(yù)燃室以及渦輪泵準(zhǔn)備就緒時(shí),托肯才有可能到達(dá)渦輪泵測(cè)速狀態(tài),與可達(dá)圖相符.在給定的當(dāng)前標(biāo)識(shí)m′=[0 1 1 0 0 1 1 0 0 0 0 0]T下,庫(kù)所p5和p6中同時(shí)存在托肯,并且?guī)焖鵳1和p2中也存在托肯.從圖2可以看出:當(dāng)p1和p2中存在托肯時(shí),庫(kù)所p5中必然存在托肯,所以最大可能是庫(kù)所p6違背了可達(dá)圖的演化規(guī)則,即p6中出現(xiàn)故障的概率最大,這也驗(yàn)證了算法的正確性.
圖2 液體火箭發(fā)動(dòng)機(jī)啟動(dòng)過(guò)程的Petri網(wǎng)可達(dá)圖Fig.2 Reachable graph of the starting process of liquid propellant rocket engine in Petri nets
在分析文獻(xiàn)方法中的計(jì)算效率低、故障診斷不及時(shí)、故障定位模糊等缺點(diǎn)后,提出了基于Petri網(wǎng)特征結(jié)構(gòu)的故障診斷方法.給出了特征庫(kù)所不變量集的定義,提出了故障矩陣和故障函數(shù)的概念,并利用數(shù)學(xué)計(jì)算來(lái)進(jìn)行故障定位.該方法使得故障診斷更加快速,故障定位更加精確,由于是多項(xiàng)式級(jí)的計(jì)算復(fù)雜度,同樣利于工程應(yīng)用.
[1] SAMPATH M,SENGUPTA R,LAFORTUNE S,et al.Diagnosability of discrete-event systems[J].IEEE Transac-tions on Automation Control,1995,40(9):1555-1575.
[2] MOSTERMAN P J.Diagnosis of physical systems with hybrid models using parameterized causality[C]∥Proceedings of the 4th International Workshop on Hybrid Systems:Computation and Control.London:Springer-Verlag,2001:447-458.
[3] ASHLEY J,HOLLOWAY L E.Qualitative diagnosis of condition systems[J].Discrete Event Dynamic Systems,2004,14(4):395-412.
[4] HADJICOSTIS C N,VERGHESE G C.Monitoring discrete event systems using Petri net embeddings[J].Lecture Notes in Computer Science,1999,1639(1):188-208.
[5] CABASINO M P,GIUA A,LAFIRTYBE S,et al.Diagnosability analysis of unbounded Petri nets[C]∥Proceeding of the 48th IEEE Conference on Decision and Control.Shanghai:IEEE Press,2009:1267-1272.
[6] GIUA A,SEATZU C.Fault detection for discrete event systems using Petri nets with unobserved transitions[C]∥Proceeding of the 44th IEEE Conference on Decision and Control.Seville:IEEE Press,2005:6323-6328.
[7] GENC S,LAFORTUNE S.Distributed diagnosis of place-bordered Petri nets[J].IEEE Transactions on Automation Science and Engineering,2007,4(2):206-219.
[8] LEFEBVRE D,DELHERM C.Diagnosis of EDS with Petri net models[J].IEEE Transactions on Automation Science and Engineering,2007,4(1):114-118.
[9] YU R,HADJICOSTIS C N.Fault diagnosis in discrete event system modeled by partially observed Petri nets[J].Discrete Event Dynamic Systems,2009,19(4):551-575.
[10] CABASINO M P,GIUA A,POCCI M,et al.Discrete event diagnosis using labeled Petri nets:An application to manufacturing systems[J].Control Engineering Practice,2011,19(9):989-1001.
[11] CABASINO M P,GIUA A,SEATZU C.Diagnosis using labeled Petri nets with silent or undistinguishable fault event[J].IEEE Transactions on System,Man,and Cybernetics-Part A:Systems and Humans,2013,43(2):345-355.
[12] 鄭永煌,田鋒,李人厚,等.基于Petri網(wǎng)的液體火箭發(fā)動(dòng)機(jī)啟動(dòng)過(guò)程實(shí)時(shí)在線故障診斷方法[J].信息與控制,2010,39(2):207-211.
[13] HASHIZUME S,YAJIMA T,KUWASHITA Y,et al.Integration of fault analysis and interlock controller synthesis for batch process[J].Chinese Journal of Chemical Engineering,2008,16(1):57-61.