APP下载

城轨三维电子沙盘中列车运行仿真的研究

2013-11-26郎诚廉

铁路计算机应用 2013年8期
关键词:城轨信号灯列车运行

曹 磊,郎诚廉

(同济大学 电子与信息工程学院,上海 200331)

虚拟仿真技术就是用一个虚拟的系统模仿另一个真实系统的技术。目前在我国,虚拟仿真技术广泛应用在城市规划、大型工程漫游、数字化酒店、展会、博物馆展示系统等领域。而电子沙盘仿真也是虚拟仿真技术在实际中的运用之一,可应用于国家军事方面,为军事作战和指挥提供三维模拟地形环境,为指挥者提供决策帮助。

本文介绍利用MultiGen Creator三维实体建模软件设计的城轨三维电子沙盘以及在沙盘中使用OSG实现列车实时运行可视化仿真的研究。通过对列车在三维空间中位置定位算法的研究,用计算机编程控制电子沙盘中动态的场景,直观准确地演示列车在电子沙盘中运行状况和运行过程。从虚拟的三维场景中体验比较真实的可视化仿真效果,加深对城轨列车运行系统特点的理解与认识,实现教学演示、模拟操作等功能。

1 城轨三维电子沙盘模型的建立

目前广泛使用物理沙盘来研究城轨列车系统,但物理沙盘有明显的缺点,例如:沙盘模型不易建立和维护,模型修改复杂和扩展性差,所以无论从时间和经济方面考虑,建设物理沙盘来研究城轨系统都是巨大的浪费。而电子沙盘与物理沙盘相比,除了可以研究城轨列车系统功能外,它的模型建立简单,设计和建设成本低,模型维护和修改方便灵活。基于电子沙盘这些优点,以计算机为工具使用虚拟现实技术建立城轨三维电子沙盘,搭建城轨列车的实验平台,对城轨列车运行系统研究和城轨技术发展具有十分重要的意义。

使用MultiGen Creator 3D建模软件建立城轨三维电子沙盘,沙盘由轨道、道岔、车站、信号灯、周边房屋建筑模型组成。下面对这些模型建立进行说明:

(1)将Openflight API和VC++程序设计语言相结合,编写自动建立大面积三维轨道模型的程序,模型和现实轨道是1:1的三维模型,真实模拟列车的运行轨道。

(2)使用MultiGen Creator软件在轨道模型的基础上添加了车站模型,实现真实的列车运行线路。

(3)为了模拟列车在轨道上运行,增加了列车的模型。

(4)添加信号灯和道岔模型来模拟列车变轨情况。

(5)为使三维沙盘更接近现实,添加了轨道周围环境的模型,主要包括居民房、树木等模型虚拟周围环境。城轨三维电子沙盘如图1所示。

图1 城轨三维电子沙盘

2 电子沙盘中列车运行

