基于认知结构的高速列车对标停车控制算法
2021-12-23郭北苑孙玉龙
郭北苑,孙玉龙
(北京交通大学 a.轨道交通控制与安全国家重点实验室,b.电子信息工程学院,北京 100044)
列车ATO控制算法能实现精确的速度以及位置控制,可以有效降低能耗,提高乘客的舒适度[1],已经在高速列车驾驶领域中逐步展开应用.其中,实现列车精确的对标停车是评价自动驾驶算法控制性能的一个重要指标,需要控制算法在保证乘客舒适性的条件下将列车在停车点处的误差控制在一个极小的误差范围内.
当前列车ATO控制算法主要有PID控制、参数自适应控制、模糊控制以及智能控制算法等[2].PID控制在实际工程中应用较多,具有算法结构简单等特点,但是其抗干扰能力差、控制切换较频繁,因此,需要对PID控制算法做出改进和优化[3].通过对PID控制算法的输入部分设计微分器,引入非线性控制律补偿外界干扰等自抗扰控制技术对PID进行改进[4],可以有效改善传统列车PID控制算法鲁棒性差、稳定性不高的缺点.模糊控制可以按照一定的模糊规则进行模糊推理,对PID参数进行自适应调整[5].利用强化学习方法设计列车控制算法,具有无参学习、动态优化、自适应等突出优点[6],但是强化学习需要学习大量的驾驶数据,相关参数的调节也需要一定的经验积累.
上述控制算法均需要追踪离线已生成的目标速度曲线,未充分考虑司机的驾驶经验并存在灵活性不足的缺点.认知建模从认知结构的角度对人类的认知过程进行建模仿真,构建的模型具有类似人的认知行为特征.
当前有上百种认知建模方法,常用的有MHP、EPIC、Sigma以及ACT-R等,MHP可用于分析人机交互阶段中那些阶段花费的时间最长或者错误最多的方法[7],但是MHP仅仅以时间和错误率为评价指标,已远远不能满足构建复杂系统的设计要求.EPIC对知觉和运动子系统的描述比较详细,但是对于记忆和学习的描述作用比较弱[8].Sigma是目前提出的最新的认知结构之一[9],应用相对较少.ACT-R认知结构由卡内基梅隆大学John Anderson所提出[10],整合了感觉知觉、记忆学习、推理判断以及问题解决等各方面的认知心理学理论,模型的一些理论假设有客观的认知实验的验证,能更全面准确地模拟人类的认知过程,是目前认知建模领域最为成熟的认知结构之一.在汽车驾驶、控制、人机交互等领域存在广泛的应用[11].
列车自动驾驶的整个驾驶按照列车在区间的运行状态可划分为牵引、巡航、惰行以及制动四个阶段,其中巡航和惰行阶段不需要对列车级位做过多的调整,牵引阶段只需要将列车速度从0提高到巡航速度即可.而制动阶段对ATO控制算法的控制绩效最为关键,因为高速列车在制动阶段初始速度较高、走行距离较长,除了需要满足良好的乘客舒适性、合理的运行时间等性能指标外,还需要满足停车精度的要求,故制动阶段是决定列车ATO控制算法控制效果良好的关键.
本文作者采用ACT-R认知结构构建了高速列车司机在停车对标阶段的认知模型,并基于此模型设计相关的停车控制算法.研究内容主要分为:1)对高速列车司机的停车对标任务进行分析,通过对司机进行访谈,从认知结构的角度描述列车司机在驾驶过程中的信息感知、思维决策以及输出控制,构建高速列车司机停车对标任务认知结构模型;2)基于构建的模型,设计高速列车停车控制算法;3)将设计好的算法与PID控制算法、人类司机进行仿真对比,比较控制算法的驾驶绩效.
1 高速列车停车任务认知结构模型
1.1 高速列车司机停车认知任务分析
停车过程的认知主要分为任务感知、思维决策以及输出控制三个部分.本文对具有多年驾驶经验的动车组指导司机进行访谈并对访谈结果分析,得到表1所示的司机停车任务认知过程.司机从开始停车到最终在停车标处停车包括调速和站停两个阶段,这两个阶段采取的制动策略有所不同,调速阶段是依据驾驶经验参照限速调整列车速度并保证列车速度不超过限制速度;站停阶段是到达参照点后,回忆参考速度对应的制动距离对列车速度做出最后的调整,使列车能在停车标处刚好停车.调速和站停阶段司机均需要感知当前列车DMI界面信息,包括当前速度、限速、走行距离,以及车型、天气状况等.司机感知到驾驶相关信息之后,注意到当前速度和当前限速的差异,在调速阶段从大脑中记忆相关的驾驶经验等,判断当前速度是否超过限速,并且判断当前速度、走行距离与经验的差异,做出增加、降低或者保持制动的决策.在站停阶段,司机需要依据经验判断列车的制动状态能否在当前速度条件下在停车标处停车,并根据判断结果对当前状态下的级位做出调整.
表1 高速列车司机停车对标认知过程Tab.1 Cognitive process of high-speed train drivers’ brake control
1.2 高速列车停车任务认知建模
1.2.1 高速列车认知结构
分析列车司机的驾驶特征,可以发现司机感知过程只需要感知到关键信息,不涉及到复杂的视觉搜寻过程,同时由于司机的操作对象是司控器,因此本文在ACT-R认知结构的基础上,针对高速列车对标停车任务提出高速列车停车认知结构,基本框架如图1(a)所示,包括感知模块、目标模块、陈述性知识模块、程序性知识模块以及输出模块,感知模块包括感知缓冲区,可以直接从外界获取驾驶信息并保存到感知缓冲区,模拟人类获取外界视觉信息并保存到大脑的过程.输出模块用于执行级位转换并向外界输出级位,模拟人类从大脑中接收运动指令并控制手部运动的过程.陈述性知识模块由组块(chunk)组成,用于模拟海马体存储人类的长期记忆,当模型通过程序性知识模块向陈述性知识模块中提出检索请求时,检索缓冲区会提取到与当前情景相关的经验知识.程序性知识模块用于实现人类技能方面的一些知识,模拟人脑的基底神经节;由产生式规则构成,每个产生式由条件和行为两种规则组成.只有满足产生式的条件规则,才能触发行为规则.由于高速列车停车认知结构假设人是目标驱动性,目标模块中存储有人类完成特定任务的多个目标,每次目标缓区中保存一个目标,用于模拟额叶前部背外侧,通过不同子目标的实现完成最终的任务.
图1 高速列车停车认知结构Fig.1 Basic cognitive structure framework of high-speed train brake
高速列车停车认知结构的工作过程是通过基于目标缓冲区中的目标,匹配到程序性知识模块中的产生式,产生式通过调用高速列车认知结构的目标模块、感知模块、陈述性知识模块或手控模块等完成一次认知过程,执行过程中修改产生式行为规则中相应模块的缓冲区的组块内容,并产生新的目标,当产生式完成以后,将得到的新目标更新到目标模块中,完成一次循环.完整的认知过程就是循环执行上述的过程直到所有目标完成,没有新的目标进入目标缓冲区.
1.2.2 高速列车停车任务认知建模
1)感知过程建模.
感知过程反映了列车司机的信息感知过程.根据前述认知任务分析,司机在驾驶过程中最关注的信息是天气状况、速度、限速以及车型.通常来说,控制算法都会面向一种具体的控制对象,因此本文只考虑一种车型.同时,为简化模型,本文暂不考虑天气影响.因此感知过程只需要感知当前速度、限制速度以及当前走行距离,构建的感知过程如图1(b)所示.
如果目标是“获取视觉信息”(图1(b)-①),则程序性知识模块控制感知模块执行感知搜索过程(图1(b)-②),并将感知到的视觉信息保存到感知缓冲区中,添加完之后通过程序性知识模块将目标模块中的目标设置为下一目标(图1(b)-③).
2)记忆加工过程建模.
根据感知过程的信息向陈述性知识模块中提取驾驶经验的信息加工过程称之为记忆加工过程,陈述性知识模块中存储了高速列车司机以往的成功驾驶经验.调速和站停阶段的记忆加工过程有所区别,感知过程感知到相关的驾驶信息之后,由思维决策过程根据调速与站停阶段的划分条件判断列车处于哪个阶段,对于调速阶段,记忆加工过程需要从陈述性知识模块中检索某一速度、某一限速以及某一目标位置下的制动级位经验,而对于站停阶段,则需要从陈述性知识模块的检索缓冲区中检索某个参照速度下的制动距离.构建的记忆加工过程如图1(c)所示.
当目标为“回忆”(图1(c)-①),且感知缓冲区中保存有视觉信息(图1(c)-②),则根据视觉信息向陈述性知识模块中检索驾驶经验或驾驶阶段的划分知识(图1(c)-③),并将获取的知识保存到检索缓冲区中(图1(c)-④),同时将目标模块的目标设置为下一目标(图1(c)-⑤).
3)思维决策过程建模.
思维决策过程反映了列车司机的判断、注意和决策的信息加工过程.
司机感知到视觉信息后,由于调速阶段和站停阶段的判断策略有所不同,故首先需要判断列车当前处于哪个阶段,之后比较视觉信息和驾驶经验,再结合当前阶段采取不同的档位调整策略,从而对驾驶经验中的级位值做出调整,并调用手控模块操纵司控器.构建的思维决策过程如图1(d)所示.
当目标为“判断”(图1(d)-①),则比较感知缓冲区中存储的视觉信息(图1(d)-②)和检索缓冲区中存储的经验信息组块(图1(d)-③),将判断结果信息添加到目标缓冲区的相应组块中(图1(d)-④),并将目标模块中的目标设置为下一目标(图1(d)-⑤).
4)输出过程建模.
输出过程反映了司机完成级位移动的过程.构建的输出过程如图1(e)所示.
当目标为“执行动作”(图1(e)-①),且目标缓冲区中存放有级位信息(图1(e)-②),则通过程序性知识模块将级位信息输入到输出模块(图1(e)-③),输出模块完成整个级位设置的执行过程.
2 高速列车停车控制算法
基于上述高速列车停车对标任务认知模型,本节通过构建组块、产生式等来实现高速列车停车控制算法.
视觉感知过程:视觉感知的目的是获得当前的关键驾驶信息,没有复杂的视觉转移过程,因此,本文在构建产生式的过程中将驾驶信息直接注入到映像模块中,在映像缓冲区中保存一个驾驶信息组块,该驾驶信息组块包含三个槽:①当前速度;②限制速度;③走行距离.每个槽的取值即为司机需要的相关视觉信息.
记忆加工过程:在调速阶段算法获得当前视觉信息之后,向陈述性知识模块的检索缓冲区中提取相关驾驶经验组块,驾驶经验组块用于保存驾驶相关经验,本文的驾驶经验组块包含4个槽:①制动级位;②速度;③限制速度;④走行距离,取值为司机以往的成功驾驶过程中对应的值.从检索缓冲区中提取组块的过程由每个组块的激活值所决定,算法会选择激活值最大的组块.激活值为
(1)
式中:Ai表示每个组块i的激活值,与基级激活值Bi、关注权重Wj和相关强度Sji有关,j表示组块的第j个槽值,每个组块共包含n个槽值.激活值与某个组块的出现次数和存在时间成正比,出现次数越多,使用时间越长,相关强度越大.这与人类的记忆规律相符合,也就是一段知识使用的次数越多,与当前的时间越接近,则越容易被检索到.
而对于站停阶段的记忆加工,由于列车与停车标的距离较短,本文只选取几组参考速度以及参考速度对应的制动距离,不通过陈述性知识模块保存相关知识.
思维决策过程:在调速阶段,提取到相关的驾驶经验组块后,与映像缓冲区中的视觉信息进行比较,根据比较结果得到级位的决策结果,判断策略如表2所示.当视觉信息中的速度比经验组块中的速度小,视觉信息中的走行距离比经验组块中的走行距离大,说明速度偏小、走行距离偏大,根据表2的策略,此时应该采取释放制动的决策.
表2 程序性知识判断策略Tab.2 Procedural knowledge judgment strategies
在站停阶段,算法根据多个参考速度对应的制动距离对档位进行调整.如果当前列车与停车标的距离大于参考速度对应的制动距离,则释放制动;如果与停车标的距离等于参考速度对应的制动距离,则采用一级制动;如果与停车标的距离小于参考速度对应的制动距离,则在上次制动的基础上增加一级制动;如果当前位置已经超过停车标,则直接采用最大制动级位.
根据上述的结果对存放在目标缓冲区中的判断结果组块的相应槽值进行修改.判断结果组块包含五个槽:①列车当前所处驾驶阶段,该槽共有5种取值可能,其中调速阶段1种,站停阶段4种,站停阶段的4种取值分别为在上次制动的基础上增加一级制动、释放制动、采用一级制动和采用最大制动级位;②限速状态,根据列车的当前速度与限速的关系相应的取值分别为超过、低于或远低于;③速度状态,根据列车的当前速度与检索缓冲区中的速度经验的关系相应的取值分别为偏大、偏小或等于;④走行距离状态,根据列车的当前走行距离与检索缓冲区中的走行距离经验的关系相应的取值为偏大、偏小或等于;⑤经验制动级位状态,根据检索缓冲区中的经验制动级位的状态相应的取值为制动状态或释放状态.
输出过程:通过思维决策过程得到进一步调整后的制动级位,将制动级位通过程序性知识模块输入到手控模块,手控模块进而将输出的级位值传递给列车控制网络系统.
本文设计的高速列车停车控制算法共有17个产生式:①视觉感知过程需要感知到当前驾驶所需的视觉信息并向检索缓冲区中发出检索请求,有1个产生式;②记忆加工过程需要获得调速阶段中与当前驾驶相关的陈述性知识模块中的驾驶经验组块,有1个产生式;③思维决策过程和输出过程,算法需要依据映像缓冲区的视觉信息和检索缓冲区的驾驶经验组块对列车的驾驶状况进行判断,并修改目标缓冲区的判断结果组块,根据不同的判断结果调整级位,这部分在调速阶段有11个产生式,在站停阶段有4个产生式.
表3为本文停车控制算法的认知参数和一些任务相关参数.认知参数与ACT-R认知结构的子符号系统相关,模拟了人类大脑的神经计算过程,这些参数涉及到感知、记忆等方面,已经经过了先前研究者的认知实验的验证,因此本文的大多数参数直接采用默认参数,只对部分参数做了调整,由于本文模拟的是高速列车司机,司机由于经过了很多训练,对于某一条线路非常熟悉,相应的司机面对新的驾驶情景的时候必然会从大脑中检索的对应的知识经验,激活阈值反映了人类记忆中知识的可用度,故将激活阈值设置为极小值.使得算法一定能够得到最佳的“驾驶经验”知识,组块中的瞬时噪声也设置为0,使算法在回忆“驾驶经验”知识的时候没有干扰;关联强度反映了缓冲区中的当前内容对检索,就是回忆过程的影响设置值为0.9;衰减参数模拟了人类的记忆遗忘,反映人类对于某个知识的记忆水平随着时间会不断下降,该值采用默认值0.5.
表3 高速列车停车控制算法的部分参数值Tab.3 Parameters of brake control algorithm for high-speed train
同时本文也涉及到一些任务相关参数,任务相关参数与具体的停车控制任务相关,如调速与站停阶段的划分点,不同的列车司机可能不同,如速度、地理标志等,结合对列车司机的访谈以速度作为阶段划分的参考点,当列车速度低于划分速度时开始执行站停阶段的控制策略,将划分速度条件设置为20 km/h.
算法首先判断列车当前速度,如果当前速度大于0,说明列车还未停车,则将目标缓冲区的目标设置为“开始”,同时将当前速度、当前限速、当前走行距离添加到映像缓冲区中,然后,开始产生式的匹配过程,程序性知识模块会检查所有处于激活状态的模块,并与该模块中储存的产生式的条件规则进行匹配,此时会匹配到目标模块和映像模块被激活的相应产生式,该产生式触发并执行其行为规则,行为规则会修改该规则相关模块缓冲区中的组块内容,此时相关模块被激活,程序性知识模块则会根据这些模块的激活状态匹配符合条件规则的下一个产生式,触发该产生式并执行其行为规则,依此类推,当所有模块的状态均不能匹配产生式的条件规则时,此时手控模块获得了当前驾驶情景下的级位决策并将级位输出到列车控制网络,算法完成一次循环.为了简化算法,当前速度、当前限速、当前走行距离等视觉信息的获取以及为了得到驾驶阶段、限速状态等而进行的速度比较、距离比较、级位比较等数值计算,未采用产生式规则实现,而是采用将相关信息直接注入到映像缓冲区或者采用数值计算程序计算并将结果添加到目标缓冲区中的方法实现.如下所示为高速列车停车对标控制算法:
算法:高速列车停车对标控制算法
while列车运行速度> 0do:
目标缓冲区←“开始”
映像缓冲区←当前速度、当前限速、当前走行距离
while有模块处于激活状态 do:
if映像缓冲区激活 then
计算得到当前驾驶阶段状态、限速状态
判断结果组块对应槽←当前驾驶阶段状态、限速状态
end if
if检索缓冲区激活 then
计算得到速度状态、距离状态、经验制动级位状态
判断结果组块对应槽←速度状态,距离状态,经验制动级位状态
目标缓冲区←判断结果组块
end if
匹配产生式的条件规则,获得匹配产生式
执行该产生式的行为规则,修改相关模块缓冲区中的组块内容
end while
从手控模块中获得级位
end while
3 仿真分析
在实际驾驶过程中,人类司机的综合驾驶绩效普遍好于ATO自动控制算法,同时考虑到现有的自动驾驶系统大多采用PID控制算法[12].为了验证本文停车控制算法的有效性,将本文实现的停车控制算法与PID控制算法、人类司机进行仿真对比分析.
仿真分析的初始条件如下,初始速度为270 km/h,初始制动级位为3级制动,停车运行时间为309 s,终点距离为9 155.7 m.该数据来源于京沪高速CR400AF型高速列车上海虹桥至北京南站的一次人类进站停车作业的驾驶记录.由于驾驶记录的原始数据没有停车标的千米标,无法得到人类司机的实际停车精度,但考虑到人类司机的综合驾驶绩效普遍好于ATO自动控制算法,故本文假设人类司机的停车精度为0.CR400AF型高速列车的列车动力学模型通过实际驾驶数据拟合得到,限速曲线采用驾驶记录中的实际数据.根据线路情况和驾驶目标设置了一条理想优化曲线用于PID算法的控制,通过多次试验得到PID控制算法的控制参数值KP=25.12,Ki=4.23,Kd=0.1.
图2所示为人类司机、本文停车控制算法和PID控制算法控制列车的运行速度对比,可知人类司机、本文停车控制算法与PID控制算法趋势相近,三者均实现了既定的驾驶任务目标.但是也可以看到PID控制效果相对更加光滑,本文停车控制算法其次,人类司机最不光滑,原因是PID控制算法追踪的是一条理想曲线,具有最佳的制动减速度,故运行速度曲线更加的平滑.而本文算法人类司机都是依据“驾驶经验”和限速来进行判断,控制过程中曲线较不平滑.
图2 运行速度对比Fig.2 Comparison of running speed
图3所示为3种控制方式的输出加速度对比,图4为本文停车控制算法与人类司机的输出制动级位对比.可以看到,本文算法与人类司机在级位调节次数以及整体趋势上更加接近,在调速阶段调节次数相对较少,级位保持时间更长,这样的操作会使得高速列车运行的更加平稳,而在站停阶段调节次数有所增加,这种控制会使得列车有更高的停车精度.而PID为了实现精确的追踪效果,全程级位调节非常频繁.通过对司机访谈得知,优秀列车司机的驾驶特点是:惰行时间长、牵引制动的切换次数少,这种操纵特点有利于舒适节能,故控车过程应尽量惰行且减少控制次数,本文算法很好地反映了这种趋势.
图3 输出加速度对比Fig.3 Comparison of output accelerations
图4 本文算法和人类司机输出制动级位对比Fig.4 Comparison of the proposed algorithm and the output braking level of a human driver
表4所示为人类司机、PID控制算法和本文算法在各指标下的对比结果.冲击率的计算公式为
(2)
式中:ai为控制器第i次的输出加速度;n为总控制次数.可以看到,人类司机、本文算法相比PID控制算法调整次数明显较少,同时冲击率也更低,显然舒适度更高.停车精度人类高速列车司机最好,其次为本文算法,PID控制算法最低.人类司机、本文算法和PID控制算法在平均加减速度、运行时间上没有太大差异,本文算法比规定运营时间早1.8 s,PID控制算法要晚0.1 s,这种时间误差是实际运营中能够接受的.综合上述指标差异,人类司机在最少的控制次数下实现了舒适度最高、停车精度最高的驾驶绩效,本文算法取得了接近人类司机的驾驶绩效,而PID控制算法的控制绩效相对较差.
表4 人类司机、本文算法以及PID控制 算法性能指标对比Tab.4 Comparison of performance indicators for human driver, the proposed algorithm, and the PID control algorithm
图5 不同初始条件下本文算法的运行速度曲线对比Fig.5 Comparison of running speed curves of the proposed algorithm under different initial conditions
为进一步验证本文算法在不同初始条件下的控制效果,设置了几组不同的初始速度、目标距离条件.如图 5所示为在不同的初始速度与走行距离条件下本文算法控制的列车运行速度曲线,可以看到在不同的初始条件下本文算法均能实现良好的停车控制.由表5也可以看到不同初始条件下调整次数、平均加速度以及冲击率也相对稳定,保持在合理的范围内.停车精度均满足规定的停车误差范围,且大多在30 cm范围内,少数部分停车精度超过30 cm,但是没有超过50 cm的标准,停车精度出现较大变化的原因可能与特定条件下对应的陈述性知识模块中的“驾驶经验”知识不完善有关,由于本文算法控制列车的过程中,对级位的决策首先依赖陈述性知识模块中的相关组块,其次根据逻辑决策来对级位做出进一步修正,而不同的初始条件可能由于陈述性知识模块中无法匹配到更好的“驾驶经验”组块,会导致出现一定偏差.
表5 不同初始条件下本文算法的性能指标Tab.5 Performance indicators of the proposed algorithm under different initial conditions
4 结论
1)本文算法模拟了人类司机在停车对标这一阶段的认知信息处理过程,表现出了人类司机的驾驶特征.
2)本文算法在调整次数、舒适度以及停车精度上均优于PID控制算法,综合驾驶绩效好于PID控制绩效,在不同的初始条件下也能实现良好的控制效果,具有较好的适用性.
需要更进一步的研究司机驾驶作业的工作机制,采用脑成像等技术手段从机理层面优化高速列车对标停车驾驶认知结构.在本文的算法实现中,陈述性知识模块中的驾驶经验是一直保持不变,只能适用于较少的驾驶场景,后续需要考虑引入自学习方法,建立驾驶经验的动态更新及优化机制.针对本研究存在的不足,如输出的级位存在少数突变,导致加速度存在一些尖峰,未来研究可继续对决策过程进行优化,使输出级位及加速度的变化更加平滑.