摘 要: 論述了汽車故障診斷專家系統(tǒng)軟件的開發(fā)研究和設(shè)計(jì)中的難點(diǎn),針對汽車故障的特點(diǎn)模擬經(jīng)驗(yàn)豐富的維修專家的診斷思路及方法,利用Visual FoxPro3.0進(jìn)行編程,從而可使用戶通過人機(jī)對話的形式方便、快速、準(zhǔn)確地找出故障原因。
關(guān)鍵詞: 汽車 故障診斷 專家系統(tǒng)
目前我國汽車持有量正在快速增加,進(jìn)口車也越來越多,且車型復(fù)雜、種類繁多,因而使許多維修單位由于缺乏有關(guān)維修專家的技術(shù)指導(dǎo)而不能維修或難以滿足維修的需要。為了提高車輛的利用率減少經(jīng)濟(jì)損失,開發(fā)汽車故障診斷專家系統(tǒng),利用計(jì)算機(jī)這種先進(jìn)的設(shè)備進(jìn)行故障診斷是形勢發(fā)展的需要和必然趨勢。
汽車故障診斷專家系統(tǒng)是一種能模擬維修專家的診斷思路進(jìn)行故障診斷的計(jì)算機(jī)智能軟件程序。開發(fā)這樣一個(gè)系統(tǒng),首先需要將汽車維修領(lǐng)域?qū)<业拇罅繉?shí)際維修經(jīng)驗(yàn)進(jìn)行匯總和提煉,編成知識(shí)庫,構(gòu)成專家系統(tǒng)的核心部分;其次需要建立推理機(jī),推理機(jī)可根據(jù)用戶提供的故障跡象或異?,F(xiàn)象,利用知識(shí)庫中的知識(shí),按一定推理策略進(jìn)行推理,進(jìn)而得出診斷結(jié)果。該專家系統(tǒng)的結(jié)構(gòu)如圖1所示。
1 總體設(shè)計(jì)
建造一個(gè)實(shí)用的汽車故障診斷專家系統(tǒng),不僅要有友好的人機(jī)界面,高效的推理策略,方便的知識(shí)獲取手段,還應(yīng)有完善的數(shù)據(jù)庫和圖像庫,以及強(qiáng)大的幫助系統(tǒng),其總體結(jié)構(gòu)方框圖如圖2所示。其中,故障診斷模塊根據(jù)確定性故障與非確定性故障的不同類型而采用了不同的診斷方法,對于確定性故障主要采用了診斷樹的方法來描述診斷流程,從故障現(xiàn)象出發(fā),列出所有可能產(chǎn)生此類現(xiàn)象的故障部位,再根據(jù)現(xiàn)象用最方便的判斷方法逐一排除,最終確定準(zhǔn)確的故障部位;而對于非確定性故障,如發(fā)動(dòng)機(jī)異響故障因故障現(xiàn)象與原因之間邏輯關(guān)系不明顯或不明確的情況,采用了模糊診斷方法,通過模糊統(tǒng)計(jì)來模擬維修專家在判別異響部位時(shí)的推理方式,從而找出故障原因,以便由此入手,進(jìn)行維修,而無須靠人工來做出診斷,大大節(jié)省了時(shí)間,提高了車輛維修的效率。數(shù)據(jù)庫提供大量的有關(guān)汽車的各種數(shù)據(jù),包括汽車的一般數(shù)據(jù)、使用數(shù)據(jù)、發(fā)動(dòng)機(jī)和底盤的維修調(diào)整數(shù)據(jù)等,以便于維修工人工作時(shí)即時(shí)查詢,而無須費(fèi)時(shí)去查閱書本資料。圖像庫則給用戶提供大量的精美汽車圖像,并附有各種車型的簡介。
2 各功能模塊的設(shè)計(jì)
2.1 故障診斷模塊的設(shè)計(jì)
該模塊以人機(jī)對話的方式搜索用戶所掌握的故障線索,模仿維修專家的診斷思路進(jìn)行推理,進(jìn)而一步步找出故障部件及原因,其診斷流程框圖如圖3所示。根據(jù)汽車的具體情況將診斷模塊分為三個(gè)部分,其詳細(xì)結(jié)構(gòu)框圖見圖4。
以發(fā)動(dòng)機(jī)系統(tǒng)為例,在建立柴油發(fā)動(dòng)機(jī)的診斷子模塊時(shí),針對其故障特點(diǎn),采用了較形象的樹狀圖示診斷方案。當(dāng)進(jìn)行診斷時(shí),系統(tǒng)根據(jù)用戶對詢問的回答確定下一步顯示的樹枝,直到診斷進(jìn)行到樹葉(找出故障原因)為止。此時(shí),確定按鈕由失效變?yōu)榭捎?未診斷完則為失效狀態(tài)),按下去后可彈出預(yù)覽及打印屏幕,其人機(jī)界面見圖5。
2.1.1 診斷軟件設(shè)計(jì)中的難點(diǎn)分析
實(shí)現(xiàn)此故障樹診斷法,首先在表單上畫好所有的樹狀圖,初始化時(shí),先設(shè)定全屏所有對象的可見性VISIBLE=.F.,然后根據(jù)每個(gè)按鈕、詢問文件之間的邏輯關(guān)系,編寫按下此按鈕時(shí)要執(zhí)行的動(dòng)作(CLICK屬性)。例如:某一個(gè)按鈕按下時(shí),執(zhí)行程序:
thisform.line25.visible=.t.
thisform label11.visible=.t.
2.1.1.1 錯(cuò)選反悔功能的設(shè)計(jì)
有時(shí),當(dāng)用戶按下一個(gè)按鈕后,在已顯示出了相應(yīng)的診斷內(nèi)容后,發(fā)現(xiàn)選錯(cuò)了,反悔并回過來按下其上一級(jí)或上幾級(jí)的某個(gè)按鈕。系統(tǒng)必須允許這種錯(cuò)誤的發(fā)生,并實(shí)現(xiàn)他的要求,即在每個(gè)按鈕的CLICK屬性內(nèi)加入一些語句,使除了應(yīng)該顯示的內(nèi)容VISIBLE(可見)外,其余對象的屬性均變回VISIBLE=.F.(不可見),這就需要逐條的控制每一對象。例如:已按下右邊的按鈕,并彈出下一級(jí)的內(nèi)容后,用戶反悔,又按下左邊的另一個(gè)按鈕,則系統(tǒng)將右邊彈出的內(nèi)容重新設(shè)置為VISIBLE=.F.,隱藏起來,并彈出左邊的內(nèi)容(見圖6)。
當(dāng)用戶的診斷完成后,允許實(shí)現(xiàn)瀏覽及打印功能。首先,要判斷用戶是否已完成診斷,即判斷是否有某一條支路的最后結(jié)果已顯示。若沒有則不允許進(jìn)行瀏覽。然后,以每步所對應(yīng)的內(nèi)容作為一條記錄,將此條支路的診斷過程中的全部記錄添加到USER.故障字段中,即可實(shí)現(xiàn)瀏覽等功能。編寫完每一條支路的添加內(nèi)容后,既完成了一個(gè)表單的設(shè)計(jì)。
2.1.1.2 診斷記錄過程的設(shè)計(jì)
這部分的難點(diǎn)在于:添加診斷過程記錄的設(shè)計(jì)。最初曾設(shè)計(jì)為在每個(gè)選擇按鈕中加入一條語句,將該部分的診斷過程以記錄的形式添加到表中,但后來考慮到用戶可能會(huì)反悔,如何辨別已添加的錯(cuò)誤記錄并刪除它,一直是一個(gè)很大的問題。經(jīng)過反復(fù)的研究與試驗(yàn),最后決定采用現(xiàn)有的方法,即不理會(huì)用戶的診斷步驟,只以其最后確定的那條診斷支路為準(zhǔn)。先根據(jù)最后結(jié)果判斷是哪一條支路,然后在確定按鈕中將該條支路中的內(nèi)容進(jìn)行添加。
2.2 數(shù)據(jù)庫模塊的設(shè)計(jì)
汽車數(shù)據(jù)庫模塊主要包含5個(gè)部分:數(shù)據(jù)庫、工作界面、信息檢索、打印輸出口、系統(tǒng)引導(dǎo)信息處理。數(shù)據(jù)庫部分是整個(gè)系統(tǒng)的數(shù)據(jù)源,是系統(tǒng)最重要的組成部分之一。根據(jù)汽車數(shù)據(jù)極其龐大而復(fù)雜的特點(diǎn)。整個(gè)系統(tǒng)的構(gòu)造采用了“樹狀分支,模塊關(guān)聯(lián),分部構(gòu)造”的數(shù)據(jù)庫方式,其結(jié)構(gòu)見圖7。
與數(shù)據(jù)庫模塊相應(yīng)的,工作界面也采用了交互式的關(guān)聯(lián)調(diào)用方式。各工作界面對應(yīng)相應(yīng)的數(shù)據(jù)庫,又相互可調(diào)用。由于采用了結(jié)構(gòu)化編程,各工作界面以子函數(shù)方式出現(xiàn),既增加了系統(tǒng)的靈活性,也使整個(gè)系統(tǒng)更為層次分明。整個(gè)工作界面網(wǎng)絡(luò)如圖8所示,整個(gè)系統(tǒng)的工作環(huán)境是一個(gè)相互連接的網(wǎng)狀結(jié)構(gòu),在這個(gè)工作界面網(wǎng)絡(luò)中,用戶可以簡單的在各個(gè)部分?jǐn)?shù)據(jù)中跳轉(zhuǎn),而無須自己關(guān)心所在的數(shù)據(jù)庫層次,同時(shí),各數(shù)據(jù)界面均與檢索界面、打印界面緊密連接,數(shù)據(jù)獲取更方便快捷。
數(shù)據(jù)檢索模塊是整個(gè)系統(tǒng)的一個(gè)中心環(huán)節(jié)。因?yàn)椋饬恳粋€(gè)數(shù)據(jù)庫系統(tǒng)是否成功,很大程度上決定于其檢索功能的快速性、完善性。根據(jù)汽車數(shù)據(jù)記錄條目量大、數(shù)據(jù)字段數(shù)多、字段占用字節(jié)量大的特點(diǎn),汽車數(shù)據(jù)庫系統(tǒng)采用了視圖檢索的新方式。通過工作界面獲取檢索條件,以參數(shù)形式傳遞給視圖,利用視圖進(jìn)行檢索,再由視圖生成檢索結(jié)果的臨時(shí)數(shù)據(jù)表。將臨時(shí)數(shù)據(jù)表映射到檢索界面中,實(shí)現(xiàn)檢索結(jié)果的顯示。這種方式使用了結(jié)構(gòu)化查詢(SQL)方式的視圖檢索,檢索條件的傳輸與判別較為簡易,在使用RUSH MORE技術(shù)時(shí),能表現(xiàn)出令人滿意的查詢速度。同時(shí),采用生成臨時(shí)表方式,能大大減少對CPU及內(nèi)存的占用,加快系統(tǒng)性能。在實(shí)際檢驗(yàn)中,系統(tǒng)在8個(gè)數(shù)據(jù)庫(50000多個(gè)數(shù)據(jù))中檢索298條符合復(fù)雜條件關(guān)系的記錄,僅耗時(shí)0.27秒,查詢結(jié)果令人滿意。并且,在系統(tǒng)中還利用了視圖的臨時(shí)表可發(fā)送更新性質(zhì),增加了檢索結(jié)果編輯功能。用戶可先利用檢索界面檢索到所需的數(shù)據(jù)記錄,并利用該功能對數(shù)據(jù)進(jìn)行修改,發(fā)送到原數(shù)據(jù)表中,更好的實(shí)現(xiàn)數(shù)據(jù)管理。
參考文獻(xiàn)
1 吳 桑.汽車故障診斷手冊.長春:吉林科技出版社,1994
2胡 琳.汽車故障診斷專家系統(tǒng)診斷模型的研究.電子技術(shù)應(yīng)用,1997;23(12)
3 陳宏謹(jǐn),胡 琳.汽車發(fā)動(dòng)機(jī)故障診斷專家系統(tǒng)的開發(fā)研究.汽車技術(shù),1998(12)
4 戚 揚(yáng),韓北山.汽車故障診斷.北京:人民交通出版社,1995