顧 曦,張 鑫,唐秋華
(武漢科技大學機械自動化學院,湖北 武漢430081)
煉鋼-連鑄是鋼鐵制造的重要工藝流程之一,由于各鋼種工藝路徑的差異、不同加工工藝上并行機的存在以及生產中出現的動態擾動,使煉鋼-連鑄生產調度同時具有復雜性、分布性和動態性的特點.這些特點使得煉鋼-連鑄生產調度系統同時具備靜態模型和動態模型,也使得系統中的功能結構與數據結構之間有著密不可分的聯系[1],各功能模塊及數據庫之間的交互關系顯得尤為重要.文獻[2]為連鑄-熱軋過程建立多Agent系統,利用Agent的特性實現系統熱軋、板坯庫和連鑄之間的消息傳遞.文獻[3]將生產調度系統按照功能劃分為不同的Agent,形成分層分布式系統模型,并建立Agent之間的協商機制,采用擴展的合同網機制進行型號任務分配.但是,很少有文獻為煉鋼-連鑄生產過程建立多Agent系統.然而由于Agent與對象還是存在諸多的區別,如Agent具有自治性,具有關于環境的知識,而不僅僅是對象的屬性和方法那么簡單[4],采用傳統的UML無法為多Agent系統建模,需要對其進行適當的擴展,以適應Agent的特性.
關于Agent目前比較容易接受的是 Wooldridge等給出的定義:“智能體是一個滿足特定設計需求的計算機系統.它位于特定的環境中,具有高度的靈活性和自治性”[5].單個Agent最基本的特性應當包括:反應性、自治性、面向對象性、移動性、自適應性、通信能力(包括協商、協作等能力)、理性、持續性或時間連續性和自動性等.單個Agent的研究目標是認識與模擬人工智能行為[6].多智能體系統(Multi-Agent System,MAS)是指多個 Agent通過協作以完成某些任務或達到某些目標的計算系統[7].多Agent系統通過協調各個Agent的知識、目標、技能、規劃,并產生出相應的行為,以解決問題.
面向對象(Object-Oriented,OO)是一種當前比較通用的軟件開發方法.統一建模語言(Unified Modeling Language,UML)是在多種面向對象分析與設計方法融合的基礎上形成的,是一種專用于系統建模的語言,主要以圖形的方式對系統進行分析、設計.利用UML為系統建模,不僅可以詳細描述系統框架,且易于編程人員的理解.從系統分析和設計的角度出發,UML模型中最主要的部分可以分為以下3大類:
用例圖:是從系統外部用戶的角度對系統功能進行的描述,刻畫系統用戶和外部系統與本系統的交互,可直觀反映用戶對功能的要求.
有關靜態結構的圖:靜態結構圖主要用于定義系統中具有重要意義的各種對象和實現,以及它們之間的關系,它們是定義系統動態行為的基礎,主要包括類圖、對象圖、包圖等.
有關動態行為的圖:動態行為圖主要用于定義對象在時間上的的歷史,以及對象之間為達到一定目標所進行的通信,即描述系統中的對象在執行期間不同時間點是如何動態交互的,主要包括狀態圖、活動圖、順序圖等.
這3類模型反映了客觀事物及對象的一些共性規律,適當地擴展這3類模型,可以用來進行多A-gent系統的分析和建模[8].
對象和Agent都是對客觀世界的抽象,兩者有一定的相似性,但是兩者還有一定的差異,主要表現在:對象封裝了實體的屬性、方法和事件,而Agent除了封裝這些外,還包括對思維和決策能力的封裝,表現出更高的自治性;Agent能夠對外界環境的變化作出響應,而對象不能自主感知外部世界;Agent在運行過程中,可以根據以往的經驗不斷改善自己對同一問題的求解能力,而對象的方法是不變的;Agent之間可以進行通訊,相互協調,從而提高解決問題的能力.因此,UML為Agent系統建模時,需要對UML進行擴展,包括關系的擴展和消息模式的擴展等.在UML的類圖關系中,類與類之間的關系通常有4種:關聯、繼承、依賴和精化,而Agent組織中的角色關系還包括控制關系、平等關系等.另外由于Agent處理復雜問題的能力,如對多個消息或事件的并發處理,將消息模式擴展為可以同時發布消息、在多條路徑中選擇一條或多條路徑發布消息等等.
生產調度就是組織執行生產進度計劃的工作.現代工業企業,生產環節多,協作關系復雜,生產連續性強,情況變化快,某一局部發生故障,或某一措施沒有按期實現,往往會波及整個生產系統的運行.因此,加強生產調度工作,對于及時了解、掌握生產進度,研究分析影響生產的各種因素,根據不同情況采取相應對策,使差距縮小或恢復正常是非常重要的.具體到煉鋼-連鑄生產調度過程,涉及到煉鋼(LD)、爐外精煉(包括真空處理RH和鋼包處理LF)和連鑄(CC)3個關鍵工序的協調組織.由于煉鋼-連鑄生產過程中復雜的物理和化學過程交織,原料、半成品和成品間的溫度、化學成分及物理形態在各工序都截然不同,因此各種突變和不確定性因素變動比較大,從而加劇了煉鋼-連鑄調度作業的難度[9].
按照煉鋼-連鑄生產調度系統功能的定義,將煉鋼-連鑄生產系統劃分為任務Agent、調度A-gent、工藝Agent、設備Agent、執行Agent和管理Agent.系統中的數據庫包括工藝數據庫、規則數據庫、原料數據庫、設備數據庫和工具數據庫等.
各Agent的工作功能和業務流程如圖1所示.

