摘要:針對復雜工業過程控制的特點,建立了由控制Agent和決策支持Agent組成的分層遞階MAS(Multi Agent System);研究了基于Ice中間件的MAS開發方法,采用COM技術構建了具有二進制重用性的Agent組件,可實現對原有系統的重用;實現了MAS與專家系統、神經網絡和模糊控制技術的融合;開發了新型干法水泥生產過程控制MAS,實現了水泥熟料煅燒過程的優化控制。
關鍵詞: 多代理系統;代理;中間件;組件對象模型;復雜過程控制
中圖分類號:TP311.52文獻標志碼:A
文章編號:1001-3695(2007)07-0202-03
0引言
復雜工業過程具有高度非線性、強耦合、時變不確定等特點,在解決復雜工業過程的控制時采用傳統的控制策略和控制方法難以獲得滿意的控制品質。因此,在復雜環境和任務下的工業過程控制應當走智能化的道路[1]。專家系統控制、模糊邏輯控制、神經元網絡控制等智能控制方法有著各自的特點,但單一的智能控制方法依然難以適應復雜工業過程的全局控制。
MAS(Multi Agent System)是由多個Agent組成的松散網絡。其中的Agent通過相互協調和相互作用,解決單個Agent由于能力或知識上的不足而難以解決的全局性問題。MAS系統在實現過程中,不追求單個的、龐大的、復雜的體系,而是按控制應用的要求,從功能上劃分成多個Agent,各個Agent之間相互通信、彼此協調,共同完成大的復雜系統的控制任務[2]。因此建立復雜工業過程控制的MAS(即CIPCMAS)有著積極的意義。
1系統設計
復雜工業過程中各個不同的工藝環節與工藝過程之間相互聯系并相互影響,因此,對生產全過程的控制需要通過對各個局部工藝過程分別實施控制來實現。為此需要分別建立面向不同局部工藝過程的控制單元——控制Agent。各控制Agent根據被控對象的不同特點,采用不同的控制方法以實現過程的優化控制,并為其他控制Agent提供系統所需的必要信息。
為協同與協調系統中各控制Agent的工作,同時給用戶提供決策支持,CIPCMAS系統中建立了決策支持(Decision Supporting, DS)Agent。DS Agent具有針對全局過程的控制策略。
分層遞階結構的CIPCMAS如圖1所示。其中控制Agent處于系統的控制級,DS Agent和Router處于系統的管理級。
將實際工業生產過程系統模擬成MAS系統,其基本原則是使系統盡量簡單以便于控制。因此,簡化Agent之間的交互可使生產系統的復雜程度降低。控制Agent的大部分時間應用來工作,而僅在必要時進行交互。為此,系統中的控制Agent之間不直接進行相互間的通信,而僅與DS Agent進行通信,使得CIPCMAS的通信量大大減少,既提高了控制系統的實時性,也使控制Agent的構造變得簡單。
Router是一個特殊的Agent。系統中所有的Agent必須在Router處注冊,其作用與網絡系統中的路由器類似,集成了通信協調、Agent管理和對外接口的功能。
2系統實現
在CIPCMAS中,Agent是一個具有控制問題求解機理的計算單元。它可以是一個專家控制系統、一個模糊控制系統、一個神經網絡系統或一個求解單元等。實現CIPCMAS需要解決Agent的構造、Agent間的交互,以及Agent的編碼等問題。
2.1Agent的基本結構
Agent由內核、調度器、通信、功能接口及控制功能體等模塊組成。Agent的基本結構如圖2所示。
(1)通信模塊。通信模塊負責Agent與外界的交互。由通信器、ADL(Agent Define Language)解析器和KQML(Knowledge Query and Manipulation Language)解析器等構件組成。
①通信器實施消息的接收和發送。②APL解析器。Agent向Router注冊的消息采用ADL進行描述,其內容包括Agent的名字、地址、功能及行為模式等Agent的相關屬性,由ADL解析器進行解讀。③KQML解析器Agent之間通信的消息進行解讀。這類消息包括外層和內層兩部分。外層采用KQML對通信的對象與地址、消息類型和描述消息內容所使用的語言等進行說明,它為消息定義了一個“信封”格式;內層即消息的內容部分則采用KIF(Knowledge Interchange Format)進行描述。
(2)調度器。其用來保存和管理Agent的消息序列,響應Agent內核的調度要求,調度消息序列中的消息。
(3)Agent內核。內核依據特定的策略從調度器中取出消息,并調用控制功能體來實現消息的請求;在完成對消息的處理后,根據處理的結果情況給出回復消息并放入調度器。同時當Agent需要其他Agent協助時,Agent內核將對應的請求消息放入調度器中。此外,Agent內核將自身的地址、功能等信息向Router注冊。
(4)功能接口。控制功能體與Agent內核間通過功能接口,采用消息和事件機制來實現交互。當Agent內核需要調用控制功能體時,Agent內核通過接口向功能體發送消息,激發事件。控制功能體中的接收器則響應事件并作出相應處理。
以上四個構件形成具有通用性的Agent組件,該組件與下述的控制功能體共同形成完整的控制Agent。
(5)控制功能體。這是實現CIPCMAS控制功能的實質性構件,既可以是建立CIPCMAS時才開發的專家系統、模糊系統和神經網絡系統,也可以通過對已在實際工業過程控制中應用的原有系統(Legacy System,LS)進行封裝來實現。因此,LS可通過功能接口實現對自身的重用。
2.2通信機制
對于一個靈活的、支持動態結構變化的分布式系統,分布式透明性是一個極為重要的性能指標。由于CIPCMAS中Agent所具有的自治性,使這方面的要求更為迫切。系統的透明性是通過Router來實現的,Router中建立了一個與控制領域相關的、采用KIF描述的本體庫和一個采用ADL描述的Agent基本信息表。
Agent基本信息表相當于Agent黃頁,能起到對Agent管理的作用。某Agent接入系統時需向Router發送由ADL描述的注冊消息,注冊成功后Router在Agent基本信息表中記錄該Agent的基本信息。Router通過基本信息表將系統中的Agent靈活地組織在一起;通過基本信息表和本體庫保證Agent間通信的透明性。同時,Router還提供本系統與其他MAS的接口,Router作為本系統所有Agent的代表與其他MAS進行交流。此外Router還可以檢視系統中的Agent的工作狀況和相互間的通信情況,并且具有對系統中各Agent生命周期進行管理的能力。
2.3軟件實現
近年來,Agent的研究取得了很大的進展,出現了Agent Tcl、Telscript等用于開發Agent的語言,諸如Mage、JACKAL、JADE這樣的MAS環境[3]。但用這些語言和環境開發Agent會受到語言和平臺的限制,且重用性不好,特別是在對原有系統的重用上更是無能為力。Agent與分布式對象相互之間并不排斥,基于Agent的系統能夠建立在分布式對象的底層基礎結構上,只是通信使用的消息結構存在不同,即分布式對象通過方法調用進行通信,而Agent則通過正式的消息協議(如KQML)來通信。因此可以采用基于分布式對象的方法來開發CIPCMAS。
ICE(Internet Communications Engine)是一種適用于異種環境的面向對象中間件平臺。與CORBA相比,ICE首先是一個簡單的平臺;同時,ICE并沒有犧牲特性。其可以用ICE完成能用CORBA完成的每一件事情,但工作量更小,代碼更少,復雜性也更小[4]。基于ICE開發Agent可以很好地解決平臺和語言限制。為此,CIPCMAS將Agent中由通信器、ADL解析器和KQML解析器等三個構件組成的通信模塊封裝為ICE對象。
在MAS中將消息的傳送基于ICE提供的RPC協議,這樣Agent間消息的發送就轉換為方法的調用。在CIPCMAS系統中各個Agent既是消息的發送者,同時又可能是消息的接收者;每個Agent既是客戶端同時又是服務端。Slice(Specification Language for ICE)是一種用于使對象接口與其實現相分離的基礎性抽象機制。因此采用Slice描述消息發送接口和消息接收接口,并用C++實現這兩個類。在Windows平臺下對這兩個類進行了進一步的封裝,采用COM技術將這兩個類在二進制層次上進行封裝。具有二進制重用性的通信組件如圖3所示。
在Windows平臺下,由于COM組件具有二進制重用性的特點,幾乎所有的編程語言都可以調用它。又由于都是基于ICE核心,可以方便地實現不同平臺下不同語言編寫的通信組件之間的通信。由于ICE內核處理了平臺間的差異,系統中的消息接收類和消息發送類很容易被移植到其他平臺之下。通信組件大大減輕了Agent的開發難度,開發者可以不用關心Agent是怎么通過網絡傳輸消息的,可以忽略平臺和語言間的差異。
在Windows平臺下針對具有相同內核的Agent,利用COM的包含和聚合技術,通過重用Agent通信模塊可以實現不同的Agent組件。其中的功能接口采用事件的激活和方法的調用來實現。控制功能體則通過功能接口調用Agent組件的方法,事件的處理則采用COM的事件處理機制來實現。
3應用
新型干法水泥生產的過程機理十分復雜,具有高度非線性、多變量、大滯后、強干擾等特點,是一個典型的復雜工業生產過程,因此適于通過建立MAS來實現對生產過程的優化控制。
水泥熟料的煅燒過程工況復雜多變,難以得到精確的數學模型,需要采用神經網絡對熟料煅燒質量進行預報,采用模糊控制策略對生產過程進行優化控制。因此在MAS的控制級建立了神經網絡預報Agent(NN Agent)和模糊控制Agent(FC Agent);在MAS的管理級則建立了基于專家系統的決策支持Agent。
NN Agent和FC Agent中的控制功能模塊,即神經網絡預報模塊和模糊控制模塊,均為在MAS建立以前就已開發應用的兩個獨立的原有系統。因此,NN Agent和FC Agent均是通過Agent組件對原有系統的重用來實現的。
3.1神經網絡預報Agent
神經網絡預報Agent是一個純反應式Agent,即Agent在決策時完全基于當前的狀態而不考慮過去的狀態。預報Agent的主要功能包括數據清洗、變量選擇、數據交換、神經網絡訓練和質量預報。
當決策支持Agent向預報Agent發送預報請求時,預報Agent可以依據預先訓練好的神經網絡預測水泥熟料的質量,并把預報結果以消息的形式發送給決策支持Agent。
3.2模糊控制Agent
模糊控制Agent也是一個純反應式Agent。它的主要功能有隸屬函數編輯、模糊規則編輯和模糊推理。
當決策支持Agent向模糊控制Agent發送控制請求時, 模糊控制Agent依據預先生成好的模糊控制表進行控制,并將控制結果以消息的形式發送給決策支持Agent。另外,模糊控制Agent還能夠響應修改模糊控制表的請求。
3.3決策支持Agent
同預報Agent和控制Agent不同,決策支持Agent屬于有狀態Agent,即Agent在決策時不僅基于當前的狀態,還必須考慮過去的狀態。Agent中有內部數據結構用來記錄環境狀態和環境歷史。
決策支持Agent向預報Agent發送預報請求,得到預報結果;向各控制Agent發送查詢請求,得到各控制Agent的控制情況;再依據專家規則以及自身內部狀態對特定的控制Agent發出特定的控制請求。另外,決策支持Agent還能夠向模糊控制Agent發送修改模糊控制表的請求。
決策支持Agent是一個專家系統,內含專家規則、模糊規則和隸屬度函數生成器;可依據專家規則自動生成新的模糊規則、隸屬度函數和模糊控制表;能夠完成對各個控制Agent的協調;可與用戶進行交互,提供決策支持。
由于CLIPS(C Language Integrated Production System)基于Rete算法,通過CLIPS來實現規則的描述、匹配、解釋和沖突的消解,可以使決策支持Agent具有較高的模式匹配效率[5]。但CLIPS只提供文本環境與用戶進行交互,缺少開發圖形用戶界面的能力,且不擅長數值計算、數據采集和與外設的數據交換,因此,決策支持Agent通過 CLIPS與VC的混合編程方式來實現。
4結束語
針對復雜工業過程控制的特點,建立了分層遞階結構的生產過程控制MAS。其中控制級由采用神經網絡和模糊控制等智能控制方法的控制Agent組成,管理級由決策支持Agent和Router組成。控制級中各Agent彼此之間不直接進行通信,而是只與管理級的決策支持Agent進行通信,由決策支持Agent對系統進行協同與協調。因此大大減少了系統的通信量,有效提高了MAS的控制實時性。
研究并實現了基于ICE中間件開發MAS。采用COM技術構建了具有二進制重用性的通信組件和封裝了通信、內核及接口等模塊的Agent組件;進而通過Agent組件實現了對原有系統的重用,降低了CIPCMAS的開發難度,提高了系統的開發效率。
開發了新型干法水泥生產過程控制MAS,實現了對水泥熟料質量的神經網絡預報和熟料煅燒過程的模糊優化控制,取得了較好的實際效果。
參考文獻:
[1]盧榮德,陳宗海,王雷.復雜工業過程計算機建模、仿真與控制的綜述[J].系統工程與電子技術,2002,24(1):52-57.
[2]WANG Haidong,ZHOU Qiuguan,HUAN Shengsheng. Cement industry control system based on multiagent[J].J.Cent.Southuniv.Technol.,2004,11(1):41-44.
[3]WOOLDRIDGE M.An introduction to multiagent systems[M].Beijing:Publishing House of Electronics Industry,2003:158-169.
[4]HENNING M,SPRUIELL M.ICE documentation[EB/OL].[2005-03-01].http://www.zeroc.com/download/Ice/2.1/Ice-2.1.2.pdf.
[5]RILEY G.A tool for building expert systems[EB/OL][2005-01-31].http://www.ghg.net/clips/CLIPS.html.
注:“本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文”