房 晨,郭 进
(西南交通大学 信息科学与技术学院, 成都 610031)
CTCS2是基于轨道电路的列车运行控制系统,系统的信号设计过程复杂,需要通过大量试验,不断完善。传统的方法是通过大量的现场跑车来完善,这样既给铁路运输带来不便,又产生大量试验成本。而通过计算机仿真技术进行模拟实验,具有经济、安全和试验周期短等特点。
客运专线CTCS2仿真系统,是由西南交通大学交通信息工程及控制铁道部重点实验室开发的基于CTCS2的软件仿真平台。该仿真系统以合肥—南京客运专线的永宁站—肥东站为仿真对象,以施工及设计单位提供的基础数据为仿真依据,实现对CTCS2列车控制系统各部分的功能、性能、技术条件的数字化模拟与测试。仿真系统由4部分组成:车载仿真子系统,地面设备仿真子系统,数据库管理子系统以及控制中心仿真子系统。
控制中心子系统完成整个站场的图形显示和设备状态显示,完成列车运行显示、故障设置、临时限速设置、进路操作、自动化运行、统计分析工作,具有历史数据回放功能。由于控制中心子系统具有宏观显示以及与其他子系统信息交互的功能特点,因此首先需要建立仿真对象的拓扑结构来描述信号设备(包括信号机、轨道区段、道岔、应答器)的固有属性及其逻辑关系。根据施工设计单位提供的基础数据制作控制中心初始化输入数据表单,控制中心子系统通过将表单读入静态数据库,后续程序将数据库中的有用信息读入内存生成线路及车站拓扑数据结构,从而计算出区间闭塞和进路信息。数据流程如图1。
图1 控制中心数据流程图
将仿真对象抽象成3层:图形层、拓扑层和电气层。图形层由铺画线路和站场的底层图形单元构成,包括:线段,圆形,三角形等;拓扑层是仿真对象拓扑结构及逻辑关系的抽象,包括顶点(文中站内的顶点又称为节点)和边;电气层是联锁闭塞的电气基础,包括:信号机、道岔、轨道区段、应答器和进路。模型的层次结构如图2。
图2 数据模型层次结构
(1)数据存储方式。系统采用表单文件和数据库两种数据存储方式,表单文件主要用于存储控制中心仿真子系统的初始化输入数据,主要包括图形显示、设备属性和相互关系的基本信息。数据库存储作为程序操作的数据源,具有操作灵活的特点,用来支持控制中心仿真子系统的运行。
(2)数据管理一体化。系统将对电气层元素的属性数据(元素的固有属性、运行状态和与其他元素的关系)和图形层数据进行统一管理,使它们成为互为映射的整体,也就是每一个电气层的元素在线路和站场铺画图中的拓扑位置均对应着相关的属性信息。
(3)面向对象的数据模型设计。本仿真系统的研究对象是设计5个车站4个区间的复杂系统,包括了CTCS2级列车控制系统所有主要模块和设备,传统的数据模型很难处理这样的复杂对象,而面向对象的数据模型无论对多复杂的数据都可以准确地用一个对象来表示,对象的属性以及对对象的操作可以分别封装成类的成员变量和成员方法,这样可以极大地加强软件的封装性,提高开发效率。
表单使用Excel电子表格软件设计和制作。设计分为线路表单设计和车站表单设计。线路表单内容包括整条线路的基本信息;而车站表单每个车站各有一张,内容具体到每个车站的基本信息。
作为线路整体的初始化数据,设计了信号点、轨道区段数据表及应答器数据表,表格式如图3和图4。图中罗列了信号点、轨道区段、应答器可能被用到的所有信息。
图3 信号点、轨道区段数据表结构
图4 应答器数据表结构
站内数据表分为进路数据表、信号机表、道岔表、区段表,这些都是构成站场图形和联锁功能的必要数据。进路数据表的表结构如图5。进路数据表的内容与设计单位绘制的联锁表内容一致,提供了详尽的进路信息,通过对该表数据的读取,可实现站场的任意进路的联锁逻辑。
图5 进路数据表结构
信号机表、道岔表、区段表按照数据结构中线性表的格式进行设计,每个表在具备自己独有特性的基础上彼此相互联系,链接成站场的网状数据结构。表结构分别如图6、图7和图8。
图6 站内信号机表结构
图7 站内道岔表结构
图8 站内轨道区段表结构
将站场抽象为一个点,那么整条专线就是一个连通图。图G是由有限非空集合V及其二元子集E构成,其中V中元素称为顶点,E中元素称为边;集合V和E分别成为G的顶点集和边集。图G实际上是一个有序的二元组,记为G =(V,E)。在处理图的时候,通常把2元集{u,v}简写成uv(或者vu)。如果uv是图G的边,那么就称u和v在G中是邻接的。G中的顶点数和边数分别称为该图的阶和边数。本仿真系统的仿真线路由5个车站4个区间组成,如果将车站抽象为顶点,那么V={永宁镇,全椒,黄庵,巢北,肥东},如果将区间抽象为边,那么E可以看成V的二元子集,即E={永宁镇至全椒下行区间,全椒至黄庵下行区间,黄庵至巢北下行区间,巢北至肥东下行区间,肥东至巢北上行区间,巢北至黄庵上行区间,黄庵至全椒上行区间,全椒至永宁镇上行区间},因此,仿真线路G的阶数为5,边数为8,表明由上、下行各4个区间,共8个区间构成。G的拓扑结构如图9。
图9 线路的拓扑结构
为此,设计区间轨道区段类、区间信号机类和应答器类即可完成线路数据结构的定义。
4.2.1 站场数据结构的选择
根据联锁软件的数据结构理论,站场数据结构分为两种:总进路表式数据结构和站场形数据结构。两者的主要区别是产生进路方式不同,前者以人工或半自动方式穷举所有进路,后者则根据站场节点间的链接关系自动搜索进路。前者的缺点是:对于比较大的站场,进路数量庞大,编制总进路表繁琐易出错,且需随站场的改建而更新。后者的优点是自动化程度高。
但是考虑与行车指挥平台连接时,要能完全按照行车指挥的意图办理特定的进路。目前仿真系统采用的是总进路表结构,优点是能选出与行车指挥平台意图完全一致的进路,不会受到因为采用站场形数据结构时由于搜索规则的不同而选出不一致进路的情况发生。为将来程序扩展及模块化修改考虑,在定义站场设备节点数据结构时参考站场形数据结构的方式,设置了节点间链接属性,不影响总进路表结构时的处理,能预留接口。
4.2.2 站场数据结构定义
(1)车站类定义。车站拥有自己固有的属性:名称、车站长度、起始公里标、起始屏幕显示坐标等;车站是站内设备的“容器”,应当拥有站场设备的存储空间。在仿真实现过程中,笔者使用了VC6.0集成编译环境中的MFC基础类库(Microsoft Foundation Classes)所提供的CArray动态数组类来实现站场设备存储。使用CArray动态数组原因是:站场中的设备对象存储需要用到复杂的数组结构,并希望能动态管理;CArray
(2)站场设备节点定义。站场设备主要包含信号机,道岔,轨道电路区段,侵限绝缘轨道区段。属于不同类型的设备,但在站场图中都表现出站场节点这一基本属性。因此在这一层次上所有设备节点是有共性的。
节点数据结构的定义,采用面向对象的设计思想,将站场中的设备封装成类,设备的属性状态对应类的成员变量,对设备的操作对应类的成员函数。仿真程序中设计了1个站场设备基类和3个设备子类。基类抽象了站场设备的共有属性和操作,3个子类分别对应站场3大件:信号机、道岔、轨道区段,对这些类进行实例化,就形成了仿真数据中的节点。
本系统根据站场情况,设计了4个类:站场设备基类CStaDevBase,信号机类CMyStaSignal,道岔类CMyStaSwitch,轨道区段类CMyStaSection。
使用Visual C++ 6.0和Access2003编程实现了控制中心仿真子系统的界面程序,通过在Intel Pentium IV 1.8 G/内存512 M微机上的单机运行,线路和战场铺画正确,界面显示友好,并能和其它子系统进行初步的通信和联调,证明了本文描述的数据结构设计的正确性和有效性。
[1]严蔚敏,吴伟民. 数据结构[M]. 北京:清华大学出版社,1996:156-169.
[2]赵志熙.车站信号控制系统[M]. 北京:中国铁道出版社,2006:165-170.
[3]GARY CHARTRAND.图论导引[M].北京:人民邮电出版社,2007:1-158.
[4]金 鑫. 铁路站场配置图生成系统设计与实现[J].铁道运输与经济,2004(1):1-3.
[5]于双元. 基于GIS的铁路车站信号设备管理系统设计与实现途径[J]. 北方交通大学学报,2000,24(3):25-33.