APP下载

大规模城轨路网客流分布推演的建模与仿真方法

2018-12-13冯佳平贾飞凡孙捷萍李春晓

铁道学报 2018年11期
关键词:路网客流时钟

蒋 熙, 冯佳平, 贾飞凡, 孙捷萍, 李春晓

(北京交通大学 轨道交通控制与安全国家重点实验室, 北京 100044)

近年来,我国城市轨道交通飞速发展,网络化运营成为基本特征。乘客换乘和客流拥堵传播使各线间运营状态耦合性增强,路网客流分布动态与各相关因素呈现复杂的非线性关系。尤其在故障和突发事件等异常运营情况下,准确把握客流分布动态变得更困难,不利于实现科学的运营决策。为获得客流分布动态,常常在客流分配基础上进行客流分布计算,属于较为宏观的客流分布推算方法。这类算法效率较高,但难以准确地考察路网各要素间动态作用关系带来的影响。计算机仿真是实现客流分布动态推算的另一种途径,即通过构建并运行仿真模型完成客流对象状态的推演,获得客流分布的动态变化。相比客流分配方法,这种自底向上的基于仿真的推演方法虽然建模复杂性较高、运算时间较长,但是针对基于客流分布的相关问题具有更广阔的适应性。

在城市轨道交通系统中,计算机仿真被广泛地运用于乘客行为建模与分析、多种运营决策与评估。在基于车站乘客行为的相关研究中,文献[1-5]研究了车站乘客仿真建模方法,文献[6-7]介绍了MicroPedSim、SimPed、Nomad、Legion、STEPS、Anylogic、VISSIM等行人仿真软件在城轨中的应用,文献[8-10]研究了基于仿真的地铁车站应急疏散分析与评估。在线路列车运行仿真方面,文献[11-13]研究了面向线路运输能力分析与方案评估的城轨列车运行仿真模型,文献[14]介绍了RAILSI、TrainSTAR、UTRAS、OpenTrack、Railsys等列车运行仿真软件。在路网层面上,考虑了列车流、客流及其动态交互作用的仿真建模研究还刚刚起步,文献[15]面向路网规划目标,研究了城市轨道交通多粒度的建模与仿真方法。

然而,对于大规模路网,客流动态分布推演面临着仿真运算量巨大、仿真效率低的问题,并行计算则是解决这类问题的有效途径。但在城市轨道交通仿真领域,针对大规模路网客流分布推演的仿真建模和并行方法还鲜有报导。本文面向城市轨道交通全路网的客流分布推演问题,着重研究模型构建、系统仿真状态推演方法、并行仿真时钟协调等关键问题,在大规模路网条件下,实现高效、灵活的城市轨道交通路网客流分布推演。

1 基于仿真的客流推演建模分析

乘客自进入城市轨道交通系统后,随列车运行和乘客在站内走行,乘客所处的位置与状态就不断发生变化,这样,路网上不同线路、列车以及车站等空间设施上所分布的客流量将随时间呈现出动态变化,这就是所谓的客流时空动态分布,简称客流动态分布。

按照系统仿真基本原理,在设置了路网运营初始时刻、需要仿真的时间长度及仿真步长后,路网客流分布推演是在路网客流分布的初始“空”状态基础上,随着仿真时钟的推进,依据分时段客流OD数据和列车运行图数据生成进入路网的乘客和列车,利用仿真模型一步一步更新路网运营状况并计算客流分布状态,直到仿真结束时刻的动态全过程。从这一角度看,城市轨道运营系统是由路网基础设施、列车、乘客、运输组织等多个部分组成的。其中,路网基础设施是路网内列车运行和乘客流动的物质载体和能力约束;乘客利用路网的车站和列车服务完成出行过程,包括乘客到达车站,选择路径,在路径上完成进入车站、通过或驻留某车站设施、上车、下车、换乘、出站等活动环节;列车根据时刻表或调整计划,形成列车到站、停车、出发等状态变化,为乘客的上车、下车状态变化给出必要条件。此外,由列车运行图、列车交路、车站限流方案等形成的运输组织计划与方案,作为驱动列车活动、设施运用状态变化依据,同时也影响乘客的出行与流动。在系统仿真模型构建时,路网基础设施、列车、乘客、运输组织及其动态作用关系都应该成为建模时考虑的基本要素。由此,基于宏观运输流动态特性的仿真建模方法对本文问题的适用性较弱,本文将从运输对象个体行为角度出发,结合研究需求确定底层仿真模型的粒度。

