第三节 列控系统行车许可使用实验
一、实验目的
理解列车运行控制系统地面设备工作原理以及车载设备使用MA的原理。掌握列控系统车载设备基本工作原理,初步具备解决列控系统实际工程问题的能力。
二、实验原理
1.列控系统行车许可生成原理
列车运行控制系统(本节以CTCS-2级为例进行行车许可使用实验介绍,后文简称列控系统)是基于轨道电路和应答器传输列车行车许可信息,采用目标距离模式曲线监控列车安全运行的列车运行控制系统。对于列控设备来说,行车许可终点就是列车前方被占用闭塞区入口,列控车载设备为实现监控列车运行速度的功能,必须确定前方被占用闭塞区的入口位置和入口速度,以及车头到行车许可终点之间的线路数据和限速信息。
列控系统地面设备中,轨道电路通过发送18个低频信息,连续向车载设备发送列车前方空闲闭塞分区数量信息以及列车接近的车站信号机开放经道岔侧向位置进路信息,但无法发送确定的前方被占用闭塞区入口位置和道岔侧向进路的长度及限速等。
因此,在轨旁安装应答器(属于点式信息传输设备),来进行闭塞分区长度信息和限速信息的传输。其中,使用区间无源应答器来传输闭塞分区的长度、线路限速和进路信息,使用有源应答器来传输进路信息和临时限速信息。
当列控车载设备接收到轨道电路及应答器传输的信息后,对这些行车许可相关的信息综合使用,生成进行目标距离模式曲线控制所需要的信息。行车许可生成原理如图1-7所示。
图1-7 行车许可生成原理
2.列控系统行车场景
列控系统中,列车运行可分为区间行车和站内行车,其中站内行车的典型场景包括正线接/发车、侧线接/发车、侧线大号码道岔接/发车、引导接/发车等,在本实验中,我们考虑站内接车的情况。不同的场景中,轨道电路的码序和行车速度要求也不同。
当接车信号未开放时,列车的行车许可终点应在进站信号机,对于车载设备应按照机外停车的方式进行模式曲线计算和速度防护。其轨道电路码序及模式曲线如图1-8所示。
图1-8 机外停车
当接车进路已排列,进站信号机开放后,则列车根据进路不同分别进行控制。
若为正线接车进路,则行车许可终点延伸至出站信号机,覆盖正线股道,列车即将进入正线,停在出站信号机之前。其轨道电路码序及模式曲线如图1-9所示。
图1-9 正线接车
若为侧线接车进路且接车进路上最小道岔为18号以下道岔时,行车许可终点延伸至出站信号机,覆盖侧线股道,列车即将进入侧线,停在出站信号机之前。在接近区段发UU码,当列车行至该区段时,通过码序得知即将进入侧线,并且道岔要求限速40km/h,则车载设备将接近区段的出口速度设为40km/h,以此为目标速度控制列车运行,并且在通过道岔后,根据实际进路长度计算至行车许可终点(进路终点)的限速曲线,控制列车运行。其轨道电路码序及模式曲线如图1-10所示。
图1-10 侧线接车
若为侧线接车进路且接车进路上最小道岔为18号的大号码道岔时,与侧线小号码道岔接车流程相同,只是接近区段发UUS码,车载设备得知道岔要求的限速为80km/h,以此为目标速度控制列车运行,并且在通过道岔后,根据实际进路长度计算至行车许可终点(进路终点)的限速曲线,控制列车运行。其轨道电路码序及模式曲线如图1-11所示。
图1-11 侧线大号码道岔接车
若为引导接车进路,则接近区段发送HB码,车载设备进入引导模式,该模式存在模式限速40km/h,因此车载设备需将允许速度立即设置为模式限速,且维持到通过咽喉区的无码(B码),列车进入股道后,再根据行车许可终点计算模式曲线,控制列车运行。其轨道电路码序及模式曲线如图1-12所示。
图1-12 引导接车
3.列控系统车载设备超速防护功能工作原理
根据列控系统的工作原理及典型场景,列控车载设备完成超速防护功能,是通过如图1-13中的基本流程实现的。
在一个工作周期中,首先完成列车的测速测距,得到列车当前的走行速度和走行距离,然后读取地面信息,完成行车许可信息的传输,分别接收轨道电路的轨道电路低频信息,再接收应答器信息,并从中将轨道区段长度及限速信息进行解码,最后,完成车载超速防护功能,这样结束一个工作周期,进入下一个工作周期,循环运行,完成列车的实时监控。
其中,列车超速防护功能进一步展开,可见有了轨道电路码和应答器信息的输入,其基本工作流程如图1-14所示。车载设备所需要计算的限速分为两部分:速度—距离模式曲线上的线速和线路本身存在的静态限速,车载设备应综合考虑这两部分限速,完成对列车的超速防护。因此,车载设备根据之前从地面获得的闭塞分区长度、线路限速、轨道电路码、当前速度和当前位置,首先能够根据轨道电路码和闭塞分区长度,确定EoA或LoA,即根据列车的当前走行距离计算到目标点的距离以及目标点限速,确定目标距离以及目标速度后,计算列车的距离—速度防护曲线在当前位置的曲线限速;再根据列车当前所处的位置和应答器提供的线路限速信息,得到当前点所对应的线路限速值,综合考虑这两部分限速后,能够确定列车在当前位置的最终允许速度值,根据这个允许速度,完成与实际速度的对比,采取超速防护措施,即超过允许速度就要输出制动,若速度在允许速度以下,则缓解制动。
图1-13 车载设备基本工作流程
图1-14 列车超速防护功能基本工作流程
三、实验环境
1.实验仿真环境使用方法
根据上述车载设备超速防护功能原理,在本实验中,我们模拟了一个列车运行控制系统,需要实验人员对列控车载设备超速防护功能进行具体实现。
在这个列控系统仿真环境中,模拟列车运行的线路如图1-15所示。
图1-15 列车运行线路
为了简化起见,将列车运行的线路设定为:该线路共由11个闭塞分区构成,线路上列车只会经过两个应答器组,固定应答器组BG1和进站口的有源应答器组BG2,当列车经过应答器组的时候,会收到它们提供的信息:
BG1提供固定的各闭塞分区长度和线路限速;BG2提供列车进路长度和进路处的线路限速。
注意:我们认为列车开始以一定的初速度通过了固定应答器组BG1,并假定列车位置的递增均表示基于应答器组BG1的位置偏移量。并且,两个应答器组的位置认为与闭塞分区起点重合。
仿真实验环境的主要结构和相互关系如图1-16所示。其中的超速防护程序部分是需要填写的实验部分,其他模块是仿真环境已经编写好的后台程序,对实验人员不可见。
图1-16 Excel仿真环境结构
列控车载设备为完成超速防护功能,其控制程序(上图中虚框部分)大致为:
以上代码为仿真环境完成,灰色部分为不可见。但是ATPprotection()函数需要由实验完成人填写。
根据车载超速防护功能原理可知,若想要实现超速防护功能,需要有闭塞分区长度、线路限速、轨道电路码、当前速度和当前位置的信息输入,在实验仿真环境中,这些信息分别由不同的函数模块向实验待填充部分程序,即超速防护程序部分ATPprotection()提供。
(1)列车测速测距信息
后台程序模拟列车驾驶,将列车当前的速度和走行距离用全局变量CurrentSpeed和CurrentPos保存,提供给实验完成者直接使用。其中,列车当前速度CurrentSpeed以km/h为单位,而定义列车当前运行距离CurrentPos时,认为应答器组BG1为距离坐标原点,则该运行距离表示列车距离应答器组BG1的距离增量,以m为单位,如图1-17所示。
图1-17 列车走行距离CurrentPos定义
(2)应答器及轨道电路信息
根据列控系统的行车许可的原理可知轨道电路码告知前方空闲的闭塞分区个数,应答器数据告知前方线路数据,包括轨道区段长度等信息。
后台程序会完成应答器数据和轨道电路码实时读取的功能,并把当前的轨道电路码和应答器数据用变量保存,实验人员在编写ATPprotection()程序时,可直接使用该变量,不用考虑对应答器和轨道电路数据的读取。这些变量包括:
①轨道电路码(TrackSignal):表示当前收到的轨道电路低频码。轨道电路低频码含义如表1-1所示。
表1-1 轨道电路低频码含义
②应答器信息:包括闭塞分区长度和线路限速,由Blocks()和LineAllowSpeed(,)两个数组分别存储从两个应答器组BG1和BG2接收的闭塞分区长度和线路限速,仿真平台已综合两个应答器组的信息,当列车经过BG2后,限速信息会进行自动更新。实验完成人员可直接使用这两个变量,而不用关心其数据更新问题。
a.闭塞分区长度数组Blocks():大小为11,分别表示11个闭塞分区的长度,排列顺序按距离BG1由近及远的顺序排列。即Blocks(0)表示距离应答器组BG1最近的轨道区段的长度(从信号机到信号机);Blocks(1)表示距离应答器第2近的轨道区段的长度,以此类推,Blocks(10)为整个接车进路的长度,从进站信号机到出站信号机。
b.线路限速数组LineAllowSpeed(,)内为二维数组。本实验中假设线路上共存在3段限速,区间范围内一段限速、道岔范围内一段限速和股道范围内一段。其取值含义如图1-18所示。
图1-18 线路限速定义
对应二维数组的存储结构和取值如表1-2所示,第一维保存的为限速的起点距离,第二维保存的为该段限速的限速值。
表1-2 线路限速数组定义
2.实验部分程序说明
本实验的目的是让实验人员自行完成超速防护程序ATPprotection,该部分是一个有形参的函数,根据列车超速防护工作流程,其大致结构为:
对于ATPprotection()函数,其输入变量和输出变量定义如表1-3所示。
表1-3 ATPprotection()函数输入变量和输出变量
其中,仿真环境提供了计算模式曲线限速值的函数,可由实验人员直接调用,该函数定义如表1-4所示。
表1-4 float CalcLimit()函数定义
3.VBA编程语法指南
本实验所需要的编程环境为VBA,是微软公司开发出来在其桌面应用程序中执行通用的自动化任务的编程语言——Visual Basic For Application(VBA),可以认为VBA是非常流行的应用程序开发语言VASUALBASIC的子集,实际上VBA是“寄生于”VB应用程序的版本。
由于我们的实验目的是让实验人员更好的理解列控原理,而并非学习计算机编程语言,因此,本实验选取了VBA这种简单的编程语言,并且所需要的语法也比较简单,只需要一些基本的操作就能够完成本实验。
(1)变量定义
本实验中可能用到的变量定义语句及变量作用域如下:
【Dim变量as类型】:定义为局部变量,如:
Dim xyz as integer;
【Private变量as类型】:定义为私有变量,如:
Private xyz as byte;
【Public变量as类型】:定义为公有变量,如:
Public xyz as single;
【Global变量as类型】:定义为全局变量,如:
Global xyz as date;
【Static变量as类型】:定义为静态变量,如:
Static xyz as double;
本实验可能使用到的变量类型包括:整型Integer(16位);long(32位);浮点型Single;布尔型Boolean。
在本实验中用法示例:'Dim BlockPos As Integer,即定义一个整型变量BlockPos。
(2)循环语句
【For Next语句】:以指定次数来重复执行一组语句For循环。其语法如下:
在本实验中可能的用法示例:
当For循环需要退出时,用法示例:
(3)IF判断语句
【If…Then…Else】语句,其基本语法如下:
在本实验中可能用到的用法示例:
(4)数据记录
本实验中,仿真环境专门提供一个DataRecord的表格供实验人员对关键信息进行记录,当需要记录数据时可使用数据记录语句,将关键信息保存到Excel表中,方便调试和最后的结果记录。
示例用法:
Sheets ["DataRecord"].Cells(1,1)=CurrentPos
其中Sheets["DataRecord"]为打开的student.dat中的表格名称,而Cells(1,1)表示将CurrentPos的值记录到第一行和第一列;行和列都是从1开始。
(5)函数调用
在本实验中,需要调用一个仿真环境提供的函数CalcLimit,该函数的定义语句为:Public Function CalcLimit(Distance_LoA As Single,Speed_LoA As Single)As Single,当需要在代码中使用该函数时,必须加入前缀ff,即:
ff.CalcLimit(TargetDistance,TargetSpeed)
示例代码如下:
Dim TrainAllowSpeed as Single '定义返回值变量
TrainAllowSpeed=ff.CalcLimit(TargetDistance,TargetSpeed)
(6)书写规范
VBA不区分标识符的字母大小写,一律认为是小写字母;一行可以书写多条语句,各语句之间以冒号分开;一条语句可以多行书写,以空格加下划线“_”来标识下行为续行;标识符最好能简洁明了,不造成歧义。
VBA基本的赋值语句和运算符号与标准C语言类似,在此不做描述。
4.实验环境操作说明
(1)打开文件夹中C2Simu.xls文件,如图1-19所示。
图1-19 选择C2Simu.xls文件
(2)依次选择Office按钮、“Excel选项”。
(3)选择“常用”,勾选“在功能区显示开发工具选项卡”,如图1-20所示。
图1-20 选择“常用”选项
(4)设置宏安全性:依次选择“开发工具”、“宏安全性”,在“宏设置”中选择启用所有宏以及“信任对VBA工程对象模型的访问”,如图1-21所示。
图1-21 在“宏设置”中选择
(5)单击菜单“开发工具”,选择左边“Visual Basic”按钮,进入软件编辑界面,如图1-22所示。
图1-22 选择“Visual Basic”按钮
(6)在“student(DataRecord)”中按要求编写代码,如图1-23所示。
图1-23 在“student(DataRecord)”中编写代码
(7)代码编写完毕后回到excel界面,如图1-24所示。
图1-24 excel界面
(8)在工作簿“mf”中将应答器解析选为“自动解析”,并设置适合的初速度,点击“开始运行”按钮,列车开始运行,如图1-25所示。
(9)在列车开始运行后,点选排列相应的进路选项,观察程序运行结果,如需要加速运行,可点击“加速运行”选项,如图1-26所示。
图1-25 在工作簿“mf”中进行设置
图1-26 “速度控制”与“选择进路类型”选项
(10)如需要暂停,单击“暂停”按钮;如需要退出程序,单击“退出”按钮;在工作簿“运行记录”页中查看运行过程中列车数据。
四、实验内容
列车在装备列控设备的线路上运行。但是,当前的仿真程序由于车载控车部分的程序不完善,会出现超速或冒进等危险。本实验要求实验人员:
(1)补充完成车载安全防护程序ATPprotection,使列车可安全地在该线路上运行(不超速、不冒进),并且能够完成以下典型场景:
①区间运行;
②正线接车;
③侧线接车;
④侧线大号码道岔接车;
⑤侧线引导接车(选做)。
(2)编写完成后,请利用仿真程序测试你的程序功能。
五、实验报告要求
实验应完成如下内容:
(1)在仿真环境的基础上,加上编写的代码,实现列控系统超速防护功能。
(2)实验报告说明开发过程以及设计了怎样的测试场景来证明所完成程序是正确的。