CTCS2级列控系统行车许可使用.docx

上传人:b****2 文档编号:2163782 上传时间:2022-10-27 格式:DOCX 页数:8 大小:33.29KB
下载 相关 举报
CTCS2级列控系统行车许可使用.docx_第1页
第1页 / 共8页
CTCS2级列控系统行车许可使用.docx_第2页
第2页 / 共8页
CTCS2级列控系统行车许可使用.docx_第3页
第3页 / 共8页
CTCS2级列控系统行车许可使用.docx_第4页
第4页 / 共8页
CTCS2级列控系统行车许可使用.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

CTCS2级列控系统行车许可使用.docx

《CTCS2级列控系统行车许可使用.docx》由会员分享,可在线阅读,更多相关《CTCS2级列控系统行车许可使用.docx(8页珍藏版)》请在冰豆网上搜索。

CTCS2级列控系统行车许可使用.docx

CTCS2级列控系统行车许可使用

CTCS-2级列控系统行车许可使用

班级自动化1104

2.1实验目的

(1)理解CTCS-2级列车运行控制系统地面设备工作原理。

(2)理解CTCS-2级列控系统车载设备使用MA的原理。

(3)掌握列控系统车载设备基本工作原理。

(4)初步具备解决列控系统实际工程问题的能力。

2.1实验内容

列车在装备CTCS-2级列控设备的线路上运行。

但是,当前的仿真程序由于车载控车部分的程序不完善,会出现超速或冒进等危险。

本实验要求实验人员:

(1)补充完成CTCS-2级车载安全防护程序ATPprotection,使列车可安全地在该线路上运行(不超速、不冒进),并且能够完成以下典型场景:

●区间运行

●正线接车

●侧线接车

●侧线大号码道岔接车

●侧线引导接车(选做)

(2)编写完成后,请利用仿真程序测试你的程序功能。

2.3实验报告

(1)所编写程序ATPprotection的流程图。

(2)为验证结果正确所设计的测试案例及测试结果,格式如下:

测试案例

测试程序的正线接车停车功能

测试步骤

1、设置初速度200km/h,加速运行;

2、选择正线接车进路类型,直到列车停车;

3、观察所计算的允许速度曲线是否正确;

4、查看记录文件。

测试结果

正线接车

测试结果截图

正线接车

测试案例

测试程序的18号道岔以下接车停车功能

测试步骤

1、设置初速度200km/h,加速运行;

2、选择18号道岔以下接车进路类型,直到列车停车;

3、观察所计算的允许速度曲线是否正确;

4、查看记录文件。

测试结果

18号道岔以下接车

测试结果截图

18号道岔以下接车

测试案例

测试程序的18号道岔以上接车停车功能

测试步骤

1、设置初速度200km/h,加速运行;

2、选择18号道岔以下接车进路类型,直到列车停车;

3、观察所计算的允许速度曲线是否正确;

4、查看记录文件。

测试结果

18号道岔以上接车

测试结果截图

18号道岔以上接车

测试案例

测试程序的侧线引导接车停车功能

测试步骤

1、设置初速度200km/h,加速运行;

2、选择侧线引导接车进路类型,直到列车停车;

3、观察所计算的允许速度曲线是否正确;

4、查看记录文件。

测试结果

侧线引导接车

测试结果截图

侧线引导接车

(3)实验程序

DimiAsInteger

DimkAsInteger

DimLAsSingle

DimsAsSingle

DimjAsInteger

DimTargetDistanceAsSingle

DimTargetSpeedAsSingle

s=0

L=0

TargetDistance=0

Fori=0To10

s=s+Blocks(i)

Ifs>CurrentPosThen

Forj=0Toi

L=L+Blocks(j)

Next

ExitFor

EndIf

Next

IfTrackSignal="L5"Then

Fork=(i+1)To(i+7)

TargetDistance=TargetDistance+Blocks(k)

Next

TargetDistance=TargetDistance+L-CurrentPos

TargetSpeed=0

TrainAllowSpeed=ff.CalcLimit(TargetDistance,TargetSpeed)

ElseIfTrackSignal="L4"Then

Fork=(i+1)To(i+6)

TargetDistance=TargetDistance+Blocks(k)

Next

TargetDistance=TargetDistance+L-CurrentPos

TargetSpeed=0

TrainAllowSpeed=ff.CalcLimit(TargetDistance,TargetSpeed)

ElseIfTrackSignal="L3"Then

Fork=(i+1)To(i+5)

TargetDistance=TargetDistance+Blocks(k)

Next

TargetDistance=TargetDistance+L-CurrentPos

TargetSpeed=0

TrainAllowSpeed=ff.CalcLimit(TargetDistance,TargetSpeed)

ElseIfTrackSignal="L2"Then

Fork=(i+1)To(i+4)

TargetDistance=TargetDistance+Blocks(k)

Next

TargetDistance=TargetDistance+L-CurrentPos

TargetSpeed=0

TrainAllowSpeed=ff.CalcLimit(TargetDistance,TargetSpeed)

ElseIfTrackSignal="L"Then

Fork=(i+1)To(i+3)

TargetDistance=TargetDistance+Blocks(k)

Next

TargetDistance=TargetDistance+L-CurrentPos

