北交列控实验二报告.docx

上传人:b****3 文档编号:27185823 上传时间:2023-06-27 格式:DOCX 页数:14 大小:200.69KB
下载 相关 举报
北交列控实验二报告.docx_第1页
第1页 / 共14页
北交列控实验二报告.docx_第2页
第2页 / 共14页
北交列控实验二报告.docx_第3页
第3页 / 共14页
北交列控实验二报告.docx_第4页
第4页 / 共14页
北交列控实验二报告.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

北交列控实验二报告.docx

《北交列控实验二报告.docx》由会员分享,可在线阅读,更多相关《北交列控实验二报告.docx(14页珍藏版)》请在冰豆网上搜索。

北交列控实验二报告.docx

北交列控实验二报告

2020年5月19日

班级:

自动化120

姓名:

学号:

指导教师:

袁磊

《列车运行控制技术》实验二报告

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

1实验目标:

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

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

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

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

1.1实验预期

本次实验主要为编写程序完成正线接车、18号道岔以下侧线接车、18号道岔以上侧线接车以及侧线引导接车的功能。

使用程序自带的距离-速度的运算公式从而得出相应的速度限制曲线。

再比较实际速度与限制速度,从而得到是制动还是缓解。

2.实验过程

2.1ATPprotection的流程图

2.2程序代码

DimpAsInteger

PublicFunctionATPProtection(Blocks()AsSingle,LineAllowSpeed()AsSingle,TrackSignalAsString,CurrentSpeedAsSingle,CurrentPosAsSingle)

DimnAsInteger

DimiAsInteger

DimsAsSingle

DimTargetDistAsSingle

DimTargetSpeedAsSingle

IfTrackSignal="L5"Then

n=0

s=CurrentPos

Whiles>0

s=s-Blocks(n)

n=n+1

Wend

TargetDist=0-CurrentPos

Fori=0Ton+6

TargetDist=TargetDist+Blocks(i)

Next

TargetSpeed=0

ElseIfTrackSignal="L4"Then

n=0

s=CurrentPos

Whiles>0

s=s-Blocks(n)

n=n+1

Wend

TargetDist=0-CurrentPos

Fori=0Ton+5

TargetDist=TargetDist+Blocks(i)

Next

TargetSpeed=0

ElseIfTrackSignal="L3"Then

n=0

s=CurrentPos

Whiles>0

s=s-Blocks(n)

n=n+1

Wend

TargetDist=0-CurrentPos

Fori=0Ton+4

TargetDist=TargetDist+Blocks(i)

Next

TargetSpeed=0

ElseIfTrackSignal="L2"Then

n=0

s=CurrentPos

Whiles>0

s=s-Blocks(n)

n=n+1

Wend

TargetDist=0-CurrentPos

Fori=0Ton+3

TargetDist=TargetDist+Blocks(i)

Next

TargetSpeed=0

ElseIfTrackSignal="L"Then

n=0

s=CurrentPos

Whiles>0

s=s-Blocks(n)

n=n+1

Wend

TargetDist=0-CurrentPos

Fori=0Ton+2

TargetDist=TargetDist+Blocks(i)

Next

TargetSpeed=0

ElseIfTrackSignal="LU"Then

n=0

s=CurrentPos

Whiles>0

s=s-Blocks(n)

n=n+1

Wend

TargetDist=0-CurrentPos

Fori=0Ton+1

TargetDist=TargetDist+Blocks(i)

Next

TargetSpeed=0

ElseIfTrackSignal="U"Then

n=0

s=CurrentPos

Whiles>0

s=s-Blocks(n)

n=n+1

Wend

TargetDist=0-CurrentPos

Fori=0Ton

TargetDist=TargetDist+Blocks(i)

Next

TargetSpeed=0

ElseIfTrackSignal="U2"Then

n=0

s=CurrentPos

Whiles>0

s=s-Blocks(n)

n=n+1

Wend

TargetDist=0-CurrentPos

Fori=0Ton

TargetDist=TargetDist+Blocks(i)

Next

TargetSpeed=45

ElseIfTrackSignal="U2S"Then

n=0

s=CurrentPos

Whiles>0

s=s-Blocks(n)

n=n+1

Wend

TargetDist=0-CurrentPos

Fori=0Ton

TargetDist=TargetDist+Blocks(i)

Next

TargetSpeed=80

ElseIfTrackSignal="UUS"Then

n=0

s=CurrentPos

Whiles>0

s=s-Blocks(n)

n=n+1

Wend

TargetDist=0-CurrentPos

Fori=0Ton-1

TargetDist=TargetDist+Blocks(i)

Next

TargetSpeed=80

