张亚忠
国内外对于卫星导航的仿真主要集中在射频信号的处理上,对于轨迹仿真的研究也基本集中在航空领域。北京交通大学是国内最早将卫星导航系统运用在列车运行轨迹仿真的单位,其仿真方法主要有2种:一种是采用国外的卫星信号发生器和simGEN软件,将现场采集的铁路NMEA数据导入,生成列车运行的卫星射频信号[1],这种方法能从信号端进行模拟,更为真实,但设备昂贵、成本较高;另一种方法是使用软件模拟,软件中直接将现场采集的列车运行卫星轨迹数据作为基础数据库,通过读取数据或者是将邻近2点看成直线生成导航数据[2],这种方法成本较低,但是弊端也很明显,需要的数据量较大[3],且只能模拟列车匀速运行的情况。
由于青藏铁路ITCS系统采用了卫星导航系统作为定位方式,为了便于研发,需要在实验室环境下搭建低成本模拟卫星导航的列车运行轨迹仿真平台。
列车运行轨迹仿真平台包括列车接口仿真子系统、轨旁仿真子系统和GNSS仿真模拟器[4],其总体架构见图1。
图1中,列车接口仿真子系统提供机车接口和司机操作模拟功能,测试人员可以通过列车接口仿真子系统添加列车,并对仿真列车进行手柄控制、加减速、机车风压设置等操作。列车接口仿真子系统通过网口将列车初始位置及列车状态信息发送给轨旁仿真子系统,同时通过前台界面显示仿真列车的速度、加速度以及与车载设备交互的机车接口等信息。
图1 列车运行轨迹仿真平台总体架构
轨旁仿真子系统根据列车初始位置及列车状态信息,结合本地线路地图实时计算列车运行状态信息,并将该信息通过网口发送给GNSS仿真模拟器,同时在其前台界面上的站场图中进行显示。
GNSS仿真模拟器根据列车运行状态信息匹配轨道电子地图,计算生成列车卫星轨迹数据[5],列车运行轨迹表现形式为卫星数据格式,可发送给车载设备进行列车自主定位计算;GNSS仿真模拟器用户交互界面显示列车所处车站及经纬度等列车数据,并可进行故障注入。
列车运行轨迹仿真平台工作流程见图2,其说明如下。
图2 列车运行轨迹仿真工作流程
1)列车运行轨迹仿真平台上电后,在列车接口仿真子系统中添加列车,并根据实际情况输入列车的初始状态,如列车所在站号、股道号、列车相对轨道一端的位置、列车长度、列车类型和列车即将运行的方向(上、下行)等。
2)轨旁仿真子系统接收列车接口仿真子系统传输的数据,在站场界面上显示列车图标,并将列车初始状态信息发送给GNSS仿真模拟器。
3)GNSS仿真模拟器根据接收到的轨旁仿真子系统数据,生成卫星导航数据,并在GNSS仿真模拟器上显示初始经纬度和航向角。
4)GNSS仿真模拟器将初始经纬度和航向角按照约定的数据协议组成数据包,以一定频率发送给车载设备。
5)在轨旁仿真子系统的站场图界面中预设列车运行轨迹,并将道岔设置在合适位置,从而排列好列车的进路信息,列车启动后将沿着线路轨迹运行。
6)在列车接口仿真子系统上操作方向手柄向前、缓解独立制动、设置列车目标速度,以及操作牵引手柄挡位。列车接口仿真子系统显示列车速度逐渐增加,直到目标速度后保持不变。
7)轨旁仿真子系统依据列车的初始状态和列车接口仿真子系统传输的列车速度,并结合本地线路数据实时递推列车新的位置信息(站号、股道号、距离轨道一端距离等)。轨旁仿真子系统站场图界面显示动态运行的列车图标。
8)在仿真过程中,可根据实际情况在GNSS模拟器中使用故障注入功能。如果需要模拟故障注入功能直接转到11),否则转到9)。
9)轨旁仿真子系统将列车动态运行数据发送至GNSS仿真模拟器。GNSS仿真模拟器依据列车当前位置信息找到轨道电子地图中对应数据区域,计算列车公里标,并且判断列车处于站内还是站外,是直线区段还是曲线区段;接着找到轨道电子地图中与列车相邻2个数据点的定位信息(经纬度和航向角),依据相关公式计算列车当前的定位信息,并在GNSS仿真模拟器上显示动态变化的经纬度和航向角。
10)GNSS仿真模拟器将上述计算的列车动态的经纬度和航向角,依据约定的数据协议组成数据包,按照一定频率(可配置,默认值为5 Hz)发送给车载设备。
11)操作者在GNSS仿真模拟器故障注入界面选择发送错误数据或者带有偏移的数据,GNSS仿真模拟器计算列车运行轨迹卫星数据时会将错误或偏移数据注入到生成结果中,并将该数据发送给车载设备。
列车接口仿真子系统软件运行在树莓派板卡的Linux系统中,采用BS架构,后台服务使用NodeJS开 发,前 台 网 页 使 用HTML结 合Javascript设计,前、后台间使用MQTT协议进行仿真数据同步。测试人员在前台通过按钮、手柄、输入框等控件添加列车并模拟机车乘务员的真实操作。网页界面可通过表盘和曲线方式显示后台输出的列车状态信息(各速度传感器转速、列车速度、加速度、相对位移等)。后台服务接收前台信息,根据列车的牵引、制动状态完成列车加速度、速度和相对位移的实时计算,并将列车初始位置及列车状态信息根据UDP协议发送给轨旁仿真子系统。
轨旁仿真子系统软件环境为Linux系统,采用C++语言进行开发,通过读取配置文件,生成仿真线路中轨道区段、信号机、道岔等设备的拓扑链接关系,根据仿真列车的初始位置及列车状态信息实时计算相关区段的列车占用状态,生成每辆列车当前的运行状态信息(列车当前的运行方向、所处车站站号、股道号、所处轨道区段编号及相对于轨道区段起点的偏移等),并根据UDP协议发送给GNSS仿真模拟器。
轨旁仿真子系统采用网页形式在站场图中显示列车运行过程中的位置信息。站场图通过HTML网页进行访问展示,运用SVG矢量图完成轨道区段、信号机等信号设备图元绘制,采用CSS层叠样式表对图像样式进行定义[6]。列车占用区段后,该区段显示变为红色,并通过移动黄色光带显示列车车头、车尾位置信息,通过黄色光带占所在区段比例显示列车长度信息。通过点击操作站场图上的区段、道岔等设备图元,用户可以进行运行轨迹的规划,设置列车的进路信息等。
图3是轨旁仿真子系统界面图,显示列车在站场图中轨道区段的占用、列车所在轨道区段的具体位置以及列车运行方向等列车运行状态信息。
图3 轨旁仿真子系统界面
GNSS仿真模拟器软件环境为Windows系统,采用C++语言进行开发,收到列车运行状态信息后,将列车相对于轨道区段起点的位置转换成轨道电子地图中的线路里程,然后在轨道电子地图[7]中找到与当前列车位置最近的相邻2个点的定位数据,依据直线轨道或曲线轨道的求解公式计算出列车运行轨迹卫星数据。GNSS仿真模拟器采用RS-422串口将计算出的列车运行轨迹卫星数据发送给车载设备,车载设备根据该信息进行列车定位及相关控制计算。
GNSS仿真模拟器计算列车运行轨迹卫星数据场景如图4所示,A、B、D 3点依次连接,分别形成了直线轨道和曲线轨道;C和C1是列车分别运行在直线轨道和曲线轨道时的质点模型[8]。
图4 列车运行轨道场景
GNSS仿真模拟器提供了Windows窗口用户界面,可以显示列车经纬度、数据交互等信息,见图5。
图5 GNSS仿真模拟器显示界面
GNSS仿真模拟器能够模拟多种故障场景:①隧道或遮挡场景,列车在隧道中运行时,卫星接收机不会输出经纬度数据,通过人工勾选的方式可以中断数据输出,模拟卫星丢失;②山川河谷地区,其主要特点是搜星过少,通过注入卫星个数减少卫星信息,以检测车载对该种场景的反应;③卫星状态仿真,目前卫星导航仿真支持的状态有单点定位和差分定位2种模式,在发车测试过程中由于车载设备未与地面差分站建立链接,此时车载处于单点模式状态,在正常运行过程中一般选择差分定位模式;④数据异常仿真,数据异常仿真主要有经纬度数据异常,例如仿真的列车有速度,但经纬度值一直不变,时间戳跳变,航向角突然增大或变小等。
用户可通过勾选图5中的故障选项,如硬件故障及解算故障;或者强制输入特定的误差因子,如输入股道位置偏差,完成多种故障的注入。
列车运行轨迹仿真平台各子系统均进行日志记录,内容包括子系统之间的数据交互内容、系统计算过程中的中间量和软件自身的故障报警等。日志记录功能可离线分析仿真平台和车载问题,提高了车载的测试效率。
基于卫星导航的列车运行轨迹仿真平台在设计中按照不同的功能点进行模块化设计[9],具有以下特点。
1)将列车运行状态与卫星导航仿真功能相隔离,可针对列车的实际运行状态进行模拟仿真。
2)仿真系统的可扩展性好,通过在轨旁仿真子系统中增加相应的IP,可增加GNSS仿真模拟器个数,实现仿真系统数量的增加,用于模拟双套冗余或者多车场景。
3)利用轨道电子地图将列车运行轨迹约束在特定的线路[10],与列车的真实运行轨迹一致。
4)针对不同的线路情况,采用不同的算法(例如直线轨道采用垂直投影的方法,曲线轨道采用求取圆上坐标的方法),使得仿真与实际情况更接近。利用起始/终止点表示直线轨道的多个采样点,增加航向角增量及起始/终止点表示曲线轨道的采样点,从而减少电子地图的数据量,节省了仿真系统的存储空间。
5)具有多故障注入功能,可覆盖实际运行场景中卫星导航出现的故障场景。
基于卫星导航的列车运行轨迹仿真平台不仅能够支撑国产化ITCS车载设备的顺利研发,也可为其他基于卫星导航的列控系统(如下一代列控系统)仿真平台提供技术基础。但列车运行轨迹仿真平台对于卫星数据的计算仿真依赖于提前制作的轨道电子地图,鉴于行业暂未对轨道电子地图形成统一的标准,因此仿真平台的扩展性还有待提高,下一步可基于我国自主产权的新型列控系统的电子地图进行仿真平台的升级完善。