圖1 各Agent之間的消息傳遞
1)任務Agent接收日生產計劃,包括生產鋼種、規格、數量和交貨期等,并下發至調度Agent.
2)調度Agent將日計劃分解為批次計劃.下發至工藝數據庫,并允許工藝Agent進行投標.篩選標書后生成生產調度表,并發送至執行Agent.
3)執行Agent收到生產調度表后,組織設備資源進行生產.
4)管理Agent收集實時生產數據,包括任務完成情況、設備狀況、原料及工具準備狀況等,并對收集數據進行分析,實時與調度Agent協調,解決各種生產故障,必要時對生產調度表進行更新.
為了保證鋼坯能按時交貨,基于拉式生產思想,在招投標過程中,先確定連鑄工藝的加工設備號和加工時間,然后是真空或鋼包處理,最后是煉鋼.例如,假設某鋼種的加工工藝路徑是LD-LF-RH-CC,調度Agent將批次計劃先下發到工藝Agent CC,由CC組織設備Agent的CC1、CC2、CC3進行投標.調度Agent確定連鑄調度表后,將連鑄計劃發送至工藝Agent RH,RH組織設備Agent中的RH1和RH2進行投標,調度Agent再確定真空處理計劃表,并下發至工藝Agent LF,依此類推.在整個招投標過程中,鋼種各個工藝的招投標順序是按照工藝路徑的反向路徑進行的(圖2).

圖2 招投標順序示意圖
煉鋼-連鑄生產調度系統的主要用戶是計劃人員和執行人員,主要完成的工作包括任務Agent接收上級計劃,將計劃下發至調度Agent;調度Agent將計劃分解為批次計劃,下發至工藝Agent和設備Agent進行招投標,確定生產調度表;執行Agent接收生產調度表組織生產;管理Agent收集生產數據并分析,及時解決生產中的各種故障.總體而言,系統包括的功能主要有:生成生產調度表、組織生產、生產數據收集并分析.
用例圖是從用戶角度來描述系統功能的,所以在進行需求分析時,使用用例圖可以很好地描述系統所具備的功能,表達參與者與用例圖的連接關系.圖3為系統的用例圖.

圖3 系統用例圖
靜態模型視圖主要通過類及其相互關系來反映系統的基本框架,而類本身的屬性和操作則完成用例圖中所表達的系統功能需求.圖4為系統的靜態結構模型.

