列车运行速度曲线优化方法

文档序号:33191134发布日期:2023-02-04 08:30阅读:428来源:国知局
列车运行速度曲线优化方法

1.本发明涉及列车控制技术领域,具体涉及一种基于shield q-learning算法的列车运行速度曲线优化方法。


背景技术:

2.列车推荐速度曲线在实际线路运营中作为ato系统控制器的跟踪目标,指导列车运行。优化的列车速度曲线,能够有效降低列车牵引能耗,因此,如何生成一条节能、安全、高效、舒适的曲线成为了众多学者关注的重点。工程中曲线的生成主要依赖于atp曲线约束和人类经验判断。从已有研究成果来看,列车速度曲线优化与运行控制等方面已经开展了大量的理论与技术研究工作,主要包括利用极大值原理进行数学推导的解析法、将优化目标函数作为适应度函数进行种群迭代的遗传算法和蚁群算法等进化算法以及与计算机科学结合的动态规划、人工智能等数值法。
3.面对列车自身的运动模型难以用精确参数进行描述的问题以及未来列车自主运行的发展趋势,使得强化学习被越来越多的学者应用,利用列车运行历史数据训练q表格,降低对精确列车模型的依赖程度。然而,由于缺乏硬约束对求解过程进行防护,强化学习的实际结果总是不能令人满意,收敛速度也很难达到预期水平。因此,能否准确校验推荐运行工况的安全与否,提高强化学习算法的安全性是当前需要解决的问题。


技术实现要素:

4.本发明的目的在于提供一种列车运行速度曲线优化方法,以解决上述背景技术中存在的至少一项技术问题。
5.为了实现上述目的,本发明采取了如下技术方案:
6.本发明提供一种列车运行速度曲线优化方法,包括:
7.步骤s1,采集列车运行线路的线路数据,所述线路数据包括运行线路的动态线路数据与运行线路的静态线路数据;其中,静态线路数据包括线路的静态限速、坡度以及曲率;动态线路数据包括线路在客流平峰、高峰时的计划站间运行时间;
8.步骤s2,对列车运行线路的线路数据进行预处理与数据增强处理;
9.步骤s3,在python环境下,构建基于学习马尔可夫决策过程策略算法的防护模型;
10.步骤s4,基于步骤2处理后的数据,训练并压缩所述防护模型,通过训练和压缩好的防护模型生成列车速度曲线。
11.优选的,构建所述防护模型包括:构建q表,提取当前状态输入q表,根据当前状态选择动作;将当前状态与选择的动作进行校验,校验通过的为当前状态安全动作;根据当前状态以及经过校验后的当前状态安全动作计算奖励和下一状态;将当前状态及安全动作输入q表。
12.优选的,将下一状态输入q表,根据下一状态选择动作;将下一状态以及根据下一状态选择的动作进行校验,校验通过的为下一状态安全动作;将奖励、下一状态和下一状态
安全动作输入q表,进行q表更新。
13.优选的,构建q表包括:使用时间步长与列车运行工况初始化q表,其中,列车运行工况通常包括最大牵引、巡航、惰行、最大制动四种工况;根据列车运行图的计划运行时间对q表进行再初始化,将与列车运行图吻合的时间步长-工况节点赋值为正常数。
14.优选的,根据当前状态选择动作,包括:在获得当前状态后,生成随机数;若随机数小于探索概率,则随机选择动作,此时为探索策略;否则,选择q表中在当前状态下q值最大的动作,此时为贪婪策略。
15.优选的,将当前状态与选择的动作进行校验,包括:对输入的状态与动作进行状态转移模拟得到下一状态模拟;对下一状态模拟进行校验,若下一状态模拟符合安全约束则将输入的动作输出为安全动作,若下一状态模拟不符合安全约束则选择新的符合安全约束的动作输出为安全动作。
16.优选的,根据下一状态选择动作,包括:在获得下一状态后,生成对应的随机数;若随机数小于探索概率,则随机选择动作,此时为探索策略;否则,选择q表中在当前状态下q值最大的动作,此时为贪婪策略。
17.优选的,训练并压缩所述防护模型,包括:采用python环境进行训练,获得训练好的防护模型;将训练好的防护模型进行模型转换,转换成车载计算机支持的excel表格;对转换后的excel表格进行降低比特数的量化压缩。
18.优选的,使用线性时序逻辑,结合马尔科夫决策过程实现防护模型。
19.优选的,防护模块包括有限状态反应系统、状态轨迹、安全准则、观测函数、安全自动机或马尔科夫决策过程中的至少一种。
20.本发明有益效果:先通过线路施工设计图获得线路的静态限速、坡度、曲率等静态线路数据,通过列车运行时刻表获得线路在客流平峰、高峰时的计划站间运行时间等动态线路数据,然后通过数据预处理、shield q-learning算法实现列车运行过程中的运行指令推荐,再根据结果进行模型的训练、压缩和部署,以便用于实时辅助列车司机的安全高效驾驶,有效提升了列车的运行舒适度,保障了旅客的出行安全。
21.本发明附加方面的优点,将在下述的描述部分中更加明显的给出,或通过本发明的实践了解到。
附图说明
22.为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
23.图1为本发明实施例所述的列车运行速度曲线优化流程示意图。
24.图2为本发明实施例所述的防护模型架构示意图。
25.图3为本发明实施例所述的优化后的速度曲线示意图。
具体实施方式
26.下面详细叙述本发明的实施方式,所述实施方式的示例在附图中示出,其中自始
至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过附图描述的实施方式是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
27.本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语)具有与本发明所属领域中的普通技术人员的一般理解相同的意义。
28.还应该理解的是,诸如通用字典中定义的那些术语应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样定义,不会用理想化或过于正式的含义来解释。
29.本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件和/或它们的组。
30.在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
31.为便于理解本发明,下面结合附图以具体实施例对本发明作进一步解释说明,且具体实施例并不构成对本发明实施例的限定。
32.本领域技术人员应该理解,附图只是实施例的示意图,附图中的部件并不一定是实施本发明所必须的。
33.实施例1
34.本实施例1提供一种基于shield q-learning(防护q学习)的能够降低列车运行能耗、提升列车运行舒适度的用于轨道交通的列车速度曲线优化方法,包括以下步骤:
35.步骤s1,采集列车运行线路的线路数据,所述线路数据包括运行线路的动态数据与运行线路的静态数据;
36.步骤s2,对列车运行线路的线路数据进行预处理与数据增强处理;
37.步骤s3,在python环境下开发shield q-learning算法,设计防护模型和各部分组成模块,划分状态空间,设置探索方式等参数;
38.步骤s4,训练并压缩模型,通过训练和压缩好的模型生成列车速度曲线。
39.所述步骤s1中,通过线路施工设计图获得线路的静态限速、坡度、曲率等静态线路数据;通过列车运行时刻表获得线路在客流平峰、高峰时的计划站间运行时间等动态线路数据。
40.所述步骤s2按下述公式对同方向坡度和线路曲率进行处理:
[0041][0042]
其中,k代表第k个坡度,hk代表坡度的垂直高度,lk代表坡度的长度,ik为原始的坡度值,ir为处理后的坡度值,n为需要合并处理的坡度书,ωr为处理后的线路曲率,r为线路曲线半径。
[0043]
所述步骤s3包括以下子步骤:
[0044]
步骤s301:开发防护模块shield;
[0045]
步骤s302:开发shield q-learning,构建环境、奖励、探索、训练、防护、q表等功能模块;
[0046]
步骤s303:从环境模块提取状态输入q表,根据状态选择动作;
[0047]
步骤s304:将状态与选择的动作输入防护模块,防护模块对选择的动作进行校验;
[0048]
步骤s305:根据当前状态以及经过防护模块校验后的安全动作计算奖励、下一状态;
[0049]
步骤s306:将当前状态及安全动作输入q表获得q(s,a
safe
);其中,s表示当前状态,a
safe
表示当前状态对应的安全动作;
[0050]
步骤s307:将下一状态输入q表,根据下一状态选择动作;
[0051]
步骤s308:将下一状态与选择的动作输入防护模块,防护模块对选择的动作进行校验;
[0052]
步骤s309:将奖励r、下一状态s

和下一状态安全动作as′
afe
输入q表获得r+maxq
as

afe
(s

,as′
afe
)。
[0053]
步骤s3010:shield-sarsa的q表更新如下方公式所示:
[0054][0055]
其中,α为学习率,通常为0.1,γ为奖励折扣率,通常为大于0.8小于1的正数。
[0056]
所述步骤s301的开发防护模块shield包括以下子步骤:
[0057]
步骤s3011:使用线性时序逻辑构建shield模型,shield包括有限状态反映系统(finite-state-reactive-system)、状态轨迹(state-trace)、安全准则(safety-specification)、观测函数(observe-function)等模块;
[0058]
步骤s3012:使用马尔科夫决策过程(mdp)实现shield模型。
[0059]
所述步骤s301中,防护模块包括有限状态反应系统(finite-state-reactive-system)、状态轨迹(state-trace)、安全准则(safety-specification)、观测函数(observe-function)、安全自动机(safety-automaton)、马尔科夫决策过程(mdp)中的至少一种。
[0060]
所述步骤s302的构建q表包括以下子步骤:
[0061]
步骤s3021:使用时间步长与列车运行工况初始化q表,其中时间步长通常为0.2秒,列车运行工况通常包括最大牵引、巡航、惰行、最大制动四种工况;
[0062]
步骤s3022:根据列车运行图的计划运行时间对q表进行再初始化,将与列车运行图吻合的时间步长-工况节点赋值为正常数。
[0063]
所述步骤s303的根据状态选择动作包括以下子步骤:
[0064]
步骤s3031:在获得状态后,系统生成随机数ε


