用于PID控制的电机驱动底盘的省电控制方法和系统与流程

文档序号:11064606阅读:929来源:国知局
用于PID控制的电机驱动底盘的省电控制方法和系统与制造工艺

本发明涉及移动机器人控制技术领域,特别涉及一种用于PID控制的电机驱动底盘的省电控制方法和系统。



背景技术:

传统的机器人主要用于工业生产线上,用于代替人类完成一些简单、繁琐、重复的任务。随着机器人技术的发展,机器人开始逐渐走到人们的身边,例如出现了扫地机器人、购物机器人、大厅引导机器人、送餐机器人等。该类机器人相对于传统工业生产线上的机器人,具有一个明显的特性-移动。而且不同于无人搬运车类型的移动方式,这些机器人的移动需要适应一定的地形变化,比如上坡、下坡。目前,该类机器人移动的方式主要有两种,轮式移动和腿式移动,其中轮式移动因为较简单且负载能力强,在地形变化不大的环境,被更广泛的使用。

但是,基于速度环和电流环PID(Proportion Integration Differentiation,即比例、积分、微分)控制的轮式底盘机器人在运动过程中停止的话,根据PID自动调节的结果,电机会维持一个不为0的转矩值,相应的电流也会维持一个不为0的电流值。但实际上底盘维持停止时不需要如此大转矩值。底盘在上坡的过程中停止,这种现象将更加明显。因此,该类机器人在静止时的功耗消耗大,同时由于底盘驱动电机发热量大,导致电机使用寿命低。

基于此,有必要设计一种用于PID控制的电机驱动底盘的省电控制方法和系统,在PID控制程序的电流环中加入用于省电的电流控制算法,以实现对底盘静止时的电流调节,达到省电节能的目的。



技术实现要素:

本发明旨在克服现有机器人在静止时的功耗消耗大,同时由于底盘驱动电机发热量大,导致电机使用寿命低的技术缺陷,提供一种用于PID控制的电机驱动底盘的省电控制方法和系统,以实现对底盘静止时的电流调 节,达到省电节能的目的。

为实现上述目的,本发明采用以下技术方案:

一方面,本发明提供一种用于PID控制的电机驱动底盘的省电控制方法,该方法包括步骤:

采集电机的当前转速作为速度反馈;

采集电机输入端的电流作为电流反馈;

根据速度指令和速度反馈生成电流指令;所述速度指令为电机的目标速度;

根据电流指令和电流反馈调节电机当前转速;

当速度指令和速度反馈的值均为零时,按照预设的规则根据当前电流指令调节电流指令。

一些实施例中,所述当速度指令和速度反馈的值均为零时,按照预设的规则根据当前电流指令调节电流指令的步骤包括:

当速度指令和速度反馈的值均为零时,假设当前电流指令为n,则第m个周期调节后的电流指令为(1-α)m*n,其中0<α<1,m≥1。

一些实施例中,当速度指令和速度反馈的值均为零时,所述按照预设的规则根据当前电流指令调节电流指令的步骤包括:

当速度指令和速度反馈的值均为零时,按照以下规则调节电流指令:

当底盘处于平地或上坡时,根据当前电流指令调节电流指令逐渐减小,直到电流指令削减为零;

当底盘处于下坡时,根据当前电流指令调节电流指令逐渐减小,直到速度反馈不为零。

一些实施例中,当速度指令和速度反馈的值均为零时,所述按照预设的规则根据当前电流指令调节电流指令的步骤还包括:

通过设置于底盘上的传感器采集到的底盘与地面的摩擦力判断底盘处于上坡还是下坡。

一些实施例中,当速度指令和速度反馈的值均为零时,所述按照预设的规则根据当前电流指令调节电流指令的步骤还包括:

通过电流反馈的变化判断底盘处于上坡还是下坡。

再另一方面,本发明提供用于PID控制的电机驱动底盘的省电控制系 统,该系统包括:

