一种轨道交通动态缓冲区计算方法
技术领域
本发明涉及一种轨道交通动态缓冲区计算方法,尤其涉及一种基于列车行为的轨道交通动态缓冲区计算方法。
背景技术
在轨道交通列车运行的过程中,缓冲区能够确保列车安全运行。缓冲区分为静态缓冲区(静态buffer)与动态缓冲区(动态buffer),其中动态缓冲区会考虑到列车运行前方的道岔状态,若当前道岔状态与缓冲区路线行进时道岔状态不一致,则线路中道岔后续的轨道区段无需考虑。因此动态缓冲区状态计算在提高列车运行效率的同时,也提升了计算的复杂度。
现有的计算方法中,将每个轨道区段(block)与该轨道区段处在被动占用(buffered block)时可能正在被占用的每个轨道区段(buffering block)都进行计算,这种一对一的算法会造成多条路径重复计算,影响软件运行效率。
发明内容
本发明的目的在于提供一种轨道交通动态缓冲区计算方法,能够提高软件运行效率。
为了达到上述目的,本发明提供一种轨道交通动态缓冲区计算方法,将正在被占用的轨道区段作为起始轨道区段,按照列车的行进方向对所述正在被占用的轨道区段的动态缓冲区中的所有轨道区段进行遍历搜索,添加所述动态缓冲区中的所有轨道区段的路径和道岔状态信息;
所述遍历搜索的方法包含:
如果不存在道岔,则按照列车的前进方向依次搜索当前轨道区段的下一个轨道区段;
如果存在汇聚道岔,则按照列车的前进方向依次搜索当前轨道区段的下一个轨道区段;如果当前轨道区段存在于汇聚道岔的警冲区覆盖区域,则在按照列车的前进方向搜索当前轨道区段的下一个轨道区段的同时,搜索汇聚道岔另一侧警冲区覆盖的轨道区段,并且在之后对该情况的判断中无需考虑该汇聚道岔;
如果存在发散道岔,则先搜索下一个定位轨道区段,再搜索下一个反位轨道区段。
所述添加轨道区段的路径和道岔状态信息的方法包含:
如果不存在道岔,则直接添加轨道区段的路径信息和空道岔状态信息;
如果存在发散道岔,则按照遍历搜索的顺序分别添加轨道区段的路径信息和道岔状态信息;
如果存在汇聚道岔,则添加轨道区段的路径信息和道岔状态信息;
如果当前轨道区段存在于汇聚道岔的警冲区覆盖区域,则添加该汇聚道岔另一侧警冲区覆盖的所有轨道区段的路径信息,并将路径信息中的方向取反,在之后对该情况的判断中无需考虑该汇聚道岔。
所述路径和道岔状态信息至少包含:正在被占用的轨道区段的名称、正在被占用的轨道区段的动态缓冲区中的轨道区段的名称、动态缓冲区中的轨道区段的被缓冲方向、动态缓冲区中的轨道区段的当前缓冲方向、动态缓冲区中的轨道区段与起始轨道区段之间的道岔状态。
所述列车行进方向包含上行方向和下行方向。
采用先入后出的计算栈实现对动态缓冲区中所有轨道区段的遍历搜索。
将所述路径和道岔状态信息排序后输出为指定格式文件;
所述排序方法包含:首先根据轨道区段的名称排序,再按照上行-下行顺序排序,最后按照道岔状态反位-定位顺序排序。
根据系统数据表、配置信息表和道岔列表获取被占用的轨道区段的动态缓冲区中的所有轨道区段、道岔警冲区。
遍历系统数据表中包含当前线路的重叠区表,获得动态缓冲区覆盖当前线路轨道区段的相邻线路轨道区段,根据配置信息表中的缓冲区功能激活数参数,获得正在被占用的轨道区段的名称。
遍历系统数据表中当前线路范围的道岔,根据道岔警冲区覆盖轨道区段列表,以及轨道区段之间的链路关系,将轨道区段分为上行定位、上行反位、下行定位、下行反位。
与现有技术相比,本发明具有以下优点:
1、运行效率高,基于列车行为进行一整条路径的计算,减少了路径多次计算造成的效率降低,根据实际结果表明,本发明相比现有技术能够节省90%以上的时间。
2、可维护性高,该方法中各个步骤之间不具有强耦合关系,当某一步骤的规则有所变更,或是需要增添新的内容时,能够找到需要更新之处进行维护,而不会影响其他步骤的实现。
附图说明
图1为本发明提供的一种轨道交通动态缓冲区计算方法的具体流程图。
图2为基于列车行为与深度搜索遍历获得路径以及道岔状态信息的流程图。
图3为轨道区段与动态缓冲区轨道区段之间形成类型1的示意图。
图4为轨道区段与动态缓冲区轨道区段之间形成类型2的示意图。
图5为轨道区段与动态缓冲区轨道区段之间形成类型3的示意图。
图6为本发明实施例中某一实际线路的局部图。
具体实施方式
以下根据图1~图6,具体说明本发明的较佳实施例。
如图1所示,本发明提供一种轨道交通动态缓冲区计算方法,包含以下步骤:
步骤A:参数初始化;
步骤B:获取正在被占用的轨道区段状态计算公式;
步骤C:获取道岔与道岔警冲区所覆盖的轨道区段的映射关系;
步骤D:生成每个轨道区段与该轨道区段处在被动占用时可能正在被占用的每个轨道区段之间的路径以及路径内道岔状态信息;
步骤E:将步骤D获得的路径与对应的道岔状态信息列表输出为指定格式的文件。
所述的步骤A:参数初始化,初始化的参数包括:
当前线路所包含的所有轨道区段;相邻线路所包含的轨道区段,这些轨道区段对应动态缓冲区覆盖当前线路的轨道区段;所有的道岔列表;系统数据表;配置信息表。
所述的步骤B:获取正在被占用的轨道区段状态计算公式,包括:
1)遍历系统数据表中包含当前线路的重叠区表,获得动态缓冲区覆盖当前线路轨道区段的相邻线路轨道区段;在相邻线路中可能会存在缓冲区包含当前线路轨道区段的轨道区段,需要将相邻线路中的这些轨道区段也加入考虑,但并不是所有相邻线路中的轨道区段都需要考虑,因此在步骤B中需要筛选出步骤A载入的相邻线路包含轨道区段中,缓冲区包含当前线路轨道区段的轨道区段,作为计算以及结果的一部分;
2)根据配置信息表中的缓冲区功能激活数参数,采用栈的数据结构,获得每一个被占用的轨道区段的状态计算公式,这些轨道区段的动态缓冲区中包含当前线路轨道区段。
所述的步骤C:获取道岔与道岔警冲区所覆盖的轨道区段的映射关系,具体为:
遍历系统数据表中当前线路范围的道岔,根据道岔的警冲区覆盖轨道区段列表,以及轨道区段之间的链路关系,将这些轨道区段分为上行定位、上行反位、下行定位、下行反位存储。
所述的步骤D:根据列车行为(包含列车起始位置,当前正在被占用的轨道区段,以及列车的行进方向),通过深度优先遍历搜索,生成每个轨道区段与该轨道区段处在被动占用时可能正在被占用的每个轨道区段之间的路径以及路径内道岔状态信息(见图2所示),包括:
1、获取步骤B得到的正在被占用的轨道区段的状态计算公式中包含有该轨道区段名的公式名称作为需要计算的对象,初始化计算栈与道岔状态信息;
2、对每一个正在被占用的轨道区段,将此轨道区段压入计算栈中作为列车行进的起始轨道区段,并分别以上下行两个方向作为列车的行进方向,开始遍历;
3、将计算栈中最顶部轨道区段弹出,并获取该轨道区段与起始轨道区段之间道岔状态信息;
4、判断该轨道区段是否存在于起始轨道区段当前方向的动态缓冲区中,若不存在,则执行步骤8;
5、判断道岔信息,若无道岔,该轨道区段与起始轨道区段形成类型1的关系(见图3所示),直接将该轨道区段与空道岔状态信息存储进路径列表;若有道岔,则该轨道区段与起始轨道区段形成类型2的关系(见图4所示),此时将该轨道区段与道岔状态信息存储进路径列表;
6、判断当前轨道区段是否存在于汇聚道岔的道岔警冲区域,若存在,则根据步骤C得到的道岔与道岔警冲区所覆盖的轨道区段的映射关系,获得汇聚道岔另一侧的轨道区段,这些轨道区段与起始轨道区段形成类型3的关系(见图5所示),此时将这些轨道区段存储进路径列表,同时方向取反,关联的道岔状态信息与当前轨道区段与起始轨道区段之间的道岔状态信息相同;
7、根据链路关系,获得当前轨道区段在该方向的下一个轨道区段,若存在发散道岔,则需同时获得定位与反位的下一个轨道区段,并在当前路径道岔信息的基础上,添加不同的道岔状态信息,分别关联到定位与反位的下一个轨道区段后,先将反位轨道区段压入计算栈中,再将定位轨道区段压入计算栈中;若存在汇聚道岔,则将道岔状态添加到当前路径道岔状态信息之后,再将下一个轨道区段压入计算栈中;若不存在道岔,则直接将下一个轨道区段压入计算栈中;若不存在下一个轨道区段则不执行任何操作;
8、判断当前计算栈是否为空,若是,则结束遍历,并判断是否存在下一个正在被占用的轨道区段,若是则选取并初始化计算栈与道岔状态信息,执行步骤2,若否则直接结束;若当前计算栈不为空,则执行步骤3。
所述的步骤E:将步骤D获得的路径与对应的道岔状态信息列表输出为指定格式的文件,包括:
1)将步骤D获得的路径与对应的道岔状态信息列表排序;
2)输出为指定格式的文件。
对于步骤E,其中所述的将步骤D获得的路径与对应的道岔状态信息列表排序,是指首先根据被动占用轨道区段的ID排序,再按照上行-下行顺序、道岔状态反位-定位顺序排列。
遍历搜索与添加轨道区段道岔信息的方法分为三种:第一种为不存在道岔,则与当前描述一致,按照前进方向搜索下一个轨道区段并记录;第二种为存在道岔,若存在汇聚道岔,则依旧按照前进方向搜索下一个轨道区段,但此时可能是通过道岔的定位或者反位继续前进,需要将此时的道岔状态记录,若存在发散道岔,则与当前描述一致;第三种与前两种同时进行,在判断是否有道岔的同时,判断当前轨道区段是否存在于某一汇聚道岔的警冲区覆盖区域内,若存在,则搜索该汇聚道岔另一侧警冲区覆盖的所有轨道区段(此时无需记录该汇聚道岔的道岔状态信息),将方向取反,并在此后对该情况的判断中无需再考虑该道岔,第三种情况中只需搜索全部另一侧轨道区段,而无需继续向前依次搜索。
本实施例轨道区段线路连接情况见图6所示。其中道岔P1的警冲区域(FoulingZone)为B2、B3、B5,道岔P2的警冲区域为B3、B4、B6。在本实施例中以位于相邻线路上的B1作为占用轨道区段(Buffering block),其他轨道区段均处于B1在上行方向的动态缓冲区中。生成其他所有轨道区段关于B1的动态缓冲区状态计算公式。在本实施例中,结果以布尔逻辑式的形式给出。
步骤A:参数初始化;
将系统数据表、配置信息表、所有轨道区段与道岔信息载入,配置信息表中只激活缓冲区的1和2功能,其中功能1和功能2表示在2种车模式下激活缓冲区计算功能;
步骤B:获取正在被占用的轨道区段状态计算公式;
在本实施例中,正在被占用的轨道区段为B1,生成其动态缓冲区状态计算公式:
--OPERATOR_NAME;BE_RESULT_NAME;BIINARY_NAME_LEFT;BIINARY_NAME_RIGHT
OPERATOR_AND;BE_NOT_BUFFERING_UP_B1;LC_NOT_BUFFERING_1_UP_B1;LC_NOT_BUFFERING_2_UP_B1
步骤C:获取道岔与道岔警冲区所覆盖的轨道区段的映射关系;
本实施例中存在两个道岔P1、P2,根据链接关系以及图6中的定反位关系,可以得到两个道岔的警冲区域,见表1所示。
表1道岔警冲区域表
步骤D:生成每个轨道区段与该轨道区段处在被动占用时可能正在被占用的每个轨道区段之间的路径以及路径内道岔状态信息;
1)将B1作为起始block压入栈中,首先将B1弹出栈,由于自身不在自己的动态缓冲区中,不存入,获得其下一个轨道区段B2并将其压入栈中;
2)将B2弹出,B2与B1之间为类型1关系,直接存储;
3)B2在P1的警冲区域,计算另一侧轨道区段B5,与B2状态一致进行存储;
4)将B2的下一个轨道区段B3压入栈中,并将P1道岔状态进行添加;
5)弹出B3,计算状态并存储,然后将其下一个轨道区段按B6、B4的顺序放入栈中,同时将对应的P2道岔状态对不同的路径分别进行添加;
6)弹出B4计算并存储;
7)弹出B6计算并存储;若B4后面还存在轨道区段,则处理方式与B2相同,计算并存储之后,将B4后续轨道区段压入栈中,则下一步会先将B4后续轨道区段弹出进行计算,直到后续再无轨道区段处于起始轨道区段的缓冲区中,才会弹出B6进行计算。
最终获得的信息见表2所示。
表2路径与对应的道岔状态信息表
步骤E:将步骤D获得的路径与对应的道岔状态信息列表输出为指定格式的文件。
根据表2所得的结果,将其排序并转化为公式的形式输出。
--OPERATOR_NAME;BE_RESULT_NAME;BIINARY_NAME_LEFT;BIINARY_NAME_RIGHT
OPERATOR_AND;BE_NOT_BUFFERED_UP_B2;BE_NOT_BUFFERING_UP_B1;BE_NOT_BUFFERING_UP_B1
OPERATOR_OR;BE_NOT_BUFFERED_UP_B3;BE_NOT_BUFFERING_UP_B1;LC_F_DPR_P1
OPERATOR_OR;BE_NOT_BUFFERED_UP_B4_0001;LC_F_DPR_P1;LC_F_DPR_P2
OPERATOR_OR;BE_NOT_BUFFERED_UP_B4;BE_NOT_BUFFERING_UP_B1;BE_NOT_BUFFERED_UP_B4_0001
OPERATOR_AND;BE_NOT_BUFFERED_DN_B5;BE_NOT_BUFFERING_UP_B1;BE_NOT_BUFFERING_UP_B1
OPERATOR_OR;BE_NOT_BUFFERED_UP_B6_0001;LC_F_DPR_P1;LC_F_DPN_P2
OPERATOR_OR;BE_NOT_BUFFERED_UP_B6;BE_NOT_BUFFERING_UP_B1;BE_NOT_BUFFERED_UP_B6_0001
与现有技术相比,本发明具有以下优点:
1、运行效率高,基于列车行为进行一整条路径的计算,减少了路径多次计算造成的效率降低,根据实际结果表明,本发明相比现有技术能够节省90%以上的时间。
2、可维护性高,该方法中步骤A到E之间不具有强耦合关系,当某一步骤的规则有所变更,或是需要增添新的内容时,能够找到需要更新之处进行维护,而不会影响其他步骤的实现。
需要说明的是,在本发明的实施例中,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”、“顺时针”、“逆时针”、“轴向”、“径向”、“周向”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述实施例,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
尽管本发明的内容已经通过上述优选实施例作了详细介绍,但应当认识到上述的描述不应被认为是对本发明的限制。在本领域技术人员阅读了上述内容后,对于本发明的多种修改和替代都将是显而易见的。因此,本发明的保护范围应由所附的权利要求来限定。
- 上一篇:石墨接头机器人自动装卡簧、装栓机
- 下一篇:一种列车定位监控系统、方法和存储介质