[0065]
步骤s3032:在系统生成随机数ε

后,若ε

《ε则随机选择动作,此时为探索策略,否则选择q表中在当前状态下q值最大的动作,此时为贪婪策略。随着模型的收敛,探索概率ε减小。
[0066]
所述步骤s304的防护模块对选择的动作进行校验包含以下子步骤:
[0067]
步骤s3041:防护模块根据输入的状态与动作进行状态转移模拟得到下一状态模
拟;
[0068]
步骤s3042:防护模块对下一状态模拟进行校验,若下一状态模拟符合安全约束则将输入的动作输出为安全动作,若下一状态模拟不符合安全约束则使用与步骤s303完全相同的策略选择新的符合安全约束的动作输出为安全动作。
[0069]
所述步骤s307中根据下一状态选择动作时,应使用与步骤s303完全相同的方法,即若s303为探索,s307即为探索,若s303为贪婪,s307即为贪婪。
[0070]
所述步骤s308与所述步骤s304除输入不同外完全一致。
[0071]
所述步骤s4包括以下子步骤;
[0072]
步骤s401:采用python环境进行训练,获得模型;
[0073]
步骤s402:将训练好的模型进行模型转换,转换成车载计算机支持的excel表格;
[0074]
步骤s403:对转换后的excel表格进行降低比特数的量化压缩。
[0075]
综上,先通过线路施工设计图获得线路的静态限速、坡度、曲率等静态线路数据,通过列车运行时刻表获得线路在客流平峰、高峰时的计划站间运行时间等动态线路数据,然后通过数据预处理、shield q-learning算法实现列车运行过程中的运行指令推荐,再根据结果进行模型的训练、压缩和部署,以便用于实时辅助列车司机的安全高效驾驶,有效提升列车的运行舒适度,保障旅客的出行安全。
[0076]
实施例2
[0077]
本实施例2中,提供一种基于shield q-learning的列车速度曲线优化方法,包括以下步骤。
[0078]
步骤s1,采集列车运行线路的线路数据,所述线路数据包括运行线路的动态数据与运行线路的静态数据;
[0079]
步骤s2,对列车运行线路的线路数据进行预处理与数据增强处理;
[0080]
步骤s3,在python环境下开发shield q-learning算法,设计防护模型和各部分组成模块,划分状态空间,设置探索方式等参数;
[0081]
步骤s4,训练并压缩模型,通过训练和压缩好的模型生成列车速度曲线。值得说明的是,本实施例所述步骤s1中,优先通过线路施工设计图、列车运行时刻表获取如线路坡度、限速、计划运行时间的数据,用于提前获得列车前方线路的线路条件。
[0082]
本实施例2所述步骤s2按下述公式对同方向坡度和线路曲率进行处理;
[0083][0084]
其中,k代表第k个坡度,hk代表坡度的垂直高度,lk代表坡度的长度,ik为原始的坡度值,ir为处理后的坡度值,n为需要合并处理的坡度书,ωr为处理后的线路曲率,r为线路曲线半径。
[0085]
本实施例2所述步骤s3中的防护模块shield采用基于线性时序逻辑的安全自动机构建。本例构建的防护模块shield指的是用于防止算法输出不安全指令的安全强化学习架构,本架构的组成包括有限状态反应系统(finite-state-reactive-system)、状态轨迹(state-trace)、安全准则(safety-specification)、观测函数(observe-function)、安全自动机(safety-automaton)、马尔科夫决策过程(mdp)中的至少一种。如图2所示,在防护模块shield的基础上本例提出一种双层的安全强化学习架构。
[0086]
本例所述步骤s3包括以下子步骤;
[0087]
步骤s301:开发防护模块shield;
[0088]
步骤s302:开发shield q-learning,构建环境、奖励、探索、训练、防护、q表等功能模块;
[0089]
步骤s303:从环境模块提取状态输入q表,根据状态选择动作;
[0090]
步骤s304:将状态与选择的动作输入防护模块,防护模块对选择的动作进行校验;
[0091]
步骤s305:根据当前状态以及经过防护模块校验后的安全动作计算奖励、下一状态;
[0092]
步骤s306:将当前状态及安全动作输入q表获得q(s,a
safe
);其中,s表示当前状态,a
safe
表示当前状态对应的安全动作;
[0093]
步骤s307:将下一状态输入q表,根据下一状态选择动作;
[0094]
步骤s308:将下一状态与选择的动作输入防护模块,防护模块对选择的动作进行校验;
[0095]
步骤s309:将奖励r、下一状态s