速度采集模块,用于采集电机的当前转速作为速度反馈;

电流采集模块,用于采集电机输入端的电流作为电流反馈;

速度调节模块,用于根据速度指令和速度反馈生成电流指令;所述速度指令为电机的目标速度;

电流调节模块,用于根据电流指令和电流反馈调节电机当前转速;

条件控制模块,用于当速度指令和速度反馈的值均为零时,按照预设的规则根据当前电流指令调节电流指令。

一些实施例中,所述条件控制模块具体用于:

当速度指令和速度反馈的值均为零时,假设当前电流指令为n,则第m个周期调节后的电流指令为(1-α)m*n,其中0<α<1,m≥1。

一些实施例中,所述条件控制模块包括:

第一条件控制子模块,用于当底盘处于平地或上坡时,根据当前电流指令调节电流指令逐渐减小,直到电流指令削减为零;

第二条件控制子模块,用于当底盘处于下坡时,根据当前电流指令调节电流指令逐渐减小,直到速度反馈不为零。

一些实施例中,所述条件控制模块还包括:

第一判断子模块,用于通过设置于底盘上的传感器采集到的底盘与地面的摩擦力判断底盘处于上坡还是下坡。

一些实施例中,所述条件控制模块还包括:

第二判断子模块,通过电流反馈的变化判断底盘处于上坡还是下坡。

本发明的有益效果在于:本发明在机器人的电机驱动程序的电流环中加入用于省电的电流控制算法,当速度指令和速度反馈的值均为零时,即当机器人停止移动时,按照预设的规则根据当前电流指令调节电流指令,以实现对底盘静止时的电流调节,达到省电节能的目的。

附图说明

图1为基于速度环和电流环的传统PID控制系统的结构示意图;

图2为传统PID控制系统中底盘在平地运动过程电流变化示意图;

图3为底盘在上坡运动过程中受力分析示意图;

图4为传统PID控制系统中底盘在斜坡完成上坡和下坡的运动时对应 的电流变化示意图;

图5为根据本发明一个实施例的用于PID控制的电机驱动底盘的省电控制系统的结构示意图;

图6为根据本发明一个实施例的条件控制模块50的工作状态转换示意图;

图7为根据本发明一个实施例底盘在斜坡完成上坡时对应的电流变化示意图;

图8为根据本发明一个实施例的用于PID控制的电机驱动底盘的省电控制方法的流程示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及具体实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,而不构成对本发明的限制。

本发明具体实施方式以移动机器人为例,移动机器人通过对电机的控制来驱动底盘以达到移动的目的。

参照图1,图1为基于速度环和电流环的传统PID控制系统的结构示意图。电流环一共有两个输入量,电流指令和电流反馈,其中电流指令是由速度环计算得到的结果。电机M在由运动变为静止的过程中,速度指令由速度n逐渐减至0。由于外部摩擦力等作用,电机M在停止时,即速度反馈减至0时,电流指令并不为0,而是维持在使得整个底盘能动起来的最小电流值下方。设此电流值为I,则由I对应的电机转矩等于外界的阻力矩,阻力矩主要来自于库仑摩擦力、粘滞摩擦力等。假设底盘运动具有对称性,前后运动阻力相同,则底盘静止状态下,电流在-I至+I之间底盘都会保持静止。

参照图2,图2为传统PID控制系统中底盘在平地运动过程电流变化示意图。在T型速度指令控制下,底盘运动之后再停止,电流则不会维持在零点。假设在平地时I为0.1A,电机内阻及线路电阻之和为1欧姆,底盘在静止时电机还要消耗0.01W,如果底盘是差动模型,即使用两个独立电机,则电机还要消耗0.02W。

参照图3和图4,图3为底盘在上坡运动过程中受力分析示意图;图4 为传统PID控制系统中底盘在斜坡完成上坡和下坡的运动时对应的电流变化示意图。