在任一时刻,城市轨道交通系统状态由路网内若干设备设施、列车及乘客等实体状态及其复杂交互作用共同决定。对于拥有数千设备设施、数千趟列车以及数百万乘客的城市轨道交通网络,如北京、上海等城市地铁,在仿真建模时,无论是构建各实体的行为模型,还是设计整个系统的状态推演算法,都面临着网络规模大、模型构成复杂的难题。尤其是在网络客流实时推演的应用中,若还需要根据客流推演精度灵活设置仿真粒度,系统状态及其转移关系的抽象与表示就具有更大的难度。同时,大规模路网客流实时推演的庞大运算量使得并行仿真成为一个可能途径,那么,采用何种仿真建模方法与并行仿真需求相适应也成为需要研究的问题。

2 系统仿真模型的构建

2.1 仿真模型框架

在仿真系统中,列车和乘客是决定系统状态的主导实体。在各自的生命周期内,按照一定的行为规则、在与其他实体相互作用下,列车和乘客均在路网上各自的路径上完成一系列活动或过程,其客流集合和列车流集合在路网上的分布不断发生变化,从而形成系统的状态演变。在此,由一定范围内的大量乘客个体和列车个体构成的客流和列车流被称为“运输流”。

与既有研究的一般仿真建模方法不同,本文按照上下两个层次进行状态转移建模,提出了适用于多分辨率并行仿真推演的“运输流状态网络模型”,并将其与有限状态机模型结合起来实现系统的状态推演。本文建模的核心思想可归纳为如下几点:

(1) 上层从系统中运输流分布的角度出发,实现客流和列车流在路网中空间位置状态的转移,下层则从乘客或列车个体行为的角度出发,描述乘客或列车在路网不同位置上进行状态转移的逻辑关系。

(2) 同时,为使运输流的状态推演模型能够独立于不同的仿真粒度,将运输流状态的抽象与路网基础设施的抽象二者关联起来,构建本文所谓的“运输流状态网络”模型,并以此作为系统上层状态推演的依据。

(3) 而下层状态转移则以乘客或列车进入、离开某类设施及在设施内的活动进行状态抽象,并利用有限状态机模型进行构建。

这样,在不同推演精度要求下,根据不同抽象程度形成不同粒度的路网设施网络模型,而对不同的粒度,与之相匹配的运输流状态网络则可以具有一致的结构描述方式。利用这一优势,本文构建了统一的状态网络推演引擎,在状态网络的遍历过程中驱动各实体的位置状态转移,从而完成第一层次上的系统状态推演。这样,可以在灵活地支持多粒度仿真的同时,提高模型的可重用性和建模效率。由此,本文采用了将运输流状态网络与有限状态机相结合的仿真建模方法进行模型构建,形成了仿真模型框架,见图1。

2.2 运输流状态网络模型的构建

依据仿真的路网,可以构建与其路网拓扑G对应的运输流状态网络拓扑G′,在此基础上,运输流状态网络TN可表示为7元组,即

{CurSimtime,NextSimutime,G′ ,Passengers,

Trains,RouteDecesion,TrainPlan}

其中,CurSimtime和NextSimutime为当前仿真时钟及下一步仿真时钟,属离散的时间点序列,在并行仿真条件下,依据本文4.1节的时钟协调方法进行推进;Passengers为路网上的乘客实集合,每个乘客的个体行为按照2.3节的乘客状态自动机模型进行状态转移;Trains为路网上各线的列车实体集合,每个列车的运行状态按照2.3节的列车状态自动机模型进行状态转移;RouteDecesion为乘客路径选择决策单元,在当前状态条件下,基于乘客出行选择特性,从出发站至目的站间多路径中为乘客选择出行路径,确定乘客在网络中后续将要途径或换乘的网络单元序列,按照文献[10]所述方法实现;TrainPlan为列车运行计划单元,为列车确定其在线路后续运行过程中的车站、区间序列及其计划时刻,在按图行车条件下,其依据由列车交路和时刻表给出。

{UnitID,Type,SubTypye,CurEntity,

PreUnit,NextUnit,CapacityParams,

TrafficFeatureParams,MessageQue,BorderFlag}

节点与弧的主要属性见表1。

针对给定的城市轨道交通路网构建其交通流状态网络模型时,需要根据不同的建模需求抽象出与其描述精细程度相适应的活动,并从承载相应活动的角度出发来定义网络中的节点和联弧,进而构建运输流状态网络。

