城市轨道交通列车运行并行计算与仿真

系统仿真学报 Vol. 15 No. 9

JOURNAL OF SYSTEM SIMULATION Sept. 2003? 1234 ?

城市轨道交通列车运行并行计算与仿真

丁勇1,何天健2,冯汝辉2,刘海东1,毛保华1

(1北方交通大学交通运输学院,北京 100044;2香港理工大学电机系,香港)

摘要:列车运行计算是城市轨道交通系统设计的重要工作。基于面向对象的思想和系统理论概念,

设计并实现了城市轨道交通列车运行仿真系统。对系统中的主要计算过程进行 SIMD并行化,设计

了基于SSE的算法,并对代码进行了优化。测试结果表明:应用SSE后系统整体运算速度得到了

大幅度的提高。

关键词:城市轨道交通;列车运行;并行计算;SSE;计算机仿真

文章编号: 1004-731X (2003) 09-1234-03 中图分类号:TP391.9文献标识码:A Parallel Algorithm and Simulation of Train Movement Calculation

on Urban Rail System

DING Yong1, HO Tin-kin2, FUNG Yu-fai2, LIU Hai-dong1, MAO Bao-hua1

(1School of Traffic and Transportation, Northern Jiaotong University, Beijing 100044, China;

2Department of Electrical Engineering, Hong Kong Polytechnic University, Hong Kong)

Abstract: Train movement calculation is one of the most important parts of urban rail system design. Based on the i d ea of Objected-Orientation and the conception of system theory, a design and an implementation of train movement calculation on urban rail system are presented. The paper discusses the methods to accelerate the calculation of train movement. Main procedures have been redesigned by exploiting SIMD parallelism in the PC platform. Lots of optimization techniques have been adopted during their coding procedure based on the Intel○R architecture. Finally, the experimental results demonstrate that SSE can speed up the calculation of train movement prominently.

Keywords: urban rail system; train movement; parallel algorithm; SSE; computer simulation

引言

以地铁、轻轨、市郊铁路为代表的轨道交通是指城市中有轨的大运量的公共交通运输系统,全称叫做城市快速轨道交通。在许多国际化的大都市,轨道交通已成为城市交通的骨干。随着我国改革开放的不断深入,大城市的建设发展日趋繁荣,城市交通矛盾也逐渐严重。为了缓解交通拥挤状况,改善城市环境,减少城市污染,提高人民生活质量,发展城市轨道交通已成为解决大城市交通矛盾的关键。近年来,随着北京地铁扩建、上海和广州地铁的相继建成运营以及北京轻轨线路的逐步开通,我国城市轨道交通的发展规模将会越来越大[1]。

对列车运行过程进行良好的设计是更好地满足运输需求要求并管理好轨道交通系统的基本要求。由于列车运行过程涉及到许多因素,如何准确、快速地计算出列车在各种不同条件下的运行效果并予以评价是列车运行计算的任务。开

收稿日期:2002-10-08 修回日期:2003-01-18

基金项目:交通运输系统模拟部级实验室开放课题(2001-01); 香港理工大学研究基金资助(EE/ P00044)

作者简介:丁勇(1974-), 男, 新疆乌鲁木齐人, 博士生, 研究方向为交通运输系统模拟; 何天健(1966-), 男, 香港人, 助理教授, 博士, 研究方向为电力系统仿真计算; 冯汝辉(1964-), 男, 香港人, 助理教授, 博士, 研究方向为电力系统仿真计算; 刘海东(1974-), 男, 黑龙江齐齐哈尔人, 讲师, 硕士, 研究方向为交通运输系统模拟; 毛保华(1963-), 男, 湖南祁阳人, 教授, 博士, 研究方向为交通运输系统模拟、城市交通规划与管理。发全真意义的列车运行计算与仿真系统可以充分利用现代计算机软硬件技术,真实、快速、准确地计算列车运行过程,为线路工程咨询、工程设计、运营管理人员提供强有力的科技设计手段和辅助分析与决策工具,具有重要的现实意义。我国已经开发了一些列车运行仿真系统 [2~4],主要是可分析城市间单列车条件下牵引计算的软件以及从工程设计角度探讨单列车条件下牵引计算的专用软件系统,而针对城市轨道交通的列车运行仿真软件还需进一步研究与开发。

