VISSIM-COM技术在有轨电车优先控制中的应用

2019-06-17 02:11
铁道运营技术 2019年2期
关键词:电车交叉口路网

章 瑀

(中国铁路上海局集团有限公司杭州电务段,助理工程师,浙江 杭州 310009)

半独立路权下的新型有轨电车与公路车辆共享交叉口,为提高电车的运行效率,交叉口信号通常给予有轨电车一定的通行优先权。在制定信号优先控制策略时,一般借助VISSIM等微观交通仿真工具进行交叉口的路网建模与通行效率评价,进而辅助运营管理的决策。然而对于管理人员而言VISSIM 的建模过程较为复杂,当各仿真输入变量出现较大变化时需重新在软件中修改并进行仿真而不能快速获取评价结果,因此有必要基于VISSIM 所提供的COM(Component Object Model,组件对象模型)接口进行二次开发,为运管者提供方便操作的用户界面及图表化的评价数据显示,使有轨电车的运营管理更加高效。

1 VISSIM仿真的应用

VISSIM作为常用的微观交通仿真软件,广泛用于建模与分析各类交通信号、通道设置下的公共交通和城市交通运行情况,因其底层包含的交通仿真模型都有严格的数学分析或逻辑流程为基础,保证了输出的仿真评价结果对信号优化及工程实施都具有一定借鉴意义[1]。

VISSIM 由交通仿真器与信号状态产生器两部分构成,两者之间通过内部接口交换信号状态与车辆运行检测数据,见图1。交通仿真器包含了各类车辆运动模型,如基于心理-生理驾驶行为的车辆跟驰模型,基于规则算法的车辆换道模型,基于泊松分布的车辆到达模型等。而信号状态产生器则以一微小固定间隔(最小为0.1 s)从交通仿真器中提取车辆运行检测数据,用于确定下一仿真秒的信号状态,同时将该信号状态反馈给交通仿真器。

为实现有轨电车的信号优先控制逻辑,可使用VISSIM 提供的外部信号状态发生器VAP(Vehicle Actuated Programming,车辆感应逻辑编程),该附加模块提供了一个可编程的、基于信号相位及可感应控制的仿真环境,在仿真过程中,通过设置于路段中的检测器实时采集电车运行数据并结合获取到的信号显示信息来实现电车信号的优先控制。此外,通过VISSIM提供的COM接口还可对仿真中的模型参数进行提取和修改,在此基础上通过编程开发用户界面,以便运管人员更加灵活方便地进行仿真输入,获取评价结果。

图1 VISSIM的构成及与COM接口的调用关系

2 有轨电车信号控制策略

目前有轨电车通过交叉口时的信号控制方案主要有固定周期配时控制、绝对优先、相对优先等。

固定周期配时即无优先的信号控制方案,交叉口信号各相位以固定时间周期循环运行,有轨电车运行至交叉口时只能跟随同一方向的车流一起放行,此方案投入最小,也不会对现有交通造成额外影响,有轨电车通行效率较低。

绝对优先与相对优先都是主动优先的信号控制策略[2]。在交叉口接近区段以及离去区段布设电车位置检测器,根据对电车位置信息的检测来实现交叉口信号的调整控制,给予电车通行优先权,具体的调整方法包括红灯早断、绿灯延长、插入相位等[3]。绝对优先即无条件优先,无论有轨电车接近交叉口时当前信号是何种显示,信号机在确保冲突相位关闭的情况下为其开放通过信号,响应优先请求。相对优先则在绝对优先控制的基础上增加了公路交通信号最小绿灯时长的判断条件,保证了当前正在放行的车流能得到最低程度的疏解,避免有轨电车的优先给公路交通造成过多延误与拥堵。

图2 主动优先信号控制流程