例如,为网络化运营决策服务的实时客流推演所关注的列车活动及运行过程主要包括列车出段、入段、进站、停站、出站、折返、区间运行等环节;对于乘客出行活动及过程,则关注乘客到达车站、进站、站内走行、候车、上车、乘车、下车、换乘、出站等,一般可忽略列车或乘客在某一时刻的精确位置、速度、加速度等细节。为满足这种精细度要求,可以抽象出各类节点与联弧以承载上述相应活动环节,见表2。其中,某些节点和联弧仅承载乘客或列车活动,某些则属于乘客与列车共用。对于更精细的客流推演需求,则可以抽取出更细致的活动并增加相应的节点和联弧,采用类似的方法构建出更细粒度的运输流状态网络。

表1 节点与联弧一般化表述的属性说明

表2 网络节点联弧与实体活动的承载关系

对于一个局部路网示意见图2(a),所构建的运输流状态网络拓扑G′ =(V′,E′)见图2(b)。

2.3 系统状态推演方法

在某一仿真时刻,各乘客和列车实体分布在状态网络中的某些单元上,所有实体在路网上的位置与活动的整体状况构成了系统状态的一个映像。系统状态推演的核心在于,随着仿真时钟的变化,推动各乘客和列车实体在客流状态网络中各节点与联弧上的位置变化,并完成在各位置上的相应活动下的状态转移。

对于路网中任意具有EntityID编号的乘客实体ePassenger, 假设该乘客实体的当前逻辑时间为nowtime,承载当前乘客实体的状态网络节点为curunit(curunit∈(V′∪E′)),下一状态网络节点为nextunit(nextunit∈NextUnit),本文用8元组(nowtime,EntityID,curunit,checkstatus,nextunit,IMessQue,OMessQue,FSM-P)描述乘客实体;类似的,对于列车实体eTrain,可用8元组(nowtime,EntityID,curunit,checkstatus,nextunit,IMessQue,OMessQue,FSM-T)进行描述。

其中,checkstatus为状态推演扫描过程中该实体的访问状态;IMessQue为实体状态转移前的消息;OMessQue为实体状态转移后产生的消息;而FSM-P和FSM-T则是本文构建的乘客行为有限状态机模型FSM-P(Finite-State Machine for Passenger) 和列车运行有限状态机模型FSM-T(Finite-State Machine for Train),见图3,各状态与条件定义见表3、表4。在当前仿真时钟和系统状态下,在状态转移的时间条件满足的基础上,再依据不同的状态条件去触发FSM-P或FSM-T,可以将各实体转移到下一个状态。

表3 FSM-P的符号说明

状态符号含义状态条件符号含义PQ1进站TP1后续节点对应设施的能力约束条件PQ2站内某联弧设施内行动TP2后续联弧对应设施的能力约束条件PQ3站内某节点上行动TP3列车停靠站台∩开门∩列车容量非满载PQ4到站台候车TP4允许发车(区间运行弧对应设施能力约束)PQ5乘车运行TP5车站为乘客的终点PQ6下车到达站台TP6TRUEPQ7出站TP1′,TP2′ ,TP3′ ,TP4′分别为TP1, TP2,TP3, TP4的“非”

表4 FSM-T的符号说明

进一步,本文构建了状态推演引擎,通过遍历运输流状态网络TN并触发相应实体的FSM-P或FSM-T更新客流和列车流状态,以实现系统状态推演。算法流程见表5。其中关键事件CriticalEvent和关键事件注册消息CEInfoRegister用于实现各子域间的仿真时钟协调,其含义和用法将在3.2节中阐述。

表5 基于TN遍历的系统状态推演引擎算法

3 并行仿真方法

在网络化运营条件下,基于个体行为模型的路网客流推演仿真规模巨大,对仿真运算能力提出了严峻挑战。采用并行仿真技术需要解决的两个核心问题在于并行仿真任务分解与时钟协调方法。

3.1 基于网络流量的任务分解算法

本文采用基于功能和域相混合的方式进行仿真任务分解,其中,核心仿真模型按照“域”划分为多个仿真运算节点,其分解方法将影响仿真并发度与运算效率。在城市轨道交通系统中,除了少数城市有一些线路具有跨线运行条件外,多数线路上的列车基本在同一条线内运行。乘客自车站进入城市轨道交通系统后,因乘客OD点和路径选择的不同,其出行过程将包括若干线路内的运行活动及线间的换乘活动。可见,列车和乘客的活动均是以线路为基础而展开。因此,为更好地适应轨道交通系统的特点,与一般的道路交通并行仿真系统中以局部区域“面”划分任务的方式不同,本文以“线路”为基本单位进行仿真任务的划分。由于不同的划分结果对并行仿真效率有重要影响,合理的划分结果应尽量减少任务划分后不同仿真节点间通信开销,并尽可能保持各仿真节点的负荷均衡。

