1. 引言:
到目前為止,大多數計算機程序都是用來執行“通常意義上的任務,這些任務要么對任何人來說都不難完成,要么有嚴格的數學公式和精確的算法”,然而,還有大批有意義的任務要求具備許多專門經驗知識,這些知識多數人并不具備,也很難建立起嚴格的數學模型。也就是說,這類任務要由積累了專門經驗知識的專家來完成,如醫療診斷、天氣預報、化學分析、市場預測等等。在汽車維修過程中同樣存在這樣一個問題:汽車維修對維修人員的個人經驗要求較高,比如在分析一個汽車電子信號時,如果維修人員沒有豐富的維修經驗,往往也無法診斷出發動機故障的原因。本文提出采用專家系統來輔助判斷發動機的故障。
專家系統是一種計算機程序,它可以以人類專家的水平完成專門的、一般是困難的專業任務。研制專家系統的目的,就是要使計算機在特定領域中起到該領域人類專家應起的作用,設計專家系統的基本思想是使計算機的工作過程竭盡全力地來模擬人類專家解決實際問題的工作過程,也就是模擬人類專家如何運用他的知識與經驗來解決所要解決的問題的方法與步驟。
1.1專家系統的構成:
目前大多數專家系統通常由知識庫、推理子系統、解釋子系統、知識獲取子系統、綜合數據庫5個部分組成,如圖1-1所示:
知識庫只用于存放不依賴于領域中具體問題的知識,如一些判斷性知識和元知識,而與領域中具體問題有關的知識(如描述問題的數據等)則放在綜合數據庫中,解釋子系統程序負責回答用戶提出的各種問題,包括與系統運行有關的問題和與運行無關的關于系統本身的一些問題,解釋子系統是實現系統透明性的主要部件。知識獲取子系統負責管理知識庫中的知識,包括根據需要修改、刪除或添加知識及由此引起的一切必要的改動。
圖1-1 專家系統的一般結構
專家系統在故障診斷領域的應用是很廣泛的。有旋轉機械故障診斷專家系統,往復機械故障診斷專家系統,發電機組故障診斷專家系統等。設備故障診斷專家系統除了具備專家系統的一般結構外,還具有自己的特殊性,其結構框圖如圖2-1所示。
(1)監測系統的數據管理方式:
監測系統針對多機組多通道,每天24h連續監測。既有各變量信號,又具有黑匣子功能,數據測量,分類分級管理。
(2)信號分析與數據處理系統的數據管理:
信號分析與數據處理系統和故障診斷專家系統通常在同一工作站上,前者將分析結果以數據文件形式傳遞給后者,供故障診斷專家系統應用。
(3)數據采集器數據的管理:
采集器存放在網絡服務器上的三類文件被專家系統所利用:黑匣子中的正常文件、異常文件及熱文件(即當前最新采集的文件)。
圖2-1 設備故障診斷專家系統結構簡圖
診斷參數是指在進行汽車發動機診斷時,需要采用一些能夠反映發動機技術狀況的間接
指標。在選擇診斷參數時應掌握以下原則:
(1)靈敏性:診斷參數的靈敏性,是指診斷對象的技術狀況在從正常狀態到進入故障狀態之前的整個使用期內,診斷參數相對于技術狀況參數的變化率,亦稱為診斷參數的靈敏。
(2)具有單值性。在診斷范圍內診斷參數的變化具有某種規律性(漸增型或漸減型),不會出現不規律的非單值變化的規律。
(3)具有穩定性。在測試條件不變的情況下診斷參數的測量值應具有良好的重復性。
(4)診斷成本低而工藝簡單,便于測量。
根據以上原則,發動機故障診斷參數可選擇以下幾個參數:氣缸壓力、進氣歧管真空度、氣缸相對漏氣率、發動機各缸轉速降、點火工作質量、廢氣分析、發動機功率、點火提前角、點火高壓電路電壓、發動機異響和震動的聲級、聲壓、振幅及振動加速度、發動機溫度。
3 汽車發動機故障樹分析法:
故障樹分析法(FTA,Fault Tree Analysis)是一種圖形演繹方法,是通過對可能造成系統故障的各種因素(包括硬件、軟件、環境、人為因素等)進行分析,畫出邏輯圖(即故障樹),再對系統中發生的故障事件,做出由總體至部分按樹狀逐級細化的分析,其目的是判明基本故障、確定故障原因、故障影響和發生概率等。
故障樹分析法的步驟根據分析對象、分析目的、精細程度等不同而異,但一般可按下述步驟進行,即:(1)建造故障樹;(2)建立故障樹的數學模型;(3)故障樹的定性分析;(4)故障樹的定量計算。
先選定系統中不希望發生的故障事件為頂端事件,其后第一步是找出直接導致頂端事件發生的各種可能因素或因素組合,如硬件故障、軟件故障、環境因素、人為因素等。第二步再找出第一步中各因素的直接原因。循此方法逐級向下演繹,一直追溯到引起系統發生故障的全部原因,即分析到不需要繼續分析原因的底事件為止。然后把各級事件用相應的符號和適合于它們之間邏輯關系的邏輯門與頂端事件相連接,就建成了一棵以頂事件為根,中間事件為節,底事件為葉的多級倒置故障樹。
圖3-1為發動機不能正常起動的故障樹。通過分析,發動機不能發動首先可舉出蓄電池沒電。其次即使蓄電池有電,若電池接線不正常(如保險絲燒斷),仍然不會發動。假如電氣系統正常,如果燃料供給不正常,發動機也無法正常發動。最后即使燃料供給正常,如果點火火花不正常,發動機也不能正常發動。對于發動機來說,這三個事件任一個發生都無法發動發動機,因此頂事件和這三個事件用或門相連。然后再分別對這三個直接原因事件,用同樣的方法進行分析,直到底事件為。最終得到發動機不能發動的故障樹。
圖3-1 發動機不能發動故障樹
由以上分析可知道,發動機的故障是很符合故障樹的特點的。要以故障樹分析法作為故障分析方法,則必須弄清楚數的數據結構。樹 (Tree) 屬于非線性結構。它由 n(n )個結點組成,每一個結點 (Node)至多只有一個前件結點,結點之間具有明顯的層次關系,而且第一層僅有一個結點。如圖3-2所示:
圖3-2 樹的示例
圖3-3 二叉樹形式的發動機故障樹
有序樹轉換為二叉樹的規則如下:(1)有序樹中的結點與二叉樹中的結點一一對應。(2)有序樹中的某個結點 N 的第一個孩子 (即最左邊的孩子) N1,在二叉樹中對應結點 N 的左孩子。(3)有序樹中的某個結點 N 的第一個孩子 N1以后的其他孩子,在二叉樹中被次鏈接成一串起始于 N1的右孩子。對圖3-1的發動機故障樹按照以上規則轉換可得到如圖3-3所示二叉樹形式的發動機故障樹,其中圖中的符號 表示非門:
4 故障診斷專家系統實現:
專家系統的核心是知識,故有時專家系統又被稱職基于知識的系統。知識庫中擁有知識的多少及知識的質量決定了一個專家系統所具有解決問題的能力。因此,建造一個專家系統首先便是要獲取專業領域中的大量概念、事實、關系和方法,包括人類專家處理實際問題時的各種啟發性知識,以構造一個內容豐富的知識庫。本系統使用SQLServer2000數據庫來存儲知識庫的知識。
4.1 發動機故障知識的表示:
在計算機中,我們通常采用鏈式存儲結構來存儲二叉樹。因為二叉樹中每一個結點最多有兩個后件,所以在存儲結點中,除數據域外,還設置了兩個指針域,分別用來指向該結點的左孩子和右孩子。圖4-1所示為二叉樹存儲結點的結構。其中:data是數據域,用來存放該結點的元素值;lchild稱為左孩子指針域,用來存放該結點的左孩子的存儲地址;rchild稱為右孩子指針域,用來存放該結點的右孩子的存儲地址。
4-1 二叉樹的存儲節點的數據結構
圖4-1 用戶界面設計
ID FailDescribe LChild RChild FailKind
故障標識碼 故障描述 節點左孩子 節點右孩子 故障類型
表4-1 故障樹的數據庫表結構
用戶界面設計如圖4-1所示:
4.結語:
本課題根據發動機故障的復雜性,依據計算機數據結構原理,主要取得了以下幾個方面的成果:
(1)采用故障樹的數據結構完成知識表示,建立了知識庫。從故障樹的頂事件至每一個底事件形成了故障分析支路。這樣的支路在程序實現時均與一個鏈表結構對應。為了方便解釋,在系統中采用了雙向鏈表結構來表示這些支路,一個故障樹對應多個雙向鏈表。
(2)確定性故障診斷推理機的基本思想是:首先用戶選擇故障現象,找到相應的故障入口,然后根據故障入口給出相應的提問,并在用戶回答問題以后進行推理,如此反復,引導用戶完成診斷,系統記錄診斷過程。如果用戶沒有找到結果,給用戶提示信息,允許用戶重新診斷。
參考文獻
[1]尹朝慶等,人工智能與專家系統,中國水利水電出版社,2002年,1-332頁
[2]人工智能及其應用,清華大學出版社19%年
[3]肖云魁,汽車故障診斷學,北京理工大學出版社,2001年,1-278頁
[4]嚴蔚敏,吳偉民,數據結構(C語言版),清華大學出版社,1997年,1-334頁
[5]胡琳,汽車故障診斷專家系統診斷模型的研究,電子技術第12期,1997年
[6]李羽,汽車故障診斷專家系統中不確定知識的處理,計算機第15期,1997年