圖4 系統的靜態結構模型
在系統實現時主要使用的類定義有:
1)任務Agent類 主要負責接收日生產計劃,并發送至調度Agent,同時向上級系統反饋生產調度表,資源不足需要補充,設備故障需要檢修等.
調度Agent類 接收日生產計劃,查詢工藝路徑和規則信息,分解為批次計劃,向工藝Agent發布計劃,允許投標,評估標書,生成生產調度表.當管理Agent反饋生產異常時,及時更新生產調度表.
2)工藝Agent類和設備Agent類 負責競標.同時工藝Agent按照設備負載均衡的原則對標書進行初步篩選,將結果發送至調度Agent.設備A-gent還負責生產.
執行Agent類 負責組織生產,統計計劃完成情況,并上報,保證資源合理分配,生產順利進行.
3)管理Agent類 負責數據信息收集.實時收集資源信息和設備狀態,下面還有一個子類問題分析,對生產中發生的異常進行分析,及時解決生產故障,當發生生產中斷時,向調度Agent反饋.
動態行為建模主要用于描述Agent組織中角色間的動態行為,也是Agent社會性的重要體現,是組織中角色關系的動態反應.這也是煉鋼-連鑄生產調度系統的實時性決定的,系統必須在保證時間嚴格性、可靠性的前提下進行.在系統中動態建模主要是對于消息序列的描述,包括消息的發送和接收.
順序圖是UML中交互圖的重要組成部分,順序圖用一個二維圖描述系統中各個對象之間的交互關系.其中,縱軸是時間軸,橫軸代表了參與相互作用的對象.當對象存在時,生命線是一條虛線表示,當對象的過程處于激活狀態時,生命線是一雙道線.消息是從一個對象到另一個對象生命線的箭頭表示.箭頭以時間順序在圖中從上到下排列.
由于Agent與對象之間的差異,在用UML中的順序圖為Agent之間的交互關系建模時,需要對其進行適當的擴展.首先是將順序圖中對象的概念擴展到Agent,然后是消息格式的擴展,允許Agent在多條消息路徑中進行選擇,以增強對復雜情況的應對能力.
圖5為任務Agent生成生產調度表順序圖.首先是任務Agent接收二級機下發的日生產計劃,然后將生產計劃下發至調度Agent,調度Agent向工藝數據庫請求鋼種的工藝路線數據,向規則數據庫請求規則信息,例如有的鋼種需要在特定的鑄機上加工.將計劃分解為批次計劃后,發送至工藝A-gent,工藝Agent再發送至設備Agent,允許設備Agent進行招投標.這里本文引入文獻[3]中提出的擴展UML消息連接圖符表示設備Agent對批次計劃的選擇,選擇投標或選擇拒絕.工藝Agent對設備Agent的標書進行初步評估,在滿足設備負載均衡的約束下,將初步篩選的標書發送至調度Agent,調度Agent根據最早加工時間優先的原則選擇任務合適的設備和時間進行加工,生成生產調度表.調度Agent再將生產調度表發送至執行Agent、管理Agent和任務Agent.

圖5 生成生產調度表順序圖
圖6 為組織生產的順序圖.執行Agent收到生產調度表后,向管理Agent查詢設備狀態和資源信息,保證生產調度計劃能按時實施.然后向設備A-gent發出生產指令,設備Agent向執行Agent發出資源請求,執行Agent根據資源狀況向資源控制器發出資源請求.設備Agent收到所需資源后,開始生產.在生產過程中,及時向執行Agent反饋計劃完成狀況,執行Agent再將計劃完成情況反饋至管理A-gent.
圖7為信息收集與數據分析順序圖.管理A-gent會定時及在每次執行生產計劃之前向數據庫請求資源信息和設備狀態,當發生資源不足或設備故障時向任務Agent反饋,由任務Agent向上級系統反饋,及時解決問題.每個爐次計劃完成后,執行A-gent都會向管理Agent反饋計劃完成情況,當實際生產與生產調度表發生較大出入時,管理Agent根據收集的生產數據進行原因分析,及時解決出現的問題,當需要對生產調度表進行調整時,管理Agent向調度Agent提出生產調度表更新請求.每天管理Agent都要向任務Agent反饋日計劃完成計劃,以 便及時分析原因并調整第二天的生產計劃.


煉鋼-連鑄是鋼鐵生產過程中的重要環節,由于實際生產中存在各種動態干擾,在為煉鋼-連鑄生產調度系統建模時必須考慮系統的復雜性和動態性.本文首先構建了基于多Agent的煉鋼-連鑄生產調度組織結構,按照功能分為了若干Agent,再結合UML描述了系統的靜態結構和動態交互模型,既保證了系統整體的緊湊型,又保證了系統的動態性.
[1]劉 偉,李鐵克.基于UML煉鋼–連鑄車間生產調度系統建模[J].北京科技大學學報,2003,25(6):532-536.
[2]Ouelhadj D,Petrovic S,Cowling P I,Meisels A.Interagent cooperation and communication for agent-based robust dynamic scheduling in steel production[J].Ad-vanced Engineering Informatics,2004,18(3):161-172.
[3]李敬花,劉文劍.基于多Agent的多型號生產調度系統研究[J].計算機集成制造,2006,12(4):573-578
[4]高 陽,江資斌.基于擴展UML的虛擬企業多Agent協作建模研究[J].制造技術與機床,2006,(2):108-111.
[5]Wooldridge M,Jennings N R.Intelligent agents:theory and practice[J].The Knowledge Engineering Review,1995,10(2):115-152.
[6]劉大有,楊 鯤.Agent研究現狀與發展趨勢[J].軟件學報,2000,11(3):315-321.
[7]Sabar M,Montreuil B,Frayret J M.A multi-agentbased approach for personnel scheduling in assembly centers[J].Engineering Applications of Articial Intelligence,2009,22(7):1 080-1 088.
[8]游曉明,帥典勛.基于擴展UML的Agent建模語言的設計與研究[J].小型微型計算機系統,2006,27(3):534-537.
[9]唐秋華,陳偉明.基于JIT的煉鋼-連鑄生產調度模型研究[J].武漢科技大學學報,2008,31(1):78-82.