图2 描述了主动优先控制下的信号感应控制与有轨电车行为之间的对应联系。当有轨电车通过接近区段的检测器1时,有轨电车发出优先通行请求,若此时交叉口信号机显示的相位与电车通行方向非冲突,则不需做任何信号切换即可使电车通过交叉口;若当前为冲突相位,相对优先下还需要判断此时交叉口信号相位是否已经满足了设置的最小绿灯时长,在满足条件时再根据下一相位是否为冲突显示,进行红灯的早断或者插入可供有轨电车通过的相位,以允许电车驶入交叉口区段。有轨电车经过布置于交叉口出口处的检测器2 时,交叉口区段电车出清,此时根据是否已满足当前信号相位的规定显示时间来决定是否切换至下一相位,至此一次主动优先下的信号控制流程结束。

在VISSIM中进行绝对优先、相对优先等信号感应逻辑控制的实现时,可借助其提供的VisVAP 工具,利用绘制信号流程图的方式并结合获取到的检测器状态来实现所需的逻辑过程。提供逻辑控制函数的动态链接库vap216.dll、相位过渡转换定义文件.pua 以及VisVAP 编译生成的.vap 逻辑控制文件三者一同构成并实现了VAP信号感应控制。

3 VISSIM_COM接口的应用开发

VISSIM 所 提 供 的VISSIM_COMSERVERLib 组件为连接外部的客户端程序提供了新的方法,将VISSIM 作为服务器并通过COM 接口,使客户端程序得以从VISSIM 中获取仿真信息,并可向VISSIM传输仿真参数等控制指令,最终实现对VISSIM仿真过程的控制[4]。

本文将在微软Visual StudioNET 环境下以C#语言实现客户端的界面设计并完成COM 所提供接口方法的使用。在一个新工程中,通过添加引用的方式即可将VISSIM_COMSERVERLib 组件添加进工程。图3为VISSIM_COM 接口对象所包含的层次结构[5],Vissim为根节点,其他所有对象都由其派生而来,如Net(路网)、Simulation(仿真)、Evaluation(评价)等,Net 节点下还包括了构成交通路网的其他要素,如Links(路段集合)、VehicleInputs(车辆输入集合)等,每一集合都可索引至具体的已建模对象,COM提供了若干方法可对每一对象进行特定操作。

图3 VISSIM_COM接口节点层次

3.1 需求分析

1)交叉口线位类型是制约有轨电车通行效率的因素之一,根据不同的线位类型进行建模分析也是VISSIM仿真的基础,故在客户端操作流程的起始需要对线位类型进行选择,常见的有轨电车线位布置有路中直行式、路侧直行式、路中转弯式、路中转路侧等。

2)不同的信号控制策略适用不同的流量背景,故客户端中用户应根据实际调查得到的交通流量及流量组成进行自定义的输入。

3)固定周期配时信号下包含了各相位的绿灯时长,主动优先感应控制下包含了各相位的最小绿灯时长,客户端提供对信号控制参数的设置,并提供信号控制策略的选择。

4)有轨电车的发车时刻、发车频率的合理性也是VISSIM仿真评价的应用之一,客户端提供电车发车时刻的自定义编辑。

5)此外为便于用户可以观察到仿真的运行过程,还提供仿真速度,仿真周期的选择,对仿真得到的评价结果进行图表化的展示,得到行程时间、延误时间、车辆排队长度这三方面的评价数据并提供仿真信息的汇总打印功能。

3.2 详细设计

1)加载既有路网工程文件。加载路网的前提是设计人员已对典型的交叉口路网进行了建模,对主动优先的信号控制逻辑进行了实现并对VISSIM 仿真底层模型的参数进行了初步校核,得到了一个较完善可靠的仿真工程。

作为VISSIM-COM 接口调用层次的根节点,Vissim类所提供的方法是其他路网元素得以定义的基础。如:

Vissim v-tram=new Vissim();//定 义 一 个Vissim类对象

v-tram.LoadNet(“tramcross.inp”);//使用Vissim类的方法加载路网文件

v-tram.LoadLayout(“tramcross.ini”);//加 载 路 网配置文件

