news 2026/10/21 1:15:16

CBTC仿真实验全拆解:目标检测与RM/CM/AM模式转换实操指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CBTC仿真实验全拆解:目标检测与RM/CM/AM模式转换实操指南

简介:这份轨道实验资源聚焦轨道交通信号系统中的车载系统与控制模式,适合学习目标检测及轨道交通信号控制的学生与从业者。实验报告基于CBTC环境,完整记录了从区域控制器软件开启、车载软件初始化到RM/CM/AM模式转换、运行计划接收与列车运行模拟的全过程;同时结合OpenCV与Anaconda环境,展示了目标检测在车载界面识别、列车位置与速度追踪等场景的应用思路。资源采用单个doc文档形式,压缩包约27.52MB,目前已有135人学习。报告内包含实验目的、所需器材、分步操作说明、关键界面截图,并针对列车运行路线设计、任务下发、驾驶台操作、提前发车、跳停设置等环节展开了实验分析与经验总结。读者既能对照步骤进行仿真演练,也能从中提取车载控制模式转换条件、ATS运行曲线含义以及目标检测在轨道场景中的落地方法,为后续轨道交通信号系统相关项目或课程设计提供直接参考。

1. 轨道交通里的“目标检测”:先搞清楚它检测的不是图像

很多人第一次听到轨道交通实验中的“目标检测”,下意识以为是拿摄像头识别列车、信号灯或者障碍物,类似YOLO那一套。其实在CBTC(基于通信的列车控制系统)语境下,目标检测指的是信号系统对列车位置、控制模式、运行曲线和信号状态的全方位感知——系统必须“知道列车在哪、在什么模式下、前方有没有授权”。这份实验资源就是一套完整的车载系统与控制模式仿真实验,从加车、ATC初始化到RM/CM/AM模式转换,再到ATS下发计划、开关车门、提前发车和跳停处理,全部都有操作记录和实验分析。适合轨道交通信号专业的学生、刚入行的信号系统从业者,以及需要写这类实验报告又没有头绪的人。

2. 实验环境与初始化:CBTCZC注册、加车位置与ATC启动顺序

2.1 CBTC系统里“目标检测”的真实含义

先把概念对齐。CBTC系统里的列车定位不是靠摄像头,而是靠车地通信、轨道电路、应答器和车载测速测距设备共同完成的。列车实时把位置、速度、运行方向通过无线通信上报给区域控制器(ZC),ZC结合进路状态、前车位置和其他列车信息,给每一列车计算移动授权(MA),告诉这列车“你能跑到哪、以什么速度跑”。

车载系统在收到MA之后,再结合ATS下发的运行计划,生成列车实际运行的曲线。所以你在车载界面上看到的“目标检测”,是系统对列车位置(红色线段)的实时标定、对运行曲线的计算、对控制模式状态的判断。这份实验报告里,车载软件界面右上角的运行曲线、右下角的重要信息显示,就是这个“检测”结果的可视化。

实验用的两个核心软件是区域控制器软件(CBTCZC)和车载软件。CBTCZC就是ZC的仿真实现,负责注册列车、计算MA、管理信号状态;车载软件则运行在模拟驾驶台上,接收ZC的信息并执行驾驶指令。两者通过仿真网络通信,构成一个最小可用的CBTC闭环。

2.2 实验拓扑:三台机器的分工

做这个实验最少需要三台计算机协同工作:

设备软件职责
计算机1区域控制器CBTCZC软件注册列车、计算移动授权、管理信号状态
计算机2车载软件(驾驶台)显示车载界面、执行驾驶操作、展示运行曲线
计算机3ATS系统下发运行计划、设置发车任务、管理运营调度

实验报告里写“每台列车的操作至少需要3台计算机设备”,实际上就是这套拓扑。先打开ZC软件,再打开车载软件,然后加车到列车初始位置,车载软件会向ZC发起注册请求,ZC侧提示“注册成功”,这辆车才正式进入CBTC管辖区段。

我操作的时候习惯先把两台软件的窗口都最大化,车载软件界面分四个区域——左上是车载显示界面,左下是方向选择、牵引制动选择和目标速度显示,右上为运行曲线,右下为运行过程中的重要信息。每一步操作之后先看右下角的信息栏有没有状态刷新,不要只盯曲线变化。

