ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:200.69KB ,
资源ID:27185823      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/27185823.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(北交列控实验二报告.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

北交列控实验二报告.docx

1、北交列控实验二报告2020年5月19日班级:自动化120姓名: 学号: 指导教师: 袁磊 列车运行控制技术实验二报告CTCS-2 级列控系统行车许可使用1 实验目标:(1)理解 CTCS-2 级列车运行控制系统地面设备工作原理。(2)理解 CTCS-2 级列控系统车载设备使用 MA 的原理。(3)掌握列控系统车载设备基本工作原理。(4)初步具备解决列控系统实际工程问题的能力。1.1 实验预期 本次实验主要为编写程序完成正线接车、18号道岔以下侧线接车、18号道岔以上侧线接车以及侧线引导接车的功能。使用程序自带的距离-速度的运算公式从而得出相应的速度限制曲线。再比较实际速度与限制速度,从而得到是

2、制动还是缓解。2实验过程2.1 ATPprotection的流程图2.2 程序代码Dim p As IntegerPublic Function ATPProtection(Blocks() As Single, LineAllowSpeed() As Single, TrackSignal As String, CurrentSpeed As Single, CurrentPos As Single) Dim n As Integer Dim i As Integer Dim s As Single Dim TargetDist As Single Dim TargetSpeed As Si

3、ngle If TrackSignal = L5 Then n = 0 s = CurrentPos While s 0 s = s - Blocks(n) n = n + 1 Wend TargetDist = 0 - CurrentPos For i = 0 To n + 6 TargetDist = TargetDist + Blocks(i) Next TargetSpeed = 0 ElseIf TrackSignal = L4 Then n = 0 s = CurrentPos While s 0 s = s - Blocks(n) n = n + 1 Wend TargetDis

4、t = 0 - CurrentPos For i = 0 To n + 5 TargetDist = TargetDist + Blocks(i) Next TargetSpeed = 0 ElseIf TrackSignal = L3 Then n = 0 s = CurrentPos While s 0 s = s - Blocks(n) n = n + 1 Wend TargetDist = 0 - CurrentPos For i = 0 To n + 4 TargetDist = TargetDist + Blocks(i) Next TargetSpeed = 0 ElseIf T

5、rackSignal = L2 Then n = 0 s = CurrentPos While s 0 s = s - Blocks(n) n = n + 1 Wend TargetDist = 0 - CurrentPos For i = 0 To n + 3 TargetDist = TargetDist + Blocks(i) Next TargetSpeed = 0 ElseIf TrackSignal = L Then n = 0 s = CurrentPos While s 0 s = s - Blocks(n) n = n + 1 Wend TargetDist = 0 - Cu

6、rrentPos For i = 0 To n + 2 TargetDist = TargetDist + Blocks(i) Next TargetSpeed = 0 ElseIf TrackSignal = LU Then n = 0 s = CurrentPos While s 0 s = s - Blocks(n) n = n + 1 Wend TargetDist = 0 - CurrentPos For i = 0 To n + 1 TargetDist = TargetDist + Blocks(i) Next TargetSpeed = 0 ElseIf TrackSignal

7、 = U Then n = 0 s = CurrentPos While s 0 s = s - Blocks(n) n = n + 1 Wend TargetDist = 0 - CurrentPos For i = 0 To n TargetDist = TargetDist + Blocks(i) Next TargetSpeed = 0 ElseIf TrackSignal = U2 Then n = 0 s = CurrentPos While s 0 s = s - Blocks(n) n = n + 1 Wend TargetDist = 0 - CurrentPos For i

8、 = 0 To n TargetDist = TargetDist + Blocks(i) Next TargetSpeed = 45 ElseIf TrackSignal = U2S Then n = 0 s = CurrentPos While s 0 s = s - Blocks(n) n = n + 1 Wend TargetDist = 0 - CurrentPos For i = 0 To n TargetDist = TargetDist + Blocks(i) Next TargetSpeed = 80 ElseIf TrackSignal = UUS Then n = 0 s

9、 = CurrentPos While s 0 s = s - Blocks(n) n = n + 1 Wend TargetDist = 0 - CurrentPos For i = 0 To n - 1 TargetDist = TargetDist + Blocks(i) Next TargetSpeed = 80 ElseIf TrackSignal = UU Then n = 0 s = CurrentPos While s 0 s = s - Blocks(n) n = n + 1 Wend TargetDist = 0 - CurrentPos For i = 0 To n -

10、1 TargetDist = TargetDist + Blocks(i) Next TargetSpeed = 45 End If If TrackSignal = HB Then Speed_Limit_Curve = 40 End If If TrackSignal = HU Then Speed_Limit_Curve = 0 End If Speed_Limit_Curve = ff.CalcLimit(TargetDist, TargetSpeed) If CurrentPos LineAllowSpeed(1, 0) Then Speed_Limit_Static = LineA

11、llowSpeed(0, 1) ElseIf CurrentPos LineAllowSpeed(2, 0) Then Speed_Limit_Static = LineAllowSpeed(1, 1) Else Speed_Limit_Static = LineAllowSpeed(2, 1) End If If Speed_Limit_Curve Speed_Limit_Static Then TrainAllowSpeed = Speed_Limit_Curve Else TrainAllowSpeed = Speed_Limit_Static End If If CurrentSpee

12、d TrainAllowSpeed Then BrakeFlag = False Else BrakeFlag = True End If 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

13、 student.Cells(p, 7) = BrakeFlagEnd Function3 实验结果分析各项测试案例以及结果如下:测试案例测试程序的正线接车功能测试步骤1、 设置初速度200km/h,加速运行;2、 选择正线接车进路类型,直到列车停车;3、 观察所计算的允许速度曲线是否正确;4、 查看记录文件;测试结果列车在进站信号机前停车测试结果截图测试案例测试程序的18号道岔以下侧线接车功能测试步骤1、设置初速度200km/h,加速运行;2、选择18号码道岔以下侧线接车进路类型,直到列车停车;3、观察所计算的允许速度曲线是否正确;4、查看记录文件;测试结果列车进入18号以下道岔到侧线停车测

14、试结果截图测试案例测试程序的18号道岔以上侧线接车功能测试步骤1、设置初速度200km/h,加速运行;2、选择18号码道岔以上侧线接车进路类型,直到列车停车;3、观察所计算的允许速度曲线是否正确;4、查看记录文件;测试结果列车进入18号以上道岔到侧线停车测试结果截图测试案例测试程序的侧线引导接车功能测试步骤1、设置初速度200km/h,加速运行;2、选择侧线引导接车进路类型,直到列车停车;3、观察所计算的允许速度曲线是否正确;4、查看记录文件;测试结果列车通过进站信号机引导入侧线接车测试结果截图 由上述结果可以看出,满足实验预期。实验过程中遇到了以下几个问题:问题现象描述问题原因解决方法列车一

15、开始运行即出现减速现象由于在程序编写过程中将ff.CalcLimit函数写在了主程序的外面,导致列车已开始运行即设定此区段末速度为零,故出现减速现象。认真研究算法后,将ff.CalcLimit函数写入主程序内。 列车在不同区间中运行时限制速度不连续,存在跳变现象因为根据内置程序限制曲线的计算方式为输入距离目标点的距离以及目标速度,得到限制曲线。又因为根据程序所编,我们是采用每经过一个应答器根据所读码序计算出一个速度限制曲线,从而使得在相邻的区间段的出口端速度与入口端速度不一致。所以限制速度不连续,有跳变。适当减短轨道区间的长度,从而使得相邻区段出口端与入口端速度接近一致。但此现象影响不大可忽略

16、。无法连续记录数据变量p没有设为全局变量,导致程序每次运行后会使其初值为零,故数据叠加记录,不能连续记录。将p设为全局变量。4 实验总结 在实验一的基础上,对于列车限速曲线已经有了比较好的认识,所以在理解此题义时并没有很复杂,ATPprotection程序段的编写可以概括为:判断列车当前码序,使用程序自带的距离-速度的运算公式从而得出相应的速度限制曲线。再比较实际速度与限制速度,从而得到是制动还是缓解。所以说该程序编写起来比较明了,检查时也方便许多。 一开始我们小组的程序在每个码序后都进行限速曲线计算以及与实际对比得到是否制动,虽说可以得到较为正确的结果但是程序显得尤为冗长。所以,我们将各程序块的重复部分写入主if 外,使得判断完码序后再进行后续动作,但是不小心把ff.CalcLimit函数给落了,导致它到了主程序的外面,使得列车已开始运行即出现减速现象。不过这个问题很快解决了。最令我们头疼的是数据记录,因我们已经将p=p+1写入程序,自认为可以开始循环,但是在变量定义时却忽略了需将其定为全局变量。最后是在老师的提醒下才改正过来,也得到了想要的结果。 虽说看起来程序并不难,但是各种细节上都很容易犯错误,而且在编写时的格式也不会注意,在老师的提醒下,我意识到细节的重要性。同时,要多想想实验要求之外的情况,让自己学会思考,将一道实验题的作用发挥到最大。

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

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