一种基于PID和滤波算法的列车速度自动控制方法与流程

文档序号:14675700发布日期:2018-06-12 21:27阅读:486来源:国知局
一种基于PID和滤波算法的列车速度自动控制方法与流程

本发明涉及城市轨道交通控制技术领域,具体是一种基于PID和滤波算法的列车速度自动控制方法。



背景技术:

随着城市轨道交通的迅速发展,在高效率运营的同时对列车驾驶控制技术也提出了更高的要求。CBTC(基于通信的列车控制系统)的出现大幅度提高了城市轨道交通信号系统的可靠性和安全性,ATO(列车自动驾驶)系统是CBTC实现列车自动驾驶、降低列车能耗和提高运营效率的基础。ATO系统主要负责保证列车自动驾驶,提供列车自动控制和调整并辅助司机驾驶等功能,是轨道交通CBTC系统的核心系统之一。

目前国内外对ATO系统控制算法的研究取得了显著成果,主要包括遗传算法、模糊控制算法、传统的PID控制算法和神经网络控制算法等。但这些算法均存在一定的局限性,不仅对计算机的计算能力要求较高,而且工况切换时列车的速度变化次数较为频繁,速度跟踪精确度较低,耗能较多,无法保证控制精确性和乘坐舒适度。



技术实现要素:

本发明的目的在于提供一种基于PID和滤波算法的列车速度自动控制方法,在列车自动驾驶过程中减小速度跟踪误差,提高列车速度控制量的计算精确度,保证乘坐舒适性和列车运行效率,实现对列车的精确控制。

本发明的技术方案为:

一种基于PID和滤波算法的列车速度自动控制方法,该方法包括以下步骤:

(1)获取列车当前运行目标速度和实际速度;

(2)根据所述列车当前运行目标速度和实际速度,计算出速度跟踪误差;

(3)根据所述速度跟踪误差,采用误差偏差微分滤波器计算出误差偏差,并更新所述误差偏差微分滤波器的状态量;

(4)根据所述速度跟踪误差和误差偏差,采用PID控制器计算出PID控制量,并更新所述PID控制器在积分过程中的状态量;

(5)获取前馈值并采用所述前馈值对步骤(4)计算出的PID控制量进行调整;

(6)根据最大目标制动加速度和最大目标牵引加速度,对经过步骤(5)调整的PID控制量进行修正;

(7)根据所述速度跟踪误差,对经过步骤(6)修正的PID控制量进行更新;

(8)将经过步骤(7)更新的PID控制量转换为相应的控制力,并对所述控制力进行修正;

(9)将经过步骤(8)修正的控制力输出给列车。

所述的基于PID和滤波算法的列车速度自动控制方法,步骤(1)中,所述列车当前运行目标速度的获取包括以下步骤:

a、根据列车在当前区间内的区间计划运营时间以及线路限定条件信息,计算出列车运行推荐速度曲线;

b、根据列车运行推荐速度曲线,获取列车当前运行目标速度。

所述的基于PID和滤波算法的列车速度自动控制方法,步骤(3)中,所述误差偏差采用以下公式计算得到:

diffErr=(diffFc0*diffFx0)+(diffFc1*diffFx1)+(diffFd0*errorSpeed);

其中,diffErr表示所述误差偏差,diffFc0、diffFc1、diffFd0均表示所述误差偏差微分滤波器的系数,diffFx0、diffFx1均表示所述误差偏差微分滤波器的状态量,errorSpeed表示所述速度跟踪误差;

所述误差偏差微分滤波器的状态量采用以下公式进行更新:

diffFx0=(diffFa0*diffFx0)+(diffFa1*diffFx1)+(diffFb0*errorSpeed);

diffFx1=(diffFa2*diffFx0)+(diffFa3*diffFx1)+(diffFb1*errorSpeed);其中,diffFa0、diffFa1、diffFb0、diffFa2、diffFa3、diffFb1均表示所述误差偏差微分滤波器的系数。

所述的基于PID和滤波算法的列车速度自动控制方法,步骤(4)中,所述PID控制量采用以下公式计算得到:

pidResult=(Kp*errorSpeed)+(Ki*Xi)+(Kd*diffErr);

其中,pidResult表示所述PID控制量,Kp、Ki、Kd均表示所述PID控制器的系数,errorSpeed表示所述速度跟踪误差,diffErr表示所述误差偏差,Xi表示PID控制器在积分过程中的状态量;

所述PID控制器在积分过程中的状态量采用以下公式进行更新:

Xi=Xi+(errorSpeed*cycTime)

其中,cycTime表示ATO系统控制循环周期。