和下一状态安全动作as′
afe
输入q表获得
[0096][0097]
步骤s3010:shield-sarsa的q表更新如下方公式所示:
[0098][0099]
其中,α为学习率,通常为0.1,γ为奖励折扣率,通常为大于0.8小于1的正数。
[0100]
本例所述步骤s302的构建q表包括以下子步骤:
[0101]
步骤s3021:使用时间步长与列车运行工况初始化q表,其中时间步长通常为0.2秒,列车运行工况通常包括最大牵引、巡航、惰行、最大制动四种工况,即q表的维度应为(t

/0.2)
×
4;t

表示计划运行时间。
[0102]
步骤s3022:根据列车运行图的计划运行时间对q表进行再初始化,将与列车运行图吻合的时间步长-工况节点赋值为正常数。
[0103]
更为优选的,本例所述步骤s303的根据状态选择动作包括以下子步骤:
[0104]
步骤s3031:在获得状态后,系统生成随机数ε


[0105]
步骤s3032:在系统生成随机数ε

后,若ε

《ε则随机选择动作,此时为探索策略,否则选择q表中在当前状态下q值最大的动作,此时为贪婪策略。探索概率ε的初值一般为10%,随着模型的收敛,其值随自然对数e的负指数减小。
[0106]
本例所述步骤s304的防护模块对选择的动作进行校验包含以下子步骤:
[0107]
步骤s3041:防护模块根据输入的状态与动作进行状态转移模拟得到下一状态模拟;
[0108]
步骤s3042:防护模块对下一状态模拟进行校验,若下一状态模拟符合安全约束则将输入的动作输出为安全动作,若下一状态模拟不符合安全约束则使用与步骤s303完全相同的策略选择新的符合安全约束的动作输出为安全动作。
[0109]
本例步骤s3041、s3042中的不符合安全约束包括列车超速、列车紧急制动、列车加速度变化量绝对值大于0.5m/s2中的至少一种。安全动作不会使得列车不符合安全约束。
[0110]
本例步骤s304与s308唯一区别在于,s304中防护模块的输入为当前状态,s308中
防护模块的输入为下一状态。这是由于q learning算法属于异轨(off-policy)策略算法,在进行q表的更新时需要使用下一状态最大q值的安全动作。
[0111]
本例所述步骤s4包括以下子步骤;
[0112]
步骤s401:采用python环境进行训练,判断模型是否收敛。模型足够收敛则奖励维持在较高值,且连续10次测试过程的平均奖励值的方差小于测试阈值,此时可输出模型,否则重新训练模型;
[0113]
步骤s402:将训练好的模型进行模型转换,转换成车载计算机支持的excel表格。在训练过程中,输出的模型一般以ndarray的形式存储,为了能将模型部署在车载计算机上,因此需要使用openpyxl与pandas工具包将ndarray转换为易于操作的excel表,同时,考虑到在构建q表时使用的是0.2s的时间步长,但在列车实际运行过程中一般是通过位置-速度数据对校验列车运行状态,因此需要将此时的时间步长-工况excel表转化为位置-工况excel表,其中,工况仍为四种不变,位置离散步长为1m。另外,此处先将ndarray转化为excel,再将时间步长-工况excel转化为位置-工况excel的原因是,两个excel表的维度不同,直接在python环境下对ndarray操作较为麻烦;
[0114]
步骤s403:对转换后的excel表格进行降低比特数的量化压缩,在python环境下,ndarray中存储的数据类型一般是float32或float64,即可保证小数点后六位的数据精度,考虑到列车实际运行过程中的速度精度以及尽可能在保证精度的前提下减小存储空间,因此在转换为位置-工况excel时仅保留小数点后两位数据。
[0115]
本模型在量化压缩后能有效减少内存占用空间,减小访问带宽需求,提高求解速度,同时,由于实际列车运行速度精确度的限制,本模型的量化压缩对模型精确度的影响有限。
[0116]
经测试得知,本例量化后的模型输出安全动作的概率达到了99.83%。一条优化后的速度曲线如图3所示。
[0117]
综上所述,本实施例2中,先通过线路施工设计图获得线路的静态限速、坡度、曲率等静态线路数据,通过列车运行时刻表获得线路在客流平峰、高峰时的计划站间运行时间等动态线路数据,然后通过数据预处理、shield q-learning算法实现列车运行过程中的运行指令推荐,再根据结果进行模型的训练、压缩和部署,以便用于实时辅助列车司机的安全高效驾驶,有效提升列车的运行舒适度,保障旅客的出行安全。
[0118]
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0119]
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0120]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0121]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0122]
上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明公开的技术方案的基础上,本领域技术人员在不需要付出创造性劳动即可做出的各种修改或变形,都应涵盖在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1