李 亞,張亞東,郭 進(jìn),周 慧
(西南交通大學(xué)信息科學(xué)與技術(shù)學(xué)院,成都 611756)
列控系統(tǒng)是保證列車運行安全的分布式實時控制系統(tǒng)[1]。采用建模仿真的方法對其進(jìn)行研究分析能夠減少列控系統(tǒng)現(xiàn)場測試成本,提高測試效率,對不斷完善列控系統(tǒng)具有重要意義[2-3]。同時通過仿真系統(tǒng)能夠驗證現(xiàn)場不易測試的情況,對列控系統(tǒng)安全性的研究具有重要的應(yīng)用價值。隨著列控系統(tǒng)的不斷發(fā)展,列控系統(tǒng)具有了交互性、混合性、反應(yīng)性和并發(fā)性的復(fù)雜特性[4-5]。研究一種有效并滿足列控系統(tǒng)復(fù)雜特性的建模仿真方法,能夠為列控系統(tǒng)的研究提供高效全面的仿真環(huán)境支撐,為列控系統(tǒng)的研究奠定重要基礎(chǔ)。
基于Agent的多智能體方法是研究分布式復(fù)雜系統(tǒng)的前沿技術(shù),為實現(xiàn)分布式復(fù)雜系統(tǒng)提供了一種有效的途徑[6-7]。目前列控系統(tǒng)已應(yīng)用了多智能體仿真,如文獻(xiàn)[8]對CTCS-4級列控系統(tǒng)進(jìn)行多智能體仿真,文獻(xiàn)[9]對RBC切換場景進(jìn)行多智能體仿真,文獻(xiàn)[10]對列控系統(tǒng)中列車追蹤運行進(jìn)行多智能體仿真,文獻(xiàn)[11]對列控監(jiān)控系統(tǒng)進(jìn)行多智能體仿真,文獻(xiàn)[12]建立多智能體調(diào)度員訓(xùn)練模擬器。但文獻(xiàn)[8-9]采用的是面向?qū)ο蟮慕7绞剑墨I(xiàn)[10-12]只是使用了多智能體理論,未使用基于Agent的多智能體建模方法進(jìn)行模型構(gòu)建。
多智能體的建模方法是基于Agent對系統(tǒng)進(jìn)行模型構(gòu)建,能夠簡化建模過程[13]。目前已發(fā)展出多種建模方式[14],其中以UML2.0擴(kuò)展的基于Agent的AUML統(tǒng)一規(guī)范建模語言[15-16],因UML的廣泛應(yīng)用具有很大的優(yōu)勢,利用該優(yōu)勢,使得在應(yīng)用AUML構(gòu)建多智能體模型時,有著很好的基礎(chǔ)。
因此,本文研究基于AUML對列控系統(tǒng)運營場景構(gòu)建多智能體模型的方法,最后以RBC切換場景為例,展示該方法的應(yīng)用過程,并結(jié)合模型和多智能體仿真平臺進(jìn)行仿真。
多智能體因其具有的自主性、靈活性、可擴(kuò)展性和交互協(xié)作等特性,使其成為一種能夠很好體現(xiàn)復(fù)雜系統(tǒng)特性的建模仿真方式[17-18]。它通過一種自低向上的建模仿真方式對系統(tǒng)進(jìn)行分析設(shè)計[19]。其建模過程分為如下步驟。
(1)系統(tǒng)的界定和描述:在對一個系統(tǒng)進(jìn)行分析設(shè)計時,首先應(yīng)明確該系統(tǒng)的功能目標(biāo),界定系統(tǒng)的邊界。
(2)個體Agent的劃分:采用面向Agent的方法,從系統(tǒng)的物理實體或者系統(tǒng)的功能出發(fā),抽象出系統(tǒng)的Agent。
(3)個體Agent的建模:抽象出個體Agent模型后,便是對系統(tǒng)的每個Agent進(jìn)行詳細(xì)的內(nèi)部結(jié)構(gòu)設(shè)計。
(4)建立宏觀模型:根據(jù)已有的Agent模型,建立Agent之間的交互,確定系統(tǒng)的宏觀模型。
AUML與UML均采用圖形的建模方式,目前在UML的基礎(chǔ)上擴(kuò)展研究了AUML的交互圖和類圖。AUML的交互圖通過如圖1所示的3種交互協(xié)議連接符來增加Agent交互間的并發(fā)機(jī)制。同時,通過在交互圖中添加嵌套或交叉協(xié)議來促進(jìn)模型的可重用性。嵌套協(xié)議經(jīng)常被用來定義一個循環(huán)。
圖1 AUML交互協(xié)議連接符
圖中“與”表示消息并行發(fā)送,“或”表示不發(fā)送或發(fā)送其中幾條消息,“異或”則表示只發(fā)送其中一條消息。
AUML的類圖在UML類圖的基礎(chǔ)上發(fā)展成如圖2所示的Agent類圖。
圖2 Agent類圖
本文使用的Agent類圖只包含Agent名稱、狀態(tài)描述、行為和方法。Agent名稱定義Agent的名,區(qū)分模型中的各個Agent。狀態(tài)描述與UML類圖的屬性類似,用于Agent的邏輯描述。行為是指被Agent本身觸發(fā)或接收了其他Agent發(fā)送的消息被觸發(fā)時產(chǎn)生的行為。方法是實現(xiàn)Agent行為的操作。
結(jié)合多智能體構(gòu)建模型的方法和列控系統(tǒng)相關(guān)技術(shù)規(guī)范,在對列控系統(tǒng)運營場景采用AUML進(jìn)行多智能體模型構(gòu)建時,分為4個步驟如圖3所示。
圖3 列控系統(tǒng)運營場景構(gòu)建模型結(jié)構(gòu)
系統(tǒng)功能需求即是明確系統(tǒng)的目標(biāo)。確定系統(tǒng)實現(xiàn)哪些功能,各種功能之間存在的關(guān)系,構(gòu)建系統(tǒng)用例圖來表示系統(tǒng)的功能目標(biāo)。從高鐵列控系統(tǒng)相關(guān)技術(shù)規(guī)范中對列控系統(tǒng)運營場景過程的描述,可以明確系統(tǒng)在實現(xiàn)某個運營場景時系統(tǒng)所需功能,如車載的通信功能、RBC的切換功能、列控中心的軌道占用檢查功能等。
明確系統(tǒng)功能需求后,從系統(tǒng)的物理實體出發(fā),通過系統(tǒng)的功能需求描述來抽象出Agent,從而確定每個Agent所處的狀態(tài)、行為及實現(xiàn)方法,以此來建立個體Agent的類圖。列控系統(tǒng)中的物理實體即是列控系統(tǒng)的組成部分,如應(yīng)答器、RBC和CTC等。仿真時會通過列車的運行來驗證列控系統(tǒng)的運營場景,因此建模時的物理實體應(yīng)考慮車載和列車。
建立個體Agent的類圖后,明確了個體Agent間的關(guān)系及其包含的狀態(tài)、行為,則需通過AUML交互圖來定義系統(tǒng)中各Agent間的信息交互順序。AUML交互圖中的對象即是抽象出的個體Agent,并通過時間序列來表示參與交互的Agent間的信息交互順序。
為了更清晰地描述Agent內(nèi)部的行為狀態(tài),通過Agent的定義和Agent的交互構(gòu)建每個Agent內(nèi)部的結(jié)構(gòu)模型。Agent定義給出了Agent的狀態(tài)、行為和方法,而Agent的交互則給出了Agent時間上的邏輯順序,通過將兩者結(jié)合構(gòu)建出Agent在被某個消息事件觸發(fā)后處于的行為狀態(tài)圖模型。
RBC切換場景是CTCS-3級列控系統(tǒng)的典型運營場景之一,本文選取該場景進(jìn)行案例分析。RBC切換場景描述的是列車在兩個RBC邊界處,其行車許可控制從一個RBC安全切換到另一個RBC的過程[20]。在雙電臺情況下,RBC切換過程如圖4所示。
圖4 RBC切換示意
(1)RBC切換開始:列車通過RBC預(yù)告應(yīng)答器后,車載發(fā)送位置報告給移交RBC,移交RBC在接收到位置報告后,發(fā)送RBC切換命令給車載,并將接管列車預(yù)告和進(jìn)路請求發(fā)送給接收RBC。接收RBC接到進(jìn)路請求后,向移交RBC發(fā)送進(jìn)路信息,移交RBC根據(jù)進(jìn)路信息延伸MA。
(2)建立通信:車載接收到RBC切換命令后,開始呼叫接收RBC,接收RBC則返回系統(tǒng)版本,車載向接收RBC發(fā)送通信建立信息。
(3)列車通過執(zhí)行應(yīng)答器:列車最大前端通過執(zhí)行應(yīng)答器后,車載發(fā)送位置報告給移交RBC和接收RBC,兩個RBC在接收到位置報告后,移交RBC將該報告信息轉(zhuǎn)發(fā)給接收RBC,接收RBC則發(fā)送接管列車的信息給移交RBC。
(4)RBC切換結(jié)束:列車尾部通過執(zhí)行應(yīng)答器后,車載發(fā)送位置報告給兩個RBC,移交RBC接收到位置報告后,開始與車載切斷通信,車載保持與接收RBC的通信,并按接收RBC發(fā)送的MA監(jiān)控列車運行,RBC切換結(jié)束。
根據(jù)技術(shù)規(guī)范中RBC切換場景的過程,應(yīng)用列控系統(tǒng)運營場景AUML建模方法,構(gòu)建RBC切換場景的多智能體模型。
(1)RBC切換系統(tǒng)功能需求
RBC切換過程中涉及的系統(tǒng)功能主要有RBC的切換功能(RBC Switch)、車載的速度監(jiān)控(Speed monitor)、車載的通信(Communication)和列車定位(Train position)。移交RBC和接收RBC在切換過程中的切換功能又包含不同的子功能。移交RBC的切換子功能包含RBC切換命令發(fā)送(RBC Switch command)、行車許可計算(RBC Generate MA)、移交列車預(yù)告(Take over train forenotice)、進(jìn)路請求(Request route)。接收RBC的切換子功能包含行車許可計算、進(jìn)路信息(Route message)和接管列車信息(Take over message)。車載速度監(jiān)控依賴于靜態(tài)速度曲線計算(Static velocity curve calculation)和動態(tài)速度曲線的計算(Dynamic velocity curve calculation)。車載的通信包含呼叫RBC(Call RBC)、建立通信(Build communication)和切斷通信(Cut off communication)。列車定位包含接收應(yīng)答器信息(Balise message)和列車運行位置(Train running)。根據(jù)各功能間的包含、依賴和關(guān)聯(lián)關(guān)系,建立如圖5所示的系統(tǒng)功能需求用例圖模型。
圖5 RBC切換場景系統(tǒng)功能需求用例
(2)RBC切換抽象Agent定義
完成RBC切換過程主要參與的物理實體有兩個RBC、車載、應(yīng)答器和列車,因此抽象出車載(OBE)、移交RBC(HandRBC)、接收RBC(ReciveRBC)、應(yīng)答器(Balise)和列車(Train)5個Agent。再根據(jù)系統(tǒng)功能需求用例圖確定各Agent類圖中的狀態(tài)、行為和方法,設(shè)計出如圖6所示的Agent類圖模型。
圖6 RBC切換場景Agent類圖
RBC切換場景的Agent類圖給出了各Agent間的關(guān)系。應(yīng)答器與車載之間的直接關(guān)聯(lián)關(guān)系,表示應(yīng)答器信息發(fā)送給車載。列車與車載之間的依賴關(guān)系,表示列車的運行依賴與車載的控制。兩個RBC之間的關(guān)聯(lián)關(guān)系,表示兩個RBC之間存在一定的關(guān)聯(lián)關(guān)系,如移交RBC需要發(fā)送進(jìn)路請求給接收RBC,接收RBC需要發(fā)送進(jìn)路信息給移交RBC。
列控系統(tǒng)中Agent的狀態(tài)描述即是抽象出的Agent的屬性變量,如列車的位置和速度、車載的控制策略等。Agent的行為表示系統(tǒng)中Agent的可能操作行為,如列車的運行和停車、車載的控車等。Agent的實現(xiàn)方法表示Agent實現(xiàn)操作的具體方法,如實現(xiàn)列車運行和停車需根據(jù)接收車載發(fā)送的信息和牽引計算更新列車的位置和速度。
(3)RBC切換Agent信息交互
Agent類圖抽象出的Balise、HandRBC、OBE、ReciveRBC和Train 5個Agent作為交互圖中的對象,按照實現(xiàn)場景的時間邏輯順序建立如圖7所示的RBC切換場景Agent交互圖。
圖7 RBC切換場景Agent交互
Train和OBE兩個Agent之間在RBC切換的整個過程中的信息交互是一直循環(huán)存在的,因此使用嵌套協(xié)議的方式將其定義在RBC切換場景交互圖中。
(4)RBC切換Agent內(nèi)部設(shè)計
RBC切換過程定義了5個Agent,這里以RBC切換過程中移交RBCAgent的狀態(tài)圖模型進(jìn)行說明,如圖8所示。移交RBC的初始狀態(tài)是ControlOBE,即根據(jù)線路情況計算行車許可CountMA(),發(fā)送給車載控制列車運行的狀態(tài)。當(dāng)列車位置報告Train pass LTA時觸發(fā)移交RBC的切換狀態(tài),該狀態(tài)下,移交RBC的SendMessage()包括RBC切換命令給車載,移交列車預(yù)告信息和進(jìn)路請求信息給接收RBC。如果移交RBC接收到RouteMessage,則更新發(fā)送給車載的MA。當(dāng)列車位置報告Train head pass RN,移交RBC的SendMessage()為轉(zhuǎn)發(fā)的位置報告。當(dāng)列車位置報告Train tail pass RN,移交RBC執(zhí)行Stop communication command的命令,當(dāng)切斷通信后,RBC切換結(jié)束。
圖8 移交RBCAgent狀態(tài)模型
根據(jù)模型,使用MASON多智能體仿真平臺,以武廣線武漢高速場到龍泉東的線路數(shù)據(jù)構(gòu)建仿真的線路環(huán)境,進(jìn)行RBC切換場景多智能體仿真。模型映射到仿真平臺時繼承的類、接口或使用的方法如表1所示。
表1 模型映射到MASON仿真平臺
通過如圖9和圖10所示的模型監(jiān)控器與列車運行示意圖可以監(jiān)控RBC切換過程。仿真開始前設(shè)置仿真步長StepTime為0.01 s,仿真動態(tài)顯示與實際長度的比例LengthScale為0.25像素/m。最終通過obe1State實時監(jiān)控車載與RBC通信情況,HRBCcontrolTrain和RRBCcontrolTrain分別監(jiān)控移交RBC與接收RBC接管列車情況。圖10中的speed與position實時動態(tài)顯示列車的實際速度與位置。
圖9 模型監(jiān)控器
圖 10 列車運行示意
圖11所示的系統(tǒng)各Agent運行監(jiān)控反映了系統(tǒng)每運行一個step時,各Agent是隨機(jī)順序執(zhí)行,以此符合系統(tǒng)的并發(fā)性。同時系統(tǒng)通過Network網(wǎng)絡(luò)的Edge在各個Agent間進(jìn)行通信,圖11反映了Agent接收信息的情況,通過該仿真數(shù)據(jù)可以得出系統(tǒng)滿足RBC切換過程的功能和信息交互,符合系統(tǒng)的交互性。
圖11 系統(tǒng)各Agent運行監(jiān)控
圖12反映了系統(tǒng)實時計算連續(xù)速度監(jiān)控曲線的特性,同時能夠根據(jù)速度監(jiān)控曲線采取離散的牽引制動,符合系統(tǒng)的混合性。速度監(jiān)控曲線的計算是車載根據(jù)地面設(shè)備的行車許可和自身的速度位置計算,并利用該曲線對列車的速度進(jìn)行監(jiān)控,符合系統(tǒng)的反應(yīng)性。
圖12 速度監(jiān)控曲線
結(jié)合研究分布式復(fù)雜系統(tǒng)的多智能體建模理論和AUML建模語言,提出一種基于AUML構(gòu)建列控系統(tǒng)運營場景多智能體模型的方法。并以RBC切換場景為例,詳細(xì)描述了應(yīng)用該方法的建模過程,根據(jù)模型設(shè)計得到RBC切換場景的多智能體仿真。分析仿真結(jié)果,該方法滿足了列控系統(tǒng)的并發(fā)性、交互性、混合性和反應(yīng)性,證明了該方法的可行性,為支撐列控系統(tǒng)研究的建模仿真提供了一種更符合其復(fù)雜特性的方法。