1 基本理论

列车的运动是在一个复杂多变的环境下,由多因素作用的结果。这些因素主要有:线路条件、列车条件、信号条件、供电参数、计算原则等。列车在运行过程中受到方向和大小不同的力的作用,受力情况非常复杂,但一般在列车运行设计时只考虑列车沿轨道前进方向(纵向)的作用力。与列车运行速度有关的纵向力[5]有三种:牵引力F、运行阻力W、制动力B。列车纵向受力示意图如图1。

图1 列车纵向受力示意图

Vol. 15 No. 9

Sept. 2003 丁 勇, 等:城市轨道交通列车运行并行计算与仿真

? 1235 ?

作用于列车上的合力为:

C=F-(W+B) (1)

其单位合力:

c=1000C/(M*g) (2)

式中,F 为(轮周)牵引力,kN ;W 为运行阻力,kN ;B 为制动力,kN ;M 为列车质量,t 。

轨道交通车辆在线路上运行时有3中工况:牵引、惰行及制动。牵引运行时,作用于列车上的力有牵引力和运行阻力,C=F-W ;惰行时,作用于列车上的力只有运行阻力,C=-W ;制动运行时,作用于列车上的力有运行阻力和制动力,C=-(W+B)。当C>0时,列车将加速运行;当C<0时,列车将减速运行;当C=0时,列车将匀速运行或静止不动。列车运动方程采用速度间隔法推导。速度间隔法,将列车运行速度变化范围划分为若干小的速度间隔,以有限小的速度变化代替无限小的速度变化,并假设在每一速度间隔内的单位合力为一常数,其值等于该速度间隔内的平均速度所对应的单位合力。列车运行时间与速度的关系:

(min)2.0?12c

V V t ?= (3)

列车运行距离与速度的关系:

)()