2.3 初始化关键步骤与顺序逻辑

加车完成后,核心操作是ATC初始化。在车载软件的“ATC初始化”区域里,有两个按钮:ATC钥匙接通和ATC初始化。顺序必须是先钥匙接通,再初始化。

# 按操作顺序记录的状态流转(伪代码) 1. 加车到列车初始位置 2. 点击 "ATC钥匙接通" # 模拟列车钥匙档位打到ATC位 3. 点击 "ATC初始化" # 车载开始与ZC通信、加载配置 4. 观察ZC界面提示 "注册成功" 5. 车载界面显示当前控制模式

这个顺序为什么不能反?因为“ATC钥匙接通”对应的是列车驾驶台钥匙从手动位打到ATC位,相当于激活了ATC设备的上电条件;“ATC初始化”是在设备上电后才能执行的软件初始化流程。如果先点初始化,软件会发现ATC设备未上电,直接报错或卡死。实验总结里提到“若一步操作失误可能导致所有计算机重启,特别是在ATC初始化和ATC钥匙接通时顺序不能搞错”,就是这个原因。

另外要注意上下行方向。在点击“列车初始位置”选择存车线位置时,界面约定向右为上行,反之为下行。选错了方向,列车注册的位置和后续ATS计划匹配不上,运行曲线会显示异常。常见做法是先确认本组要跑的车次方向,再去选位置。

2.4 车辆段出发与存车线出发的差异

实验里区分了两种出车场景:

  • 从车辆段或停车场出发:等车辆段/停车场的信号开放后,以RM模式把车运行到转换轨。转换轨是车辆段与正线的接口区段,车到了转换轨才算“接入正线”。
  • 从存车线出发:直接点击“列车初始位置”选择存车线位置,再顺序做ATC钥匙接通和ATC初始化,把车载放到RM模式。

存车线方式跳过了车辆段到转换轨这一段,直接把车放在正线附近,适合快速开展模式转换实验。而车辆段出发方式更接近真实运营场景,能让学生同时看到RM模式在段内运行的限制条件——信号不开放,RM模式也不能动车。

3. 三种车载控制模式:RM、CM、AM的转换条件与参数操作

3.1 RM模式:限速下的人工驾驶

RM(Restricted Manual,限制人工驾驶)是人控优先、系统限速的一种模式。在RM模式下,列车由司机人工控制牵引和制动,但车载系统会限制最高运行速度——通常不超过25km/h,具体限速值由线路和ZC参数决定。这也是为什么实验里从车辆段到转换轨这段路要开RM:段内信号条件简单,不需要高速度,RM模式足够安全。

RM模式的操作套路看起来有点绕:先“参数选择RM点亮”,再“列车方向按钮中向前”,最后“RM点熄”。

# 以状态机形式描述RM模式操作序列 actions = [ ("RM", "点亮"), # 请求进入RM模式,车载接收指令 ("方向", "向前"), # 设定列车运行方向 ("RM", "点熄"), # 确认RM模式生效,开始牵引 ]

我一开始不理解为什么要“点亮再点熄”,后来实际操作才明白:点亮是向车载发送模式请求,方向按钮是给列车牵引指令,点熄是确认这个模式已经生效。这个仿真软件里的按钮不是简单的开关,更像“请求-确认-执行”三段式。如果你点了RM点亮但忘了按方向,列车是不会动的;如果把方向设置好了但RM没有点熄,列车会停在待命状态,速度显示始终为0。

3.2 CM模式:转入CBTC人工驾驶

RM跑起来之后,下一步是切到CM模式。CM(CBTC Manual,CBTC人工驾驶)模式下,列车还是由司机人工操作,但移动授权和超速防护全部由ZC和车载ATP接管。这时候列车的安全完全靠系统来保障,司机只负责驾驶,不需要像RM那样处处盯着速度限制。

实验里的操作很简单:点击“CM可用”,车载就转入CM模式。但这里有一个前提条件没有在界面上明说——列车必须已经被ZC注册成功、且ZC给出了有效的移动授权,CM才能转得过去。如果ZC侧显示注册失败,或者列车当前位置不在ZC管辖区段内,你点CM可用会没反应。

