郭彦宏,郑杰良
(西南交通大学 信息科学与技术学院,成都 611756)
近年来,得益于城市轨道交通的大容量运输、快捷安全和节能高效等优点,城市轨道交通是当今及今后一段时间内我国大城市客运交通发展重点[1]。为了适应城市轨道交通的迅速发展,以列车自动驾驶子系统(ATO)为例,目前,学者已经对城市轨道列车自动驾驶做了大量的仿真研究,期望通过仿真的途径获得列车的最优控制方法,使得列车能够兼顾准时性、节能、舒适度和停车精确性得到最优行车策略并以最优行车策略实现自动驾驶。
本文利用微软模拟列车(MSTS,Microsoft Train Simulation)作为地铁运行视景系统底层模型资源平台,将开源项目(OR,Open Rails)作为视景系统的仿真环境,成功将地铁运行视景系统和ATO仿真模块进行接口,利用视景系统和地铁运营现实场景的高度相似,期望将来对地铁列车运行控制系统的研究可以扩展到三维视景平台,使得相关研究或者教学更加直观。
视景系统中包含对场景模型的加载、读取、显示和操作等。视景系统由底层模型文件、模型数据配置文件和上层OR代码组成。
地铁运行视景系统的场景模型需要利用MSTS平台的基础模型和贴图,对地铁视景模型进行建模,视景环境效果–地面视景,如图1;隧道视景,如图2所示。
由于MSTS平台自带的动画引擎不足以满足场景模型显示的流畅度和高逼真度要求,在OR中运用了XNA技术,利用XNA技术的基本框架实现了对MSTS底层模型的加载、读取、显示和操作等, XNA提供了一个基本的程序框架,是一个动作函数库,可以降低编程的成本,缩短开发周期。
图1 地面视景
图2 隧道视景
如图3所示,XNA程序中,Initial()方法完成系统的主要初始化工作后,LoadContent()方法实现了对底层模型的加载和读取,并保证每一种底层模型只读取一次。视景的显示类似于现实中摄像机拍摄,如图4所示,由摄像机Camera类的对象确认“拍摄”的位置和方向,再结合两个矩阵对象(Matric)就可以确定“拍摄”的将要被程序绘制并在显示器上显示的最远和最近视景范围[2],每一个周期Update()方法都会被调用进行视景刷新,若程序未结束则通过Draw()方法绘制已经被确定的视景范围内的所有视景模型。通过键盘按压事件和鼠标点击事件可以改变Camera类的对象和两个矩阵对象的相关属性,类似于重绘,利用每个周期对Update()方法的调用可以绘制改变的视景范围。
图4 摄像机视野
视景系统中可以通过键盘按压事件对地铁列车的驾驶进行相关操作,鼠标点击事件则可以结合键盘按压事件实现不同视角对有列车运行的视景系统进行跟踪观察。以对列车运行的相关控制为例,包含受电弓的升降、换向器的动作、牵引/制动手柄的操作、紧急制动按钮的按压、缓解和车门的开关等。在OR中,通过HandleUserInput(ElapsedTime elapsedTime)方法实现视景系统对不同键盘按键事件的区分,然后根据键值对UserInputCommands实现相关动作命令。其中,UserCommands表示控制命令,Action[]是XNA架构中的模型动作函数数组。
ATO仿真模块用于后台控制列车站间自动驾驶,可以根据站间列车运行实际情况生成ATO目标速度和列车运行速度曲线。针对列车站间运行自动驾驶的过程,文献[3]针对ATO控制提出了一种定时算法用来计算ATO目标速度以保证列车准点运行,并以此为基础设计了节能算法,但是在算法中并没有考虑站间线路数据的情况,可能导致站间运行时间误差累积过大。本文以文献[3]提出的算法为基础,添加了线路数据库,包含各个轨道区段的长度、坡度和曲线等信息,ATO模块根据指定的站间运行时间和线路数据库模拟并计算得到ATO目标速度,确保列车站间运行时间在误差范围之内,优化了定时算法,使得列车在准时运行的条件下实现节能驾驶。
结合文献[3]和文献[4]提出的包含局部优化和全局优化的节能算法,在靠近目标速度VT的右区间依次设置目标速度上限V1和V2,在靠近目标速度VT的左区间依次设置目标速度下限M1和M2。
ATO仿真模块以目标速度实时跟踪视景系统列车客户端运行,在定时条件约束下,为了实现列车客户端的节能运行,应该使列车客户端尽快加速,使速度达到或者超过目标速度较小的上限值V1再保持惰性工况,坡度和曲线会导致列车客户端速度发生较大变化,若列车客户端的速度减少到列车运行速度下限M1时,列车客户端应尽快加速;若速度高于列车运行速度上限V2时应利用制动工况使速度减速到目标速度下限较大值M1,再保持惰行工况,若列车客户端速度减少到目标速度下限较小值M2,则应该尽快加速,列车站间驾驶策略以此循环,如图5所示。如此可以知道列车在站间运行曲线轨迹应满足“尽快加速”–“惰行”–“进站一次制动”。
图5 站间驾驶策略
本文将视景系统和ATO仿真模块进行接口,利用视景系统不仅可以实时、直观地展示ATO的控制效果,还具有丰富的可扩展性,若要对不同的线路进行相关测试或者研究,只需要在虚拟环境中按照实际线路的数据重新“铺设”线路并重新配置线路数据库即可。
在将视景系统和ATO仿真模块进行接口之前,需要配置列车运行线路的线路数据库文件。因为在视景系统中的轨道区别于现实线路的轨道,并没有严格意义上的轨道区段的划分,因此,需要在线路数据库中对视景系统中的轨道区段进行位置划分,并存储全线的位置坐标信息,Update()方法通过列车所处坐标位置即可知道列车在线路中所处的实际轨道位置信息,ATO模块可以根据此刻列车客户端所处的轨道位置信息在线路数据库中获取到该轨道区段及该轨道区段至下个停靠车站之间的轨道区段信息,包括轨道区段的长度、坡度和曲线等信息。
要实现ATO仿真模块对视景系统的底层地铁列车模型的操作,需要在两者之间建立数据通信,视景系统根据通信协议使地铁列车按照ATO模块的行车策略行驶。在视景系统和ATO仿真模块之间采用TCP/IP网络传输协议,在OR中使用C#编程来实现两者的数据通信。实例类MSTSLocomotive的对象代表一个列车客户端,设置相应字段来保存其相关信息,包括车次号、运行速度、牵引/制动等级、位置信息、运行方向和车门状态等,ATO模块则实时接收来自视景系统的列车客户端的运行信息并根据自身控制算法为列车匹配最佳行车策略,对列车的牵引/制动等级进行调整。
视景系统通过数据通信得到ATO模块发送过来的命令字符串后,由系统的Update()方法周期性对命令字符串进行检测并触发相应动作需要执行的方法,以牵引等级的增加为例:
case ”CTI”://命令字符串的值
UserInputCommands[UserCommands.Contol-ThrottleIncrease][1]();//增加牵引等级
Break;
视景系统和ATO仿真模块之间的数据交互,如图6所示。
ATO模块对视景系统列车客户端的速度控制是一种闭环跟踪的控制。在线路数据库配置完毕并且实现了视景系统和ATO模块之间的数据通信后,就可以根据ATO模块内部的控制算法以最佳驾驶策略对列车客户端的运行进行跟踪控制,具体控制流程,如图7所示。
图6 数据交互
图7 视景系统和ATO模块的结合
在测试过程中,需要的硬件为2台PC机,软件包括MSTS平台,VS 2013及运行框架.Net Framework 3.5, PC机的操作系统为Windows操作系统。将一台PC机作为视景系统地铁列车客户端,另一台PC机作为ATO仿真系统。测试结果表明:视景系统和ATO仿真模块成功接口,两者之间能够进行实时的数据交互,ATO模块能够根据视景系统地铁列车客户端实时运行情况计算出最佳驾驶策略并以此控制地铁列车客户端在站间的自动驾驶,可以看到在目标速度的跟踪之下(绿色线条)其V–S速度距离曲线走向符合“尽快加速”–“惰行”–“进站一次制动”的原则,如图8所示。
图8 V-S曲线
本文对ATO内部的控制算法只进行了简单阐述,重点是将视景系统和ATO仿真模块进行接口,并利用ATO仿真模块内部的控制算法对视景系统地铁列车客户端的站间自动驾驶进行跟踪控制,为后期对ATO仿真模块的进一步开发提供了现实可能。在后续的相关研究中会对系统列车自动驾驶过程的各个阶段进一步地完善[5]。
地铁列车的运行是一个复杂的过程,将一些复杂的制约因素用模型库的方式来解决是一个较好的方法[6-7]。本文的研究是将这些模型库整合到虚拟地铁列车和虚拟线路数据库上进行的,具有一定的现实意义,具体包括:
(1)视景系统和ATO模块的成功接口证明其他列控子系统与视景系统的接口完全可行;
(2)目前,国内外已经将列车运行视景仿真平台用于相关教学或者培训当中。未来可优化ATO模块,并将整个列控系统和视景系统进行接口,直观演示列控系统的控制过程,可以有效节约成本;
(3)对于某些即将建设或者还未建成的线路,可以通过视景系统对其进行虚拟场景实现,模拟列车运行,搜集相关数据资料作为参考或评估。
[1]杨永平,边颜东,周晓勤,等.我国城市轨道交通存在的主要问题及发展对策[J].城市轨道交通研究,2013(10):1-6.
[2] Aaron Reed. Learning XNA4.0[M]. O'Reilly Media,2010.
[3]刘海东,毛保华,丁 勇,等.列车自动驾驶仿真系统算法及其实施研究[J].系统仿真学报,2005,17(3):577-580.
[4]丁 勇,毛保华,刘海东,等.定时约束条件下列车节能操纵的仿真算法研究[J]. 系统仿真学报,2004,16(10):2241-2244.
[5]徐 杰,郜洪民,孟 军.城市轨道交通列车自动驾驶各阶段速度控制算法的研究[J].铁路计算机应用,2012,21(11):50-53.
[6]卢衍丹,唐 涛.基于模型库的列车自动驾驶仿真系统设计[J].铁道学报,2001,23(6):50-54.
[7]丁国富,张卫华,刘伯兴,等.列车运行动态仿真研究[J].系统仿真学报,2004,16(8):1697-1700.