蔡莉莎 曾維鵬 韓寶如
摘 要: 為了使電路故障診斷系統(tǒng)更加智能化、高效化,將基于模型診斷的故障診斷技術(shù)應用在智能消防小車電路中。根據(jù)小車的系統(tǒng)行為信息對小車進行建模,利用串口模塊將描述文件在線輸入到計算機中,再根據(jù)IsDS算法以及帶有終止節(jié)點的CSSE?tree算法調(diào)用MiniSAT求解器求解診斷結(jié)果。實驗表明,該系統(tǒng)能夠迅速指示故障元件,診斷效率較高,具有較好的應用前景。
關(guān)鍵詞: 基于模型診斷; MiniSAT求解器; 電路故障診斷系統(tǒng); 串口模塊
中圖分類號: TN710?34; TP301.5 文獻標識碼: A 文章編號: 1004?373X(2016)08?0108?03
Design and implementation of circuit fault diagnosis system based on model
CAI Lisha1, 2, ZENG Weipeng1,2, HAN Baoru3
(1. Sun Yat?sen University, Guangzhou 510275, China; 2. Hainan College of Software Technology, Qionghai 571400, China;
3. Hainan University, Haikou 570102, China)
Abstract: In order to make the circuit fault diagnosis system more intelligent and efficient, the fault diagnosis technology based on model is applied to the circuit of intelligent fire truck. The fire truck was modeled according to the system behavior information. The serial module is used to import the description file into the computer online, and then the MiniSAT solver based on IsDS algorithm and CSSE?tree algorithm with termination node is called to solve the diagnosis results. The experimental results show that the system can quickly indicate the fault component, and has high diagnostic efficiency and good application prospect.
Keywords: model?based diagnosis; MinSAT solver; circuit fault diagnosis system; serial module
常見的電路故障診斷方法是技術(shù)人員利用儀表結(jié)合自身所學的知識及積累的診斷經(jīng)驗對電路進行一路一路的測試,最終確定故障元件。該方法診斷效率低下,而且要求對電路的工作原理有一定的了解?;谀P驮\斷技術(shù)利用電路元件之間的連接關(guān)系建立系統(tǒng)模型,如果觀測到的行為與假設系統(tǒng)正常工作時所預期的行為不一致時說明系統(tǒng)存在故障,利用診斷推理算法診斷故障并確定故障元件[1]。該方法診斷效率高,設備獨立性強,重復利用率高,維護更新簡單便捷。智能消防小車的實現(xiàn)減少了火災現(xiàn)場不必要的人員傷亡,人們利用傳感器感知火災現(xiàn)場并利用路徑規(guī)劃算法自動尋找最優(yōu)路徑迅速找到事發(fā)地點進行滅火行動。智能消防小車的系統(tǒng)能否正常運行直接影響其工作效果,基于模型的智能消防小車故障診斷系統(tǒng)能夠自動診斷電路的故障源,并顯示故障元件方便人們及時更換元件保證小車的正常運行。
1 基于模型診斷相關(guān)算法的研究
1.1 可滿足性算法
可滿足性算法的基本思想為:將任何一個邏輯命題轉(zhuǎn)化為一個子句集,通過各種可滿足性方法判定該子句集是否可滿足從而決定該命題是否成立[2]。為了判定一個部件是否為故障元件,其實就是判定該組件的正常行為描述與相關(guān)的系統(tǒng)描述及觀測描述是否邏輯一致,只需將該部件相關(guān)的系統(tǒng)描述與觀測描述代入MiniSAT求解器,將判斷部件是否存在故障轉(zhuǎn)換為SAT求解問題[3]。如果可滿足,MiniSAT求解器得到結(jié)果判定命題公式是真的;如果不可滿足,說明該部件是個故障元件。
1.2 判定算法IsDS的研究
以與門部件為例,使用IsDS算法判定與門部件是否出現(xiàn)故障。判定部件為故障元件的IsDS算法為:
Function IsDS(SubCOMP[ ])
輸入:待判定的系統(tǒng)組件子集SubCOMP。
輸出:BOOL值,若為沖突集則返回“真”,否則返回“假”。
以與門為例說明如何使用IsDS判定算法判定故障集。設1,2分別表示與門的兩個輸入節(jié)點變量,3表示輸出節(jié)點變量,輸入輸出正值表示高電平,負值表示低電平,4表示組件變量,當組件變量取正值表示部件正常工作,取負值表示部件不正常工作。當與門部件正常工作時,輸入1,2時,輸出為3,其邏輯描述為:OK(4)∧1∧2→3,將其轉(zhuǎn)換為范式的形式(將蘊含符號→去掉)變成-OK(4)∨-1∨-2∨3??紤]與門不同輸入所產(chǎn)生的不同邏輯描述,則與門的合取范式(CNF)表達如下:(-OK(4) ∨ -1∨ -2 ∨3)∧(-OK(4) ∨2 ∨-3)∧(-OK(4) ∨1∨-3)。與門的系統(tǒng)描述、組件正常行為描述的CNF文件如下:
-1 -2 -4 3 0
2 -4 -3 0
1 -4 -3 0
類似的,可以給出觀測的CNF文件描述,當1,2輸入節(jié)點變量為低電平時,觀測到的輸出節(jié)點變量如果為高電平,則觀測的CNF文件如下:
-1 0
-2 0
3 0
組件為正常組件的CNF文件如下:
4 0
基于IIsCS判定算法使用SAT求解器求解過程如下:
Step1:首先新建一個文本文檔,根據(jù)當前組件子集SubCOMP的系統(tǒng)描述、組件的正常行為描述以及觀測描述,該組件為正常組件描述CNF文件追加到文檔中;
Step2:調(diào)用SAT求解器,求解CNF文件,求解結(jié)果為UNSAT;
Step3:判定上述CNF是否可滿足,若不滿足說明該組件為不正常的組件,若滿足說明該組合滿足邏輯表達式,該組件為正常組件;
Step4:結(jié)果分析,觀測值為-1,-2,3,對于一個無故障的與門輸入為-1,-2,輸出為3,該器件應該是存在故障,使用IsDS算法,SAT求解器求解的結(jié)果為不可滿足,說明該組件存在故障為故障點。此算法通過SAT求解器返回的結(jié)果即可判定是否是故障組件。
1.3 產(chǎn)生所有的極小診斷算法
使用IsDS算法能判定某一個部件是否存在故障,但是在智能消防小車中由很多個門電路構(gòu)成組合邏輯電路,如何快速找出該電路系統(tǒng)中存在故障的部件,本文利用CSSE?tree方法[4]結(jié)合IsDS判定算法搜索出智能消防小車中的故障元件。IsDS判定算法使用SAT求解器,將集合內(nèi)所有部件是否正常轉(zhuǎn)換成是否可滿足,若部件正常則SAT求解器求解結(jié)果為SAT,若出現(xiàn)故障求解結(jié)果為USAT,那么與之相關(guān)的其他電路元件構(gòu)成的CNF文件(SD,COMPS,OBS)求解的結(jié)果必定為USAT,因而無需對其進行擴展即能判定為故障部件。某一個部件CNF文件(SD,COMPS,OBS)求解結(jié)果是SAT,即不是故障元件,那么需引入其他元件的CNF文件,對其進一步擴展,直至求解結(jié)果為USAT或遍歷完所有元件。
2 系統(tǒng)設計
2.1 系統(tǒng)方案論述
本文所設計的智能消防小車故障診斷系統(tǒng)是基于模型診斷算法的電路故障診斷系統(tǒng)。該系統(tǒng)包括智能消防小車電路系統(tǒng),診斷系統(tǒng)及電路系統(tǒng)與診斷系統(tǒng)之間通信的通信系統(tǒng),如圖1所示。該系統(tǒng)的具體功能為:將小車在人為設計的地圖中行駛,在探測火源的過程中自主尋找路徑行駛,遇到障礙物能夠繞開障礙物行駛,找到火源后能夠迅速滅火。在小車執(zhí)行任務的過程中,將小車的系統(tǒng)描述、組件的正常行為描述以及觀測描述、該組件為正常組件的描述的(SD,COMPS,OBS)三元組CNF文件發(fā)送到PC機中,利用IsDS判定算法結(jié)合CSSE?tree算法使用MiniSAT求解器判定是否存在故障,如有硬件電路故障則能顯示故障元件。
2.2 智能消防小車電路系統(tǒng)
智能消防小車由處理器、尋跡傳感器、避障傳感器、直流電機、火焰?zhèn)鞲衅鳌缁痫L扇、電源及串口通信模塊八大部分構(gòu)成[5]。小車由3節(jié)4.5 V的電池供電,使用宏晶公司研發(fā)的STC89C52單片機作為處理器處理接收紅外火焰?zhèn)鞲衅鳌⒓t外光電開關(guān)避障傳感器及光電尋跡傳感器的信號結(jié)合程序要求控制直流電機驅(qū)動及風扇的運行,智能消防小車硬件電路圖如圖2所示。根據(jù)智能消防小車系統(tǒng)的每個部件之間的電路連接關(guān)系建立系統(tǒng)模型,同時建立合取范式的描述文件,文件里包含系統(tǒng)描述子句、正常行為描述子句、觀測描述子句。
2.3 通信系統(tǒng)
MiniSAT求解器是一款運行在Linux操作系統(tǒng)下的求解器,接收DIMACS CNF簡單文本格式的文件。IsDS判定算法需要將(SD,COMPS,OBS)三元組信息輸入求解器,通過求解器判定其可滿足性。三元組信息與智能消防小車的運行狀態(tài)有關(guān),因此通信系統(tǒng)主要任務是將小車所構(gòu)建的三元組信息上傳給PC機,同時將求解器求解的結(jié)果下傳到小車,實現(xiàn)上、下位機之間的通信。
本系統(tǒng)下位機利用printf()函數(shù)將小車構(gòu)建CNF形式的三元組描述文件轉(zhuǎn)變成C語言,將初始化函數(shù)uartInit(),發(fā)送函數(shù)send(),接收函數(shù)receive()通過單片機的RS 232與上位機進行通信。由于Python語言能與其他語言進行無縫連接,其次該語言的運行環(huán)境與MiniSAT求解器相同等優(yōu)點,因此上位機的開發(fā)語言選擇Python,利用發(fā)送接收函數(shù)readUart()與下位機進行數(shù)據(jù)交換,利用minisat_execute()函數(shù)調(diào)用MiniSAT求解器。
2.4 診斷系統(tǒng)
診斷系統(tǒng)利用IsDS診斷算法根據(jù)智能消防小車電路系統(tǒng)建立的三元組(SD,COMPS,OBS)即電路系統(tǒng)描述,電路系統(tǒng)組件,觀測描述輸入MiniSAT求解器中求解。將智能消防小車每一個功能模塊生成一組三元組CNF描述文件,診斷模塊根據(jù)求解器求解的結(jié)果結(jié)合CSSE?tree算法以及其修剪規(guī)則決定是否需要發(fā)送下一組三元組數(shù)據(jù)直至遍歷完所有的組件。如果求解結(jié)果為“U”則表示該模塊為故障源,如果求解結(jié)果為“S”則需要發(fā)送下一組三元組數(shù)據(jù)。
3 系統(tǒng)測試
通過兩個階段對該系統(tǒng)進行測試:第一階段測試小車在地圖中是否能夠?qū)崿F(xiàn)尋跡,避障,滅火功能;第二階段測試系統(tǒng)能否診斷人為設置L298為故障元件并指示故障元件。經(jīng)測試,小車在正常狀態(tài)下能夠自主尋找火源,在運行過程中始終保持在地圖黑線中央,遇到障礙物能夠調(diào)整行駛方向順利避開障礙物,最終順利到達火災現(xiàn)場執(zhí)行滅火任務。在第二階段測試過程中,小車元件L298一直報障,經(jīng)過測試表明當小車左輪壓白線時無法調(diào)整行駛方向,其他小車右輪壓白線,小車直行及小車停止三個過程正常,經(jīng)過檢查是L298OUT2口存在故障。
4 結(jié) 論
本文設計的基于智能消防小車的故障診斷系統(tǒng),包括智能消防小車電路系統(tǒng),通信系統(tǒng)以及診斷系統(tǒng)。本系統(tǒng)利用IsDS判定算法借助MiniSAT求解器對根據(jù)小車電路結(jié)構(gòu)連接信息及觀測信息構(gòu)建的三元組進行判定故障元件,結(jié)合CSSE?tree算法遍歷小車電路中的所有元件。該系統(tǒng)使用方便,診斷效率較高,獨立性強,電路系統(tǒng)與系統(tǒng)推理內(nèi)核相互獨立。系統(tǒng)完成后,使用者只需要啟動運行開關(guān),有故障時電路系統(tǒng)自動報障指出故障元件,使用者及時更換元件即可。
注:本文通訊作者為曾維鵬。
參考文獻
[1] 李占山,姜云飛.基于模型診斷推理的回顧與展望[J].計算機科學,1998,25(6):54?57.
[2] ZHAO Xiangfu, OUYANG Dantong. Deriving all minimal conflict sets using satisfiability alg orithms [J]. Chinese journal of electronics, 2009, 37(4): 804?810.
[3] 曾維鵬,蔡莉莎,吳恒玉,等.MiniSAT求解器在電路故障診斷中的應用[J].電氣電子教學學報,2013,35(6):60?62.
[4] 趙相福,歐陽丹彤.基于模型的診斷中產(chǎn)生所有極小沖突集的新方法[J].吉林大學學報(工學版),2007,37(2):413?418.
[5] 韓超,鄒金慧.智能消防小車的設計[J].云南大學學報(自然科學版),2009,31(z2):236?240.
[6] 蘇培培,陳海榮,王緒利.基于MPC8280的智能串口模塊設計[J].現(xiàn)代電子技術(shù),2010,33(2):102?103.