所以我的习惯是:在点CM之前,先切到ZC界面看一眼注册状态;如果是多车实验,还要确认本车的车号跟ZC里注册的车号一致。

3.3 AM模式:ATO自动运行与发车时序

AM(Automatic Mode)是ATO(列车自动运行)模式,列车在ATC系统的控制下自动运行,司机不参与牵引和制动操作,只负责监控。从CM切AM,操作是:先点击“ATO点亮”,后点击“ATO发车点熄”。

需要注意,AM模式不是切过去就立刻跑的。ATS必须已经给这列车下发了运行计划,车载接收到计划后在界面右上角显示出运行曲线,这时AM模式才真正具备自动运行条件。实验里特别提到,运行曲线有两条:一条是绿色的,依据计划生成的站间曲线;一条是黄色的,依据进路开放情况生成的运行曲线。两者同时显示,黄色曲线就是系统在告诉司机:计划有了,但前面的进路还没完全给你,你要按黄色曲线的约束跑。

跑AM模式的时候,我建议先看黄色曲线的形态,如果黄色曲线和绿色曲线偏差很大,大概率是进路没有排通,先别急着发车,去检查信号和进路状态。

3.4 模式转换的整体流程串讲

把三种模式放到一条完整链路里看:

RM(限速人工)→ CM(CBTC防护人工)→ AM(ATO自动运行)

每一步都对应一个先决条件:

模式转换先决条件操作要点
待机→RM车已注册、信号已开放RM点亮→方向向前→RM点熄
RM→CMZC移动授权有效点击CM可用
CM→AMATS计划已下发、运行曲线已显示ATO点亮→ATO发车点熄

我在实验里见过几次“CM转AM点不动”的情况,最后发现都是因为ATS计划还没下发到车载。车载没有运行曲线,ATO就没有目标速度,自然进不了AM。先等在车上把计划刷出来,再去做模式转换,顺序错一步就是要重启的命。

4. 运行计划与驾驶操作:从发车、开关车门到跳停

4.1 运行线设计与任务下发

模式转换做完,车还不能跑,必须先设计运行线。实验里设计了一条从文澜站到沙河站的运行路线,并把当天运行路线上传到ATS。“先对列车进行线路设置,要先设置成功才会有列车在存车线显示,要在列车计划表里查看是否设置成功。”

这一步是容易忽略的。你加了车、初始化了,但存车线上没看到车,第一反应可能是车没加上。其实更可能是运行线没有设置成功,列车不认为自己被排进了运营计划。去列车计划表里确认线路是否存在,而不是反复加车。

运行图上的细节值得注意:可以在运行图上拖拉路线两点的横坐标距离,这个距离对应的是两站之间预计的运行时间。运行图的横轴是时间轴,纵轴是车站/线路位置,所以两个点之间的横向距离拉得越长,列车跑完这段的计划时间就越久。实验里这组把两站时间点拉得过长,结果车提前到站了,AM发车没反应,最后点了提前发车才解决——这个坑下面细说。

运行线设置完成后,还要“运行任务,等待发车”。ATS侧下发发车任务,车载才会进入待发车状态。实验报告中特意写了一句“若没有下发任务直接操作驾驶,列车是没有运行速度的”。我专门试过一次不点任务直接推驾驶杆,列车速度显示纹丝不动。这个设计其实合理——CBTC系统里,列车没有运营计划授权就不允许移动,是安全逻辑的一部分。

4.2 驾驶台操作与行车

在AM模式下,驾驶台操作由ATO执行,司机的推杆动作更多是逻辑上的确认。实验里以3号车为例,操作了驾驶台驶出列车,驾驶台显示列车速度和运行状态。

到站后要人工开关车门:点击“打开左边车门”或者“打开右边车门”,然后再点击“关闭左边车门”或者“关闭右边车门”。车门关闭后,车载运行曲线会发生变化,系统重新计算下一站的运行计划,然后继续以AM模式操作列车运行。