对于一个拥有线路集L(包含m条线路)的路网,路网拓扑可用G=(V,E)表示,其中E为具有断面流量权重的边(区间)的集合,V为具有车站流量权重的节点集合,包含换乘站VT和非换乘站VS两个子集。任务分解的工作就是根据客流仿真节点数量n将L划分为n个子集L1,L2,…,Ln,所有子集的元素个数总和为m,其中Lu∩Lv=Φ(u,v=1,2,…,n,u≠v),Lu,Lv∈L。设w(VTij)为衔接线路集Li与Lj间的各换乘站的换乘客流总量,i,j=1,2,…,n,w(Li)为线路子集Li内部中所有线路客流总量,则任务分解的工作在于确定L的每个划分子集,使得各子集间w(Li)的偏差及∑w(VTij)最小化。分解后形成各个域边界,并将边界车站各接入节点与接出节点的BorderFlag标记为TRUE。

(1)

(2)

(3)

3.2 仿真时钟协调机制与算法

由于其组成部分被分解,并行仿真系统需要采用一定的时钟协调机制来维护系统的时空一致性。按照前述并行仿真策略,城市轨道交通路网运营仿真核心模型可划分为若干个仿真子域,一个子域内又包含若干个列车运行仿真器和乘客活动仿真器,由此,本文分两个层次来实现仿真时钟协调:

(1) 仿真子域内时钟协调。同一个子域内的列车与乘客交互作用较频繁,且各实体状态变化速度相差不大。因此,可以在子域逻辑时钟的约束下,由该子域的状态推演仿真引擎触发该步长内所有的实体状态转移,这是一种内置的强同步手段。

(2) 子域间仿真时钟协调。为了提高并发度,对于不同子域的各仿真器,并不需要在每个仿真步长而是在某些特定情况下才与其他子域保持同步。在保守策略基础上,本文设计了一种基于关键事件的协调方法,以简单高效的方式实现各子域仿真时钟的协调。

基于关键事件的仿真时钟协调机制的基本思路是,分析需要实现同步的情形与时机,将引发同步的事件抽取为关键同步事件。产生该事件的仿真器所在的子域称为Master,其他相关的子域称为Slave,按照Master发起、Slave响应的方式进行同步,实现各子域仿真逻辑时钟的协调。

由于列车的进出站决定了车站乘客活动的变化,同时上线后的列车在各站的到发时刻具有较强的计划性和时间约束,因此,可将衔接相邻区域的换乘车站(称区域分界站)内列车进站、出站事件作为启动不同子域仿真同步过程的关键事件CriticalEvent。而在仿真推进中的不同时刻,产生关键同步事件的列车可能不同,因此,发挥主导作用的Master也会随仿真时间而动态变化。

在仿真状态推演时(见表4算法),当形成CriticalEvent后,将向各相关子域注册事件的所在网络单元、列车及发生时间(.time)等信息。同时,接收到CEInfoRegister消息的子域按逻辑时间顺序将其放入队列,并依据本子域是否为事件的生成者,将发生时间最早的CriticalEvent定义为“最早主同步事件”MCE或“最早从同步事件”SCE。另规定,各关键事件的产生者只能够向后更新其预计发生的逻辑时间。

在仿真推进过程中,主要依据下一步预计逻辑时间t′以及MCE、SCE的时间time数值大小,按照下述原则进行时钟协调后再调用ScanStateNet算法完成本次时钟推进,各子域在时钟协调过程的动态图模型,见图4。

(1) 若t′小于其他二者,表示该子域下一步不会执行到或者跨越同步事件,则该子域处于“自由推进”状态FreeStep。

(2) 若子域下一步即将执行到MCE事件,则该子域进入“主同步开始”状态MasterSynchStart,发送“启动同步指令”SynchCommand后进入阻塞状态MasterSynBlock,待其接收到其他子域发来的与MCE在时间和列车编号均匹配的“响应同步消息”SynchRespond后被唤醒 ,进入“主同步完成”状态MasterSynComplete。

(3) 若子域下一步即将跨越SCE时,则该子域进入“从同步开始”状态SlaveSynchStart,在未接收到该事件的Master发送来的SynchCommand指令以前,进入阻塞状态MasterSynBlock,直到被主同步指令唤醒后发送SynchRespond消息并转变为“从同步完成”状态SlaveSynComplete。

4 仿真系统构建与应用案例

