一种高性能PID控制方法与流程

文档序号:15461574发布日期:2018-09-18 18:17阅读:205来源:国知局

本发明涉及人工智能控制技术领域,特别涉及一种高性能PID控制方法。



背景技术:

在随着科学技术的发展,信息技术的不断壮大,人工智能技术不断得到发展,机器人作为人工智能的的应用在多个领域能够起到重要的作用,例如在物流仓储领域利用机器人(智能小车)巡航,快速精准的进行货物分流;在现代农业领域利用机器人巡航,对农作物进行精准的施肥以及灾害防治。

在机器人控制技术方面,传统的PID(Proportion Integration Differentiation,比例积分微分)控制方法通过如下方法进行控制:

u(t)=KPe(t)+KDe(t)+KIe(t),其中,e(t)为前时刻控制偏差值,KP为PID控制器的比例系数,KD为PID控制器的微分系数,KI为主PID控制器的积分系数,u(t)为控制量。通过计算调节目标值与实际采样信号的差值作为前时刻控制偏差值e(t)输入到PID控制器中,进行控制量调节,从而控制机器人执行机构(例如电机)。

在传统的PID控制基础上,人们进行了大量研究,例如模糊PID控制、自适应PID控制、基于神经网络的PID控制、积分分离PID控制、变速积分PID控制、增量PID控制等等。然而现有的用于机器人控制方面的PID控制技术存在诸多缺陷,现有的传统PID控制改进均存在微分控制环节对输入变化的敏感性高,难以兼顾机器人的稳定启动和后续的稳定控制,对系统整体造成干扰,使控制系统产生动荡,从而造成对机器人执行机构控制的不稳定性。

因此,为了解决上述技术问题,需要一种高性能的PID控制方法。



技术实现要素:

本发明的一个方面在于提供一种高性能PID控制方法,所述方法包括如下方法步骤:

串接主PID控制器和副PID控制器,所述主PID控制器的比例系数引入第一可变系数,所述主PID控制的器的微分系数引入第二可变系数,并且,在所述副PID控制器的微分项中串联一低通滤波器;

计算当前时刻控制偏差值,判断当前时刻控制偏差值是否大于调节目标值的阈值,若当前时刻控制偏差值大于调节目标值的阈值,则通过串接的主PID控制器和副PID控制器计算当前控制量;

所述副PID控制器向被控对象输出当前控制量。

进一步地,若当前时刻控制偏差值小于调节目标值的阈值,则直接向被控对象输出控制量。

进一步地,通过串接的主PID控制器和副PID控制器计算当前控制量包括如下方法步骤:

当前时刻控制偏差值输入到主PID控制器计算并输出第一控制量,所述第一控制量输入到副PID控制器计算并输出当前控制量。

进一步地,所述第一控制量通过如下方法计算:

u1(t)=xKPe(t)+yKDe(t)+KIe(t),其中u1(t)为第一控制量,e(t)为前时刻控制偏差值,KP为主PID控制器的比例系数,x为第一可变系数,KD为主PID控制器的微分系数,y为第二可变系数,KI为主PID控制器的积分系数。

进一步地,所述第一可变系数通过如下方法计算:

其中,Q为常数,e(t)为前时刻控制偏差值;

所述第二可变系数通过如下方法计算:

其中,Q为常数,e(t)为前时刻控制偏差值。

进一步地,所述当前控制量通过如下方法计算:

u(t)=K'Pu1(t)+K'Iu1(t)+(K'Du1(t)+G(t)),其中,u(t)为当前控制量,u1(t)为第一控制量,K'P为副PID控制器的比例系数,K'D为副PID控制器的微分系数,K′I为副PID控制器的积分系数,G(t)为串联于副PID控制器的微分项中的低通滤波器。

进一步地,所述串联于副PID控制器的微分项中的低通滤波器G(t)通过如下方法计算:

其中,Tf(t)为滤波器系数。

进一步地,所述主PID控制器输出第一控制量前,还包括如下方法步骤:

比较第一控制量与第一控制量上限,当第一控制量≤第一控制量上限,则比较第一控制量的与第一控制量下限,否则第一控制量取第一控制量上限输出;

当第一控制量≥第一控制量下限,则输出第一控制量,否则第一控制量取第一控制量下限输出。

进一步地,所述副PID控制器输出当前控制量前,还包括如下方法步骤:

比较当前控制量与被控对象输入控制量上限,若当前控制量≤被控对象输入控制量上限,则比较当前控制量的与被控对象输入控制量下限,否则当前控制量取被控对象输入控制量上限输出;

若当前控制量≥被控对象输入控制量下限,则输出当前控制量,否则当前控制量取被控对象输入控制量下限输出。

进一步地,所述方法还包括,在控制起始阶段初始化控制量和初始化控制偏差值。

本发明一种高性能PID控制方法,在串联的主PID控制器中引入对比例系数进行调节的第一可变系数,和对微分系数进行调节的第二可变系数,一方面保证机器人起始阶段的稳定启动,另一方面保证调节后段输入副PID控制器的第一控制量的稳定性,兼顾机器人的稳定启动和后续的稳定控制,使机器人具有更高的性能。

本发明一种高性能PID控制方法,在副PID控制器微分项中串联一个低通滤波器,降低了微分控制环节对输入变化的敏感性,克服了机器人图像偏差给速度控制带来的不良影响,提高了机器人的鲁棒性。

本发明一种高性能PID控制方法,通过主PID控制器和副PID控制器串联,使机器人具有更强的适应能力,能够适用更加复杂的路况。

应当理解,前述大体的描述和后续详尽的描述均为示例性说明和解释,并不应当用作对本发明所要求保护内容的限制。

附图说明

参考随附的附图,本发明更多的目的、功能和优点将通过本发明实施方式的如下描述得以阐明,其中:

图1是现有技术中传统的PID控制结构示意图。

图2是本发明高性能PID控制结构示意图。

图3是本发明高性能PID控制方法的流程框图。

图4是本发明高性能PID控制的第一控制量调节流程框图。

图5是本发明高性能PID控制的当前控制量调节流程框图。

具体实施方式

通过参考示范性实施例,本发明的目的和功能以及用于实现这些目的和功能的方法将得以阐明。然而,本发明并不受限于以下所公开的示范性实施例;可以通过不同形式来对其加以实现。说明书的实质仅仅是帮助相关领域技术人员综合理解本发明的具体细节。

在下文中,将参考附图描述本发明的实施例。在附图中,相同的附图标记代表相同或类似的部件,或者相同或类似的步骤。下面通过具体的实施方式对本发明的内容进行说明,本发明提供的一种高性能PID控制方法用于对机器人整体进行控制,一方面通过采集机器人的陀螺仪的采样角速度,实现对陀螺仪角度进行控制,实现对机器人的平衡性控制;一方面通过采集机器人电机的采样速度,实现对机器人的速度进行控制,实现对机器人的行驶及转弯进行控制。

如图1所示现有技术中传统的PID控制结构示意图,传统的PID控制过程中,通过计算调节的目标值R(t)与实际采样信号C(t)的差值作为输入的PID控制器的前时刻控制偏差值e(t),通过比例调节KP e(t)、积分控制KI e(t)和微分控制KD e(t),输出控制量作用于被控对象。e(t)为前时刻控制偏差值,KP为PID控制器的比例系数,KD为PID控制器的微分系数,KI为主PID控制器的积分系数,u(t)为控制量。在机器人控制过程中,被控对象(机器人执行机构)包括但不限于电机和陀螺仪。

针对现有的PID控制方法,其存在的微分控制环节对输入变化的敏感性高,难以兼顾机器人的稳定启动和后续的稳定控制的问题。根据本发明的实施例,一种高性能PID控制方法,如图2所示本发明高性能PID控制结构示意图,建立主PID控制器100和副PID控制器200,串接主PID控制器100和副PID控制器200,主PID控制器100的比例系数引入第一可变系数x,主PID控制的器200的微分系数引入第二可变系数y,并且,在副PID控制器200的微分项中串联一低通滤波器。

根据本发明,实施例中一种高性能PID控制方法,串联串接主PID控制器100和副PID控制器200后,还包括如下方法步骤:

计算当前时刻控制偏差值,判断当前时刻控制偏差值是否大于调节目标值的阈值,若当前时刻控制偏差值大于调节目标值的阈值,则通过串接的主PID控制器和副PID控制器计算当前控制量,副PID控制器向被控对象输出当前控制量。

如图3所示本发明高性能PID控制方法的流程框图,结合图3下文的实施例中,机器人开始运行,启动控制系统对机器人开始控制。

步骤S101、初始化控制量和初始化控制偏差值

在开始控制时,由于被控对象(例如电机或陀螺仪)没有反馈采样值,首先对控制量和控制偏差值进行初始化。在本实施例中,初始化控制偏差值e=0,初始化控制量u=uLast,其中uLast为控制量基准值。

步骤S102、信号采样

根据本发明的实施例,在控制过程中,不断采集被控对象的实际采样值C(t),在一个循环周期内,采样值包括多个电机的转速,以及陀螺仪的角度。

步骤S103、计算当前时刻控制偏差

当前时刻的控制偏差通过调节目标值R(t)与实际采样值C(t)的差值进行计算,即e(t)=R(t)-C(t),其中,e(t)为当前时刻的控制偏差,R(t)为调节目标值,C(t)为实际采样值。

步骤S104、判断当前时刻控制偏差值是否大于调节目标值的阈值

本发明计算得到当前时刻控制偏差e(t),需要判断当前时刻控制偏差e(t)是否需要输入到串接主PID控制器100和副PID控制器200中计算当前控制量。实施例中,调节目标值的阈值通过如下方法计算:w=R(t)×δ%,其中,R(t)为调节目标值,δ%为比例系数,用于反应调节目标值的阈值w占调节目标值R(t)的比例。

若当前时刻控制偏差值e(t)大于调节目标值的阈值w,则通过串接的主PID控制器和副PID控制器计算当前控制量,副PID控制器向被控对象输出当前控制量,作用于被控对象。

若当前时刻控制偏差值e(t)小于调节目标值的阈值w,则直接向被控对象输出控制量。本领域技术人员应当理解,这里所说的直接向被控对象输出的控制量为上一循环周期的控制量。

举例来说,若当前时刻控制偏差值e(t)大于调节目标值的阈值w,则计算当前控制量u(t),并输出至被控对象;若当前时刻控制偏差值e(t)小于调节目标值的阈值w,则向被控对象输出上一循环周期的控制量u(t-1),作用于被控对象。

步骤S105、计算当前控制量

当前时刻控制偏差值e(t)大于调节目标值的阈值w时,通过串接的主PID控制器100和副PID控制器200计算当前控制量。串接的主PID控制器100和副PID控制器200计算当前控制量包括如下方法步骤:

当前时刻控制偏差值e(t)输入到主PID控制器计算并输出第一控制量,第一控制量输入到副PID控制器计算并输出当前控制量。

根据本发明的实施例,第一控制量通过如下方法计算:

u1(t)=xKPe(t)+yKDe(t)+KIe(t),其中u1(t)为第一控制量,e(t)为前时刻控制偏差值,KP为主PID控制器的比例系数,x为第一可变系数,KD为主PID控制器的微分系数,y为第二可变系数,KI为主PID控制器的积分系数。

第一可变系数x通过如下方法计算:

其中,Q为常数,e(t)为前时刻控制偏差值;

第二可变系数y通过如下方法计算:

其中,Q为常数,e(t)为前时刻控制偏差值。

由于调节的起始阶段,控制偏差值e(t)较大,比例项KPe(t)较大,输出一个较大的控制量。本发明主PID控制器100的比例系数引入第一可变系数x,由调节比例系数KP,使调节过程中既保证了调节速度,又保证了调节过程的平稳性。

由于在调节的起始阶段,为了调节速度的加快,不易引入微分项,随着调节过程的继续,为了抑制超调同时保证控制量的稳定性,本发明主PID控制的器200的微分系数引入第二可变系数y,由调节微分系数KD,从而在调节过程中逐级增加微分作用。

根据本发明的实施例,主PID控制器100输出第一控制量前,需要对输出的第一控制量进行上下限设置,以防止出现积分饱和现象。具体地,主PID控制器100输出第一控制量前,还包括如下方法步骤:

比较第一控制量与第一控制量上限,当第一控制量≤第一控制量上限,则比较第一控制量的与第一控制量下限,否则第一控制量取第一控制量上限输出。

当第一控制量≥第一控制量下限,则输出第一控制量,否则第一控制量取第一控制量下限输出。

如图4所示本发明高性能PID控制的第一控制量调节流程框图,具体来说,通过如下方法步骤实现:

步骤S201、计算第一控制量。

第一控制量u1(t)的计算按照上述过程进行计算,这里不再赘述。

步骤S202、比较第一控制量与第一控制量上限。

比较第一控制量u1(t)与第一控制量上限u1(t)max,当第一控制量≤第一控制量上限,即u1(t)≤u1(t)max,则进入步骤S203。

当第一控制量>第一控制量上限,即u1(t)>u1(t)max进入步骤S204。

步骤S203、比较第一控制量的与第一控制量下限。

比较第一控制量u1(t)与第一控制量下限u1(t)min,

当第一控制量≥第一控制量下限,即u1(t)≥u1(t)min,则进入步骤S205。

当第一控制量<第一控制量下限,即u1(t)<u1(t)min,则进入步骤S206。

步骤S204、第一控制量取第一控制量上限。

第一控制量u1(t)取第一控制量上限u1(t)max输出,即输出u1(t)=u1(t)max。

步骤S205、输出计算得到的第一控制量,即输出第一控制量u1(t)。

步骤S206、第一控制量取第一控制量下限输出,即输出u1(t)=u1(t)min。

根据本发明的实施例,主PID控制器100计算并输出第一控制量,第一控制量输入到副PID控制器200中计算当前控制量,当前控制量通过如下方法计算:

u(t)=K'Pu1(t)+K'Iu1(t)+(K'Du1(t)+G(t)),其中,u(t)为当前控制量,u1(t)为第一控制量,K'P为副PID控制器的比例系数,K'D为副PID控制器的微分系数,K′I为副PID控制器的积分系数,G(t)为串联于副PID控制器的微分项中的低通滤波器。

串联于副PID控制器的微分项中的低通滤波器G(t)通过如下方法计算:

其中,Tf(t)为滤波器系数。

本发明中串联于主PID控制器的副PID控制器,为了减低微分环节敏感性过大的问题,经过在副PID控制器的微分项中串联低通滤波器,降低了微分环节敏感性过大的问题,与主PID控制器串接对输入的偏差值进行调节,有效提高了机器人的鲁棒性。

根据本发明的实施例,副PID控制器输出当前控制量前,需要对输出的当前控制量进行上下限设置,即设置被控对象输入控制量的上下限,以防止出现积分饱和现象,具体包括如下方法步骤:

比较当前控制量与被控对象输入控制量上限,若当前控制量≤被控对象输入控制量上限,则比较当前控制量的与被控对象输入控制量下限,否则当前控制量取被控对象输入控制量上限输出;

若当前控制量≥被控对象输入控制量下限,则输出当前控制量,否则当前控制量取被控对象输入控制量下限输出。

如图5所示本发明高性能PID控制的当前控制量调节流程框图,具体来说,通过如下方法步骤实现:

步骤S301、计算当前控制量。

当前控制量u(t)的计算按照上述过程进行计算,这里不再赘述。

步骤S302、比较当前控制量与被控对象输入控制量上限。

比较当前控制量u(t)与被控对象输入控制量上限u(t)max,若当前控制量≤被控对象输入控制量上限,即u(t)≤u(t)max,则进入步骤S303。

若当前控制量>被控对象输入控制量上限,即u(t)>u(t)max,则进入步骤S304。

步骤S303、比较当前控制量的与被控对象输入控制量下限。

比较当前控制量u(t)与被控对象输入控制量下限u(t)min,

若当前控制量≥被控对象输入控制量下限,即u(t)≥u(t)min,则进入步骤S305。

若当前控制量<被控对象输入控制量下限,即u(t)<u(t)min,则进入步骤S306。

步骤S304、当前控制量取被控对象输入控制量上限。

当前控制量u(t)取被控对象输入控制量上限u(t)max输出,即输出u(t)=u(t)max。

步骤S305、输出计算得到的当前控制量,即输出当前控制量u(t)。

步骤S306、当前控制量取被控对象输入控制量下限输出,即输出u(t)=u(t)min。

本发明一种高性能PID控制方法,在串联的主PID控制器中引入对比例系数进行调节的第一可变系数,和对微分系数进行调节的第二可变系数,一方面保证机器人起始阶段的稳定启动,另一方面保证调节后段输入副PID控制器的第一控制量的稳定性,兼顾机器人的稳定启动和后续的稳定控制,使机器人具有更高的性能。

本发明一种高性能PID控制方法,在副PID控制器微分项中串联一个低通滤波器,降低了微分控制环节对输入变化的敏感性,克服了机器人图像偏差给速度控制带来的不良影响,提高了机器人的鲁棒性。

本发明一种高性能PID控制方法,通过主PID控制器和副PID控制器串联,使机器人具有更强的适应能力,能够适用更加复杂的路况。

结合这里披露的本发明的说明和实践,本发明的其他实施例对于本领域技术人员都是易于想到和理解的。说明和实施例仅被认为是示例性的,本发明的真正范围和主旨均由权利要求所限定。

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