所述的基于PID和滤波算法的列车速度自动控制方法,步骤(5)中,所述获取前馈值并采用所述前馈值对步骤(4)计算出的PID控制量进行调整,具体包括以下步骤:

a、判断列车当前驾驶状态是否处于巡航阶段,若是,则执行步骤b,若否,则直接将所述前馈值设为停车制动加速度,然后跳转至步骤d;

b、判断所述列车当前运行目标速度是否低于预设阈值,若是,则将所述前馈值设为最大目标制动加速度,然后跳转至步骤d,若否,则执行步骤c;

c、根据所述列车当前运行目标速度以及前馈值微分滤波器,采用以下公式计算出所述前馈值,并更新所述前馈值微分滤波器的状态量,然后跳转至步骤d:

forwardVal=(forwardFc0*forwardFx0)+(forwardFc1*forwardFx1)+(forwardFd0*targetSpeed);

forwardFx0=(forwardFa0*forwardFx0)+(forwardFa1*forwardFx1)+(forwardFb0*targetSpeed);

forwardFx1=(forwardFa2*forwardFx0)+(forwardFa3*forwardFx1)+(forwardFb1*targetSpeed);

其中,forwardVal表示所述前馈值,forwardFx0、forwardFx1均表示所述前馈值微分滤波器的状态量,forwardFa0、forwardFa1、forwardFa2、forwardFa3、forwardFb0、forwardFb1、forwardFc0、forwardFc1、forwardFd0均表示所述前馈值微分滤波器的系数,targetSpeed表示所述列车当前运行目标速度;

d、根据获取的所述前馈值,采用以下公式对步骤(4)计算出的PID控制量进行调整:

pidResult=pidResult+forwardVal;

其中,pidResult表示PID控制量,且公式中左边的pidResult表示调整后的PID控制量,右边的pidResult表示调整前的PID控制量。

所述的基于PID和滤波算法的列车速度自动控制方法,步骤(6)中,所述根据最大目标制动加速度和最大目标牵引加速度,对经过步骤(5)调整的PID控制量进行修正,具体包括以下步骤:

a、若所述经过步骤(5)调整的PID控制量处于最大目标制动加速度与最大目标牵引加速度之间,则保持所述经过步骤(5)调整的PID控制量不变;

b、若所述经过步骤(5)调整的PID控制量大于最大目标牵引加速度,则将所述经过步骤(5)调整的PID控制量修正为具体线路场景中的牵引加速度;

c、若所述经过步骤(5)调整的PID控制量小于最大目标制动加速度,则将所述经过步骤(5)调整的PID控制量修正为具体线路场景中的制动加速度。

所述的基于PID和滤波算法的列车速度自动控制方法,步骤(7)中,根据所述速度跟踪误差,对经过步骤(6)修正的PID控制量进行更新,具体包括以下步骤:

判断所述速度跟踪误差是否大于预设阈值,若是,则保持所述经过步骤(6)修正的PID控制量不变,若否,则将所述经过步骤(6)修正的PID控制量更新为0。

所述的基于PID和滤波算法的列车速度自动控制方法,步骤(8)中,对所述控制力进行修正,具体包括以下步骤:

a、判断所述控制力是否小于预设的控制力最小值,若是,则将所述控制力修正为所述预设的控制力最小值,若否,则执行步骤b;

b、判断所述控制力与上周期输出的控制力之差是否大于牵引力每次增加的上限值,若是,则将所述控制力修正为所述上周期输出的控制力与牵引力每次增加的上限值之和,若否,则执行步骤c;

c、判断所述上周期输出的控制力与所述控制力之差是否大于牵引力每次减少的上限值,若是,则将所述控制力修正为所述上周期输出的控制力与牵引力每次减少的上限值之差,若否,则执行步骤d;

d、保持所述控制力不变。

所述的基于PID和滤波算法的列车速度自动控制方法,步骤(5)中,还包括获取坡度加速度,在所述前馈值对步骤(4)计算出的PID控制量进行调整的基础上,采用所述坡度加速度对步骤(4)计算出的PID控制量进行再次调整;或者先采用所述坡度加速度对步骤(4)计算出的PID控制量进行调整,在所述坡度加速度对步骤(4)计算出的PID控制量进行调整的基础上,采用所述前馈值对步骤(4)计算出的PID控制量进行再次调整。

所述的基于PID和滤波算法的列车速度自动控制方法,步骤(9)中,将经过步骤(8)修正的控制力以电流环的形式输出给列车。