调用成功即会打开VISSIM软件,并在窗口中加载指定的路网文件及配置。对于调用过程中的异常,COM 通过返回HRESUTs 来报告错误信息,可在客户端中对抛出的这些异常进行弹窗提示。

2)设置仿真输入参量。用户可以根据电车沿线实际调查所得的交通量,对交叉口的车流量、路口转向比、车型组成进行输入。以设置某一路口的车流量为例:

Net nt=v-tram.Net;//通过根节点构建Net路网类

VehicleInputs.vehinputs=nt.VehicleInputs;//通 过Net类获取仿真中车辆输入集合

VehicleInput.vehinp1=vehinputs.GetVehicleInputByNumber(1);//根据索引号从集合中获取一条

输入记录

vehinp1.set_AttValue("VOLUME",Convert.

ToDouble(w_input.Text));//将客户端的输入数据添加至该记录的“流量”属性中,见图4。

图4 车流量的设置实现过程

对于固定周期配时下的信号参量设置,也采取类似方法。 由根节点不断向下遍历直至SignalGroup(单一信号灯组),通过set-AttValue方法将客户端获取的数据添加入VISSIM 仿真的参数中。对于主动优先下的信号控制,由于COM未提供可读写的接口方法,可将客户端获取到的最小绿灯时间等参量通过文本的方式直接写入工程文件的指定字段中。

3)设置发车时刻及仿真控制。客户端中以表格的形式供用户输入电车的发车时刻,对上下行分别定义两个List(队列)用于存放用户的输入数据。当运行仿真时,程序以仿真时间为上限循环调用COM提供的单步仿真函数RunSingleStep(),当循环至用户自定义的时刻时,上行或下行线路即发送一辆电车AddVehicleToTransitLine()。

循环完成即代表仿真结束,使用根节点的Exit()方法退出VISSIM程序,同时删除已创建的对象实例。

4)评价数据的图表化显示。仿真结束,评价的原始数据主要以文本形式进行存储,可使用.NET中File 类的相关方法进行文本文件的信息处理,提取有效信息进行图形绘制。对于仿真信息的汇总打印,使用WinForm 所提供的PrintDocument 等组件,将用户输入的仿真信息以及评价图表通过DrawString()、DrawImage()等方法进行重新组织编排,将重要信息汇总于一页。

3.3 仿真测试 通过客户端窗口中各控件的事件响应以及对VISSIM_COM 接口的调用,在客户端输入参数进行测试,所实现的仿真控制效果见图5。

图5 客户端效果

对各信号控制策略下的不同电车线位类型交叉口进行多次测试显示,只要在初始建模过程中按照统一顺序进行路网元素的编排,保证车辆输入集合、路段集合等集合中的索引一致对应,客户端程序即可通过索引号获取正确的路网元素,以实现对仿真输入参量的控制,进而提高客户端的通用性。

4 结束语

本文提出了基于VISSIM_COM接口通过NET平台开发客户端供有轨电车运营管理者辅助决策的新思路,并给出了详细的方法与步骤。该客户端程序充分利用了两个平台的优势,通过NET编制的图形界面,实现了对VISSIM在有轨电车优先控制仿真方面的交互,简化了以往直接通过VISSIM进行仿真参数输入修改的繁琐步骤。当然为了提高仿真的真实性,在建模之前应尽可能地进行实地的交通调查,进行底层模型参数的校核,从而得到更接近实际、更具参考价值的评价结果。

猜你喜欢
电车交叉口路网
城市道路平面交叉口的渠化设计
城市道路平面交叉口设计研究与实践
城市道路小间距T型错位交叉口交通组织研究
基于卫星遥感图像自动提取路网与公路路网的校核比对
高速公路路网复合通行卡(CPC)管理方案探讨
高速公路路网内复合通行卡(CPC)调拨方法研究
打着“飞的”去上班 城市空中交通路网还有多远
马鞍山市湖东路与湖南路交叉口交通改善设计
由电车引出的故事
电车奶奶