一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

误差的修正和控制方法、装置、电子设备和存储介质与流程

2022-06-29 20:17:31 来源:中国专利 TAG:


1.本发明涉及机器人控制技术领域,尤其涉及一种误差的修正和控制方法、装置、电子设备和存储介质。


背景技术:

2.无人机器人的运动控制逻辑通常为:每隔一个预设时间,就获取一次该无人机器人的实际运动状态和理想运动状态,该运动状态通常包括:纵向位置y、横向位置x和机器人的运动角度θ(即该无人机器人的运动方向与纵轴、或者与横轴之间的夹角)等。该实际运动状态为当前时刻该无人机器人实际处于的运动状态,该理想运动状态为该无人机器人在当前时间应该处于的运动状态,可以理解的是,由于运动部件的控制误差等各种原因,实际运动状态和理想运动状态通常是不一样的(即两者的纵向位置y、横向位置x和运动角度θ有可能不一样),即存在运动状态的偏差,在无人机器人的运动过程中,需要时刻对该偏差进行处理。
3.图1所示为机器人的运动控制的主要流程,其中,步骤1表示计算偏差信息并输入到控制器的过程,步骤2表示利用控制输入进行控制量计算的过程,步骤3表示控制量输出作用于机器人本体的过程,步骤4主要进行机器人本体状态量的获取,可以理解为机器人的定位的过程。
4.目前移动机器人控制算法方面,主要的控制方式大致汇总为基于模型的控制方法以及无模型控制方法,两种方式都是基于理想状态与实际状态之间的偏差进行偏差控制,关注点都集中在流程2对偏差进行消除本身。
5.无模型的经典控制理论主要通过获取偏差以及偏差的微分和积分信息,实现对偏差过去现在和将来的变化趋势,实现对偏差的全过程控制。现代控制理论衍生出基于模型的控制方法,通过对机器人模型进行建模,通过优化实现更加稳定和快速的偏差消除。这些方法都专注于对偏差本身的消除,对于输入偏差本身的质量关注很少,而在移动机器人的实际运行过程中,控制量输入的稳定,以及内部外部因素对控制量的干扰,都会对整个控制过程产生很大的影响。
6.图2a是理想状态的偏差的变化图。在发明人的长期工作中,发现移动机器人会出现定位抖动,跟踪路径切换等问题,发现偏差有可能出现频繁跳动,如图2b所示,即上一时刻的偏差与当前时刻的偏差之间的差值过大。有可能会产生如下影响:会严重影响控制系统的稳定性,尤其是偏差变化率会出现突变,造成控制量剧烈变化,加大系统硬件的负荷;加剧了系统的非线性时变性特征,这会导致根据调试经验获得的控制参数对环境的适应性变差,加大了参数调整的难度和工作量;引起控制量的频繁切换,增加了偏差消除的难度,尤其是针对高精度停车的场景,重复停车精度会很差;针对高速运行的场景,定位的抖动很容易引起控制量的抖动,出现频繁摆动,以及侧向滑动等现象,增加了失控以及碰撞的风险。


技术实现要素:

