葉 盛,李瀾濤,王海翔,楊英華
軌道車作為鐵路建設、線路施工、設備檢修和搶險等工作的主要機械設備,在鐵路運輸中發(fā)揮著重要作用[1-2]?;谲壍儡囘\用方式機動靈活的特點,通常被配屬于工務、供電、工程等單位[3]。依據《鐵路技術管理規(guī)程》《軌道作業(yè)車管理規(guī)則》等相關要求規(guī)定,在軌道車等具有自運行能力的自輪運轉特種設備上,需安裝軌道車運行控制設備(GYK)[4-5]。為防止軌道車冒進信號、運行超速,并輔助司機提高操縱能力,GYK自應用以來,在提高運行作業(yè)安全和效率中發(fā)揮了突出作用[6-7]。
在正常運行過程中,軌道車司機需先通過運行計劃確定運行徑路,查閱交路示意圖后,再確定GYK 的開車信息和徑路信息,操作流程繁瑣,加之業(yè)務水平參差不齊,運行過程中信號確認、呼喚應答、車機聯(lián)控、機械操作等作業(yè)流程占用大部分時間、精力,稍有不慎極易造成錯誤操作,影響正常運行。同時,軌道車司機對GYK 站名站號表、LKJ基礎數據中開車對標點、線路斷鏈里程、長大上下坡道、特殊信號機等重要項點的獲取也存在一定難度,且極易出錯。目前全路范圍內的軌道車運用單位在GYK 作業(yè)標準卡控、業(yè)務素質提升上,還是以日常培訓為主,缺乏很好的科技手段。因此研制GYK智能輔助系統(tǒng)勢在必行。
為達到簡化軌道車司機GYK 操作流程、熟悉現(xiàn)場設備、規(guī)范資料管理等目的,以10 英寸安卓系統(tǒng)手持專用pad 為終端載體,利用計算機智能算法、可視化技術、北斗定位等,研發(fā)一套鐵路GYK 智能輔助系統(tǒng),以提高軌道車的行車安全性。系統(tǒng)設計原則如下。
1)遵循“現(xiàn)場導向,結果導向”的原則,為解決GYK 設備容易錯誤操作,采用路徑導航來提高GYK的易用性。
2)選取當前先進技術和方法,同時兼顧成熟程度,優(yōu)選基于TinkerPop 框架的JanusGraph 圖形數據庫。JanusGraph是一個高度可擴展的分布式圖數據庫,專門用于存儲和查詢包含數千億個分布在多機群集中的極點和邊緣的圖形,可支持數千個并發(fā)用戶實時執(zhí)行復雜的圖遍歷。而TinkerPop 則是基于聯(lián)機事務處理過程,以及聯(lián)機分析處理的開源圖計算框架,可以應用于不同圖形數據庫的抽象層,避免應用程序與特定數據庫高度依賴;通過提供標準的圖數據模型和圖處理接口,使JanusGraph可以遍歷語言進行圖數據操作和分析;通過圖結構表達和計算站點與路線之間的關系,確保路徑遍歷的準確性。
3)為更好地提升系統(tǒng)和設備的協(xié)同能力,以及將來系統(tǒng)不斷擴展的功能需求,優(yōu)先選用通用數據庫管理平臺,制定鐵路信息化應用數據格式,開發(fā)統(tǒng)一標準的數據接口。在提升系統(tǒng)數據處理和交換能力的同時,也便于數據共享和集成。
4)在考慮系統(tǒng)技術、經濟、開放和規(guī)范的同時,統(tǒng)籌考慮系統(tǒng)架構、設備能力、技術支持、安全性能等,充分運用數據訪問權限、安全機制等手段,為系統(tǒng)提供更加安全和穩(wěn)定的保障,提高平均無故障時間。
GYK 智能輔助系統(tǒng)選擇兼容多平臺的JAVA語言進行底層設計,運用典型的“模型-視圖-控制器”模式(Java MVC)和JAVA 平臺企業(yè)版架構。按照邏輯關系,應用框架劃分為領域層、應用層、數據分析層和表現(xiàn)層[8-9],見圖1。
圖1 系統(tǒng)架構設計
1)領域層。作為應用程序的核心,負責實現(xiàn)業(yè)務規(guī)則和邏輯,包括業(yè)務規(guī)則驗證、數據處理和狀態(tài)管理等。內含與業(yè)務相關的實體、值對象、服務和領域事件等,用于描述和處理業(yè)務過程。
2)應用層。負責協(xié)調領域層中的業(yè)務邏輯,根據系統(tǒng)職能劃分為業(yè)務應用服務和基礎應用服務。其中,業(yè)務應用服務提供徑路查詢、徑路導航、輔助運行等功能;基礎應用服務則提供如日志、緩存、認證等基本的系統(tǒng)通用服務。
3)數據分析層。負責數據的存儲、同步、緩存、備份、訪問和處理。采用JanusGraph 圖形數據庫引擎進行數據庫存儲,實現(xiàn)數據的持久化;利用Hadoop 進行圖形分析和批處理,提高圖計算的效率;使用數據傳輸對象(Data Transfer Object,DTO)簡化數據傳輸過程,減少網絡開銷[10]。
4)表現(xiàn)層。負責處理使用者與業(yè)務邏輯的交互,發(fā)送請求及傳輸數據。選用Vue前端框架提供數據接口、可視化界面和數據展示等,并基于Vue組件化的開發(fā)特性,提高代碼的復用率,使整體編碼簡潔,運行效率高[11]。
通過采集匯總列車基礎數據、北斗高精定位數據和列車徑路數據等,首先對管轄范圍內運行徑路、車站信息和區(qū)間線路基礎數據等進行預設;再參照《列車操縱示意圖》繪制導航路線,結合計劃同步司機手動數據及列車實時數據,綜合判斷業(yè)務場景,為司機提供導航提示,實現(xiàn)行車徑路展示、語音播報、非正常應急指導、行車路線記錄等功能。此外,結合軌道車運行中復雜的現(xiàn)場作業(yè)場景,以及司機作業(yè)要點、難點等,有針對性地對GYK智能輔助系統(tǒng)進行功能擴充,豐富行車提示及預警功能。
系統(tǒng)通過北斗定位數據確定軌道車實時位置,將獲取到的徑路信息和GYK 數據信息進行比對,運用AI 智能算法自動生成運行徑路,從而實現(xiàn)徑路導航功能。
以濟南工務段為例,該段管轄范圍包括76 個車站(含線路所),通過建立261 個站站關系模型,采用AI 算法可自動生成21 432 條運行徑路,見圖2。通過點選始發(fā)、終到車站,可以實現(xiàn)相應調車作業(yè)指導圖查看功能。
圖2 GYK走行徑路
查詢流程:初始化車站和線路組成的圖對象(graph)→根據圖對象遍歷找到始發(fā)站ID→繼續(xù)遍歷始發(fā)站所在行別的車站→依次遍歷包含終到站前所有的車站或車站總數,確保徑路中不包含重復車站→輸出符合條件所有徑路的車站名→結束遍歷→關閉圖對象。
JanusGraph作為圖形數據庫引擎,為數據持久性、數據索引、客戶端訪問提供強大的模塊化接口,可以擴展圖數據的處理,支持實時圖遍歷和分析查詢。為有效運用JanusGraph圖形數據庫,需要構建一套快速查詢訪問的圖數據結構,從而實現(xiàn)徑路導航的快速響應。
圖數據結構一般使用鄰接矩陣、鄰接表、十字鏈表、鄰接多重表等方式,各有優(yōu)缺點和適用范圍。鄰接表是一種將圖表示為鏈表數組的方式,若表頭節(jié)點所對應的頂點存在相鄰頂點,則把相鄰頂點依次存放于表頭節(jié)點所指向的單向鏈表中,用一個存儲頂點的節(jié)點數據結構和一個組織節(jié)點的圖數據結構來實現(xiàn)。根據GYK走行徑路圖頂點和邊之間的對應關系,為減少存儲空間的浪費,系統(tǒng)采用鄰接表的存儲結構存儲頂點集合,以頂點和邊搭建“屬性圖”數據模型,以“圖”的方式把定義的頂點間的關系存儲起來[12]。
以圖3 為例,查找始發(fā)站為于官屯站至終到站禹城站的導航路徑。以于官屯站作為當前節(jié)點,訪問節(jié)點于官屯站的鄰接點。從鄰接表中可以看出,與于官屯站相鄰的第1個節(jié)點是黃河涯站和德州站,因德州站下屬鄰接點無法訪問到禹城站,將其作為無效節(jié)點以“Λ”表示結束,同時將黃河涯站作為有效節(jié)點,并將于官屯站的鏈域值修改成黃河涯站的鏈域值。在鄰接表中,與黃河涯站相鄰且未被訪問的第1 個節(jié)點是三唐站和丁莊站,同樣丁莊站為無效節(jié)點,而三唐站為有效節(jié)點,隨即修改黃河涯站的鏈域值。而與三唐站相鄰的未被訪問的第1 個節(jié)點是平原站,則將平原站作為當前節(jié)點,同時修改三唐站的鏈域值。以此類推,與張莊站相鄰的節(jié)點是禹城站,同時判斷禹城站為終節(jié)點,則結束整個遍歷。最后,得到導航路徑:于官屯—黃河涯—三唐—平原—張莊—禹城,與實際徑路相符。
圖3 于官屯-禹城站圖及對應鄰接表
選取車站數據作為頂點(Vertex)、車站的站界(一般為進站信號機位置)里程數據作為邊(Edge),由于鐵路線路分為上下行,因此里程數據區(qū)分為有向邊。其中,車站數據(Vertex_Station)中包含始發(fā)站信息、終到站信息、交路號、上/下行進站信號機信息(含反向進站信號機)、上/下行出站信號機信息、上/下行對標公里標等屬性;線路數據(Edge_Line)中包含站名、站號、線名、行別、支線號選擇、線路起訖里程等屬性[13],見圖4。圖數據庫中依次插入頂點(車站數據)和邊(線路數據),通過線路數據中車站間對應的車站號,確立2個頂點和一條邊的關系,將Vertex集合、Edge集合合并成“圖”,實現(xiàn)快速遍歷查找和數據存儲。
圖4 頂點(Vertex)和邊(Edge)的數據域
1)模擬導航。在走行徑路列表中選擇徑路后,進入走行徑路詳情界面,包括開車信息(行別、交路號、站號、出站公里標、對標點)、行車信息(途經車站、支線轉移操作、特殊信號機、長大坡道、道口)、車站詳情(調車作業(yè)指導圖、車站配線圖)等。點擊“模擬導航”,系統(tǒng)自動播報走行徑路中的行車信息(支線轉移操作、特殊信號機、長大坡道、道口等);點擊“停止導航”,則導航結束。
2)實時導航。通過北斗定位確定軌道車當前位置,根據軌道車司機操作特點及要求,進行行車提示及預警,實現(xiàn)鐵路行車在線實時導航,將安全風險控制關口前移,做到事前預警,事中干預。點擊“實時導航”,系統(tǒng)會根據北斗定位,實時獲取設備位置,導引界面見圖5。
圖5 GYK行車導引界面
在行車過程中,徑路導航可以實現(xiàn)如下功能:①直觀展示作業(yè)過程中該軌道車的車號、車次、線路及行別、實時里程位置、所在區(qū)間、各信號機位置,以及運行途中橋隧、實際縱斷面等信息;②根據軌道車實時速度、線路基礎數據、地面信號信息及預設邏輯,對軌道車運行速度進行監(jiān)控,接近或超速時,進行語音提示;③根據軌道車運行計劃、實時位置及預設邏輯,在發(fā)車后首架信號機、整公里標處,提示對標操作;④根據軌道車實時位置及預設邏輯,在接近預告信號機前,提示對標操作;⑤根據軌道車實時位置及預設邏輯,在接近右側信號機、長大上下坡道、道口、隧道、橋梁等特殊線路位置時,進行語音提示。
軌道車開車前,司機通過操作智能輔助駕駛終端,確定始發(fā)站、終到站后,即可完成翻閱走行徑路圖、確定行車參數、選定對標地點等多項操作。軌道車運行過程中,通過北斗定位技術,確定當前位置,實時對運行徑路中的重點、難點信息進行提示,極大縮短GYK 操作時間,降低錯誤概率,提高現(xiàn)場設備熟悉程度,確保軌道車的運用安全。
1)軌道車智能定位。通過定位信息實時獲取當前所處車站,同步運行計劃或人工錄入徑路,智能識別始發(fā)站、發(fā)車方向、途經徑路、轉線車站等信息。在行車過程中,根據列車實時位置,繪制當前線路的坡度、橋梁、隧道、斷鏈、道岔、曲線、道口等信息,向司機進行可視化展示,輔助掌握前方線路信息。地面設置維護管理終端,支持按照線路、行別及公里標等信息預設軌道車司機操作重點、難點事項,創(chuàng)建后可同步至pad,在達到指定位置時按規(guī)則進行提示。
2)輔助錄入開車信息。通過預置邏輯及數據庫數據,結合運行計劃信息,在獲取當前所處始發(fā)站時,彈窗提示GYK所需的車次、交路、車站號、公里標信息,輔助司機操作,簡化操作流程。在遇到問題時,可以通過電子資料快速匹配查詢功能,根據軌道車車型,定位相應故障處置手冊,通過規(guī)章代碼或場景搜索便捷查詢處置方案,實現(xiàn)司機對每一步操作流程的詳細查閱。
3)智能判別支線操作。后臺支持提前導入車站的對標點信息,系統(tǒng)可自動解析徑路中每個車站對應的行別、交路號、站號及出站公里標,根據基礎數據解析匹配,提取對應的線路基礎信息及支線操作信息。通過軌道車實時定位、作業(yè)計劃及軌道車徑路信息,在軌道車接近轉線車站前方預告信號機前,彈窗提示前方線路切換情況,需注意支線操作,并提示支線號或相關交路及車站號注冊信息等,確保GYK數據調用無誤。
GYK 智能輔助系統(tǒng)能夠在充分利用各類數據,在不添加任何工作量的情況下,規(guī)范基礎管理,降低行車風險,確保軌道車安全運行。目前,該系統(tǒng)已在濟南局集團公司濟南工務段管內試用。實踐證明其里程定位精準,系統(tǒng)運行穩(wěn)定可靠,提示及預警信息準確,界面清晰,符合設計要求。下一步,根據軌道車司機操作特點及要求,以及相關技術、管理人員的意見建議,不斷豐富行車提示及預警功能,完善系統(tǒng)性能,提高軌道車的行車安全性。