ElseIfTrackSignal="UU"Then

n=0

s=CurrentPos

Whiles>0

s=s-Blocks(n)

n=n+1

Wend

TargetDist=0-CurrentPos

Fori=0Ton-1

TargetDist=TargetDist+Blocks(i)

Next

TargetSpeed=45

EndIf

IfTrackSignal="HB"Then

Speed_Limit_Curve=40

EndIf

IfTrackSignal="HU"Then

Speed_Limit_Curve=0

EndIf

Speed_Limit_Curve=ff.CalcLimit(TargetDist,TargetSpeed)

IfCurrentPos

Speed_Limit_Static=LineAllowSpeed(0,1)

ElseIfCurrentPos

Speed_Limit_Static=LineAllowSpeed(1,1)

Else

Speed_Limit_Static=LineAllowSpeed(2,1)

EndIf

IfSpeed_Limit_Curve

TrainAllowSpeed=Speed_Limit_Curve

Else

TrainAllowSpeed=Speed_Limit_Static

EndIf

IfCurrentSpeed

BrakeFlag=False

Else

BrakeFlag=True

EndIf

p=p+1

student.Cells(p,1)=CurrentPos

student.Cells(p,2)=CurrentSpeed

student.Cells(p,3)=TrainAllowSpeed

student.Cells(p,4)=TrackSignal

student.Cells(p,5)=Speed_Limit_Static

student.Cells(p,6)=Speed_Limit_Curve

student.Cells(p,7)=BrakeFlag

EndFunction

3实验结果分析

各项测试案例以及结果如下:

测试案例

测试程序的正线接车功能

测试步骤

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

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

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

4、查看记录文件;

测试结果

列车在进站信号机前停车

测试结果截图

测试案例

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

测试步骤

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

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

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

4、查看记录文件;

测试结果

列车进入18号以下道岔到侧线停车

测试结果截图

测试案例

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

测试步骤

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

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

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

4、查看记录文件;

测试结果

列车进入18号以上道岔到侧线停车

测试结果截图

测试案例

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

测试步骤

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

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

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

4、查看记录文件;

测试结果

列车通过进站信号机引导入侧线接车

测试结果截图

由上述结果可以看出,满足实验预期。

实验过程中遇到了以下几个问题:

问题现象描述

问题原因

解决方法

列车一开始运行即出现减速现象

由于在程序编写过程中将ff.CalcLimit函数写在了主程序的外面,导致列车已开始运行即设定此区段末速度为零,故出现减速现象。

认真研究算法后,将ff.CalcLimit函数写入主程序内。

列车在不同区间中运行时限制速度不连续,存在跳变现象

因为根据内置程序限制曲线的计算方式为输入距离目标点的距离以及目标速度,得到限制曲线。

又因为根据程序所编,我们是采用每经过一个应答器根据所读码序计算出一个速度限制曲线,从而使得在相邻的区间段的出口端速度与入口端速度不一致。

所以限制速度不连续,有跳变。

适当减短轨道区间的长度,从而使得相邻区段出口端与入口端速度接近一致。

但此现象影响不大可忽略。

无法连续记录数据

变量p没有设为全局变量,导致程序每次运行后会使其初值为零,故数据叠加记录,不能连续记录。

将p设为全局变量。

4实验总结

在实验一的基础上,对于列车限速曲线已经有了比较好的认识,所以在理解此题义时并没有很复杂,ATPprotection程序段的编写可以概括为:

判断列车当前码序,使用程序自带的距离-速度的运算公式从而得出相应的速度限制曲线。

再比较实际速度与限制速度,从而得到是制动还是缓解。

所以说该程序编写起来比较明了,检查时也方便许多。

一开始我们小组的程序在每个码序后都进行限速曲线计算以及与实际对比得到是否制动,虽说可以得到较为正确的结果但是程序显得尤为冗长。

所以,我们将各程序块的重复部分写入主if外,使得判断完码序后再进行后续动作,但是不小心把ff.CalcLimit函数给落了,导致它到了主程序的外面,使得列车已开始运行即出现减速现象。

不过这个问题很快解决了。

最令我们头疼的是数据记录,因我们已经将p=p+1写入程序,自认为可以开始循环,但是在变量定义时却忽略了需将其定为全局变量。

最后是在老师的提醒下才改正过来,也得到了想要的结果。

虽说看起来程序并不难,但是各种细节上都很容易犯错误,而且在编写时的格式也不会注意,在老师的提醒下,我意识到细节的重要性。

同时,要多想想实验要求之外的情况,让自己学会思考,将一道实验题的作用发挥到最大。

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

当前位置:首页 > 工程科技 > 信息与通信

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

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