(41?2

12

2m c

V V S ?=

(4) 方程(3)与方程(4)称为列车运动方程。依据列车运动方程,从列车初始速度开始,可以计算出列车在各位置的速度与所需时间,得到速度与时间、距离与时间的关系,进而得到站间运行时间,这一工作称为列车牵引计算。列车牵引计算是轨道交通系统设计的主要内容,其结果对线路设计、供变电设备布局、列车运营组织均有重要指导作用。

2 系统结构设计

系统根据机车的牵引力、列车运行阻力和制动力,计算列车的起动、区间运行及停车制动的过程,输出速度、时分、能耗等指标。系统可进行单列车的运行仿真,以确定列车在线路上运行的速度、时分情况,同时也可以进行多列车在不同闭塞方式下的双向运行仿真,用以确定列车的追踪间隔,以及相互间的影响等。系统采用面向对象的程序设计方法,将列车、线路等实体视为类来处理。图2描述了本系统的结构。

目前系统在整体结构上分为运行计算和方案评价[6]两个部分。运行计算部分考虑到计算机的特点,设定模拟时钟,分步长对列车运行过程进行仿真,计算得出列车运行过程中每一步长的速度、区间运行时分、能耗等;方案评价部分可以通过建立运行仿真过程所需的参数体系来设计运行方案,在仿真结束后还可以根据需要从不同角度对运行方案进行评价。列车运行有 3种典型的计算模式:①节时模式,即最小运行时间;②节能模式,即探讨在给定线路条件下最节能的牵引方法;③定时模式,在给定线路条件、列车参数和两点间运行时分条件下寻求比较节能的机车牵引方式。针对城市地铁列车还有巡航模式,即除了进、出站外,地铁列车在区间或区间的某一段线路上以某一固定速度即巡航速度运行。通过与国内外相关软件的交流,系统进一步考虑了精度和通用性方面的问题,例如,不再对城市轨道交通线路换算坡道进行化简、不再将列车作为质点来考虑,软件能够同时计算多列车的运行过程,系统的输入、输出界面更为友好,等等。

3 基于SSE 的算法设计

大多数轨道交通系统都是电力牵引,以电能为牵引力。对电力牵引来说,牵引供电计算是非常重要的内容,尤其是在城市轨道交通系统中,列车运行间隔比较小,电网负荷受列车间距的影响非常大,必须进行牵引供电计算。牵引供电计算模块内嵌于列车运行模拟计算部分牵引力、制动力的求解过程中。由于系统在运算过程中每一个步长内都要进行牵引供电计算,如果区间内列车比较多,结点导体数目就比较大,系数矩阵的规模达到100以上时,计算的工作量是非常大的。例如:牵引供电计算部分的系数矩阵的规模192×192, 80%的运行时间都被用在了牵引供电计算上面,所以必须对原有的牵引供电计算系统进行优化设计。

随着PC 处理速度和图形处理能力的提高,PC 已经成为解决工程问题的流行计算机系统。当前,PC 最常用的

Intel ○

R 处理器(Pentium Ⅲ、Pentium 4)增加了SSE (Streaming SIMD Extensions ,单指令多数据流扩展指令集)

[7]

。SIMD 是Single Instruction Multiple Data (单指令多数据)

的首字母的缩写。SIMD 技术在一条指令内完成多对数据运算,实质上通过并行技术,来提高处理器的吞吐量。通常,处理器在一个指令周期只能处理一个数据,如果处理器具有SIMD 能力,那么它就可以在一个CPU 指令周期同时处理多个数据。SSE 支持一种紧缩单精度浮点类型(Packed Single-precision Floating-point ,PSF),PSF 数据是将四个单精度浮点数打包而成。SSE 支持一条指令对 PSF 中的四个单精度浮点数执行相同的浮点算术、比较、逻辑等运算,实现了四个浮点数的指令级 SIMD 并行,可表示为计算式(5),运算符 op 可为 +、-、*、/、逻辑、比较等。SSE 有70条

指令,这些指令对目前流行的图像处理、浮点运算、3D 运算、视频处理、音频处理等诸多应用起到全面强化的作用。

通过研究列车运行计算中的内在SIMD 并行性,利用SSE 加速系统计算。使用SSE ,在单处理器上就可以实现并行计算,基于SSE 的算法因而拥有很广泛的应用基础。

321

032103

32

21100)()()()()(B B B B op A A A A B op A B op A B op A B op A = (5)

牵引供电系统的计算时间主要消耗在如下线性方程组的求解上。

b Ax = (6)

A 为方程的系数矩阵,它的阶数是列车运行计算系统的导体数和所选取的总的节点数的乘积,在该方程中是已知量。

b 是变电所和列车的注入电流的列向量,在方程中是已知量。 x 是供电计算系统的节点电压,是线性方程组中的待求量。 求解方程组(6)的常用方法是LU 分解[8]

,对n ×n 矩阵A 可以通过LU 分解成一个下三角矩阵L 和一个单位上三角U 两者的乘积,即:

b LUx = (7)

在LU 分解过程中,n ×n 矩阵A 中的元素a ij 可按下式计算:

ij kk

kj ik ij a a a

a a ??* (8)

在矩阵A 中,沿着对角线,a ij 代表的数据一行行的计算,而a kj 代表的数据一列列的计算。因此,在每一次内循环中,每一行及每一列的数据可以存储为PSF 类型数据,每一次运算同时处理四个数据,可达到很高的计算效率。而a ik /a kk 则可以看成一个常数,复制四次后也可以存储为PSF 类型数据。基于SSE 的LU 分解算法可表示为:

3,2,1,,3,2,1,,3,2,1,,////+++++++++???j i j i j i j i j k j k j k j k k k

ik

k k

ik k k ik

k k

ik j i j i j i j i a a a a a a a a a a a a a a

a a a a a a (9)

当矩阵L 和U 计算得到后,可以采用前代过程和回代运算求解x :

b x L =′ (10)

x Ux ′= (11)

通过前代过程(10)可以确定中间变量x ’,然后可以通 过回代运算(11)求解出向量x 。在前代过程中,(10)式 可化解为:

∑?=?′?=′1

1i j ij j i i L x b x (12)

SSE 算法同样可以应用在x ’j *L ij 的计算过程中。每次循环时,x ’j 和L ij 中的四个数据可以存储在2个不同的PSF 类型数据中进行乘法运算。而在回代运算中,(11)式可表示为:

jj

m

j n jn

n j j x x x U

U 1

∑+=??′=

(13)

同前代运算相类似的,SSE 算法可以应用在x n *U jn 计算

过程中。每次循环时,x n 和U jn 中的四个数据可以存储在2个不同的PSF 类型数据中进行乘法运算。

4 试验结果分析

第3节的算法利用Intel ○

R SSE C/ C++开发工具采用内在指令函数、向量类库[7]两种方式来开发实现。内在指令函数与相应的SSE 指令一一对应,以 C/C++函数形式来使用SSE 指令。向量类库支持四个单精度浮点数构成的 PSF 数据,用 SSE 方式处理 PSF 数据。SSE 能够快速处理 PSF 数据,在系统计算过程必须将有关数据按PSF 类型组织,并采用16字节的边界对齐[7]。由于列车运行计算结果为单精度浮点类型,系统采用 SSE 计算出的结果能达到要求。基于SSE 的算法可以实现四个单精度浮点数的SIMD 并行,在理想状况下,最大加速比可以达到4.0。但实际提高的性能很难达到这么高,主要原因除了与计算中的可SIMD 并行度有关,还与其它因素有关,如内存大小、算法优化程度等

有关。所以,系统在实现过程中,依据 Intel ○

R 处理器的体系结构,采用零元素判断、循环展开[9]、地址运算等优化技术。

列车运行仿真计算中的主要耗时部分是牵引供电计算,而在牵引供电系统计算求解过程中,时间主要集中在线性方程组的求解上。在线性方程组求解部分,LU 分解的三重循环则占据着主要的计算时间。因为系数矩阵是一个阶数比较大的矩阵,而且在每个时间步长都需要进行更新,每更新一次就要重新进行一次矩阵方程组的求解,当步长为1秒钟或更小时,其计算量是巨大的。因此,有效提高LU 分解速度,对提高整个系统的性能有重要的意义。表1反映了SSE 在LU 分解的应用效果(实验数据是在主频1.6G 赫兹的Pentium

4计算机上测定)。

表1 LU 分解的计算时间比较 (单位:毫秒)

矩阵规模 50 100 150 200 非SSE 0.44 2.88 9.05 21.85 SSE 0.14 0.80 2.36 6.87 加速比 3.14 3.60 3.83

3.18

从表1中可以看出:在线性方程组(6)的LU 分解过程中应用SSE 技术后取得了很好的加速效果,最大的加速比达到了3.83,已经接进了4.0理论加速比。当矩阵规模超过200×200后,加速比有所下降,但依然具有很好的加速效果。图3是城市轨道交通多列车运行仿真示意图。

图3 城市轨道交通多列车运行仿真示意图

(下转第1260页)

描述依据。

3.2.2 想定编辑模块

想定编辑模块负责仿真运行的想定的编辑,包括实体配置子模块、交战管理子模块、海洋/大气配置子模块和脚本编辑器。

? 实体配置子模块:负责确定实体类型,标识号,物理特性,初始位置,初始速度/方位,路航点,武器装备,对抗措施等等,可以与脚本相关联,控制实体在仿真过程的行为。实体可以是平台级的,也可以是聚集级的,充分考虑了实体模型的层次化和模块化,允许添加,删除和修改。

? 交战管理子模块:负责交战过程中实体的加入和消亡,引入生命阈值和受损程度。

? 海洋/大气配置子模块:描述地平面之上和海平面之下的环境特性。结合合成自然环境提供的环境数据和环境模型,可以为仿真初始阶段和仿真运行过程提供大气温度、大气压强、风力、电磁、海洋温度等信息。

? 脚本编辑器:通过脚本编辑器编写实体行为脚本,对实体当前速度、方位和高程的改变进行控制。例如可以通过脚本来控制飞机在什么条件下发射导弹。

所有的配置结果可以通过图形方式在前端界面显示,同时可以进行预演(非实时),分析初始规划,便于即时修改。想定编辑模块可以扩充,根据用户的需求集成用户自己定制的模块。

3.2.3 预编译模块

对脚本进行语法和语义分析,对实体间隶属关系、铰链关系进行错误检查,使前面编辑的想定更为合理。

3.2.4 战场态势显示控制模块

提供类似PVD(Plane View Display)的图形化的编辑界面,用户可以通过鼠标、键盘等I/O工具,利用图标直接在地图上生成用户所要求的动态的,交互的,复杂的,实时的战术环境,也可以通过三维的方式演示仿真运行过程中的战场信息。

3.2.5事后回放模块

可以设置并录制仿真试验中产生的各类实体、事件和数据,形成日志文件支持事后重放和数据分析,录制的时间可以控制,可以快进、回退或跳到某一时刻上。

通过底层HLA/RTI的支持,仿真引擎接收数据采集与模式识别子系统的外部输入,驱动想定系统建立的想定模型的运行,利用事后回放模块进行数据采集,构建了一个基本的地空靶场系统框架。

4 结论

本文从虚拟战场环境对想定系统的需求出发,结合地空导弹靶场试验的应用背景,提出了想定系统的设计规范,并设计了一个想定系统的原型框架。目前,还有许多有待进一步探讨的问题。下一步的研究中重点主要是解决想定生成过程中的模型集成、计算机兵力生成和想定邦员设计等问题。参考文献:

[1] Wade David M, Aronson Jesse. Model Based Simulation Composition:

A Unified Scenario Data Model to Support Composable

Simulation[C]. 1999 Fall Simulati on Interoperability Workshop Papers, 1999, 99S-SIW-044.

[2] http:/https://www.360docs.net/doc/0216133487.html,/products_solutions/STAGE.htm[EB/OL].

[3] https://www.360docs.net/doc/0216133487.html,[EB/OL].

[4] 胡亚海, 彭晓源, 等. 基于Web的仿真中的想定管理[J]. 系统仿真

学报, 2002, 14(3): 403-405.

[5] VPI Inc. Stage Programming Guide[Z]. Virtual Prototypes Inc, 2000.

(上接第1236页)

5 结论

目前,系统已经开发完毕,并且经过了大量的测试,现已通过铁道部鉴定,在多项城市轨道交通项目的设计工作中得到应用,如:“北京城市铁路设计”、“青岛地铁设计可行性研究”、“武汉轻轨系统规划研究”、“西安地铁设计可行性研究”等。

列车运行计算具有很高的内在SIMD并行性,利用SSE 对列车运行计算进行SIMD并行设计,加速了计算过程。利用SSE在单处理器上就可实现并行计算,也使得基于SSE 的并行算法拥有广泛的应用基础。试验结果表明,基于SSE 的算法比传统算法大大提高了性能,充分发挥Intel○R了处理器的性能,显著提高了系统运行速度。参考文献:

[1] 毛保华, 姜帆, 等. 城市轨道交通[M]. 北京: 科学出版社, 2001.

[2] 刘云. 列车运行仿真系统的建模与实现[J]. 铁道学报, 1995, 17(专

辑): 20-26.

[3] 赵明, 汪希时. 移动闭塞条件下列车追踪运行控制研究[J]. 铁道学

报, 1997, 19(3): 61-68.

[4] 贺振欢, 杨肇夏. 等建立地面交通通用仿真系统的研究[J]. 系统仿

真学报, 2002, 14(6): 768-770.

[5] TB/T1407-1998. 列车牵引计算规程[S]. 北京: 中国铁道出版社,

1998.

[6] 毛保华, 何天健, 等. 通用列车运行模拟软件系统研究[J]. 铁道学

报, 2000, 22(1): 1-6.

[7] Intel C/C++ Compiler Class Libraries for SIMD Operation User’s

Guide[EB/OL]. Intel Corporation,2000.

[8] 李学杨, 等. 数值分析(第四版)[M]. 北京: 清华大学出版社,

2001.

[9] Intel○R Architecture Optimization Reference Manual [EB/OL]. Intel

Corporation. http:// developer. intel. com/ design/Pentium III/ manuals.

相关文档
最新文档