7.有鉴于此,本发明的主要目的在于提供一种误差的修正和控制方法、装置、电子设备和存储介质。
8.为达到上述目的,本发明的技术方案是这样实现的:一种用于移动机器人的运动状态的偏差的修正方法,包括以下步骤:
9.获取所述移动机器人的当前时刻的运动状态的偏差en、历史时刻的运动状态的偏差的修正值e
′h、所述历史时刻的运动状态的偏差的变化率ah以及所述历史时刻的运动状态的偏差eh,其中,所述运动状态为纵向位置、横向位置和运动角度中的任一,横向为所述移动机器人的移动方向,纵向垂直于横向、且纵向和横向所处的平面为所述移动机器人的运动平面;
10.当|e
n-eh|>预设阀值时,当前时刻的运动状态的偏差的修正值e
′n=e
′h t*ah,an=ah t*f,f=f(en,e
′h),t≥0,t为所述当前时刻和历史时刻之间的步长;否则,当前时刻的运动状态的偏差的修正值e
′n=en;其中,f()为函数,an为当前时刻的运动状态的偏差变化率。
11.作为本发明实施例的一种改进,f=r*sign(t),其中,sign()为取符号函数,r≥0,r为常数。
12.作为本发明实施例的一种改进,f=r*sat(t,δ),作为本发明实施例的一种改进,f=r*sat(t,δ),其中,r≥0,δ≥0,δ和r均为常数。
13.作为本发明实施例的一种改进,fsg(a,d)=0.5*(sign(a d)-sign(a-d)),a=(2a0 e
′h)fsg(a0 e
′h,d) a1*(1-fsg(a0 e
′h,d)),d=r*h2,a0=h*ah,其中,sign()为取符号函数,h和r均为常数。
14.本发明实施例还提供了一种用于移动机器人的运动状态的偏差的修正装置,包括以下模块:
15.信息获取模块,用于获取所述移动机器人的当前时刻的运动状态的偏差en、历史时刻的运动状态的偏差的修正值e
′h、所述历史时刻的运动状态的偏差的变化率ah以及所述历史时刻的运动状态的偏差eh,其中,所述运动状态为纵向位置、横向位置和运动角度中的任一,横向为所述移动机器人的移动方向,纵向垂直于横向、且纵向和横向所处的平面为所述移动机器人的运动平面;
16.信息处理模块,用于当|e
n-eh|>预设阀值时,当前时刻的运动状态的偏差的修正值e
′n=e
′h t*ah,an=ah t*f,f=f(en,e
′h,a
′h),t≥0,t为所述当前时刻和历史时刻之间的步长;否则,当前时刻的运动状态的偏差的修正值e
′n=en;其中,f()为函数,an为当前时刻的运动状态的偏差变化率。
17.本发明实施例还提供了一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述计算机程序运行时执行上述的修正方法。
18.本发明实施例还提供了一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行上述的修正方法。
19.本发明实施例还提供了一种用于移动机器人的控制方法,包括以下步骤:
20.获取所述移动机器人在timej时刻的纵向位置的偏差的修正值x
′j、所述timej时刻的纵向位置的偏差的变化率axj以及所述timej时刻的纵向位置的偏差exj,获取所述移动机器人的当前时刻的纵向位置的偏差exn,其中,j=1,2,...,m,j和m均为自然数,且time1<time2<...<timem<当前时刻;执行上述的修正方法,在所述修正方法中,偏差en=偏差exn,修正值e
′h=修正值x
′m,变化率ah=变化率axm,偏差eh=偏差exm,从而得到当前时刻的纵向位置的偏差的修正值ex
′n;
21.获取所述移动机器人在timej时刻的横向位置的偏差的修正值y
′j、所述timej时刻的横向位置的偏差的变化率ayj以及所述timej时刻的横向位置的偏差eyj,获取所述移动机器人的当前时刻的横向位置的偏差eyn;执行上述的修正方法,在所述修正方法中,偏差en=偏差eyn,修正值e
′h=修正值y
′m,变化率ah=变化率aym,偏差eh=偏差eym,从而得到当前时刻的横向位置的偏差的修正值ey
′n;
22.获取所述移动机器人在timej时刻的运动角度的偏差的修正值θ
′j、所述timej时刻的运动角度的偏差的变化率aθj以及所述timej时刻的运动角度的偏差eθj,获取所述移动机器人的当前时刻的运动角度的偏差eθn;执行上述的修正方法,在所述修正方法中,偏差en=偏差eθn,修正值e
′h=修正值θ
′m,变化率ah=变化率aθm,偏差eh=偏差eθm,从而得到当前时刻的运动角度的偏差的修正值eθ
′n;
23.获取所述移动机器人在纵向上的实际运动速度为v
x
,基于v
x
和修正值ey
′n,生成纵向修正系数k
x
;基于修正公式,生成横向修正系数ky和运动角度修正系数k
θ
,所述修正公式具体为:e=min(|ey
′n|,|eθ
′n|),k1=fal(e,α1,δ),k2=fal(e,α2,δ),k
θ
=1.0,ky=k2/k1 μ,α1、α2、δ和μ均为常数,且α1和α2的取值范围为[1.0, ∞],δ的取值范围为[0.0,δe],fal()为fal函数滤波器,δe为常数;
[0024]
基于error=ey
′n*ky k
x
*k
θ
*eθ
′n、以及模糊控制算法对移动机器人进行控制。
[0025]
作为本发明实施例的一种改进,所述“基于v
x
和修正值ey
′n,生成纵向修正系数k
x”具体包括:k
x
=g(v
x
,ey
′n),g()为分段函数。
[0026]
作为本发明实施例的一种改进,k和v
max
为常数,0.5≤k≤1.0。
[0027]
本发明实施例还提供了一种用于移动机器人的控制装置,包括以下模块:
[0028]
第一修正模块,用于获取所述移动机器人在timej时刻的纵向位置的偏差的修正值x
′j、所述timej时刻的纵向位置的偏差的变化率axj以及所述timej时刻的纵向位置的偏差exj,获取所述移动机器人的当前时刻的纵向位置的偏差exn,其中,j=1,2,...,m,j和m均为自然数,且time1<time2<...<timem<当前时刻;执行上述的修正方法,在所述修正方法中,偏差en=偏差exn,修正值e
′h=修正值x
′m,变化率ah=变化率axm,偏差eh=偏差exm,从而得到当前时刻的纵向位置的偏差的修正值ex
′n;
[0029]
第二修正模块,用于获取所述移动机器人在timej时刻的横向位置的偏差的修正
值y
′j、所述timej时刻的横向位置的偏差的变化率ayj以及所述timej时刻的横向位置的偏差eyj,获取所述移动机器人的当前时刻的横向位置的偏差eyn;执行上述的修正方法,在所述修正方法中,偏差en=偏差eyn,修正值e
′h=修正值y
′m,变化率ah=变化率aym,偏差eh=偏差eym,从而得到当前时刻的横向位置的偏差的修正值ey
′n;
[0030]
第三修正模块,用于获取所述移动机器人在timej时刻的运动角度的偏差的修正值θ
′j、所述timej时刻的运动角度的偏差的变化率aθj以及所述timej时刻的运动角度的偏差eθj,获取所述移动机器人的当前时刻的运动角度的偏差eθn;执行上述的修正方法,在所述修正方法中,偏差en=偏差eθn,修正值e
′h=修正值θ
′m,变化率ah=变化率aθm,偏差eh=偏差eθm,从而得到当前时刻的运动角度的偏差的修正值eθ
′n;
[0031]
第四修正模块,用于获取所述移动机器人在纵向上的实际运动速度为v
x
,基于v
x
和修正值ey
′n,生成纵向修正系数k
x
;基于修正公式,生成横向修正系数ky和运动角度修正系数k
θ
,所述修正公式具体为:e=min(|ey
′n|,|eθ
′n|),k1=fal(e,α1,δ),k2=fal(e,α2,δ),k
θ
=1.0,ky=k2/k1 μ,α1、α2、δ和μ均为常数,且α1和α2的取值范围为[1.0, ∞],δ的取值范围为[0.0,δe],fal()为fal函数滤波器,δe为常数;
[0032]
控制模块,用于基于error=ey
′n*ky k
x
*k
θ
*eθ
′n、以及模糊控制算法对移动机器人进行控制。
[0033]
本发明实施例还提供了一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述计算机程序运行时执行上述的的控制方法。
[0034]
本发明实施例还提供了一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行上述的的控制方法。
[0035]
本发明实施例所提供的药库具有以下优点:本发明实施例公开了一种误差的修正和控制方法、装置、电子设备和存储介质,所述修正方法包括以下步骤:获取移动机器人的当前时刻的运动状态的偏差en,历史时刻的运动状态的偏差eh、偏差的修正值e
′h以及偏差的变化率ah;当|e
n-eh|>预设阀值时,当前时刻的运动状态的偏差的修正值e
′n=e
′h t*ah,an=ah t*f,f=f(en,e
′h,a
′h),t≥0,t为所述当前时刻和历史时刻之间的步长;否则,当前时刻的运动状态的偏差的修正值e
′n=en;其中,f()为函数,an为当前时刻的运动状态的偏差变化率。从而能够对误差进行修正。
附图说明
[0036]
图1为现有技术中的移动机器人的控制方法的原理图;
[0037]
图2a和图2b为的移动机器人的运动状态的偏差的示例图;
[0038]
图3a为本发明实施例中的修正方法的流程示意图;
[0039]
图3b、图3c、图4a、图4b和图5为修正方法的效果图;
[0040]
图6为本发明实施例中的控制方法的流程示意图;
[0041]
图7为本发明实施例中的模糊控制方法的流程示意图。
具体实施方式
[0042]
以下将结合附图所示的实施方式对本发明进行详细描述。但该实施方式并不限制本发明,本领域的普通技术人员根据该实施方式所做出的结构、方法、或功能上的变换均包
含在本发明的保护范围内。
[0043]
以下描述和附图充分地示出本文的具体实施方案,以使本领域的技术人员能够实践它们。一些实施方案的部分和特征可以被包括在或替换其他实施方案的部分和特征。本文的实施方案的范围包括权利要求书的整个范围,以及权利要求书的所有可获得的等同物。本文中,术语“第一”、“第二”等仅被用来将一个元素与另一个元素区分开来,而不要求或者暗示这些元素之间存在任何实际的关系或者顺序。实际上第一元素也能够被称为第二元素,反之亦然。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的结构、装置或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种结构、装置或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的结构、装置或者设备中还存在另外的相同要素。本文中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
[0044]
本文中的术语“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本文和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。在本文的描述中,除非另有规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是机械连接或电连接,也可以是两个元件内部的连通,可以是直接相连,也可以通过中间媒介间接相连,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。
[0045]
本发明实施例一提供了一种用于移动机器人的运动状态的偏差的修正方法,该修正方法的目的是对获取到的运动状态的偏差en进行修正得到修正值e
′n,如图3a所示,包括以下步骤:
[0046]
步骤301:获取所述移动机器人的当前时刻的运动状态的偏差en、历史时刻的运动状态的偏差的修正值e
′h、所述历史时刻的运动状态的偏差的变化率ah以及所述历史时刻的运动状态的偏差eh,其中,所述运动状态为纵向位置、横向位置和运动角度中的任一,横向为所述移动机器人的移动方向,纵向垂直于横向、且纵向和横向所处的平面为所述移动机器人的运动平面;
[0047]
这里,该当前时刻和历史时刻之间可以相隔一个预设时间,且历史时刻是早于当前时刻的。该运动状态的偏差en可以为下述中的一个:(1)在当前时刻,纵向位置y的实际值和理想值之间的误差;(2)在当前时刻,横向位置x的实际值和理想值之间的误差;(3)在当前时刻,运动角度θ的实际值和理想值之间的误差。可以理解的是,当前时刻的运动状态的偏差en中包含有扰动信息。
[0048]
步骤302:当|e
n-eh|>预设阀值时,当前时刻的运动状态的偏差的修正值e
′n=e
′h t*ah,an=ah t*f,f=f(en,e
′h,a
′h),t≥0,t为所述当前时刻和历史时刻之间的步长;否则,当前时刻的运动状态的偏差的修正值e
′n=en;其中,f()为函数,an为当前时刻的运动状态的偏差变化率。
[0049]
这里,可以理解的是,在相隔一个预设时间之后,运动状态的偏差en和eh之间的差值不应该过大,当过大时,则需要进行修正,同时,ah可以理解为:在所述历史时刻与当前时刻之间,运动状态的偏差的变化速度。f可以理解为:在所述历史时刻与当前时刻之间,运动
状态的偏差的变化速度的加速度。图3b和图3c示出了不同的f()对应的不同的效果曲线,在实际中,f()只要满足下图的变化关系即可。可选的,函数f()是连续函数。
[0050]
本实施例中,f=-r*sign(t),其中,sign()为取符号函数,r≥0,r为常数。这里,sign()为取符号函数,当x>0,sign(x)=1;当x=0,sign(x)=0;当x<0,sign(x)=-1。r可以理解为一个与误差变化成正相关的系数,r越大,系统对误差扰动的跟踪性能越强,可以根据系统的实际性能以及使用的场景进行调试,从而可以根据实际需要来设置r的值。
[0051]
本实施例中,f=-r*sat(t,δ),其中,r≥0,δ≥0,δ和r均为常数。这里,r可以理解为一个与误差变化成正相关的系数,r越大,系统对误差扰动的跟踪性能越强,但是需要根据系统的实际性能以及使用的场景进行调试
[0052]
本实施例中,fsg(a,d)=0.5*(sign(a d)-sign(a-d)),a=(2a0 e
′h)fsg(a0 e
′h,d) a1*(1-fsg(a0 e
′h,d)),,d)),d=r*h2,a0=h*ah,其中,sign()为取符号函数,h和r均为常数。
[0053]
这里,h可以理解为误差变化率的积分步长,r可以理解为一个与误差变化成正相关的系数,r越大,系统对误差扰动的跟踪性能越强,但是需要根据系统的实际性能以及使用的场景进行调试。
[0054]
在图4a中,运动状态的偏差en在0.2米和-0.2米这两个值之间反复横跳,第一曲线、第二曲线和第三曲线表示了运动状态的偏差的修正值e
′n的变化曲线,且第一曲线的系数r<第二曲线的系数r<第三曲线的系数r。在图4a中,预设时间=1/50秒,可以理解的是,跟踪速率越快,对于运动状态的偏差的抑制效果越明显。
[0055]
在图4b中,运动状态的偏差en在0.2米和-0.2米这两个值之间反复横跳,第四曲线、第五曲线和第六曲线表示了运动状态的偏差的修正值e
′n的变化曲线,且第四曲线的系数r<第五曲线的系数r<第六曲线的系数r,其中,第五曲线和第六曲线基本重合。在图4b中,当预设时间变大之后,跟踪质量会更高。
[0056]
本发明实施例二提供了一种用于移动机器人的运动状态的偏差的修正装置,包括以下模块:
[0057]
信息获取模块,用于获取所述移动机器人的当前时刻的运动状态的偏差en、历史时刻的运动状态的偏差的修正值e
′h、所述历史时刻的运动状态的偏差的变化率ah以及所述历史时刻的运动状态的偏差eh,其中,所述运动状态为纵向位置、横向位置和运动角度中的任一,横向为所述移动机器人的移动方向,纵向垂直于横向、且纵向和横向所处的平面为所述移动机器人的运动平面;
[0058]
信息处理模块,用于当|e
n-eh|>预设阀值时,当前时刻的运动状态的偏差的修正值e
′n=e
′h t*ah,an=ah t*f,f=f(en,e
′h,a
′h),t≥0,t为所述当前时刻和历史时刻之间的步长;否则,当前时刻的运动状态的偏差的修正值e
′n=en;其中,f()为函数,an为当前时刻
的运动状态的偏差变化率。
[0059]
本实施例三提供了一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述计算机程序运行时执行如实施例一中的修正方法。
[0060]
本实施例四提供了一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行如实施例一中的修正方法。
[0061]
本发明实施例五提供了一种用于移动机器人的控制方法,如图6所示,包括以下步骤:
[0062]
步骤601:获取所述移动机器人在timej时刻的纵向位置的偏差的修正值x
′i、所述timej时刻的纵向位置的偏差的变化率axj以及所述timej时刻的纵向位置的偏差exj,获取所述移动机器人的当前时刻的纵向位置的偏差exn,其中,j=1,2,...,m,j和m均为自然数,且time1<time2<...<timem<当前时刻;执行实施例一中的修正方法,在所述修正方法中,偏差en=偏差exn,修正值e
′h=修正值x
′m,变化率ah=变化率axm,偏差eh=偏差exm,从而得到当前时刻的纵向位置的偏差的修正值ex
′n;
[0063]
步骤602:获取所述移动机器人在timej时刻的横向位置的偏差的修正值y
′j、所述timej时刻的横向位置的偏差的变化率ayj以及所述timej时刻的横向位置的偏差eyj,获取所述移动机器人的当前时刻的横向位置的偏差eyn;执行实施例一中的修正方法,在所述修正方法中,偏差en=偏差eyn,修正值e
′h=修正值y
′m,变化率ah=变化率aym,偏差eh=偏差eym,从而得到当前时刻的横向位置的偏差的修正值ey
′n;
[0064]
步骤603:获取所述移动机器人在timej时刻的运动角度的偏差的修正值θ
′j、所述timej时刻的运动角度的偏差的变化率aθj以及所述timej时刻的运动角度的偏差eθj,获取所述移动机器人的当前时刻的运动角度的偏差eθn;执行实施例一中的修正方法,在所述修正方法中,偏差en=偏差eθn,修正值e
′h=修正值θ
′m,变化率ah=变化率aθm,偏差eh=偏差eθm,从而得到当前时刻的运动角度的偏差的修正值eθ
′n;
[0065]
步骤604:获取所述移动机器人在纵向上的实际运动速度为v
x
,基于v
x
和修正值ey
′n,生成纵向修正系数k
x
;基于修正公式,生成横向修正系数ky和运动角度修正系数k
θ
,所述修正公式具体为:e=min(|ey
′n|,|eθ
′n|),k1=fal(e,α1,δ),k2=fal(e,α2,δ),k
θ
=1.0,ky=k2/k1 μ,α1、α2、δ和μ均为常数,且α1和α2的取值范围为[1.0, ∞],δ的取值范围为[0.0,δe],fal()为fal函数滤波器,δe为常数;δe一般是为了降低函数在零点附近的剧烈变化,可以取0.05-0.1之间。
[0066]
这里,fal函数是一种特殊的非线性结构,是自抗扰控制器中扩张状态观测器的核心部分。这里,该修正公式能够将误差项按照比例进行混合,使得高速运行过程中的误差消除快速性和稳定性得以实现。采用特殊的非线性函数fal计算权重系数,保证大偏差以横向偏差优先,小偏差以角度偏差优先的策略。fal函数的表现可以用图5表示,可以看到选择不同的函数参数,以及不同的误差可以计算出不同的系数。因此,可以通过fal函数计算不同误差下的误差系数,系数越大,对应的误差项在误差调整中的优先级会越高。通过这个函数可以实现随误差变化,动态调整误差消除权重的目的。
[0067]
步骤605:基于error=ey
′n*ky k
x
*k
θ
*eθ
′n、以及模糊控制算法对移动机器人进行控制。
[0068]
这里,timej和time
j-1
之间的差值为所述预设时间,该预设时间可以为一个定值。
这里,在低速路段进行高精度停车时,作用于角度误差系数k
θ
,其能够降低运动角度的偏差在综合误差error中的比例,使得低速下,机器人能够以更大的偏转角度消除横向偏差,系数k
x
的选择可以作为一个补充。图5示出了不同的α1和α2值,对应的不同的曲线。
[0069]
本实施例中,所述“基于v
x
和修正值ey
′n,生成纵向修正系数k
x”具体包括:k
x
=g(v
x
,ey
′n),g()为分段函数。这里,在实际中,g()的区间分段可以适度进行调整,需要注意的是,在低偏差的位置做更为密集的划分来保证系数在接近目标位置时可控性更强。
[0070]
本实施例中,k和v
max
为常数,0.5≤k≤1.0。
[0071]
这里,可以根据实际的需要来调整k和v
max
的值,当值太小时,有可能会使得角度偏差的权重太小,容易出现移动机器人在线路两侧摆动的现象。
[0072]
这里,为保证小误差跳动时,移动机器人对误差的响应速度不受影响,选择不使用过渡型预处理策略,而直接输出实际误差,这种情况下,使用常规的控制方法不可避免的会出现零误差附近的高频震颤,且控制频率越高,定位输出抖动频率越高,表现出的震颤现象会越明显。因此通过模糊策略,对低抖动幅值的误差信号进行约束,进而输出更适合移动机器人执行的控制信号。
[0073]
此外,模糊策略也有利于大误差信号的快速跟踪,配合非线性组合函数实现更高速率的信号跟踪。如图7所示,整个模糊计算的流程大致如下:
[0074]
步骤701:确认模糊输入量并进行模糊论域的建立。
[0075]
在非线性组合函数中,对误差信息做了混合处理。在模糊计算中继续沿用上述信息作为计算输入,有效的减少了输入变量的数量。这部分释放的计算资源可以分配到模糊区间划分上,使得模糊过程能够更好的逼近系统,拟合系统的非线性特性。模糊区间划分时,会选择适度的增加区间数量,更好的细化控制量计算的过程。
[0076]
以混合偏差,以及混合偏差变化率两个变量作为模糊计算的输入,基本模糊论域均定义为[nb,nm,ns,zo,ps,pm,pb],为控制精细化考虑,在模糊子集论域转化时,将模糊区间进一步细化,最终的论域为[-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6]。
[0077]
步骤702:模糊区间及隶属度函数的确认。
[0078]
在模糊论域确认后,需要进一步根据论域的数量,将误差信息分为不同的区间。
[0079]
首先需要确认隶属度函数的计算方式,考虑到误差本身的变化在控制量已知的前提下,呈现较强的线性变化趋势,此外为模型简化考虑,采用类似三角形的结构,即控制量在区间内的隶属度,随着偏离中心位置线性减小,在区间边界处降为0,隶属度关系式可以确认为如下的方式:
[0080][0081]
然后确认模糊区间与实际误差信号的对应关系,在常规的模糊控制当中,基本是
采用等距区间的方式来对输入量进行模糊处理。在针对移动机器人运动控制的场景中,考虑对小幅度抖动的抑制,以及对大偏差的快速消偏,需要将对应的区间关系调整为变长度的模式,适度加大小偏差的划分密度,能够得到更好的控制效果。
[0082]
步骤703:确认模糊规则以及模糊推理方式
[0083]
在输出变量方面,尽量避免多变量输出,这样不利于规则的制定。针对移动机器人运动控制,控制量相对较少,挑选与消除偏差最紧密相关的一个作为输出,其他变量可以通过额外的控制策略计算。作为2输入1输出的模糊控制类型,假设输入分别为input1,input2,输出为output,采用如下的if_then规则:
[0084]
if input1 is nb(...),input2 is nb(...),then output is nb(...)
[0085]
在模糊规则的选择上关注如下几点:
[0086]
当误差,误差变化率都为大偏差向着不利于消除偏差的情况发展时,尽量用最大控制量回正;设置误差即误差变化率的零区间,保证在平衡位置附近的小幅度抖动不会对控制产生影响;在误差,误差变化率都为小偏差时,合理控制输出对应的模糊规则,在满足性能的前提下,尽量选择小的控制输出;模糊推理的方法,可以根据控制场景的类型自行确定,这里采用乘积推理机即可。假设第j条规则的前提条件为αj,各输入变量的隶属度为μ1,μ2,μ3,μ4,则αj=μ1*μ2*μ3*μ4。
[0087]
步骤704:解模糊并输出控制量。
[0088]
解模糊器采用加权平均的方式进行解模糊计算。假设一共有m条规则,第j条规则的前提条件为αj,对应隶属度最大值的输出量为yj,则最终的输出量为:
[0089]
本发明实施例六提供了一种用于移动机器人的控制装置,包括以下模块:
[0090]
第一修正模块,用于获取所述移动机器人在timej时刻的纵向位置的偏差的修正值x
′j、所述timej时刻的纵向位置的偏差的变化率axj以及所述timej时刻的纵向位置的偏差exj,获取所述移动机器人的当前时刻的纵向位置的偏差exn,其中,j=1,2,...,m,j和m均为自然数,且time1<time2<...<timem<当前时刻;执行实施例一中的修正方法,在所述修正方法中,偏差en=偏差exn,修正值e
′h=修正值x
′m,变化率ah=变化率axm,偏差eh=偏差exm,从而得到当前时刻的纵向位置的偏差的修正值ex
′n;
[0091]
第二修正模块,用于获取所述移动机器人在timej时刻的横向位置的偏差的修正值y
′j、所述timej时刻的横向位置的偏差的变化率ayj以及所述timej时刻的横向位置的偏差eyj,获取所述移动机器人的当前时刻的横向位置的偏差eyn;执行实施例一中的修正方法,在所述修正方法中,偏差en=偏差eyn,修正值e
′h=修正值y
′m,变化率ah=变化率aym,偏差eh=偏差eym,从而得到当前时刻的横向位置的偏差的修正值ey
′n;
[0092]
第三修正模块,用于获取所述移动机器人在timej时刻的运动角度的偏差的修正值θ
′j、所述timej时刻的运动角度的偏差的变化率aθj以及所述timej时刻的运动角度的偏差eθj,获取所述移动机器人的当前时刻的运动角度的偏差eθn;执行实施例一中的修正方法,在所述修正方法中,偏差en=偏差eθn,修正值e
′h=修正值θ
′m,变化率ah=变化率aθm,偏差eh=偏差eθm,从而得到当前时刻的运动角度的偏差的修正值eθ
′n;
[0093]
第四修正模块,用于获取所述移动机器人在纵向上的实际运动速度为v
x
,基于v
x
和修正值ey
′n,生成纵向修正系数k
x
;基于修正公式,生成横向修正系数ky和运动角度修正系
数k
θ
,所述修正公式具体为:e=min(|ey
′n|,|eθ
′n|),k1=fal(e,α1,δ),k2=fal(e,α2,δ),k
θ
=1.0,ky=k2/k1 μ,α1、α2、δ和μ均为常数,且α1和α2的取值范围为[1.0, ∞],δ的取值范围为[0.0,δe],fal()为fal函数滤波器,δe为常数;
[0094]
控制模块,用于基于error=ey
′n*ky k
x
*k
θ
*eθ
′n、以及模糊控制算法对移动机器人进行控制。
[0095]
本发明实施例七提供了一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述计算机程序运行时执行如实施例五中的控制方法。
[0096]
本发明实施例八提供了一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行如实施例五中的控制方法。
[0097]
应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施方式中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
[0098]
上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献