由上述技术方案可知,本发明在传统的PID控制算法的基础上增加了滤波算法的控制,结合滤波及PID控制的优点对速度跟踪误差进行偏差修正,从而减小列车驾驶过程中的速度跟踪误差,使得对列车的控制更加精确,确保列车能够更加平滑稳定运行,提高乘坐舒适度。

附图说明

图1是本发明ATO系统的架构示意图;

图2是本发明的方法流程图。

具体实施方式

下面结合附图和具体实施例进一步说明本发明。

如图1所示,本发明ATO系统的架构主要包括目标速度计算模块1、滤波器2、PID控制器3和实际速度采集模块4。

目标速度计算模块1是用于根据线路限定条件计算出列车运行推荐速度曲线。滤波器2是用于根据列车运行推荐速度曲线及实际速度采集模块4采集到的列车运行实际速度信息计算速度跟踪误差,并进行相应的数据处理。PID控制器3是用于在滤波器2处理的基础上对误差偏差进行修正,并向受控列车输出相应调节控制量,受控列车根据控制量大小对速度进行调整。实际速度采集模块4是用于将采集到的列车运行实际速度信息反馈到回路中进行新一轮的修正和调整。

如图2所示,一种基于PID和滤波算法的列车速度自动控制方法,包括以下步骤:

S0、获取列车在当前区间内的区间计划运营时间以及线路限定条件信息,计算出列车运行推荐速度曲线。

S1、根据列车运行推荐速度曲线,获取列车当前运行目标速度targetSpeed,并根据实际速度采集模块4获取列车当前运行实际速度realSpeed。

S2、将获取的列车当前运行目标速度targetSpeed和实际速度realSpeed相减,计算出速度跟踪误差errorSpeed。

S3、根据步骤S2中计算出的速度跟踪误差errorSpeed及低通滤波方法的原理,利用微分滤波算法计算出误差偏差diffErr,并更新误差偏差微分滤波器(即用于计算误差偏差的微分滤波器)的状态量,具体包括以下步骤:

S301、设定如下误差偏差微分滤波器的系数:diffFa0、diffFa1、diffFa2、diffFa3、diffFb0、diffFb1、diffFc0、diffFc1、diffFd0,其数值由具体场景多次运行过程中调整所得;及误差偏差微分滤波器的状态量:diffFx0、diffFx1,其初始值设定为0。

S302、根据速度跟踪误差errorSpeed以及误差偏差微分滤波器计算出误差偏差diffErr,从而滤除干扰信号,通过以下公式实现:

diffErr=(diffFc0*diffFx0)+(diffFc1*diffFx1)+(diffFd0*errorSpeed)

S303、根据速度跟踪误差errorSpeed以及误差偏差微分滤波器的系数,更新误差偏差微分滤波器的状态量diffFx0和diffFx1,通过以下公式实现:

diffFx0=(diffFa0*diffFx0)+(diffFa1*diffFx1)+(diffFb0*errorSpeed)

diffFx1=(diffFa2*diffFx0)+(diffFa3*diffFx1)+(diffFb1*errorSpeed)

S4、根据速度跟踪误差errorSpeed和误差偏差diffErr,利用PID控制算法计算出PID控制结果即控制量pidResult,并更新PID控制器在积分过程中的状态量,具体包括以下步骤:

S401、设定如下PID控制器的系数:Kp、Ki、Kd,其数值由具体场景多次运行过程中调整所得;及PID控制器在积分过程中的状态量:Xi,其初始值设定为0。

S402、根据速度跟踪误差errorSpeed和误差偏差diffErr计算出PID控制量pidResult,通过以下公式实现:

pidResult=(Kp*errorSpeed)+(Ki*Xi)+(Kd*diffErr)

S403、采用以下公式更新PID控制器在积分过程中的状态量Xi,其中cycTime为ATO系统控制循环周期:

Xi=Xi+(errorSpeed*cycTime)

S5、获取前馈值forwardVal,并将获取的前馈值forwardVal加入到PID控制量pidResult中,具体包括以下步骤:

S501、判断ATO系统驾驶状态是否处于巡航阶段,若是,则执行步骤S502,否则说明驾驶状态处于停车阶段,直接将前馈值forwardVal设为停车制动加速度,该停车制动加速度由具体线路场景设定,然后跳转至步骤S506。

S502、判断列车当前运行目标速度targetSpeed是否低于预设阈值,该预设阈值由具体线路场景设定;若是,则将前馈值forwardVal设为最大目标制动加速度,该最大目标制动加速度由具体线路场景设定,然后跳转至步骤S506,否则执行步骤S503。