运用本文提出的并行仿真方法,利用一台4核计算机,在Windows操作系统 .Net开发环境下,作者使用C#编程语言自主开发了城市轨道交通运营并行仿真系统,系统主要功能模块构成见图5。利用所构建的系统,以北京市轨道交通系统作为背景和研究对象,进行路网运营状态的实时客流推演仿真。

按照本文的混合式分解策略,首先将系统按功能分解为仿真数据加载、仿真运行过程动态展示、仿真指标计算与展示、仿真实验管理与运行控制、仿真数据采集与存储、核心仿真器等任务。进一步,对核心仿真器实施基于区域的任务分解。本次仿真对象共包括16条线路,即L={l1,l2,…,l8,…,l16},依据每条线路的客流量Qp和各线路间的日间平均换乘量TQpq,利用本文1.2任务分解模型求解后得到各子集集合分别为L1={l1,l4,l15},L2={l5,l6,l9,l11,l13,l16},L3={l2,l3,l12},L4={l7,l8,l10,l14}。根据域分解的结果,核心仿真器再次被划分为4个子域。这样,将分解后形成的多子任务放到多核计算机上进行并行仿真运算,可以对路网运营状况进行快速仿真推演,从而输出各仿真时刻的系统状态、分时段的运营动态指标并进行存储。运用并行仿真技术,在仿真时钟的步长设为1 s的情况下,本案例的全网全日客流量为976万人,自运营初始时刻04:30到运营结束时刻23:59,完成一次全路网仿真推演运算的最大机器耗时为3.9 s,体现出并行仿真在运算速度上的优势。

在本仿真实例中,通过对路网范围各线各站的客流动态分布仿真推演,在各仿真步长可以获得各乘客所在位置、各列车位置的动态变化,并得到各站进出站量、换乘量、各断面流量等客流分布数据的动态变化。同时,为了进行仿真检验,本研究从实际运营中获取当日各时段(每15 min)的运营数据与仿真结果进行对比。按全网各站各分时出站客流数据进行检验时,得到仿真平均相对误差为10.2%,按照全网各区间分时段的客流断面数据进行检验时,仿真结果的平均相对误差为14.5%。实际断面数据与仿真数据的对比情况,见图6。

利用该仿真系统,进一步可进行多种仿真分析与评估,例如,识别运营当日可能出现的客流拥堵及发展态势。仿真时刻07:35路网客流分布状态见图7,其中深红色圆圈和线条代表出现了严重拥堵的车站和列车内拥挤的区间。相应车站(立水桥、西直门、西二旗、军事博物馆等)在其拥堵方向的站台乘客聚集人数的动态变化,见图8,可见某些车站因大量乘客留乘而出现站台客流急剧聚集,造成拥堵。在此基础上,依据一段时间内的仿真输出数据,可以制定相应的控制策略以缓解拥堵状况,为提高运营安全与服务水平提供支持。

5 结论

城市轨道交通路网客流分布动态推演对网络化运营决策具有重要支撑作用,本文面向大规模路网研究了客流分布动态推演建模与并行仿真方法,已完成的和下一步的研究工作主要包括:

(1) 提出了适用于大规模路网多分辨率并行仿真推演的“运输流状态网络模型”,并将其与有限状态机模型结合起来,构建了包含两个状态转移层的仿真模型架构。给出了运输流状态网络TN的建模方法,构建了状态推演引擎、列车有限状态机模型FSM-T和乘客有限状态机模型FSM-P,给出了状态推演算法,即,通过状态推演引擎遍历TN并触发相应实体的FSM-P或FSM-T来更新客流和列车流状态,使状态推演高效而灵活。

(2) 采用混合策略进行并行仿真任务分解,以区域间换乘量和客流量偏差最小为目标进行域划分方案的优化,提高了仿真的并发度。提出了分别按子域内和子域间两个层次实现时钟协调的机制,对于子域内的时钟协调,提出了一种基于关键同步事件的仿真时钟协调方法,以简单高效的方式实现并行仿真的时钟推进。

(3) 以北京地铁为例进行了仿真验证。未来的研究方向在于考虑实时数据接入条件下的客流推演,进一步提高仿真模型精度及并行仿真效率。

猜你喜欢

路网客流时钟
客流增多
别样的“时钟”
城市轨道交通节假日期间大客流行车组织思考与实践
古代的时钟
打着“飞的”去上班 城市空中交通路网还有多远
省际路网联动机制的锦囊妙计
首都路网 不堪其重——2016年重大节假日高速公路免通期的北京路网运行状况
路网标志该如何指路?
有趣的时钟
时钟会开“花”