周庭梁 张兵建 赵时旻
(1.同济大学交通运输工程学院,201804,上海;2.卡斯柯信号有限公司,200071,上海∥第一作者,博士研究生)
在城市轨道交通领域,随着新技术的不断应用,列车运行控制系统(以下简称“运控系统”)发展很快,功能越来越复杂,性能要求越来越高,对运控系统本身的功能和性能评估也随之变得越来越困难。
作为整个运控系统的设备状态监测和维护辅助系统,信号维护支持系统(MSS)[1]需要与所有运控系统设备(包括车载、轨旁、控制中心的控制设备,以及通信系统设备等)接口通信。目前主要通过利用真实的设备来进行故障模拟和性能测试,其代价较高,环境搭建过程复杂,并且受制于真实设备数量,能够模拟的现场环境范围有限,难以满足产品性能测试需求。如何采用仿真方法来模拟逼真的运控系统环境,用于MSS 系统的测试,以及如何有效地确保仿真测试的性能,成了一个亟待解决的问题和研究方向。
国外一些厂家已经开发了针对运控系统的仿真测试工具,比如西门子公司的VICOS(车辆和基础设施控制和操作系统)T&S 仿真系统可用来培训驾驶员和进行仿真;阿尔斯通公司的FIVP(工厂集成)测试平台,用来对全系统进行场内集成及测试。国内对运控系统的仿真研究开始于20 世纪80年代,虽起步较晚,但也有些具有针对性的仿真系统。
本文对城市轨道交通运控系统的各车载、轨旁等子系统维护接口做了分析研究,针对仿真测试系统通常面临的性能瓶颈问题(即有限的硬件及网络环境下,尽可能地满足仿真容量要求),通过引入随机筛选调度算法,有选择性地丢弃一定比例的信息,达到类似于拥塞控制的效果,确保能仿真出足够数量的信号设备,保证MSS 系统测试正常执行。
MSS 系统主要监测对象为城市轨道交通运控系统,范围涉及列车自动监控系统(ATS)、列车自动控制系统(ATC)、联锁(CBI)、通信等子系统。
MSS 系统主要通过简单网管协议[2](SNMP 协议)与监测对象进行交互,查询和接收设备的状态及故障信息。以上详细协议和接口内容均在文献[2]中有说明,在此不再赘述。在城市轨道交通信号系统中,每个监测设备均可称为一个Agent(代理),每个Agent 里有多个监测点。例如,一个站上的联锁系统就是一个Agent,轨旁的转辙机就是一个监测点;Agent 中所有的监测点信息由SNMP 协议送给MSS。
MSS 系统测试主要包括对运控系统设备实时状态的信息采集、报警接收分析和性能测试等几个方面,往往需要模拟现场大量运控系统设备。目前在有限的网络带宽及数据处理能力的情况下,根据实际测试情况来看,大量设备监测信息的模拟会造成信息处理不及时、网络拥堵等问题,影响系统性能相关测试的有效执行。
由于运控系统中状态信息的多样性,以及紧急程度不同,运控系统设备的状态信息分为设备运行实时状态和设备主动上报的故障报警信息2 大类。对于不同种类的信息处理,系统有不同的宽恕周期。合理利用系统宽恕周期,可以在避免影响系统功能测试的前提下,模拟更多的监测设备,减少仿真测试环境性能瓶颈对系统测试的影响。
具体来说,对于运控系统设备主动上报的报警,一般比较重要,不能随意丢弃。而对于设备运行实时状态,MSS 系统会定期向运控系统设备进行轮询,在轮询超时的情况下会进行宽恕,有限次地尝试再次发出轮询请求,直到收到有效答复。否则,会判断设备已经失去连接。因此,MSS 系统可以容忍仿真测试软件对运控系统设备状态轮询请求的主动过滤。
为了满足仿真性能和容量要求,引入了随机筛选调度算法。在大数据量设备仿真过程中,对仿真数据流进行控制,当单位时间内系统状态信息达到一定数量后,有选择性地丢弃较低优先级的设备运行实时状态,降低对于仿真测试的性能及网络带宽要求。即在有限的仿真环境网络带宽及数据处理能力下,使得仿真平台能够模拟更多的信号设备。
为此,随机筛选调度算法设计如下:通过内置一个优先级递减的队列,控制外部请求和内部输出。当更高优先级的队列为空时才服务低优先级的队列。即当仿真系统需要仿真的运控系统设备数量超过仿真系统的容量时,该调度算法主动筛选低优先级队列的数据包。
在该算法中,设定报警队列的优先级最高,其次将设备状态信息队列分为若干优先级,相应的设备状态信息数据包按照一定的规律设定加权值,并放入对应优先级的队列。如图1所示。
图1 随机筛选调度模型说明
该算法的关键是如何合理地设置设备状态信息的加权值,充分利用仿真测试系统的容量,尽快地将高优先级的设备状态信息返回给MSS 系统。
假定一段时间内,MSS 系统允许单个运控系统设备的某一状态量连续丢失N 次,即MSS 系统连续N次轮询设备状态信息而没有得到反馈,当到第N +1次轮询还是没有得到反馈,则认为该设备已失去连接。即单一设备状态信息的丢失容忍度是N。
仿真测试系统初始化时,将所有仿真设备的设备状态信息的加权值定义为1,每次轮询过程中将未反馈设备状态信息的加权值加1,将反馈设备状态信息的加权值重置为1。则当某一个设备状态信息的加权值升到N 时,表明此设备状态信息必须在下一次轮询过程中发送出去,避免被MSS 系统误认为设备失去连接。
假设仿真测试系统允许在一个时隙内允许发送的数据包极限为T,那么该算法将生成队列n、队列n-1……队列2、队列1 以及报警队列共n +1 个队列。其中队列n 中是加权值为n 的状态量组合,是除了报警队列外优先级最高的队列。该算法的详细描述如下:
①初始化各设备状态量的加权值为1
②在每个轮询周期内
③{
④已反馈的运控系统设备状态轮询请求s=0;
⑤对每个队列n(从高优先级开始依次到低优先级)
⑥{
⑦ If(队列n 状态量个数<=T-s)
⑧{
⑨将队列n 的状态量全部发送出去;
⑩将队列n 的所有状态量加权值重置为1,取出放入队列1;
⑪ s=s+队列 n 状态量个数;
⑫ }
⑬.Else
⑭ {
⑮ 从队列 n 随机抽取 T- s 个状态量发送出去;
⑯ 将上一步骤中随机抽取T-s 个状态量的加权值重置为1,取出放入队列1;
⑰ s=T;
⑱ 将队列n 中未被抽取到的状态量的加权值做加1 操作,并放入队列n+1;
⑲ }
⑳ }
㉑ }
该调度机制会使低优先级队列处于饥饿状态。例如,当报警数据包和高优先级的数据包在一段时间内以100%的输出链路速率到达,调度器将不会为中优先级和低优先级的队列服务。因此,该调度算法有一个极限,就是当报警数据包和最高优先级包的个数之和达到了仿真系统的极限容量C,此时再增加设备数量就会对被测的MSS 系统产生影响。
按照前文的定义,通过Agent 来仿真信号设备。假定Agent 数量定义为A,每个Agent 定义的状态量个数定义为M,报警发生率定义为P。则仿真容量C 与Agent 数量A、每个Agent 定义的状态量个数M以及报警发生率P 成正比,定义如下:
其中,比率K 为常数;
应用随机筛选调度方法后,仿真容量 C 变化为:
由于仿真容量C 一定,故:
基于上海轨道交通10号线的应用数据,在实验室模拟仿真了联锁、ATS 等信号设备,并和MSS 系统进行集成测试。在无随机丢包和报警情况下,模拟了100 个Agent(A),分别包含80 个监测项(M),假定K 为1,根据式(1),仿真容量则为8 000 个。
根据式(2),仿真容量一定的情况下,仿真设备数量理论最大可以达到:
应用随机筛选调度,分别设置随机丢包为1 和2,并将报警发生率设定在10%~100%之间,在相同仿真测试环境,同时不影响MSS 系统功能测试的情况下,做了多组实验测试。图2 显示了实际测试和理论情况下,报警发生率P,随机丢包数L 和仿真设备数量A 之间的关系。
实际测试中,由于报警的存在,会降低模拟仿真设备的数量,当报警发生率为30%,实际能模拟68个Agent,5 440 个监测项,离实际应用相去甚远;应用随机筛选调度算法,当允许丢包1 个,仿真设备数量可以达到104 个,是传统的1.5 倍;当允许丢包2个,仿真设备数量可以达到125 个,是传统的1.8倍,有效地扩大了MSS 仿真测试容量,满足了整个运控系统中信号设备的维护接口仿真测试需求。
根据测试结果可以看到,应用随机筛选调度算法可以显著提高仿真环境模拟的仿真设备数量。允许丢包1 个和2 个时,仿真设备容量分别是应用之前的1.3~1.8 倍和 1.5~2.6 倍,与理论结果基本一致。
图2 测试和理论情况下仿真设备数量与预警发生率之间的关系
针对城市轨道交通信号维护支持系统测试的特点和任务目标,将随机筛选调度方法应用到运控设备维护接口仿真测试系统中,模拟出了运控系统中车载、网络、计算机和轨旁等设备的报警和维护信息,既能确保仿真测试系统的规模和真实性,又能为MSS 系统提供有效的仿真测试环境。实际测试结果验证了该方法的有效性。
[1]周庭梁,张兵建.地铁信号维护支持系统的研究与应用[J].城市轨道交通研究,2009,5(5):39.
[2]W.Richard Stevens.TCP/IP 详解,卷1:协议,第二十五章[M].北京:机械工业出版社,2000.