这里有一个时序要点:必须先确认车门完全关闭,再操作发车。如果车门状态没有刷新到车载系统,AM模式不会给出牵引指令,列车的速度曲线会直接停在零位。我在实验中遇到过关右边车门后曲线没有变化的情况,检查发现是左边车门虽然显示关闭但状态没有同步,重新点击后才正常。

4.3 提前发车与跳停处理

实验里遇到了一次真实的运营场景:因为设计运行线时两站之间的预计时间设置过长,列车提前到站了,但时刻表上还没到发车时间点。这时候操作AM模式发车没有响应——列车在等时刻表授权,司机不能强行发车。

解决办法是点击列车处的“提前发车”按钮,相当于调度员授权这列车提前离开车站,然后再操作AM模式,列车重新驶出。

另一个场景是跳停。为了观察列车在高速段的运行表现,在列车处设置了跳停,让列车跳过下一站不停车。跳停设置后,列车运行速度很快达到了80km/h。从原理上说,跳停本质上是修改了ATS计划——列车不再需要进站减速停车,所以目标速度曲线不再包含站前减速段。如果你的实验目标是看列车高速运行下的牵引特性,跳停是很好用的手段。

5. 常见问题与避坑:顺序出错就要整体重启

这一章是我根据实验过程和市场里同类仿真系统的经验整理的坑,每一条都是实际操作中验证过的,按“现象→原因→解决”的格式记录。

5.1 运行线设置后存车线看不到列车

现象:加车和ATC初始化都完成了,但存车线上没有显示本组列车。

原因:运行线没有设置成功,或者设置后没有上传到ATS。列车没有被纳入运营计划,系统不认为这列车具备出库条件,所以不显示。

解决:先到列车计划表里查看运行线是否存在,确认线路上传成功后,再回到车载界面操作。如果计划表里确实没有,重新设计运行线并上传,不要反复点加车。

5.2 驾驶台操作了但列车速度始终为零

现象:所有驾驶操作都做了,RM、CM模式都切过,列车就是不走,速度显示为零。

原因:ATS没有下发发车任务,列车没有收到运营授权。CBTC逻辑下,没有计划授权的列车不允许移动。

解决:在ATS侧下发发车任务,等待车载界面出现运行曲线后再操作驾驶。每次实验前先确认本列车有计划、有任务、有曲线,三样齐了再动车。

5.3 ATC钥匙接通和初始化顺序反了导致所有计算机重启

现象:先点了ATC初始化,再点ATC钥匙接通,ZC界面没有注册成功,随后整套仿真系统卡死,所有计算机需要重启。

原因:初始化请求在ATC设备未上电的情况下发出,软件状态机直接异常退出。

解决:强制固定顺序——加车完成后,先点“ATC钥匙接通”,再点“ATC初始化”。我从那以后每次都把这两个按钮的顺序写在纸上贴在屏幕边上,这个顺序是整套实验里最不能翻车的环节。

5.4 提前到站后AM模式无响应

现象:列车到达车站后,开关车门完成,重新操作AM模式,列车没有反应,运行曲线不变。

原因:列车早于时刻表规定的时间点到达,ATS没有下达发车指令,AM模式下ATO不会执行未授权动作。

解决:点击“提前发车”按钮,授权列车提前出发,然后再操作AM模式。注意做这个操作前先确认车门状态是关闭的,否则仍然无法发车。

5.5 RM模式下按了方向键但列车不动

现象:RM模式参数已点亮,方向也选择了向前,列车还是静止。

原因:RM模式下的“点亮”只是模式请求,方向按钮设定了运行方向,但最后一个“RM点熄”动作是确认执行。三个动作缺一不可,很多人漏了最后一步。

解决:严格按照“RM点亮→方向向前→RM点熄”的顺序操作,每做一步看一次车载界面的状态栏,确认模式状态刷新后再进行下一步。

6. 把实验沉淀为自检表:模式转换检查与视觉检测扩展

6.1 模式转换操作自检表

这套实验做完,我手里最值钱的东西不是实验报告本身,而是一张手写的模式转换自检表。每次做实验前都按这个顺序过一遍,基本不会出问题:

阶段操作项确认状态
出库前运行线设置并上传列车计划表可见
出库前加车到初始位置车载界面显示车位置
加车后ATC钥匙接通ZC界面待命
加车后ATC初始化ZC提示注册成功
模式1RM点亮→方向向前→RM点熄列车开始牵引
模式2点击CM可用车载显示CM模式
模式3ATS下发任务后,ATO点亮→ATO发车点熄运行曲线出现、列车自动运行

这个表不只在实验里用。后来我做其他仿真项目,也习惯先把操作序列拆成“动作-确认状态”两列,写清楚每个操作之后系统应该显示什么,再动手。这比反复试错要省时间得多。

6.2 用Anaconda+OpenCV把视觉目标检测接进来

实验本身是信号系统仿真,但如果你想在这个基础上做视觉方向的目标检测扩展——比如用摄像头识别驾驶台信号灯颜色、检测车门状态指示灯——常规做法是用Anaconda配置Python环境,通过OpenCV读取仿真画面做颜色检测。环境配置的思路一般是:

# 创建独立环境并安装OpenCV conda create -n signal_lab python=3.8 conda activate signal_lab pip install opencv-python numpy

针对信号灯颜色识别,可以用HSV色彩空间做阈值提取:

import cv2 import numpy as np frame = cv2.imread("driving_console.png") hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV) # 绿色信号灯范围 lower_green = np.array([35, 100, 100]) upper_green = np.array([85, 255, 255]) mask_green = cv2.inRange(hsv, lower_green, upper_green) # 计算绿色像素占比 ratio = cv2.countNonZero(mask_green) / (mask_green.shape[0] * mask_green.shape[1]) if ratio > 0.01: print("信号灯状态:允许发车") else: print("信号灯状态:未开放")

HSV阈值的设定要看你实际截图的信号灯颜色,荧光屏的绿色和LED的绿色色相范围不完全一样,一般先截一帧保存下来,用取色工具确认H值再写进代码。

还记得第一次做这套实验的时候,我在ATC初始化上栽了跟头,两台计算机直接重启,被同组人念叨了一整节课。从那以后,每一次动手前我都强制自己先走一遍自检表,确认运行线、任务、模式三样都齐了才碰驾驶台。信号系统这种东西,操作顺序就是安全逻辑本身,跳一步、反一步,系统就会用最难看的方式提醒你。希望这份实验拆解和避坑记录能帮你少走几步冤枉路。

本文还有配套的精品资源,点击获取

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/18 19:59:59

联合需求计划JRP:结构化工作坊破解需求获取与对齐难题

做系统需求分析这些年,要说哪个环节最让人头疼,需求获取绝对永远排在我个人榜单的第一名。项目上踩过的坑、背过的锅,十有八九都出在需求没摸透就动了工。联合需求计划(JRP,Joint Requirements Planning)是…

作者头像 李华
网站建设 2026/10/21 1:15:15

稀土永磁产业链供应链论坛复盘:宁波产教融合生态的产业信号

中国(宁波)稀土永磁产业链供应链发展论坛暨产教融合生态大会,这个名字放在行业日历里,分量不小。稀土永磁这几年从默默无闻的工业原料变成了新能源、机器人和高端装备绕不开的核心材料,产业链上游的矿、中游的材料、下游的应用,任…

作者头像 李华
网站建设 2026/10/19 16:43:14

OpenClaw AI代理安全风险解析:从权限失控到盗刷防护

最近技术社区里流传着一句话:“第一批OpenClaw受害者出现了”。有人贴出信用卡被连续扣款的记录,有人说自己微信红包里的零钱一夜之间被转走,还有人连银行卡都收到了异地消费提醒。作为一个长期折腾AI自动化、又碰巧做过安全测试的从业者&…

作者头像 李华
网站建设 2026/10/18 7:08:01

PD协议芯片选型实战:XPD737多口快充与XPD-LINK应用解析

简介:XPD737 规格书完整收录了富满电子旗下云矽半导体这款多协议 USB PD 控制器的技术细节,适合电源适配器、排插及多口充电设备研发人员与硬件工程师参考。文档共 1 个 PDF 文件,压缩包仅 858KB,已有 287 人学习。内容覆盖芯片特…

作者头像 李华