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