吴玲英
(上海申通地铁集团有限公司轨道交通培训中心,201102,上海∥工程师)
我国城市轨道交通正处于快速发展阶段,就上海而言,有多家外国公司参与了上海轨道交通的建设。上海轨道交通1号线采用了美国GRS公司(现为ALSTOM公司的一部分)的列车自动控制(ATC)系统,2号线采用了美国USS公司的技术,6、8、9号线则采用阿尔卡特的基于通信的列车控制(CBTC)系统。各公司的站场数据格式不同、站场仿真界面不同、仿真功能不同,这就需要开发多套仿真系统,以达到对上岗或者在岗人员的培训目的。站场图是仿真系统的主视图,在统一数据格式下自动生成各类制式的站场图将缩短仿真系统的开发周期。
站场图由信号机、道岔、轨道、站台等站场设备图形组成。这些设备元素之间存在着逻辑关系。图1所示为上海轨道交通3号线的一段站场图。
图1 设备图形与站场拓扑结构的对应关系
站场图的绘制,就是要确定各个设备图形的位置坐标。在站场图的坐标体系中,首先要确定的是道岔的坐标位置。道岔构成了站场的整体框架,对应于站场拓扑结构中的节点。轨道连接了两个离散的道岔,轨道的Y坐标由所连接的道岔Y坐标确定,轨道的X坐标根据轨道在道岔间的位置偏移量确定,对应于站场拓扑结构的边。信号机、站台等站场设备元素的坐标,由其所隶属的轨道坐标确定。
通过对站场图结构的分析,将站场数据结构分为定位层、设备对象层两层(图2所示为站场数据的层次结构)。
1)定位层:站场拓扑图抽象出了站场的整体形状。如图2所示,站场图的设备坐标基于站场拓扑图的点边坐标。此层用拓扑图定位站场设备位置。
2)设备对象层:此层将站场中的每个设备看作独立的对象,将不同制式站场设备的共性概括出来,作为各对象的基类,再继承基类的数据结构,扩展出具体制式站场设备的数据结构。
图2 站场数据的层次结构
站场信息采用XML纯文本存储。XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,其层次结构清晰,易于读写与共享。泰雷兹公司的上海轨道交通8号线列车自动监控(ATS)仿真系统即采用XML存储站场数据。
以下是采用XML纯文本保存的信号机的数据结构。
<Signal>
<ID>4101</ID>
<Name>XA</Name>
<EdgeID>3</EdgeID>
<Displacement>200000</Displacement>
<Direction>1</Direction>
<TerritoryID>1</TerritoryID>
</Signal>
其中,标记<EdgeID>存储了信号机所在边的ID(编号),标记<Displacement>存储了信号机在所在边上的偏移量,标记<Direction>存储了信号机的方向。
图3显示了站场数据实体间的关系:信号机(Signal)实体中JJQD、FirstQD字段代表了信号机的前后设备,道岔(Switch)实体中的 ConPre、ConDW、ConFW字段代表了道岔岔前、定位、反位连接的设备,轨道(Track)ConLeft、ConRight字段代表轨道左右连接的设备。
图3 数据库连接关系图
根据不同线路的ATS系统的特点,开发不同的组件,形成组件库,以解决不同系统对相同部件表现形式上的差异[1-3]。
构建站场图组件的首要任务是设计其组件属性。本文站场图组件属性分为静态属性和动态属性两类。静态属性主要指设计组件时可修改,但当站场图绘制完成时就不可修改的一类属性;动态属性主要指设计组件时无需设置,在站场图的仿真运行过程中可不断改变的属性。以上海轨道交通8号线信号机组件为例,其属性可按如下设置:① 静态属性包含信号机名称、信号机标签、信号机位置等;② 动态属性包含以限速前行状态、引导状态、未知状态,故障状态等。
站场图的组件定义如下:
class CL8SignalCtrl:public COleControl ∥信号机组件定义
{…}
其中,COleControl类封装了 MFC(面向对象)的ActiveX控件。所有组件都由此类派生。
信号机组件属性定义的MIDL代码如下:
dispinterface_DL8Signal ∥信号机组件
{
properties: ∥静态属性
[id(6)]BSTR Name; ∥信号机名称
[id(3)]BSTR Tag; ∥信号机标签
[id(1)]short Location; ∥信号机位置
∥动态属性
[id(2)]short State; ∥信号机状态
[id(4)]boolean Fault; ∥信号机故障
[id(5)]boolean Approach; ∥信号机接近
…
};
目前ATS仿真系统的站场图主要通过组件的人工拼接完成。在拼接过程中,需要设置组件的属性,以及组件与组件之间的位置关系。不同制式ATS仿真系统的站场组件又有所差异,故采用拼接方式的工作量将很大。对组件属性与组件位置的自动设置,将简化站场图生成过程。
据上所述,站场拓扑图的点对应道岔,边对应轨道。站场图绘制的步骤是先绘制道岔,再绘制轨道、信号机、站台。拓扑顶点的度数为3的点即表示道岔,因此构造拓扑图的邻接矩阵。在无向图中,任一顶点n的度为第n列所有元素的和。两个道岔的斜股在同一斜边上,那么这两个道岔就是双动道岔,否则为单动道岔。轨道、信号机、站台根据所在边的偏移量绘制。图4为站场图绘制流程。
列车仿真运行时,根据设备的前后关系绘制列车的位置。当列车跨越区段时,需要知道下一区段的信息,这就要生成组件的前后关系。采用分治的思想,先根据每条拓扑边,将该拓扑边上的轨道,由X坐标从小到大依次排序,再由道岔与各边上的首尾轨道确定前后关系。信号机、站台的前后关系由所属的轨道确定。这样整个站场图的设备关系就生成了。
图4 站场图绘制流程
为了生成不同制式的站场图,首先要有各制式完备的站场组件库,然后结合站场拓扑图、站场自动生成算法,生成站场图。图5所示为自动生成的上海轨道交通3号线的一段站场图,图6所示为自动生成的上海轨道交通8号线的一段站场图。
图5 上海轨道交通3号线的一段站场图
上述站场图的自动生成方法是研究了不同制式站场图的共性,并结合站场图结构特性,给出自动生成的算法。此方法的实现,为开发人员省去了组件配置及位置关系人工录入的步骤,简化了此类仿真系统主视图的开发过程,为快速开发列车运行仿真培训系统奠定了基础。
图6 上海轨道交通8号线的一段站场图
[1]段继华,刘卫.组件化技术在程序设计中的应用[J].无线电通信技术,2003,29(1):57.
[2]王野,郭秀清.基于组件技术的列车自动监控仿真系统开发平台[J].计算机应用,2007,27(增2):285.
[3]宇鹏,王晓峰,李云飞.Visual C++实践与提高——ActiveX篇[M].北京:中国铁道出版社,2001.