底盘100在斜坡200上运动,在上坡或下坡的过程中,运动阻力除了考虑摩擦力f外,还要考虑重力分量g。

从图4可以看出,底盘100上坡完成后底盘停止在坡上,电流维持在Ia,而下坡完成后底盘停止在坡上,电流维持在Ib,Ib<Ia。上坡停止后,Ia所提供的力F=摩擦力f+重力分量g。而下坡停止后,Ia所提供的力F=重力分量g–摩擦力f(假设重力分量大于摩擦力,无动力条件下底盘会自动滑下去)。假设Ia为6A,而Ib为2A,电机内阻及线路电阻和为1欧姆,底盘在两种状态下静止时消耗功率差为((6A)2-(2A)2)*1欧姆=32W,如果底盘是差动模型,即使用两个独立电机,则消耗功率差为64W。可能在平地时底盘消耗功率0.02W不明显,但是在坡上静止时,两种方向的停止可导致消耗功率相差64W。同样,在平地时,电流在-I至+I之间底盘维持不动,在坡上时,电流在Ia至Ib之间底盘也维持不动。

本发明实施例主要通过在电机控制流程中加入对电流的进一步控制来实现省电的目的。本发明在电流指令的下达上加入一个条件控制模块,使电流指令为速度环输出与此条件控制模块的共同作用。

参考图5,图5为根据本发明一个实施例的用于PID控制的电机驱动底盘的省电控制系统的结构示意图。

该系统包括:

速度采集模块10,用于采集电机M的当前转速作为速度反馈;

电流采集模块20,用于采集电机M输入端的电流作为电流反馈;

速度调节模块30,用于根据速度指令和速度反馈生成电流指令;所述速度指令为电机M的目标速度;即控制系统在控制底盘运动时,输出的用于控制电机的速度指令;

电流调节模块40,用于根据电流指令和电流反馈调节电机当前转速;

条件控制模块50,用于当速度指令和速度反馈的值均为零时,按照预设的规则根据当前电流指令调节电流指令。

上述速度采集模块10、电流采集模块20、速度调节模块30(即图1中的速度环)、电流调节模块40(即图1中的电流环)均采用现有技术中的常 规技术手段来实现,具体实现过程在此不赘述。本发明实施例,在现有基于速度环和电流环传统PID控制系统中,增加了条件控制模块50,使电流指令在速度调节模块30的输出和条件控制模块50的共同作用下工作。

参照图6,图6为根据本发明一个实施例的条件控制模块50的工作状态转换示意图。

条件控制模块50的执行条件:当速度指令与速度反馈都为零时,速度调节模块30的输出不变,电流指令只受条件控制模块50的控制。

条件控制模块50的条件控制性体现在:

开始→准备:当电机从静止开始运动时,因为受到有效的速度指令开始转动,条件控制模块50进入准备状态;

准备→工作:当运动结束后静止,速度指令与速度反馈都为零时,条件控制模块50开始工作;

工作→完成:当速度反馈不为零或者电流指令减至零时,条件控制模块50停止工作;

完成→准备:当电机再一次受到有效的速度指令开始转动时,条件控制模块50进入准备状态;

如此往复循环。

在一些实施例中,所述条件控制模块50具体用于:

当速度指令和速度反馈的值均为零时,按照预设的规则根据当前电流指令调节电流指令,预设的规则为基于当前电流指令按比例缩减调节电流指令。假设当前电流指令为n,则第m个周期调节后的电流指令为(1-α)m*n,其中0<α<1,m≥1。理论上当m无穷大时(1-α)m*n才为零,在实际使用中只要(1-α)m*n小于某一较小的值(例如0.001A)就可以认为是零了。由上述预设规则调节的电流指令的减小趋势是先快后慢。

在一些实施例中,所述条件控制模块50包括:

第一条件控制子模块,用于当底盘处于平地或上坡时,根据当前电流指令调节电流指令逐渐减小,直到电流指令削减为零,然后条件控制模块50的状态进入下一步“完成”,不再影响电流指令,通过PID调节使电流指令稍微回升,电机恢复静止。

第二条件控制子模块,用于当底盘处于下坡时,根据当前电流指令调 节电流指令逐渐减小,直到速度反馈不为零,此时电流不能维持底盘静止,则条件控制模块50的状态进入下一步“完成”,不再影响电流指令,通过PID调节使电流指令稍微回升,电机恢复静止。具体地,当底盘处于下坡时,底盘与斜坡之间的摩擦力小于机器人的重力分量,为了防止电流指令减小到一定程度时速度反馈有剧烈变化,此时电流指令不能削减到零,否则不能维持底盘在坡上静止。

参照图7,图7为根据本发明一个实施例底盘在斜坡完成上坡时对应的电流变化示意图。因为一旦速度反馈不为零,条件控制模块50的调节作用就结束,因此从外部视觉上,底盘的运动几乎是不可见的,此时电机的电流处于Ib附近。此处也可看出,如果底盘是上坡的运动停止后,本发明中的模块会调节电流从Ia到Ib,使得底盘静止的电流消耗减小,达到节能省电的目的;而如果底盘是下坡的运动停止后,模块的调节作用就显得多余了。对此可以增加条件控制模块50的工作条件来增强模块工作的有效性。

在一些实施例中,条件控制模块50还包括:

第一判断子模块,用于通过设置于底盘上的传感器采集到的底盘与地面的摩擦力判断底盘处于上坡还是下坡。设置于底盘上的传感器包括能够采集底盘与地面的摩擦力判断底盘处于上坡还是下坡的各种器件,具体可以为压力传感器、陀螺仪等等之类的器件。

具体地,可以通过传感器来采集底盘与地面的摩擦力,再比较摩擦力与机器人的重力分量,当重力分量大于摩擦力时,判断出底盘处于下坡,否则,底盘处于平地或上坡。当判断出底盘处于平地或上坡时,启动条件控制模块50对电流指令的控制作用,否则,不启动条件控制模块50对电流指令的控制作用。

在一些实施例中,条件控制模块50还包括:

第二判断子模块,通过电流反馈的变化判断底盘处于上坡还是下坡。

具体地,当电流反馈的变化为正时,判断底盘处于平地或上坡,否则,判断底盘处于平地或上坡。当判断出底盘处于平地或上坡时,启动条件控制模块50对电流指令的控制作用,否则,不启动条件控制模块50对电流指令的控制作用。

参照图8,图8为根据本发明一个实施例的用于PID控制的电机驱动底 盘的省电控制方法的流程示意图。

参照图5,基于上述的用于PID控制的电机驱动底盘的省电控制系统,该方法包括步骤:

S10:速度采集模块10采集电机的当前转速作为速度反馈;

S20:电流采集模块20采集电机输入端的电流作为电流反馈;

S30:速度调节模块30根据速度指令和速度反馈生成电流指令;所述速度指令为电机的目标速度;

S40:电流调节模块40根据电流指令和电流反馈调节电机当前转速;

S50:当速度指令和速度反馈的值均为零时,条件控制模块50按照预设的规则根据当前电流指令调节电流指令。

上述速度采集模块10、电流采集模块20、速度调节模块30(即图1中的速度环)、电流调节模块40(即图1中的电流环)均采用现有技术中的常规技术手段来实现,具体实现过程在此不赘述。本发明实施例,在现有基于速度环和电流环传统PID控制系统中,增加了条件控制模块50,使电流指令在速度调节模块30的输出和条件控制模块50的共同作用下工作。

条件控制模块50的工作状态转换过程参考图6所示的转换示意图。具体转换过程在此不赘述。

在一些实施例中,步骤S50包括:

当速度指令和速度反馈的值均为零时,假设当前电流指令为n,则第m个周期调节后的电流指令为(1-α)m*n,其中0<α<1,m≥1。理论上当m无穷大时(1-α)m*n才为零,在实际使用中只要(1-α)m*n小于某一较小的值(例如0.001A)就可以认为是零了。由上述预设规则调节的电流指令的减小趋势是先快后慢。

在一些实施例中,步骤S50包括:

当速度指令和速度反馈的值均为零时,按照以下规则调节电流指令:

当底盘处于平地或上坡时,根据当前电流指令调节电流指令逐渐减小,具体地,按照预设的规则根据当前电流指令调节电流指令,预设的规则为基于当前电流指令按比例缩减调节电流指令,假设当前电流指令为n,则第m个周期调节后的电流指令为(1-α)m*n,其中0<α<1,m≥1,直到电流指令削减为零,即(1-α)m*n小于某一较小的值(例如0.001A),然后 条件控制模块50的状态进入下一步“完成”,不再影响电流指令,通过PID调节使电流指令稍微回升,电机恢复静止。

当底盘处于下坡时,根据当前电流指令调节电流指令逐渐减小,具体地,按照预设的规则根据当前电流指令调节电流指令,预设的规则为基于当前电流指令按比例缩减调节电流指令,假设当前电流指令为n,则第m个周期调节后的电流指令为(1-α)m*n,其中0<α<1,m≥1,直到速度反馈不为零,此时电流不能维持底盘静止,则条件控制模块50的状态进入下一步“完成”,不再影响电流指令,通过PID调节使电流指令稍微回升,电机恢复静止。具体地,当底盘处于下坡时,底盘与斜坡之间的摩擦力小于机器人的重力分量,为了防止电流指令减小到一定程度时速度反馈有剧烈变化,此时电流指令不能削减到零,否则不能维持底盘在坡上静止。

结合图7,因为一旦速度反馈不为零,条件控制模块50的调节作用就结束,因此从外部视觉上,底盘的运动几乎是不可见的,此时电机的电流处于Ib附近。此处也可看出,如果底盘是上坡的运动停止后,本发明中的模块会调节电流从Ia到Ib,使得底盘静止的电流消耗减小,达到节能省电的目的;而如果底盘是下坡的运动停止后,模块的调节作用就显得多余了。对此可以增加条件控制模块50的工作条件来增强模块工作的有效性。

在一些实施例中,当速度指令和速度反馈的值均为零时,所述按照预设的规则根据当前电流指令调节电流指令的步骤还包括:

通过设置于底盘上的传感器采集到的底盘与地面的摩擦力判断底盘处于上坡还是下坡。设置于底盘上的传感器包括能够采集底盘与地面的摩擦力判断底盘处于上坡还是下坡的各种器件,具体可以为压力传感器、陀螺仪等等之类的器件。

具体地,可以通过传感器来采集底盘与地面的摩擦力,再比较摩擦力与机器人的重力分量,当重力分量大于摩擦力时,判断出底盘处于下坡,否则,底盘处于平地或上坡。当判断出底盘处于平地或上坡时,启动条件控制模块50对电流指令的控制作用,否则,不启动条件控制模块50对电流指令的控制作用。

在一些实施例中,当速度指令和速度反馈的值均为零时,所述按照预设的规则根据当前电流指令调节电流指令的步骤还包括:

通过电流反馈的变化判断底盘处于上坡还是下坡。

具体地,当电流反馈的变化为正时,判断底盘处于平地或上坡,否则,判断底盘处于平地或上坡。当判断出底盘处于平地或上坡时,启动条件控制模块50对电流指令的控制作用,否则,不启动条件控制模块50对电流指令的控制作用。

以上所述本发明的具体实施方式,并不构成对本发明保护范围的限定。任何根据本发明的技术构思所作出的各种其他相应的改变与变形,均应包含在本发明权利要求的保护范围内。

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