发明内容
本发明提出一种基于自适应A-Star算法的铁路机车优化操纵方法,该方法通过自适应调整优化过程中的相关参数,可以取得更好的搜索效果,并可以取得时间和效率之间的更好平衡,达到了铁路机车操纵的节能优化。
本发明解决其技术问题所采用的技术方案是提供一种基于自适应A-Star算法的铁路机车优化操纵方法,其特征在于:包括以下步骤:
步骤1、准备当前机车车辆参数、线路数据和司机驾驶操纵历史数据,并进行数据预处理;
该步骤中,所需机车车辆参数由当前优化目标机型车次给定;所需线路数据从线路数据库中根据具体运行区间提取;所需司机驾驶历史数据从司机实际驾驶操纵曲线中选取;
步骤2、基于机车牵引计算模型,搭建列车运行A-Star算法机车操纵序列优化计算单元并预留基本估价函数调整接口,其具体包括以下步骤:
1)、定义并实现机车优化操纵序列计算方法的基本计算单元,将求解整段线路满足能耗最少和准时性最佳的操纵序列分解为一系列连续的、同构的子问题,迭代搜索各子问题的最佳解,综合各子问题的解形成全局的最终解;
2)、定义列车运行A-Star算法的第一估价函数,
h(x)=|T0+h(T)-Tlimit|+E0+h(E)
其中:
对剩余路程能耗的估价函数:h(E)表示能耗估计值,h(s)代表剩余路段长度,Δs代表一个单位步长,而ΔE代表现有档位单位步长的能耗;
对剩余路程时间的估价函数:h(T)表示剩余路程时间估计值,h(s)代表剩余路段长度,v是当前速度;
E=E0+h(E)
T=|T0+h(T)-Tlimit|
其中,E为估计的全局能耗,T为估计的全局时间偏差,Tlimit为全局的计划时间,E0为已经行驶的路程的确定的能耗值,T0为已经行驶的路程的确定的时间消耗值。
所述第一估价函数构成估价函数的基本估价函数,其函数形式及相关参数预留作为后续自适应计算时的调整接口;
3)、将上述基本计算单元定义和第一估价函数应用到A-Star算法中,构建列车运行A-Star算法机车操纵序列优化计算单元;
步骤3、基于列车动能变化、速度变化、能耗特性与司机驾驶历史数据信息针对步骤2中预留的第一估价函数进行修正,其包括:
1)结合动能变化和司机驾驶历史数据统计,修正后的余路程能耗的估价函数为
其中,H(E)是利用利用司机历史驾驶数据对剩余路段所需能耗的估计值,m是列车的重量,v是列车的速度,代表动能的变化,αE表示平衡两部分估计值之间关系的线性系数;
2)基于速度变化,修后的时间估价函数为
其中,h(T)表示对剩余路段所需时间的估计值,是符合时间限制的平均速度,s为线路总长,Tlimit表示全局的计划时间,代表从当前速度变化到平均速度所需要的时间,a是列车当前的加速度,αT是用来平衡两部分关系的系数;
3)基于修正后的两个变量估价函数的基础上,获得整体优化搜索的第二估价函数:h(x)=αtotal*|T0+h(T)-Tlimit|+E0+h(E),
其中:|T0+h(T)-Tlimit|表示时间差,E0+h(E)表示能耗,αtotal表示用来平衡两个部分的系数,E0为已经行驶的路程的确定的能耗值,T0为已经行驶的路程的确定的时间消耗值。
步骤4、以列车准点和能耗最少为多目标优化目标,构建基于NSGA-II算法的自适应A-Star算法,从而优化调整步骤3中的估价函数中的系数αE,αT,αtotal;
步骤5、定义优化计算迭代终止条件,计算列车运行速度曲线,完成铁路机车优化操纵方法。
本发明的积极效果是:
(1)本发明铁路机车优化操纵序列设计中考虑了车辆动能的变化与优化计算系数的耦合因素,使得计算中对实际能耗估价函数预测的效果更精准有效;
(2)本发明铁路机车优化操纵序列计算过程中部分优化参数可以自适应调整,能够适应机车、线路等条件的变化,对机车运行状态达到更好的预测效果,并能够根据实验、仿真和实际优化的具体需求,调整优化操纵序列在计算时间花销和优化效果之间的平衡。
具体实施方式
以下结合附图1-4对本发明进行详细说明。
本发明中机车指铁路牵引机车,车辆指被牵引列车车辆,列车指机车车辆总成。
本发明提供了一种基于自适应A-Star算法的铁路机车优化操纵方法,具体包括以下步骤:
步骤1、准备当前机车车辆参数、线路数据和司机驾驶操纵历史数据,并进行数据预处理。
该步骤中,所需机车车辆参数由当前优化目标机型车次给定;所需线路数据从线路数据库中根据具体运行区间提取;所需司机驾驶历史数据从现有的、运行条件相同或相近下的、相对节能的司机实际驾驶操纵曲线中选取。
所述当前机车车辆参数获取时,为了便于与司机实际驾驶数据相比较,机车车辆参数选取时与所参照的司机实际驾驶数据中的参数尽量一致。所需准备的机车车辆参数包括:
1)机车长度、机车重量、机车Davis系数
2)车辆总数、车辆总重量、车辆总长度、车辆Davis系数
3)机车牵引特性曲线,即机车各牵引档位不同速度时对应的牵引力
4)机车制动特性曲线,即机车各制动档位不同速度时对应的制动力
5)机车能耗曲线,即机车牵引、惰行、制动等各档位单位时间的能耗
所述线路数据获取时,根据当前车次运行线路段需求提取相应车站间的铁路线路信息,所需的线路数据及其相关属性信息如表1所示:
表1
所述司机驾驶历史数据提取时,根据司机驾驶统计能耗选取相对节能驾驶的司机驾驶记录,所需准备的给定机车给定线路的司机驾驶历史数据主要包括:
1)如上所述车辆长度、载重等相关参数;
2)给定线路上的临时限速等信息;
3)司机实际操纵过程中的档位、运行速度等信息;
所述数据预处理即对上述三类数据进行简单处理,方便后续计算过程,减少可能计算错误.本发明需要对上述三类数据进行以下预处理:
1)机车车辆参数预处理:按照列车牵引计算规程国家标准换算机车车辆各参数单位。
2)线路数据预处理:计算线路附加阻力等效加算坡度:按照列车牵引计算规程国家标准将曲线附加阻力、隧道附加阻力等内容转化为以千分度为计量单位的加算坡度,并将原始坡道数据和等效曲线附加阻力、隧道附加阻力加算坡度数据合并,得到完整连续的附加阻力等效加算坡度。
3)司机实际驾驶数据预处理:提取司机实际驾驶过程中的档位和时间信息,根据机车单位能耗值计算司机实际驾驶过程中的计算能耗Ecal,用于后续节能驾驶优化效果的对比。其中,设Ei表示i档位单位能耗,Ti表示i档位作用时间,则计算能耗Ecal计算方式如下:
步骤2、基于机车牵引计算模型,搭建列车运行A-Star算法机车操纵序列优化计算单元并预留估价函数调整接口。
所述机车牵引计算模型,包括机车牵引力F、制动力B和列车总阻力W的计算,及基于牛顿定律的运动学计算关系。该过程考虑机车牵引、惰行和制动的作用原理和计算方式,以及机车在行驶过程中受到的基本阻力和附加阻力,分析得到机车在行驶过程中的总的受力,演算得到机车在行驶过程中的加速度等参数,从而建立起机车的牵引计算模型,根据机车牵引计算模型来计算给定距离下机车行驶时间或给定时间下机车行驶距离。
司机在车辆行驶过程中通过控制档位来控制机车的作用力。档位共分为3类,牵引、惰行和制动。当档位位于牵引档位时,机车提供的作用力F起牵引作用(与行驶方向相同);当档位位于惰行档位时,机车不提供作用力;当档位位于制动档位时,机车提供的作用力B起制动作用(与行驶方向相反)。
低牵引档位对应较小的牵引力,高牵引档位对应较大的牵引力。与此同时,同样的档位在机车速度不同时牵引力也不同,随着速度上升,机车提供的牵引力相应下降。
制动档位和牵引档位类似,低制动档位对应较小的制动力,高制动档位对应较大的制动力。同样的制动档位在机车速度不同时提供的制动力也不同,随着速度上升,机车提供的制动力相应下降。
在进行机车操纵序列计算的过程中,具体的档位、速度和牵引/制动力的关系,会先根据专家经验和实验数据获得牵引/制动曲线,然后在实际计算中根据具体数值查表获得对应作用力大小。
列车在行驶的过程中,除了有机车提供的牵引力/制动力,还会受到阻力的影响。列车阻力按产生的原因,分为基本阻力、附加阻力和起动阻力。三种阻力的数量均与机车、列车的总重成正比。
基本阻力是指列车运行中的固有阻力,包括摩擦阻力和空气阻力。世界各国计算机车单位基本阻力的公式,不论牵引运行或惰力运行,普遍采用以运行速度v为变量的函数形式:
wo=a+b×v+c×v2
wo为列车运行单位基本阻力,单位为N/t;v为列车运行速度,单位为km/h;系数a、b、c由试验确定。
附加阻力是指列车在特定条件下运行时除基本阻力外增加的那部分阻力,包括坡道附加阻力、曲线附加阻力和隧道内空气附加阻力,可以根据线路数据和计算公式进行计算。
其中坡道附加阻力的公式为
wi=i,其中wi为单位坡道阻力,i为坡道坡度千分数。
曲线附加阻力的公式为
wr=600/R,其中wr为单位曲线阻力,R为曲线半径。
隧道附加阻力的公式为
ws=0.13×Ls,其中ws为单位隧道阻力,Ls为隧道长度。
起动阻力是指列车从静态向动态转变所产生的阻力,在进行优化操纵序列计算时可暂不考虑。
因此列车阻力的和W的计算公式为
W=wo+wi+wr+ws
综合考虑上述作用力,列车所受合力C计算如下:
C=F-W-B
通过合力C,列车运动学关系可以按照牛顿定律求解如下:
其中,a是列车加速度,m是列车总质量,进而根据加速度值计算给定距离下机车行驶时间或给定时间下机车行驶距离,用于更新机车行驶的速度、时间、运行距离等信息,并按照预处理中能耗统计方式统计运行时间与单位能耗的对应关系来更新机车行驶的总的能耗。
所述列车运行A-Star算法机车操纵序列优化计算单元,以单位步长的档位作为每个迭代单元的变量,以全局的能耗和准时程度作为衡量标准,迭代直至获得优化的操纵序列。其中能耗和准时程度包含剩余部分的能耗和时间消耗的估计。
该机车优化操纵序列计算方法的整个实现方式包含如下的基本步骤:
1)、根据A-Star算法实现的需求,定义并实现机车优化操纵序列计算方法的基本计算单元,即子问题。A-Star算法需要求解整段线路满足能耗最少和准时性最佳的操纵序列分解为一系列连续的、同构的子问题,并迭代搜索各子问题的最佳解,综合各子问题的解形成全局的最终解。在机车优化操纵序列计算方法中,子问题定义为:将整段完整线路划分为固定长度的若干连续分段(称为步长),并假设在每个步长内部机车将会从始至终选取同一个档位行驶,而不同步长选取的的档位可以不同。每个步长的档位选取范围都涵盖机车所有牵引档位、惰行档位和制动档位。根据选择的档位和上述机车牵引计算动力模型,可以计算得到每个步长内的时间和能耗。
2)、定义A-Star算法估价函数。机车操纵优化的目标是全局的用时和能耗最优,A-Star算法需要根据当前的时间和能耗对剩余路程的用时和能耗进行估计,从而来评价该后代选择该档位的优劣。
基于A-Star算法的机车优化操纵序列计算方法中的估价函数中对剩余路程能耗的估价函数为其中h(E)表示能耗估计值,h(s)代表剩余路段长度,Δs代表一个单位步长,而ΔE代表现有档位单位步长的能耗。
对剩余路程时间的估价函数为其中v是当前速度。
据此,对一个后代的评价为
E=E0+h(E)
T=|T0+h(T)-Tlimit|
其中,E为估计的全局能耗,T为估计的全局时间偏差,Tlimit为全局的计划时间。E0为已经行驶的路程的确定的能耗值,T0为已经行驶的路程的确定的时间消耗值。
多目标的情况下需要使用一个同时包含多个目标的函数来统一量化评价标准。这里选取
h(x)=|T0+h(T)-Tlimit|+E0+h(E)
来作为整体的评价函数。
以上估价函数设计作为本发明估价函数的基本估价函数,其函数形式及相关参数预留作为后续自适应计算时的调整接口。
3)、将上述基本计算单元定义和估价函数定义应用到A-Star算法中,构建列车运行A-Star算法机车操纵序列优化计算单元,用于迭代地搜索每个步长的最佳档位。具体的搜索流程如图2所示:
a.对当前搜索档位的步长,在档位选取范围内选择所有的档位,根据机车牵引计算动力模型、机车参数和线路数据,计算当前步长行驶所需的时间和能耗;
b.根据选取档位之后计算所得的新的机车状态(速度v等),以及定义的估价函数评估每个选取的档位对应的剩余路程所需的能耗和时间消耗,从而得到每个档位对应的整条线路所需的能耗和准时性的估计值。根据每个档位的全局的能耗和准时性,将所有选择的档位进行排序。
c.选取排序最高的若干个档位(2-3个),在对应档位的计算结果上,类似地计算下一个步长的档位排序。注意到下一个步长中每个对应档位有新的整条线路的能耗和准时性的估计值,用最好的档位的对应结果更新“父亲档位”(对应的步骤b中的档位)的能耗和准时性的估计值,并更新排序
迭代地按照步骤c计算接下来的步长,选择档位、计算评估值以及更新上一个步长的档位,即“父亲档位”(在搜索的树状结构中回溯至步骤b中最开始的步长“根步长”的档位,即“祖先档位”)的评估值,直至满足单次迭代终止条件(达到搜索的深度和时间消耗阈值)。在最初计算的步长的选取档位中,选取最终排序最佳的档位作为最终确定档位,然后将“根步长”定为该步长的下个步长。
步骤3、基于列车动能变化、速度变化、能耗等特性与司机驾驶历史数据信息针对预留的估价函数进行修正,提高估价函数精度和优化操纵序列计算效率。
上述估价函数h(x)=|T0+h(T)-Tlimit|+E0+h(E)中,对剩余时间的估计和剩余能耗的估计都没有结合速度变化引起的动能变化,同时完全依据当前档位的参数线性放缩得到剩余路程的能耗也并不合理。为了获取更好的优化操纵序列计算效果,本步骤对估价函数的做以下三方面修正内容:
1)结合动能变化和司机驾驶历史数据统计,修正对剩余路程能耗的估价函数
不同档位选取之后,列车跑完当前步长会得到对应的能耗,速度也会有相应的变化。从全局来看,速度变化引起的动能变化与全局的能耗是有关联的。一个可能的场景是,当前步长进行牵引加速之后,虽然当前步长的能耗较高,但动能也得到了较大提高,而这个动能变化对于全局能耗的减少是有益的(更快的速度意味着剩余路程更少的时间,同时也就意味着更少的能耗)。因此,可以将动能的变化量其中m为列车质量,v为列车速度,加入到能耗的估价函数中。
与此同时,与原有的根据当前档位的能耗线性放缩来估计剩下路段的能耗不同,利用司机的历史驾驶数据统计来估计剩下路段的能耗是一种更精确的方式,这里的估计利用统计平均的计算结果来估计。具体的实现方式是,从司机历史驾驶数据中筛选出包含完整剩余路段的数据,计算所有满足条件的数据的对应能耗的平均值作为估计值。
这样得到一个更合理的估价函数为 其中H(E)是利用利用司机历史驾驶数据对剩余路段所需能耗的估计值,代表动能的变化,而αE则是平衡两部分估计值之间关系的线性系数。
2)考虑速度变化,加入速度调整到平均速度需要的时间,获得新的时间估价函数类似地,一个对剩余路段时间消耗更好的估价函数为 其中h(T)表示对剩余路段所需时间的估计值,是符合时间限制的平均速度,s为线路总长,Tlimit表示全局的计划时间,代表从当前速度变化到平均速度所需要的时间,a是列车当前的加速度,αT是用来平衡两部分关系的系数。
3)结合上述1)中对能耗的估计和2)中对时间的估计,综合得到整体的评价函数。
在这两个变量估价函数的基础上,整体优化搜索的估价函数可以表示为h(x)=αtotal*|T0+h(T)-Tlimit|+E0+h(E),其中h(x)是估价函数的整体代价估计值,包含时间差(|T0+h(T)-Tlimit|)和能耗(E0+h(E))两个部分,αtotal则是用来平衡两个部分的系数。E0为已经行驶的路程的确定的能耗值,T0为已经行驶的路程的确定的时间消耗值。
步骤4、以列车准点和能耗最少为多目标优化目标,构建基于NSGA-II算法自适应优化上述估价函数的自适应A-Star算法,整体构建基于自适应A-Star算法的铁路机车操纵优化计算环境。
NSGA-II算法自适应优化上述估价函数是指自适应优化调整估价函数中的系数αE,αT,αtotal。
NSGA-II算法和A-Star算法是两个相对独立的模块,通过决策向量和评价结果来进行数据交换。NSGA-II与A-Star的相互关系如图3所示。
A-Star算法可以理解为NSGA-II中搜索的评价函数。对于NSGA-II中初始种群中的后代或是中间交叉、变异产生的后代,其包含的[αE,αT,αtotal]变量应用到A-Star算法时会得到一个最优的时间误差和能耗,这是A-Star的计算结果也是NSGA-II中单个后代的评价。对于[时间阈值,搜索深度]的变量也是相同的原理。
其中涉及的NSGA-II算法的主体循环部分包含如下的步骤:
1)随机初始化开始种群P0(种群中每个后代包含一组特定的[αE,αT,αtotal]或者是[时间阈值,搜索深度]),并对P0进行非支配排序,初始化每个个体的rank值
2)设定循环计数变量t=0
3)通过二进制锦标赛法从Pt选择个体,并进行交叉和变异操作,产生新一代种群Qt
4)通过合并Pt和Qt产生出组合种群Rt=Pt∪Qt
5)对Pt进行非支配排序,并通过排挤和精英保留策略选出N个个体,组成新一代种群Pt+1
6)跳转到3),并循环,直至满足结束条件
其中非支配排序是NSGA-II算法的核心部分,它将种群中的个体的决策向量[αE,αT,αtotal]的值传递给A-Star优化操纵序列计算方法,得到[总时间差,总能耗]的目标向量结果。不同个体间通过比较[总时间差,总能耗]来进行排序。
步骤5、定义优化计算迭代终止条件,计算列车运行速度曲线,完成铁路机车优化操纵方法。
优化迭代的终止条件时间阈值和搜索深度能通过影响每次迭代的搜索质量和搜索时间,来影响整次优化操纵序列计算的搜索效果和搜索时间。在不同的情境下,比如离线优化、半实物仿真和在线优化等情境下,对于搜索效果和搜索时间的要求是不同的,这就要求能灵活地根据实际要求来设定。
本发明利用NSGA-II算法,以列车准点和能耗最少为目标搜索步骤4修正后的A-Star算法中最佳的估价函数系数αE,αT,αtotal,再以计算方法运行时间和操纵序列节能效果的平衡为目标搜索最佳的时间阈值和搜索深度参数。
经过有限次迭代达到终止条件后,将最后产生的当前最优后代中的[αE,αT,αtotal]作为A-Star优化操纵序列计算方法中最终采用的估价函数系数。
类似地,将A-Star算法中[时间阈值,搜索深度]两个参数作为决策向量,将[总时间差,总能耗]作为目标向量,由NSGA-II算法生成种群,进行非支配排序和锦标赛选择来筛选,再通过交叉、变异获得新的个体,循环直至满足结束条件。最后得到的种群中非支配排序最高的个体即是满足实验需求的[时间阈值,搜索深度]参数数值。
将以上优化计算过程用于当前机车优化操纵序列的求解,达到迭代终止条件时即可方便地得到当前机车在给定路段上的列车运行的距离、速度、时间和能耗等的关系,得到有效的机车节能优化操纵方法,用于机车优化操纵。
应用示例:
以下结合具体的算例,对本发明所述的方法进行详细说明。
该实施例中,首先按照步骤1的内容和形式,以某和谐机车的参数作为机车参数输入,以某给定货运路段线路数据作为线路数据输入,并从原始的线路数据中计算得到等效坡道数据。
按照步骤2中的说明建立机车牵引计算模型并完成基于A-Star算法的机车优化操纵序列计算方法,其中剩余路段能耗估价函数为剩余路段时间估价函数从而得到整体的估价函数为h(x)=|T+h(T)-Tlimit|+h(E)。同时设定A-Star算法的单次搜索的时间阈值calculateTime=1(s),单次搜索的最远距离calculateDistance=5000(m)。这样的框架下对给定路段和机车进行优化操纵序列计算,得到的时间消耗Ttotal和能耗Etotal结果为:
Ttotal |
Etotal |
1235.10 |
225.00 |
然后按照步骤3的说明重新修整估价函数。剩余路段能耗估价函数为 剩余路段时间消耗估价函数为 整体的估价函数为h(x)=αtotal*|T0+h(T)-Tlimit|+E0+h(E)。根据经验我们设定估价函数的三个系数为固定值,保持calculateTime和calculateDistance不变来计算优化操纵序列。其具体值和对应优化结果为:
αT |
αE |
αtotal |
Ttotal |
Etotal |
0.50 |
10.00 |
10.00 |
1211.40 |
211.00 |
与原始的A-Star优化操纵序列计算方法比较,时间消耗和能耗都有显著的优化。按照步骤4中的说明,进一步利用NSGA-II算法,先固定calculateTime和calculateDistance,以估价函数的系数为决策变量,以时间消耗和能耗作为目标变量,得到的最终种群为:
αT |
αE |
αtotal |
Ttotal(秒) |
Etotal(Kg) |
0.99 |
13.96 |
870.24 |
1175.34 |
206.32 |
0.61 |
89.83 |
668.28 |
1171.14 |
206.32 |
0.61 |
88.30 |
669.56 |
1171.20 |
206.32 |
0.69 |
63.17 |
292.69 |
1172.92 |
213.08 |
0.98 |
16.43 |
869.27 |
1177.08 |
211.67 |
1.00 |
16.37 |
851.91 |
1177.08 |
211.67 |
1.00 |
16.19 |
857.37 |
1177.08 |
211.67 |
0.59 |
90.11 |
663.06 |
1175.26 |
212.06 |
0.97 |
15.97 |
853.79 |
1177.08 |
211.67 |
1.00 |
14.00 |
870.25 |
1177.08 |
211.67 |
0.61 |
90.77 |
670.31 |
1177.86 |
208.79 |
0.70 |
63.42 |
299.63 |
1197.98 |
208.28 |
0.99 |
13.71 |
863.30 |
1177.08 |
211.67 |
0.59 |
87.23 |
673.66 |
1175.48 |
212.32 |
0.71 |
59.90 |
276.44 |
1175.48 |
212.32 |
0.61 |
88.85 |
672.67 |
1178.36 |
210.26 |
0.69 |
63.50 |
315.99 |
1196.85 |
210.11 |
1.00 |
17.22 |
886.55 |
1196.88 |
211.33 |
0.71 |
63.16 |
291.72 |
1175.97 |
212.42 |
0.61 |
88.94 |
678.60 |
1204.18 |
210.78 |
与固定系数的A-Star优化操纵序列相比,得到的最终种群中的个体的时间消耗和能耗都有提高。如果单纯考虑能耗的影响,加权能耗(固定时间,转化时间不同带来的影响)的提升会比表格中反映出来实际能耗的提升更加明显。
类似地,固定αE,αT,αtotal的数值,将calculateTime和calculateDistance作为决策变量,将方法仿真所用时间以及优化效果(能耗)作为目标变量,利用NSGA-II优化算法搜索最佳参数,最后得到的最佳种群中非支配排序最高的个体为calculateTime=2.1s,calculateDistance=3700m。
最后按照步骤5中的说明,设定“迭代次数=100”为终止条件,计算可以得到列车运行速度曲线对比图如图4所示,其中实线为最优个体的仿真速度曲线,虚线为固定估价函数系数得到的速度曲线,可以看到最优个体的速度曲线相对更加平缓,这也符合司机实际驾驶经验。