TargetSpeed=0

TrainAllowSpeed=ff.CalcLimit(TargetDistance,TargetSpeed)

ElseIfTrackSignal="LU"Then

Fork=(i+1)To(i+2)

TargetDistance=TargetDistance+Blocks(k)

Next

TargetDistance=TargetDistance+L-CurrentPos

TargetSpeed=0

TrainAllowSpeed=ff.CalcLimit(TargetDistance,TargetSpeed)

ElseIfTrackSignal="U"Then

k=i+1

TargetDistance=TargetDistance+Blocks(k)

TargetDistance=TargetDistance+L-CurrentPos

TargetSpeed=0

TrainAllowSpeed=ff.CalcLimit(TargetDistance,TargetSpeed)

ElseIfTrackSignal="U2"Then

TargetDistance=L+Blocks(9)-CurrentPos

TargetSpeed=45

TrainAllowSpeed=ff.CalcLimit(TargetDistance,TargetSpeed)

ElseIfTrackSignal="UU"Then

TargetDistance=L-CurrentPos

TargetSpeed=45

TrainAllowSpeed=ff.CalcLimit(TargetDistance,TargetSpeed)

ElseIfTrackSignal="U2S"Then

TargetDistance=L+Blocks(9)-CurrentPos

TargetSpeed=80

TrainAllowSpeed=ff.CalcLimit(TargetDistance,TargetSpeed)

ElseIfTrackSignal="UUS"Then

TargetDistance=L-CurrentPos

TargetSpeed=80

TrainAllowSpeed=ff.CalcLimit(TargetDistance,TargetSpeed)

ElseIfTrackSignal="HB"Then

TrainAllowSpeed=40

ElseIfTrackSignal="B"Then

TrainAllowSpeed=40

ElseIfTrackSignal="HU"Then

TargetDistance=L-CurrentPos

TargetSpeed=0

TrainAllowSpeed=ff.CalcLimit(TargetDistance,TargetSpeed)

EndIf

IfCurrentPos<=LineAllowSpeed(1,0)Then

IfTrainAllowSpeed>LineAllowSpeed(0,1)Then

TrainAllowSpeed=LineAllowSpeed(0,1)

EndIf

ElseIfCurrentPos>=LineAllowSpeed(2,0)Then

IfTrainAllowSpeed>LineAllowSpeed(2,1)Then

TrainAllowSpeed=LineAllowSpeed(2,1)

EndIf

Else

IfTrainAllowSpeed>LineAllowSpeed(1,1)Then

TrainAllowSpeed=LineAllowSpeed(1,1)

EndIf

EndIf

IfCurrentSpeed>TrainAllowSpeedThen

BrakeFlag=True

Else

BrakeFlag=False

EndIf

(4)总结实验调试过程中出现的问题,形成调试记录,格式如下:

问题现象描述

问题原因

解决方法

1.需要较多的if判断语句,有时甚至需要较多的判断嵌套

2.目标距离的计算

3.For循环的编写

4.目标速度的计算

1.接车情况分为多种,每种情况的轨道序列码都不一样;每种轨道序列码的限速信息不一样;D1、D2、D3三段轨道的限速信息不一样;根据列车现行速度和每一点的允许速度,最终输出制动和缓解制动的情况不一致。

2.对每种轨道序列码前方允许的空闲闭塞分区不一样;每段轨道长度不一样;列车目前所在的轨道区段需要确定;

3.由于每种轨道序列码所预示的前方闭塞分区的数目不一样,列车在不同时刻所在轨道区段不同,所以求取目标距离时for循环的控制次数不一样

4.每种轨道序列码所限定的目标速度不一致,再加上每段的限制速度,所以情况复杂

1.对每种接车情况所用的轨道序列码分类列举,不重不漏;用if多重嵌套判断语句将每种限速信息准确的叠加到TainAllowSpeed

2.根据CurrentPos先确定目前列车所在轨道区段;根据接收到的轨道电路码确定前方空闲闭塞分区数目,并计算空闲闭塞分区的总长度;计算从运行开始区段到目前所在区断的总距离,用上述两者之和减去CurrentPos即可。

3.根据接收到的轨道序列码的不同,用if语句分条件求取,并新设变量控制循环次数;每次调用ATPprotection函数时先用for循环判断列车当前所在区段。

4.先用if语句将每种轨道序列码所要求的限速分类作为目标速度,调用函数算出当前允许速度,再用if语句加上每段的速度限制

(5)实验感想总结。

这次实验总体来说难度较大,虽然实验原理我们课上都有学习,但是要将其真正用软件表现出来还是很困难。

首先我们也是第一次用到Excel表格的宏编程,这在以前是没有接触到的。

但是有了其他编程语言的基础,上手起来还是可以的。

紧接着,就需要把具体的列控系统行车许可用代码的形式表示出来。

实验指导书中的介绍很全面,我们也是将其总结与整合,先画出其流程图,分析其中的规律,然后就着手写代码了。

这次我们编写可以说是很成功,基本没出现什么大的问题,这也是基于我们在写每一行代码都非常认真的态度。

最后,我们的软件就可以完美完成了任务。

这次试验让我对自己的专业有了更加直观的认识,也对自己的专业知识有了更加深刻的理解

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1