摘要:隨著Agent技術的發展,出現了多種基于多Agent遠程協作故障診斷模型,但它們不能很好地滿足實時性要求較高系統的需求,因此本文以診斷Agent為基礎,構建了基于多Agent的遠程協作故障診斷模型,并對模型采用了層次劃分,根據各層Agent的功能,采用合同網協議對Agent間任務進行分配協作,提高了系統故障診斷速度,從而為遠程故障診斷的實現提供了支持。
關鍵詞:多Agent;遠程協作故障診斷;診斷Agent;合同網協議
1 前言
隨著信息技術和現代工業的發展,遠程協作故障診斷系統對實時性、自動性、智能性和網絡化等性能提出了越來越高的要求。多Agent技術可以為遠程協作故障診斷系統的實現提供一條有效的途徑,因此在故障診斷領域已經得到了廣泛的研究和應用。多Agent(Multi-Agent System,MAS)系統提供了一種解決復雜問題的分而治之的方法,它把一個復雜、龐大的問題劃分為多個子問題,由一些具有一定功能的Agent分別處理這些子問題或者可以通過成員之間的合作完成某些單個Agent難以實現的子問題,最終實現問題的求解[1]。
遠程協作故障診斷模型有兩種模式,一種是基于B/S結構;另一種是基于MAS。基于MAS的遠程協作故障診斷系統克服了基于B/S結構存在的缺陷,如網絡通信負載集中,經常會形成網絡通信瓶頸,特別是對實時性支持很差等問題。文獻[3]也提出了一個基于多Agent系統的遠程故障診斷系統模型,各個Agent結構設計復雜,增加了通信Agent,各個Agent都要維護自己的資源庫,管理Agent在執行中還生成很多Agent,這樣就增加了系統開銷,加大了系統的復雜度,提高了系統診斷的精度卻降低了系統響應的速度。因此,本文提出了一種新的基于多Agent遠程協作故障診斷模型,在該模型中管理Agent負責診斷任務和資源的分配及維護學習Agent,簡化了管理Agent的設計,取消了通信Agent,加入了交互Agent,用各Agent自己的通信接口代替通信Agent,簡化了系統的設計,并且各個診斷Agent可以相互合作,加快了系統響應的速度。
2.基于多Agent的遠程協作故障診斷模型
2.1遠程協作故障診斷體系架構
系統總體架構采用分布式分層結構,如圖1所示。該體系結構將遠程協作故障診斷系統分為通信接口層、邏輯層和數據診斷資源接入層[2]。
通信接口層:該層的主要功能負責遠程發送過來的診斷請求,判斷是否接收該診斷請求,并向邏輯層的故障診斷協作平臺報告當前的診斷請求狀態。如果接收該診斷請求,則該層啟用故障診斷模塊,調用數據診斷資源接入層的知識庫進行診斷,并把診斷結果存入數據診斷資源接入層控制的故障信息表中,同時向請求遠程診斷的診斷終端發回診斷結果。
邏輯層:在邏輯層中設計了一個遠程故障診斷協作平臺,它是本系統總體架構的核心,它提供了廣域范圍內共享數據診斷資源的平臺,控制診斷任務的分解,建立了資源共享與多故障診斷系統協作機制,并利用診斷獲取各種有用知識,對其進行學習、提煉,以豐富數據診斷資源中的知識庫,不斷提高本系統自身的診斷智能和遠程服務能力。
數據診斷資源接入層:遠程協作故障診斷的最大特點是診斷資源與發送診斷請求的終端在地域上的分離,無法高效利用診斷資源,使本來可利用的資源浪費掉,但是,本遠程協作故障診斷系統設計了數據診斷資源接入層,克服了診斷資源浪費的缺點,為診斷模塊提供了統一的通信接口,實現了資源的共享和高效利用,也方便管理和維護診斷資源。
2.2基于多Agent遠程協作故障診斷模型設計
根據上小節提出的系統總體架構分層思想及參考文獻4所提出的參考模型,本文設計了基于多Agent系統的遠程協作故障診斷模型,結合系統體系結構,定義了交互Agent、診斷Agent和管理Agent,如圖2所示。下面詳述各個Agent功能。
交互Agent:當遠程終端向本遠程協作故障診斷系統發出診斷請求時,激活通信接口層中的交互Agent,交互Agent判斷是否是本系統對應的大型網絡內的遠程終端,如果不是,交互Agent產生一個回應消息,拒絕執行遠程診斷,并將這次診斷請求寫入日志中以備后來查詢判斷是否有入侵者攻擊;如果發來的診斷請求恰好是本遠程協作診斷系統規定的系統內的診斷請求,交互Agent向管理Agent報告,并將診斷請求任務提交給管理Agent,管理Agent決定該診斷任務是否需要分成各診斷子任務,并將分成的診斷子任務通過通信接口交給交互Agent,交互Agent根據各診斷子任務調用相對應的診斷Agent,完成故障診斷,同時將診斷結果以消息的形式發回原診斷請求終端,通過通信接口把診斷結果在用戶接口模塊中顯示出來,可以供該遠程協作故障診斷系統的用戶查看;用戶也可以輸入命令,調用交互Agent查詢故障信息。
診斷Agent:診斷Agent在交互Agent中,降低了管理Agent的控制復雜度,提高了本診斷系統的診斷效率。在交互Agent中的多個診斷Agent,它們互相獨立工作(在一定的條件下),有自己的推理機,采用目前比較流行的分析和推理算法,如神經網絡Agent、遺傳算法Agent、專家系統Agent等智能故障診斷模型。診斷Agent接收交互Agent傳送來的診斷任務,通過交互Agent提供的通信接口查詢數據診斷資源接入層中的故障信息表,查看是否有該診斷任務的故障案例,若有案例,則將診斷結果通過自身的通信接口直接返回給交互Agent,由交互Agent對其診斷結果進行處理;若沒有案例,診斷Agent也通過交互Agent提供的通信接口調用數據診斷資源接入層中相對應的知識庫(該知識庫的選擇由管理Agent完成),啟動自己的推理機,完成故障診斷。
在診斷Agent診斷過程中,必然會出現診斷不了的故障,這時該診斷Agent利用交互Agent的通信接口向管理Agent報告,管理Agent會對這種情況進行處理,最終完成故障診斷。
管理Agent:管理Agent是本遠程協作故障診斷系統的核心,它既充當服務Agent的角色,維護各Agent的信息,又要負責管理各個診斷Agent,在遇到復雜的診斷請求時,它還要進行任務分解與結果匯總。管理Agent在接到交互Agent送來的診斷請求時,調用自身內部策略庫中的任務分解策略和知識庫的維護信息,對交互Agent發送的診斷任務進行評價和決策,并將合適的診斷分任務和相對應的知識庫返回給交互Agent,交互Agent針對各分診斷任務的特點,激活合適結構的診斷Agent進行診斷。若診斷Agent不能診斷出結果,則該診斷Agent不向交互Agent報告,直接向管理Agent報告,管理Agent采用內部策略庫中的多診斷Agent協作策略分析當前報告的診斷Agent,然后查看策略庫中維護的多個Agent信息,最后向多個診斷Agent發出診斷請求,要求多個診斷Agent協作共同完成診斷任務。管理Agent負責匯總多診斷Agent協作完成的診斷結果,啟動學習Agent,經學習Agent判斷處理,將各種有用信息規整加入數據診斷資源接入層中的知識庫和故障信息表,形成一個不斷增長的經驗知識庫和故障信息表,可以防止以后診斷Agent面對同樣的任務時繼續向管理Agent發請求,以增強系統診斷的高效性、環境適應性和智能性。
3 Agent間的協作
合同網協議(Contract Net Protocol,CNP)[5]在處理Agent間任務分配有一定的優勢,特別是在分層次的系統任務中,因此適合本遠程協作故障診斷系統的管理Agent和診斷Agent之間的任務分配關系,二者寫作關系如圖3所示。
在該模型中,管理Agent和診斷Agent構成了合同關系。當診斷Agent不能診斷當前的診斷任務時,該診斷Agent向管理Agent報告診斷結果,管理Agent接到診斷結果后,通過自身策略庫中的評價策略,結合維護診斷Agent中的信息對該任務評估,最后把分析結果以廣播形式向各個診斷Agent發出,這些診斷Agent會根據自身的情況確定自己
是否可以診斷該任務,然后向管理Agent發出報告請求分配任務,同時設置一個等待時間,防止管理Agent不予響應時無限止地等待下去,浪費診斷資源。管理Agent對向自己發出診斷請求的診斷Agent分配任務,診斷Agent接到分配的任務后向管理Agent回報信息,這次合同協商成功。利用上述提到的合同網的任務協商方法可以實現任務的分配,提高協商過程以及任務分配的效率,可以克服一些傳統分配任務的缺點。
4 分析與仿真
設診斷Agent啟用推理機及完成故障診斷時間為Tk,系統維護各診斷Agent時間為Tv,診斷Agent存取故障信息表的時間為Tf,很明顯,如果診斷Agent調用推理算法和知識庫而不去查詢故障信息表,則有Tk>>Tf。分析文獻[3]提到的遠程故障診斷系統模型,本地Agent完成一次故障診斷時間為:
(1)
如需請求遠程診斷中心的協作診斷,則診斷時間為:
(2)
式中Td代表通信Agent處理診斷請求地址的時間,Tc代表通信Agent在不同網絡狀況下選取傳輸策略的計算時間,Tz代表管理Agent中綜合仲裁Agent處理時間,Ts代表管理Agent中數據挖掘Agent學習處理時間。
本文提出的多Agent遠程協作故障診斷模型,診斷Agent完成一次診斷任務所需時間為(不需要任務分解):
(3)
若向管理Agent報告,需要診斷任務分解時,則完成一次診斷需要時間為:
(4)
式中Tm表示管理Agent分解任務所需時間,n表示管理Agent分解后的任務個數,Tr表示診斷結果綜合時間,Tx表示學習Agent的學習時間。當診斷任務分解為2-3個子任務時,隨著診斷請求的增加,系統中的學習機會不斷完善故障信息表(本文模型)和診斷Agent的知識庫(文獻模型),則響應時間的計算就會以公式(1)、(3)為主。
在分布式監控系統中,設1臺診斷設備監控8臺被監控設備,本文所提出的多Agent遠程協作故障診斷模型與文獻[3]提到的遠程故障診斷系統模型故障診斷響應時間如圖4所示。
從圖4可以看出,隨著診斷請求次數不斷增加,本文提出的遠程協作故障診斷模型的診斷響應時間明顯比原來模型縮短,并且曲線趨于平緩狀,顯示了本文模型的高效性。
結束語
隨著現代工業的不斷發展,遠程故障診斷要求突破傳統結構的限制,多Agent技術起到極大的推動作用,使得多Agent系統在該領域得到了廣泛的研究。本文提出了一種基于多Agent的遠程協作故障診斷模型,各個診斷Agent利用自己的結構對故障進行診斷,互不影響,管理Agent采用合同網協議分配診斷任務,不同的Agent都有自己的系統接口,可以和其它Agent協調通信,提高了系統的靈活性和擴展性;學習Agent豐富故障信息表,縮短了故障診斷時間,提高系統的響應速度。仿真實驗表明,本文提出的模型確實提高了系統的響應速度,為今后工程的具體實現提供了支持。
參考文獻
[1]李鳴,魏震生.多Agent的智能故障診斷系統[J].火力與指揮控制,2007,7(32):83-86
[2]肖小鋒,蔡金燕,馬颯颯.基于多Agent的智能監測與診斷技術[J].計算機工程,2005,16(31):165-167
[3]蔣志忠,馮玉光,等.基于多Agent系統的遠程故障診斷系統模型[J].計算機工程,2007,33(5):278-280
[4]熊育婷,楊慧,楊國慶.航空發動機故障診斷多Agent模型[J].計算機工程增刊,2005,(31):263-265
[5]Smith R G. The Contract Net Protocol: High Level Communication and Control in a Distributed Problem Solver. IEEE Transactions on Computers,1980, 29:1104-1113