溫抿雄 江 明 吳 永
(北京全路通信信號(hào)研究設(shè)計(jì)院有限公司,北京 100073)
無線閉塞中心(以下簡(jiǎn)稱RBC)是CTCS-3(以下簡(jiǎn)稱C3)級(jí)列控系統(tǒng)地面核心設(shè)備之一。RBC系統(tǒng)包括硬件和軟件系統(tǒng)。軟件系統(tǒng)運(yùn)行的安全性、穩(wěn)定性對(duì)列車的安全運(yùn)行具有重要影響,而配置數(shù)據(jù)是組成RBC軟件系統(tǒng)的重要部分,正確的配置數(shù)據(jù)是RBC軟件邏輯運(yùn)行的基礎(chǔ)。
基礎(chǔ)信號(hào)數(shù)據(jù)是C3級(jí)列控系統(tǒng)軟件運(yùn)行的基礎(chǔ)?;A(chǔ)信號(hào)數(shù)據(jù)從設(shè)計(jì)的角度描述了各類設(shè)備的公里標(biāo),通過公里標(biāo)的大小確定整個(gè)線路的結(jié)構(gòu)和設(shè)備分布狀態(tài)。但是,這樣不能完整描述設(shè)備之間的連接邏輯關(guān)系,不能清晰描述線路的整個(gè)拓?fù)浣Y(jié)構(gòu)。RBC數(shù)據(jù)配置描述的是RBC內(nèi)部邏輯軟件運(yùn)行需要的數(shù)據(jù)結(jié)構(gòu),二者的概念和結(jié)構(gòu)相差都非常大。因此,如何從基礎(chǔ)信號(hào)數(shù)據(jù)生成完整的RBC配置數(shù)據(jù)就是一個(gè)非常重要的工作。本文將研究一種統(tǒng)一的基礎(chǔ)信號(hào)數(shù)據(jù)描述模型,介紹如何用該模型完整表示基礎(chǔ)信號(hào)數(shù)據(jù),以及如何建立各類計(jì)算模型及采用的算法,實(shí)現(xiàn)從基礎(chǔ)信號(hào)數(shù)據(jù)模型到RBC配置數(shù)據(jù)的轉(zhuǎn)換。
線路結(jié)構(gòu)復(fù)雜多變,設(shè)備種類繁多、屬性各異。但是,總結(jié)起來主要可以分為以下幾類。
1)點(diǎn)式設(shè)備主要包括應(yīng)答器、信號(hào)機(jī)、道岔、絕緣節(jié)和邊界等,分布在線路上。
2)線式對(duì)象主要包括軌道區(qū)段、進(jìn)路對(duì)象、坡度曲線、速度曲線等,描述了一段一維線路的屬性。
3)區(qū)域?qū)ο笾饕ㄜ囌?、分相區(qū)、緊急區(qū)等,描述了一個(gè)二維線路區(qū)域內(nèi)的屬性。
4)中心控制設(shè)備主要包括無線閉塞中心、聯(lián)鎖、臨時(shí)限速服務(wù)器、列控中心等。中心控制設(shè)備管轄的范圍,也可以看作是一個(gè)區(qū)域?qū)ο蟆?/p>
在上述分類的基礎(chǔ)之上,將所有數(shù)據(jù)進(jìn)行抽象,以統(tǒng)一的基礎(chǔ)信號(hào)數(shù)據(jù)模型進(jìn)行描述,然后再進(jìn)一步構(gòu)造出符合RBC邏輯的數(shù)據(jù)結(jié)構(gòu)和各種線路數(shù)據(jù)參數(shù)。
RBC配置數(shù)據(jù)主要包括描述基本線路屬性及設(shè)備連接關(guān)系的配置數(shù)據(jù)(簡(jiǎn)稱基礎(chǔ)配置數(shù)據(jù))、描述進(jìn)路屬性的配置數(shù)據(jù)(簡(jiǎn)稱進(jìn)路配置數(shù)據(jù))、其他與RBC通信的系統(tǒng)屬性數(shù)據(jù)等。本文主要介紹基礎(chǔ)配置數(shù)據(jù)和進(jìn)路配置數(shù)據(jù)的概念、構(gòu)造模型及主要生成算法。
為了統(tǒng)一描述各類設(shè)備及連接關(guān)系,RBC基礎(chǔ)配置數(shù)據(jù)里將線路基礎(chǔ)模型抽象為若干類對(duì)象,包括軌道單元、道岔以及其他對(duì)象,其他對(duì)象包括點(diǎn)式設(shè)備對(duì)象和區(qū)域?qū)ο蟆?/p>
軌道單元對(duì)象和道岔對(duì)象的特殊之處在于,它們是構(gòu)成RBC數(shù)據(jù)拓?fù)浣Y(jié)構(gòu)的基礎(chǔ),通過軌道單元對(duì)象和軌道單元對(duì)象之間、軌道單元對(duì)象和道岔對(duì)象之間的相互連接,所有的設(shè)備全部可以建立起連接及所屬關(guān)系,從而將整個(gè)線路構(gòu)造為一個(gè)整體。其他數(shù)據(jù)對(duì)象都附著在軌道單元對(duì)象上。
軌道單元對(duì)象是線路的一段,一條線路上的兩個(gè)相鄰且公里標(biāo)不同的設(shè)備之間的線路構(gòu)成一個(gè)軌道單元對(duì)象。軌道單元對(duì)象包括了其長(zhǎng)度,還附著了其他線路數(shù)據(jù)參數(shù),包括線路速度、線路坡度、軸重?cái)?shù)據(jù)等。
道岔對(duì)象是線路上的道岔,每個(gè)道岔定義為一個(gè)道岔對(duì)象,道岔對(duì)象包括3個(gè)腿,每個(gè)腿連接到一個(gè)軌道單元對(duì)象。
RBC配置數(shù)據(jù)里另一個(gè)重要的部分是進(jìn)路配置數(shù)據(jù),其核心概念是進(jìn)路對(duì)象。其他的相關(guān)數(shù)據(jù)完全是基于進(jìn)路對(duì)象進(jìn)行定義的。
進(jìn)路對(duì)象類似于信號(hào)數(shù)據(jù)表里的一條進(jìn)路。在線路上的兩個(gè)信號(hào)機(jī)(起始信號(hào)機(jī)和終止信號(hào)機(jī))及其經(jīng)過的道岔序列唯一構(gòu)成了一條進(jìn)路[1]。兩個(gè)信號(hào)機(jī)之間的道岔序列不同,路徑就可能有多條,所以在兩個(gè)信號(hào)機(jī)之間,會(huì)存在多條進(jìn)路。
一個(gè)典型的進(jìn)路對(duì)象可以定義如下:進(jìn)路對(duì)象包括開始信號(hào)機(jī)、結(jié)束信號(hào)機(jī)、經(jīng)過的道岔走位(結(jié)構(gòu)為<道岔、入腿、出腿>)及其他附屬屬性。
綜上所述,可以得出以下結(jié)論:RBC配置數(shù)據(jù)的模型和基礎(chǔ)信號(hào)數(shù)據(jù)線路都符合網(wǎng)狀結(jié)構(gòu),也就是可以抽象為圖結(jié)構(gòu)。因此,用圖抽象基礎(chǔ)線路數(shù)據(jù),將作為主要數(shù)學(xué)手段。通過對(duì)圖的計(jì)算,轉(zhuǎn)換為RBC需要的配置數(shù)據(jù)。
圖是由若干給定的點(diǎn)及連接兩點(diǎn)的線所構(gòu)成的圖形,圖的二元組定義如下。
圖G由兩個(gè)集合V和E組成,記為G=(V,E)。其中,V是頂點(diǎn)的有窮非空集合;E是V中頂點(diǎn)偶對(duì)(稱為邊)的有窮集。將圖G的頂點(diǎn)集和邊集分別記為V(G)和E(G)[2]。
圖可以分為無向圖和有向圖兩種類型。
1)無向圖
若圖G中的每條邊都是沒有方向的,則稱G為無向圖。無向圖中的邊均是頂點(diǎn)的無序?qū)Γ瑹o序?qū)νǔS脠A括號(hào)表示。
2)有向圖
若圖G中的每條邊都是有方向的,則稱G為有向圖。有向圖中一條有向邊是由兩個(gè)頂點(diǎn)組成的有序?qū)?,有序?qū)νǔS眉饫ㄌ?hào)表示。
借鑒圖的定義,將線路網(wǎng)上的每個(gè)道岔抽象為圖的一個(gè)頂點(diǎn)vi,連接兩個(gè)道岔之間的相連的一條鐵軌抽象為圖的一條邊(vi,vj)。另外,為了結(jié)構(gòu)的完整性,將鐵路網(wǎng)的每個(gè)邊緣端點(diǎn)也抽象為圖的一個(gè)頂點(diǎn)vi。
一個(gè)典型的站場(chǎng)線路可以被抽象為如圖1中所示的圖G1。G1里包含了4個(gè)站場(chǎng)的邊緣端點(diǎn)、12個(gè)道岔、20條軌道,所以,抽象后的圖里包括16個(gè)頂點(diǎn)和使所有頂點(diǎn)連通的20條邊。
從圖1的模型中可以看出,從道岔和端點(diǎn)連出的每一個(gè)腿,都連接到一個(gè)軌道上。每個(gè)軌道具有兩端,分別連著一個(gè)腿。
對(duì)于除了道岔和端點(diǎn)之外的其他點(diǎn)式設(shè)備,將其放置在軌道上。在RBC的模型里,原本的線式結(jié)構(gòu)軌道區(qū)段可以退化為類似于應(yīng)答器之類的一個(gè)設(shè)備點(diǎn),也同樣放置在軌道上。這樣,通過圖形的連通,各種設(shè)備之間也就具有了連接關(guān)系。
對(duì)于坡度曲線和速度曲線,也將其定義為軌道上某一段的數(shù)據(jù)特性。
對(duì)于中心控制設(shè)備、區(qū)域?qū)ο?,將之定義為一個(gè)連通子圖(根據(jù)其管轄范圍來劃分),統(tǒng)稱為區(qū)域,可以看作為整個(gè)站場(chǎng)圖的一部分。這體現(xiàn)出本模型的一個(gè)優(yōu)勢(shì),將信號(hào)數(shù)據(jù)表中一維的管轄范圍擴(kuò)展為圖中的二維范圍,可以靈活且準(zhǔn)確地表示中心控制設(shè)備和區(qū)域?qū)ο蟮墓茌牱秶?/p>
基于圖定義的數(shù)學(xué)模型,用程序設(shè)計(jì)學(xué)方法定義對(duì)象及其關(guān)系[3],以便于后面的進(jìn)一步計(jì)算。
使用面向?qū)ο蟮姆绞奖硎军c(diǎn)式設(shè)備和軌道之間邏輯上的關(guān)系,如圖2所示。
Track為軌道,表示圖里的邊。
Node表示圖里的頂點(diǎn),分為Bu fferStop(端點(diǎn))和Sw itchPoint(道岔)。
T rack Item表示各類軌道上的設(shè)備,包括 T rack Jo in t(絕緣節(jié))、Sign a l(信號(hào)機(jī))、M ainTrackCircuit(軌道區(qū)段)、BaliseGroup(應(yīng)答器組)等。
使用面向?qū)ο蟮姆绞奖硎军c(diǎn)式設(shè)備和區(qū)域之間邏輯上的關(guān)系,如圖3所示。
W ayside表示所有類型的點(diǎn)式設(shè)備。
Item G roup表示所有類型的區(qū)域,包括Em ergency A rea(緊急區(qū))、EtcsA rea(分相區(qū))、Station(車站)、ControlSystem(中心控制設(shè)備)。
一個(gè)Item Group包括了多個(gè)W ayside,同時(shí)一個(gè)W ay sid e可以屬于多個(gè)Item G rou p。即每個(gè)區(qū)域管轄多個(gè)點(diǎn)式設(shè)備。每一個(gè)管轄范圍的所有點(diǎn)式設(shè)備及其他對(duì)象,可以構(gòu)成一個(gè)邏輯運(yùn)算集合。
建立基礎(chǔ)信號(hào)數(shù)據(jù)模型之后,需要從該模型計(jì)算出RBC需要的各類配置數(shù)據(jù)。本節(jié)首先介紹計(jì)算時(shí)需要用的圖的基本計(jì)算方法,然后具體介紹如何計(jì)算RBC配置數(shù)據(jù)。
3.4.1 基本概念和計(jì)算方法
基礎(chǔ)信號(hào)數(shù)據(jù)模型是按照無向圖的方式定義的,但是,在后續(xù)的計(jì)算過程中,由于線路本身具有上行、下行,設(shè)備以及進(jìn)路等都具有正向、反向等概念,所以在具體進(jìn)行某一類計(jì)算時(shí),將圖視作有向圖,利用有向圖的概念和方法進(jìn)行計(jì)算。
本文主要涉及到有向圖的路徑和遍歷算法兩個(gè)概念。下面首先做一簡(jiǎn)單介紹。
在有向圖G中,路徑也是有向的,它由E(G)中的有向邊
深度優(yōu)先遍歷是重要的遍歷圖的方法之一,采用的搜索方法的特點(diǎn)是盡可能先對(duì)縱深方向進(jìn)行搜索。具體的過程遞歸定義如下:在給定圖G中任選一頂點(diǎn)v為初始出發(fā)點(diǎn)(源點(diǎn)),首先訪問出發(fā)點(diǎn)v,并將其標(biāo)記為已訪問過;然后依次從v出發(fā)搜索v的每個(gè)鄰接點(diǎn)w。若w未曾訪問過,則以w為新的出發(fā)點(diǎn)繼續(xù)進(jìn)行深度優(yōu)先遍歷,直至圖中所有和源點(diǎn)v有路徑相通的頂點(diǎn)均已被訪問為止。若此時(shí)圖中仍有未訪問的頂點(diǎn),則另選一個(gè)尚未訪問的頂點(diǎn)作為新的源點(diǎn)重復(fù)上述過程,直至圖中所有頂點(diǎn)均已被訪問為止。
本文對(duì)圖進(jìn)行計(jì)算時(shí),將方向統(tǒng)一定義為左方向和右方向;具體設(shè)備的站場(chǎng)方向?qū)傩钥梢酝ㄟ^設(shè)備的方向、線路等相關(guān)屬性得到。
3.4.2 RBC基礎(chǔ)配置數(shù)據(jù)計(jì)算
如第2章所述,RBC基礎(chǔ)配置數(shù)據(jù)核心是將線路基礎(chǔ)模型抽象為軌道單元對(duì)象、道岔對(duì)象,以及附著在軌道單元對(duì)象上的其他數(shù)據(jù)對(duì)象。
如圖4所示,每個(gè)道岔定義為一個(gè)道岔對(duì)象。道岔對(duì)象,具有3個(gè)腿,分別賦予0、1、2。軌道單元對(duì)象是線路的一段,具有兩個(gè)腿,左邊的賦予0,右邊的賦予1。
軌道單元對(duì)象的連接數(shù)據(jù)包括左邊和右邊連接的軌道單元對(duì)象或道岔對(duì)象;道岔對(duì)象的連接數(shù)據(jù)包括3個(gè)腿連接的軌道單元對(duì)象。通過軌道單元對(duì)象之間以及軌道單元對(duì)象和道岔對(duì)象之間的相互連接,整個(gè)線路連接為一個(gè)整體。
如圖4所示,應(yīng)答器、絕緣節(jié)等作為劃分軌道單元對(duì)象的點(diǎn)式設(shè)備,被歸屬到相關(guān)的軌道單元上,作為其附加數(shù)據(jù)的一部分。
坡度數(shù)據(jù)、速度數(shù)據(jù)等信息也按照軌道單元的邊界劃分進(jìn)行映射。
分相區(qū)、車站等區(qū)域?qū)ο?,區(qū)域?qū)ο笈c點(diǎn)式設(shè)備具有所屬關(guān)系,通過點(diǎn)式設(shè)備,所有的區(qū)域?qū)ο笠埠蛙壍绬卧獙?duì)象間接地建立了關(guān)聯(lián)關(guān)系。
RBC基礎(chǔ)配置數(shù)據(jù)中的主要數(shù)據(jù)結(jié)構(gòu)建立完成之后,其他的輔助數(shù)據(jù)通過對(duì)此數(shù)據(jù)結(jié)構(gòu)的進(jìn)一步計(jì)算即可得到。
3.4.3 進(jìn)路配置數(shù)據(jù)計(jì)算
進(jìn)路配置數(shù)據(jù)的核心是構(gòu)造進(jìn)路對(duì)象。將論述如何根據(jù)基礎(chǔ)信號(hào)數(shù)據(jù)模型來生成進(jìn)路對(duì)象。
在基礎(chǔ)信號(hào)數(shù)據(jù)模型里,信號(hào)機(jī)分布在軌道上,軌道通過道岔連接,形成圖結(jié)構(gòu)。因此,需要對(duì)整個(gè)圖結(jié)構(gòu)進(jìn)行搜索,才能計(jì)算出所有的進(jìn)路。
搜索方法也是基于圖的深度優(yōu)先搜索策略。因?yàn)榫哂袃蓚€(gè)方向的信號(hào)機(jī),同向信號(hào)機(jī)之間才能形成進(jìn)路,所以以一個(gè)方向的搜索過程為例,介紹其主要思路如下。
1)軌道內(nèi)的進(jìn)路
對(duì)于一個(gè)軌道Ti,按照信號(hào)機(jī)在軌道上的位置排序,依次選擇與搜索方向一致的信號(hào)機(jī),組成集合 S(Ti)={s1,…,si,sj,…,sn},則
2)跨多個(gè)軌道的進(jìn)路
在跨越多個(gè)軌道搜索進(jìn)路時(shí),將同一方向的信號(hào)機(jī)也抽象為有向圖的頂點(diǎn)。搜索時(shí),起始信號(hào)機(jī)作為搜索的開始頂點(diǎn),終端信號(hào)機(jī)作為搜索的結(jié)束頂點(diǎn),而經(jīng)過的道岔是搜索路徑上的中間頂點(diǎn),經(jīng)過的軌道是搜索路徑上的邊。
從一個(gè)信號(hào)機(jī)所在的軌道Ti出發(fā),獲取到某一方向上的最后一個(gè)信號(hào)機(jī)作為進(jìn)路起點(diǎn)信號(hào)機(jī),開始按照深度優(yōu)先遍歷的方法沿著同一方向搜索,記錄搜索過程中經(jīng)過的道岔等信息,每次找到一個(gè)終點(diǎn)信號(hào)機(jī),則搜索到一條進(jìn)路,加入進(jìn)路集合Rou te(G),直至找到所有可能的終點(diǎn)信號(hào)機(jī)。
一個(gè)典型的跨軌道搜索示意如圖5所示。該圖里,步驟1到步驟10依次執(zhí)行,描述了從一個(gè)信號(hào)機(jī)出發(fā)跨越多個(gè)軌道后找到3個(gè)進(jìn)路對(duì)象的過程。
對(duì)于所有軌道的集合T(G)里軌道依次按照上述方法搜索,則將得到整個(gè)站場(chǎng)圖里的進(jìn)路對(duì)象集合Route(G)。
3.4.4 模型計(jì)算小結(jié)
將基礎(chǔ)信號(hào)數(shù)據(jù)模型定義為無向圖的結(jié)構(gòu),包括了所有需要的各類信號(hào)基礎(chǔ)數(shù)據(jù)。
在基于模型進(jìn)行進(jìn)一步計(jì)算時(shí),針對(duì)具體計(jì)算需求,提取基礎(chǔ)無向圖里的不同數(shù)據(jù),構(gòu)造了不同的計(jì)算模型,利用有向圖的搜索算法,實(shí)現(xiàn)對(duì)數(shù)據(jù)準(zhǔn)確高效地計(jì)算。
本文首先對(duì)RBC的數(shù)據(jù)模型、C3級(jí)列控系統(tǒng)所用的基礎(chǔ)信號(hào)數(shù)據(jù)特點(diǎn)進(jìn)行了分析;然后借鑒圖論的方法,對(duì)基礎(chǔ)信號(hào)數(shù)據(jù)進(jìn)行建模,將線路數(shù)據(jù)抽象為一個(gè)無向圖,將各類數(shù)據(jù)附加到圖的頂點(diǎn)和邊上,進(jìn)而利用圖的各種算法,進(jìn)行進(jìn)一步的建模和計(jì)算,得到了RBC配置數(shù)據(jù)。本文提出的方法具有良好的適應(yīng)性,可以適應(yīng)各類復(fù)雜的站場(chǎng)數(shù)據(jù)情況,有效提高了無線閉塞中心配置數(shù)據(jù)生成過程的效率和可靠性。
[1]陳志穎,董昱,楊柳,等.計(jì)算機(jī)聯(lián)鎖進(jìn)路搜索算法的分析與研究[J].鐵道通信信號(hào).2007,43(4):4-6.
[2] Thomas H.Cormen,Charles E.Leiserson.Introduction to Algorithms[M].2nd ed.The MIT Press,2001.
[3] Michael Blaha,James Rumbaugh.Object-Oriented Modeling and Design with UML[M].2nd ed.Prentice Hall/Pearson,2004.