CTCS2级列控系统行车许可使用_第1页
CTCS2级列控系统行车许可使用_第2页
CTCS2级列控系统行车许可使用_第3页
CTCS2级列控系统行车许可使用_第4页
CTCS2级列控系统行车许可使用_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、CTCS-2级列控系统行车许可使用班级自动化11042.1实验目的(1) 理解 CTCS-2 级列车运行控制系统地面设备工作原理。(2) 理解 CTCS-2 级列控系统车载设备使用 MA 的原理。 (3) 掌握列控系统车载设备基本工作原理。 (4) 初步具备解决列控系统实际工程问题的能力。2.1实验内容列车在装备 CTCS-2 级列控设备的线路上运行。但是,当前的仿真程序由于车载控车部分的程序不完善,会出现超速或冒进等危险。本实验要求实验人员: (1)补充完成 CTCS-2 级车载安全防护程序 ATPprotection,使列车可安全地在该线路上运行(不超速、不冒进),并且能够完成以下典型场景

2、: l 区间运行 l 正线接车 l 侧线接车 l 侧线大号码道岔接车 l 侧线引导接车(选做) (2)编写完成后,请利用仿真程序测试你的程序功能。2.3实验报告(1) 所编写程序 ATPprotection 的流程图。开始计算列车当前所在轨道区段接收轨道电路码确定前方空闲区段接收CurrentPos确定目标距离及目标速度计算当前曲线限速确定线路限速综合考虑当前点限速值确定BrakeFlage取值结束(2) 为验证结果正确所设计的测试案例及测试结果,格式如下: 测试案例 测试程序的正线接车停车功能 测试步骤 1、设置初速度 200km/h,加速运行; 2、选择正线接车进路类型,直到列车停车; 3

3、、观察所计算的允许速度曲线是否正确; 4、查看记录文件。 测试结果 正线接车测试结果截图正线接车测试案例 测试程序的18号道岔以下接车停车功能 测试步骤 1、设置初速度 200km/h,加速运行; 2、选择18号道岔以下接车进路类型,直到列车停车; 3、观察所计算的允许速度曲线是否正确; 4、查看记录文件。 测试结果 18号道岔以下接车 测试结果截图18号道岔以下接车测试案例 测试程序的18号道岔以上接车停车功能 测试步骤 1、设置初速度 200km/h,加速运行; 2、选择18号道岔以下接车进路类型,直到列车停车; 3、观察所计算的允许速度曲线是否正确; 4、查看记录文件。 测试结果 18号

4、道岔以上接车 测试结果截图18号道岔以上接车测试案例 测试程序的侧线引导接车停车功能 测试步骤 1、设置初速度 200km/h,加速运行; 2、选择侧线引导接车进路类型,直到列车停车; 3、观察所计算的允许速度曲线是否正确; 4、查看记录文件。 测试结果 侧线引导接车测试结果截图侧线引导接车(3) 实验程序Dim i As IntegerDim k As IntegerDim L As SingleDim s As SingleDim j As IntegerDim TargetDistance As SingleDim TargetSpeed As Singles = 0L = 0Targe

5、tDistance = 0For i = 0 To 10 s = s + Blocks(i) If s > CurrentPos Then For j = 0 To i L = L + Blocks(j) Next Exit For End IfNextIf TrackSignal = "L5" Then For k = (i + 1) To (i + 7) TargetDistance = TargetDistance + Blocks(k) NextTargetDistance = TargetDistance + L - CurrentPosTargetSpee

6、d = 0TrainAllowSpeed = ff.CalcLimit(TargetDistance, TargetSpeed)ElseIf TrackSignal = "L4" Then For k = (i + 1) To (i + 6) TargetDistance = TargetDistance + Blocks(k) NextTargetDistance = TargetDistance + L - CurrentPosTargetSpeed = 0TrainAllowSpeed = ff.CalcLimit(TargetDistance, TargetSpee

7、d)ElseIf TrackSignal = "L3" Then For k = (i + 1) To (i + 5) TargetDistance = TargetDistance + Blocks(k) NextTargetDistance = TargetDistance + L - CurrentPosTargetSpeed = 0TrainAllowSpeed = ff.CalcLimit(TargetDistance, TargetSpeed)ElseIf TrackSignal = "L2" Then For k = (i + 1) To

8、(i + 4) TargetDistance = TargetDistance + Blocks(k) NextTargetDistance = TargetDistance + L - CurrentPosTargetSpeed = 0TrainAllowSpeed = ff.CalcLimit(TargetDistance, TargetSpeed)ElseIf TrackSignal = "L" Then For k = (i + 1) To (i + 3) TargetDistance = TargetDistance + Blocks(k) NextTargetD

