轨道交通ATS仿真运行框架的设计与实现摘 要:在分析轨道交通ATS系统特性的基础上,选用面向对象的仿真建模框架和逻辑控制框架,结合城市轨道交通的运行特点,对ATS仿真系统的时间控制和对象控制进行明确定义,克服传统仿真控制逻辑发散于描述模型过程代码中的缺点,介绍了一种面向对象的ATS仿真系统运行框架的设计和实现方法,为ATS仿真系统提供新的思路和方案。关键词:轨道交通;ATS仿真系统;建模;框架;站场图 作为一个典型的强实时离散系统,城市轨道交通ATS(Automatic Train Supervision)系统周期性地采集环境信息,根据外部输入以及当前状态进行系统内部的更新,生成控制命令,以控制外部环境。一般来说,在离散性的系统中,提示系统性能的状态变量值将在随机的时间点上发生跃变,而在两个时间点之间,系统的状态不发生任何变化。针对ATS系统的运行特点,有必要明确其仿真运行的框架,从而保证该系统能够顺畅运行,以充分发挥出仿真系统对实际应用的技术支撑作用。1 ATS仿真系统建模框架 ATS仿真系统采用面向对象的建模框架(OSM),主要包括对象关系描述(ORS)、对象行为描述(OBS)和对象交互描述(OIS)等3个组成部分,符合城市轨道交通ATS系统设计严谨、组织严密、模块化技术等特点。 ORS采用分类、分解关系,进行对象之间联系的描述;OBS通过对象的状态、引起状态改变的事件以及在状态转移过程中对对象所执行的动作进行描述;OIS则对交互过程中所涉及的对象、对象的响应方式以及交互方式进行描述。 ATS仿真系统的对象通常分为信号点类和列车类。其中,信号点类包括信号机、道岔、轨道等,由组件的元素类和元素信息类统一管理。该系统主要通过进路控制、道岔信号机的连锁控制和列车控制等方式进行实际轨道系统控制细节的模拟。ATS仿真系统框架设计对一些控制仿真模块进行抽象和封装,称为控制类,包括运行仿真器、出/入库管理器、列车管理器和通信消息管理器等内容。同时,也对运行时所需的数据进行统一封装,称为运行时数据类。1. 1 运行仿真器 作为仿真控制的核心,运行仿真器能够实现仿真时钟、仿真线程、按时刻表和时钟组织列车出入库和运行的管理以及信号点类对象之间的交互管理等。运行仿真器划分为站场运行仿真器和停车场运行仿真器。其中,必须具备站场仿真器,停车场仿真器则根据具体情况而确定。1. 2 列车出/入库管理器 当停车场运行仿真器存在时,管理器负责在列车站场仿真器和停车场仿真器之间进行转移,并在此过程中初始化或撤销列车对象数据;当停车场仿真器不存在时,负责将列车对象放入站场仿真器,或将离开站场仿真器的列车对象销毁。1. 3 列车管理器 管理仿真器中运行的列车。1. 4 列车类 对应于ATS系统中的实际列车。对列车的信息、状态数据进行维护,并可仿真列车与地面设备的交互方式。1. 5 数据类 统一运行时数据和站场数据的访问规则。1. 6 运行时数据 由运行时所需的时刻表、停站时间表和运行等级表等组成,负责数据的加载、查询和访问。1. 7 站场图类 站场图主要由图中的元素组成,即信号点类的对象是仿真运行的模拟场地。1. 8 组件元素类 用于封装加载到组件化对象,使系统不用直接使用COM接口访问组件对象,可通过元素信息类的结合实现组件分类管理。1. 9 组件元素信息类 记录组件对象的类型等信息。2 ATS仿真系统逻辑控制框架 在仿真运行过程中,对象之间通过相互发送消息,执行内部定义的逻辑控制。其中,主动对象向时间控制结构报告下次内部事件,由时间控制结构确定相应的时间。条件时间的测试则在对象内部完成,同时将执行情况报告给对象交互控制结构。当每次时钟推进之后,对象交互控制结构就监测对象之间的交互方式,若在当前时钟下所有对象都不能完成交互,则向时间控制结构发出要求推进时钟的信号。此时,时间控制结构将最早发生的事件发送到目的对象,再次开始交互。以上过程不断重复,直至仿真结束,则完成仿真运行。 ATS仿真系统采用面向对象的仿真逻辑控制框架,提供了包括仿真时钟管理、事件表控制、实体生成和删除、数据传送、对象交互监控等在内的仿真对象运用方法,能够明确区分仿真设计中不同的控制功能元素,克服了传统模型仿真区分不清的缺点。 ATS仿真系统的逻辑控制框架通过时间控制和对象交互控制,采用多线程模型。以列车对象为中心,根据其状态的变化,结合仿真时钟的推进控制,协调各对象交互,完成对象的交互控制。2. 1 ATS仿真时间的控制 ATS仿真时间控制主要包括仿真时钟控制和时间表控制两部分。 (1)时钟控制采用多线程处理模型,需要一个辅助计时器,在指定的时间间隔内启动一个仿真过程,以<1s的间隔进行计时为宜。多线程可同时处理多辆列车,通过设定科学得当、数值相同的时间间隔,减少系统资源的占用,并具有良好的扩展性,较好地处理两个线程同时访问同一辆仿真列车时的冲突问题。 ATS仿真时钟控制过程:用户启动仿真运行以后,仿真主线程立即启动一个系统计时器。同时,主线程将系统时钟置零,此后该系统时钟在计时器到1s时向前跳一秒钟,作为仿真的基准时刻。在时钟启动之后,主线程负责系统时钟的推进,而仿真运行过程交由其它线程处理,直至仿真结束(一般仿真时间以24h为一个循环)或用户中止仿真。 (2)时间表的控制。ATS仿真系统是组织列车,按照地铁运营公司编制的班次计划和时刻表运行的。因此,在系统中将运行时刻表作为最基本的时间表,用来规定车站一级的时刻,即到站和出站的时刻等。而对于列车在轨道上运行的时刻,如何时占用轨道、离开轨道、触发信号机以及清除进路等,则需要仿真处理线程根据列车的速度、轨道的实际长度以及轨道和信号机的关系来确定。下面就是一段计算车头占用轨道时间(即“进入下一条轨道”事件的发生时刻)的函数,其中m_odtHTCheckTime记录了所求的时刻, g_SystemTime即为系统当前仿真时刻,该函数在车头刚进入轨道时计算: void CTrain::CaHl eadTrackCheckTime() { intnLength=0; intnSeconds=0; if(m_pHeadTrack! =NULL) {nLength=m_pHeadTrack->GetLength(); nSeconds=int(nLength/m_fSpeed); } m_odtHTCheckTime=g_SystemTime+COleDateTime- Span(0, 0, 0, nSeconds); }2. 2 ATS仿真对象的控制 ATS仿真对象控制的核心是对列车的控制,只要仿真列车运行起来,其他信号点对象就可以根据列车的状态、位置信息按照ATS系统的规定做出反应。各种不同制式的ATS系统中,信号点对象与列车之间的交互,往往存在着不同的方式,并且存在各种各样的支持对象、功能对象的交互方式。这些交互方式均围绕列车仿真运行而得以进行,可通过确定仿真列车的控制框架设计,为其他对象的设计奠定基础。2. 2. 1 列车仿真运行处理过程 处理开始时,从列车管理器中取出对象(一辆列车),根据列车当前的状态,确定如何处理列车的运行。 若列车为平稳运行状态,仿真器则会检查列车车头是否到达下一轨道。一旦到达,则要处理所引起一系列信号点对象状态的变化,并重新计算当前ATP的速度,确定车头占用新轨道的时间,并对车尾进行类似的处理。 若列车为停车状态,则分3个阶段:刚进入停车状态时,将列车的速度置零,并处理停车时各种信号点状态的转换;列车停稳后一般不会有状态变换,主要检测是否有列车启动消息;列车收到重新启动消息后,处理停车到启动的状态转换。 若列车为折返状态,则在进入新的循环之前转载新的时刻表表项作为计划时间表,折返之前一般都存在一个停车的过程。因此,在重新启动时会与站台停车有所不同。2. 2. 2 列车运行状态 (1)进入仿真运行:从列车车头到达出库线开始,到车尾出现在站场仿真器为止的状态。 (2)离开仿真运行:从列车车头到达入库线开始,到车尾离开站场仿真器为止的状态。 (3)列车平稳运行:列车按ATP速度在轨道上运行时的状态。 (4)列车进路处理:当触发信号机且信号机进路开放时,列车即进入进路处理状态,直至列车离开进路并将进路解锁。 (5)列车折返:列车行驶到道岔,且停车后即将重新启动时,进入列车折返状态,直至列车正式启动。 (6)列车进站(减速):从列车发现前方有停车车站开始,到列车速度即将为零时为止的状态。 (7)列车停站:从列车即将停稳开始到即将启动时为止的状态。 (8)列车离站(加速):从列车自停车车站启动开始,到列车速度平稳时为止的状态。ATS仿真系统使用switch... case控制语句完成各列车状态的切换处理过程,通过在各状态处理过程中判断状态转换条件,进行相应的状态转换(见图1)。3 结语 仿真运行框架是ATS仿真系统得以正常工作的核心。ATS仿真系统是离散系统仿真的一种应用,是使状态随着时间的推进,不断进行转移的一类系统仿真,这种仿真主要集中在时钟的控制上。本文在设计ATS仿真运行框架时使用了面向对象的仿真建模框架(OSM)和仿真逻辑控制框架,并在此基础上获得了ATS仿真系统框架类,集中解决了ATS仿真时间控制和对象控制两方面的问题。参考文献[1]冯允成,等,离散系统仿真[S].北京:机械工业出版社, 1998.[2]赵根苗,陈永生.基于三层分布式架构的列车自动监控仿真培训系统的分析与设计[ J].微型电脑应用,2003, 19.