S503、设定如下前馈值微分滤波器(即用于计算前馈值的微分滤波器)的系数:forwardFa0、forwardFa1、forwardFa2、forwardFa3、forwardFb0、forwardFb1、forwardFc0、forwardFc1、forwardFd0,其数值由具体场景多次运行过程中调整所得;及前馈值微分滤波器的状态量:forwardFx0、forwardFx1,其初始值设定为0。

S504、根据列车当前运行目标速度targetSpeed以及前馈值微分滤波器,采用以下公式计算出前馈值forwardVal,然后跳转至步骤S506:

forwardVal=(forwardFc0*forwardFx0)+(forwardFc1*forwardFx1)+(forwardFd0*targetSpeed)

S505、根据列车当前运行目标速度targetSpeed以及前馈值微分滤波器更新前馈值微分滤波器的状态量forwardFx0、forwardFx1,通过以下公式实现:

forwardFx0=(forwardFa0*forwardFx0)+(forwardFa1*forwardFx1)+(forwardFb0*targetSpeed)

forwardFx1=(forwardFa2*forwardFx0)+(forwardFa3*forwardFx1)+(forwardFb1*targetSpeed)

S506、将得到的前馈值forwardVal加入到PID控制量pidResult中:

pidResult=pidResult+forwardVal

注:上式中“=”左边的pidResult表示调整后的PID控制量,“=”右边的pidResult表示调整前的PID控制量,下同。

S6、在步骤S5的基础上,考虑到线路坡度对PID控制量pidResult的影响,将坡度加速度graAcc加入到上述PID控制量pidResult中,该坡度加速度graAcc由具体线路场景设定:

pidResult=pidResult+graAcc

注:步骤S6也可以放在步骤S5之前。

S7、根据ATO系统的最大目标制动加速度和最大目标牵引加速度,对步骤S6得到的PID控制量pidResult进行修正,具体包括以下步骤:

S701、判断步骤6计算出的PID控制量pidResult是否处于最大目标制动加速度与最大目标牵引加速度之间,最大目标制动加速度和最大目标牵引加速度由具体线路场景设定,若是,则执行步骤S702,否则判断该PID控制量pidResult是否大于最大目标牵引加速度,若是,则执行步骤S703,否则执行步骤S704;

S702、PID控制量pidResult处于最大目标制动加速度与最大目标牵引加速度之间,保持该PID控制量pidResult不变,即不需要修正,

S703、PID控制量pidResult大于最大目标牵引加速度,将PID控制量pidResult修正为具体线路场景中的牵引加速度;

S704、PID控制量pidResult小于最大目标制动加速度,将PID控制量pidResult修正为具体线路场景中的制动加速度。

S8、根据步骤S2得到的速度跟踪误差errorSpeed判断节能巡航状态,并更新PID控制量pidResult,仅当速度跟踪误差errorSpeed大于某一阈值时才允许在制动阶段施加牵引力,该阈值由具体线路场景设定,否则说明列车处于节能巡航状态,将PID控制量pidResult置0。

S9、将经过上述步骤得到的最终的PID控制量pidResult转换为控制力ctrlPower,为了防止输出时冲量过大,需要对控制力ctrlPower进行修正,然后ATO系统将修正后确定下来的最终的控制力ctrlPower以电流环的形式输出给列车,实现对列车的控制。

控制力ctrlPower的修正包括以下步骤:

S901、首先判断控制力ctrlPower是否小于预设的控制力范围的最小值,该控制力范围的最小值由具体线路场景设定,若是,则将控制力ctrlPower修正为该控制力范围的最小值,若否,则执行步骤S902;

S902、判断控制力ctrlPower与上周期输出的控制力ctrlLastPower之差是否大于牵引力每次增加的上限值trackMax,若是,则将控制力ctrlPower修正为上周期输出的控制力ctrlLastPower与牵引力每次增加的上限值trackMax之和,若否,则执行步骤S903;

S903、判断上周期输出的控制力ctrlLastPower与控制力ctrlPower之差是否大于牵引力每次减少的上限值trackMin,若是,则将控制力ctrlPower修正为上周期输出的控制力ctrlLastPower与牵引力每次减少的上限值trackMin之差,若否,则执行步骤S904;

S904、不需要对控制力ctrlPower进行修正。

本发明所描述的控制方法在传统PID控制算法的基础上加入了滤波算法对数据的处理,结合了滤波算法和PID控制算法的优点,能够更好地提高计算精确性,增强控车效果,使得列车更加平滑稳定运行,同时提高乘坐舒适性。

以上所述实施方式仅仅是对本发明的优选实施方式进行描述,并非对本发明的范围进行限定,在不脱离本发明设计精神的前提下,本领域普通技术人员对本发明的技术方案作出的各种变形和改进,均应落入本发明的权利要求书确定的保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1