OSG是一个基于工业图形标准OpenGL的高层次图形开发API接口,即三维渲染引擎。通过它能够更加快速、便捷地创建高性能、跨平台的交互式图形程序。其优点显而易见:开源和平台无关性,它还封装并提供了数量众多的提升程序运行性能的算法、动态数据分页机制,以及对其他语言系统的(包括Python、C#,C++)封装支持。OSG的核心代码支持多种场景裁剪技术(Culling)、细节层次节点(LOD)、渲染状态排序(State Sort)、顶点数组,VBO、PBO、FBO、OPenGL着色语言等,以及场景动态调度、多线程渲染等各种机制。OSG高效的场景驱动渲染功能结合C++面向对象设计语言编写三维电子沙盘中列车运行的仿真程序,可视化展现出沙盘中列车运行的过程。

仿真列车运行的流程如下:

仿真驱动程序开始先载入已经建好的城轨三维电子沙盘模型到视图场景中,读入所有的轨道线路数据,然后初始模型的位置工作和增加相应的事件处理类addEventHandler(new Event-Handler),实现和场景的交互控制并实时接受消息,在自定义函数中计算和处理数据和指令信息。启动列车仿真线程,在该线程中处理列车的运行过程。循环仿真程序是三维绘制和交互过程,判断是否有外部控制信息,然后根据仿真线程中列车运行的位置绘制更新场景中的列车模型,实现列车运行可视化仿真。仿真程序流程如图2所示。

图2 仿真程序流程图

(1)创建场景:建立一个osgViewer::Viewer类的对象。

(2)加载模型数据库:首先将已经建好的城轨三维电子沙盘模型加载到所建场景中,即对场景数据库初始化。然后组织节点关系,建立一个拓扑图来体现模型的基本关系。同时创建列车仿真线程,最后加载组织后的模型到所建场景中通过"setSceneData(root.get())"实现。

(3)最后进入循环,进行列车节点的绘制与更新,同时接受并响应外部控制信息。

3 列车仿真运行

模拟列车在沙盘中的运行情况,利用定时器仿真列车运行时钟,定时器每次到1 s时,列车的仿真时钟增加1 s,然后仿真时钟与列车运行时刻表比较,组织和控制列车运行。列车时刻表规定列车在一个车站到达和出发(或通过)的时刻、列车在区间的运行时分、列车在车站的停站时分、折返站列车折返作业时间以及列车出入场时刻。并且在定时器中根据列车运行情况调整列车的速度,计算出列车运行距离,然后绘制和更新列车在电子沙盘中的位置,实现列车的运行。

3.1 列车运行过程中动态模型的控制

整个三维电子沙盘场景模型分为2类:静态模型和动态模型。静态模型分别是轨道模型、车站模型、周边环境模型。这些模型只要首次载入场景视图中就保持固定不变,列车运行过程中它们是相对静止不动的。动态模型有列车模型、道岔DOF模型和信号灯模型。道岔DOF模型,信号灯模型根据轨道前方进路、轨道区域占用情况、道岔的状态信息进行自动控制。信号灯有3种状态:红色、蓝色,白色。当列车前方道路被占用时,信号灯为红色表示列车禁止前行,应在此停车;当道岔DOF模型打开时信号灯变蓝色表示列车要直行;道岔DOF模型处在合上的状态信号灯变白色表示列车侧行。场景中主要用键盘控制道岔尖轨的转动,程序中添加了基于GUIEventHandler的派生类KeyBoardHandler来作为传递给场景的键盘事件处理终端,通过重构handle函数的方法,获取实时的键盘输入,实现自定义handle函数实现道岔控制,根据道岔的状态通过切换Switch节点改变信号灯颜色,道岔和信号灯的效果如图3所示。

图3 道岔与信号灯效果图

3.2 列车速度控制

列车仿真运行过程中,设定列车的最大限速度90 km/h,加减速度a=1 m/s2。以列车在轨道上2站台之间运行为例子,说明列车运行过程。程序中从列车时刻表得到在2站台间列车运行时间,然后根据站台间的距离为2 km,计算出仿真列车运行的速度曲线如图4所示。

图4 速度曲线图

列车开始出站台的初速度为0,仿真程序中设置定时器的定时间隔Δt,每次定时时间到来,计算列车当前速度和列车实际行驶距离:

公式(1)中vk+1是当前列车速度,vk是上一次刷新的速度,Sk+1列车当前距离,Sk上一次列车距离。 列车在三维空间中的位置是(x,y,z,h,p,r),(x,y,z)是列车坐标值,(h,p,r)表示列车方位角。列车是沿着已建好轨道线路模型运动,整个列车轨道线路是由多段曲线组成,每条曲线是由一段段直线段组成,曲线数据结构存储的是每条直线段端点在三维空间中的坐标(x,y,z,h,p,r)和曲线长度,曲线数据结构如表1所示。

表1 轨道曲线的数据结构

仿真过程中,首先要确定当前列车处于整个曲线段的哪个区间内,对应的距离位置为(Sn,Sn+1),则相对于曲线起点的位置偏移为ΔS=S_Sn,该段曲线的起点坐标为(xn,yn,zn,hn,pn,rn),列车空间坐标(x,y,z,h,p,r)计算公式:

随着列车行驶距离的不断增加,根据公式(2)计算出列车位置坐标(x,y,z,h,p,r)也是不断变化的,通过OSG编程驱动场景循环绘制和更新列车在三维沙盘场景中位置,实现列车沿着轨道光滑的行驶。

4 结束语

本文主要介绍了城轨三维电子沙盘中主要的模型设计与建立,并使用OSG三维渲染引擎实时的渲染和控制场景中的动态模型,仿真列车在电子沙盘中的运行过程。城轨电子沙盘能够高效、精确地模拟城轨列车的运行环境,最大限度地接近现实情况,解决城轨物理沙盘建立和修改不灵活问题。随着城轨系统的发展,电子沙盘能够及时、灵活地扩展城轨沙盘的模型和周边环境模型,作为实验平台展现城轨列车运行过程,为城轨交通系统的项目设计、可行性研究、立项建设乃至运营过程中列车控制与监控设计提供实验依据。

[1]肖 鹏,刘更代,徐明亮. OpenSceneGraph三维渲染引擎编程指南[M].北京:清华大学出版社,2010.

[2]王 锐,钱学雷.OpenSceneGraph三维渲染引擎设计与实践[M].北京:清华大学出版社,2009(11).

[3]谭浩强. C++程序设计[M].北京:清华大学出版社,2004.

[4]赵根苗,陈永生. ATS仿真培训系统的设计与实现[J].城市轨道交通研究,2004,7(1):55-57 .

[5]余向海.轨道交通列车自动监控系统模块分析[J].电子工程师,2000(5).

[6]姜坚华.上海轨道交通线ATC系统的比较[J].城市轨道交通研究,2003,6(2):56-59.

猜你喜欢

城轨信号灯列车运行
城轨CBTC系统改进方案的分析探讨
改善地铁列车运行舒适度方案探讨
城轨跨站开通时软件贯通方案设计
交通信号灯
CBTC系统列车运行间隔控制仿真研究
城轨屏蔽门控制传输技术的设计与实现
信号灯为什么选这三个颜色?
基于可靠性的城轨车辆维修模式及应用
列车运行控制系统技术发展趋势分析
安装在路面的交通信号灯