9、istance = TargetDistance + L - CurrentPosTargetSpeed = 0TrainAllowSpeed = ff.CalcLimit(TargetDistance, TargetSpeed)ElseIf TrackSignal = "LU" Then For k = (i + 1) To (i + 2) TargetDistance = TargetDistance + Blocks(k) NextTargetDistance = TargetDistance + L - CurrentPosTargetSpeed = 0TrainA

10、llowSpeed = ff.CalcLimit(TargetDistance, TargetSpeed)ElseIf TrackSignal = "U" Then k = i + 1 TargetDistance = TargetDistance + Blocks(k) TargetDistance = TargetDistance + L - CurrentPos TargetSpeed = 0 TrainAllowSpeed = ff.CalcLimit(TargetDistance, TargetSpeed)ElseIf TrackSignal = "U2

11、" Then TargetDistance = L + Blocks(9) - CurrentPos TargetSpeed = 45 TrainAllowSpeed = ff.CalcLimit(TargetDistance, TargetSpeed)ElseIf TrackSignal = "UU" Then TargetDistance = L - CurrentPos TargetSpeed = 45 TrainAllowSpeed = ff.CalcLimit(TargetDistance, TargetSpeed)ElseIf TrackSignal

12、= "U2S" Then TargetDistance = L + Blocks(9) - CurrentPos TargetSpeed = 80 TrainAllowSpeed = ff.CalcLimit(TargetDistance, TargetSpeed)ElseIf TrackSignal = "UUS" Then TargetDistance = L - CurrentPos TargetSpeed = 80 TrainAllowSpeed = ff.CalcLimit(TargetDistance, TargetSpeed)ElseIf

13、TrackSignal = "HB" Then TrainAllowSpeed = 40ElseIf TrackSignal = "B" Then TrainAllowSpeed = 40ElseIf TrackSignal = "HU" Then TargetDistance = L - CurrentPos TargetSpeed = 0 TrainAllowSpeed = ff.CalcLimit(TargetDistance, TargetSpeed)End IfIf CurrentPos <= LineAllowSpe

14、ed(1, 0) Then If TrainAllowSpeed > LineAllowSpeed(0, 1) Then TrainAllowSpeed = LineAllowSpeed(0, 1) End IfElseIf CurrentPos >= LineAllowSpeed(2, 0) Then If TrainAllowSpeed > LineAllowSpeed(2, 1) Then TrainAllowSpeed = LineAllowSpeed(2, 1) End IfElse If TrainAllowSpeed > LineAllowSpeed(1,

15、 1) Then TrainAllowSpeed = LineAllowSpeed(1, 1) End IfEnd IfIf CurrentSpeed > TrainAllowSpeed Then BrakeFlag = TrueElse BrakeFlag = FalseEnd If(4) 总结实验调试过程中出现的问题,形成调试记录,格式如下:问题现象描述问题原因解决方法1.需要较多的if判断语句,有时甚至需要较多的判断嵌套2.目标距离的计算3.For循环的编写4.目标速度的计算1.接车情况分为多种,每种情况的轨道序列码都不一样;每种轨道序列码的限速信息不一样;D1、D2、D3三段轨道

16、的限速信息不一样;根据列车现行速度和每一点的允许速度,最终输出制动和缓解制动的情况不一致。2.对每种轨道序列码前方允许的空闲闭塞分区不一样;每段轨道长度不一样;列车目前所在的轨道区段需要确定;3.由于每种轨道序列码所预示的前方闭塞分区的数目不一样,列车在不同时刻所在轨道区段不同,所以求取目标距离时for循环的控制次数不一样4.每种轨道序列码所限定的目标速度不一致,再加上每段的限制速度,所以情况复杂1.对每种接车情况所用的轨道序列码分类列举,不重不漏;用if多重嵌套判断语句将每种限速信息准确的叠加到TainAllowSpeed2.根据CurrentPos先确定目前列车所在轨道区段;根据接收到的轨

17、道电路码确定前方空闲闭塞分区数目,并计算空闲闭塞分区的总长度;计算从运行开始区段到目前所在区断的总距离,用上述两者之和减去CurrentPos即可。3.根据接收到的轨道序列码的不同,用if语句分条件求取,并新设变量控制循环次数;每次调用 ATPprotection函数时先用for循环判断列车当前所在区段。4.先用if语句将每种轨道序列码所要求的限速分类作为目标速度,调用函数算出当前允许速度,再用if语句加上每段的速度限制(5) 实验感想总结。这次实验总体来说难度较大 ,虽然实验原理我们课上都有学习,但是要将其真正用软件表现出来还是很困难。首先我们也是第一次用到Excel表格的宏编程,这在以前是没有接触到的。但是有了其他编程语言的基础,上手起来还是可以的。紧接着,就需要把具体的列控系统行车

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论