随着现代控制技术和计算机技术的发展,移动机器人在越来越多的领域开始发挥至关重要的作用,作为移动机器人的关键部件,移动平台可以保证机器人的移动性和稳定性,成为了机器人领域的研究重点。其中麦克纳姆轮移动平台因具有平面上3个自由度的移动能力而逐渐受到了更多的关注。然而麦克纳姆轮移动平台的轮子并不能够直接转向,它是依靠4个轮子各自不同转速的相互配合来实现全向移动,因此每一个轮子的运动都对整体的运动方向和速度大小有着很大的贡献,若一个轮子出现与地面脱离接触以及打滑等情况,则整个移动平台的移动方向则会发生很大的偏离,因此本文主要从控制算法这个方面来解决麦克纳姆轮打滑等问题,实现麦克纳姆轮移动平台的精确运动。
常规PID控制器对于一个具有固定数学模型的自动化系统来说简单易行[1],但在实际的应用当中,直流电机调速系统中的各项参数会发生变化,依靠传统的PID控制则需要把各项扰动均建立起模型并进行相应的补偿需要消耗大量的时间,而且并不能保证所有的扰动均可以被考虑在内,所以需要对常规的PID控制算法进行改进,使其能够针对数学模型更为复杂多变的控制系统。
模糊PID控制算法也因此应运而生,它是建立在模糊数学理论上的新型控制方法。与传统PID相比,其特点是把一个个精确的量变为了一句句依靠经验获得的语言描述,使其成为一系列条件语句,再针对每个语句制定相应的规则,从而做到有针对性的进行控制。这就相当于让计算机模拟人的思维方式,通过对偏差值以及偏差变化率的判断,来对控制的参数进行自行的修正。
1 麦克纳姆轮移动平台的运动学分析 1.1 麦克纳姆轮的全向移动原理全向轮又被称作麦克纳姆轮(Mecanum wheel),其具体结构设计如图1。可以看出它与普通轮之间的主要区别就在于它的圆周上分布有若干数量的辊子,这些辊子的轴线与轮子的轴线呈一定的夹角(本文所采用的麦克纳姆轮的偏置角为45°),辊子的外廓线所形成的包络面和轮的原始圆周面重合,这样保证了辊子能与地面一直保持接触[2]。
这些辊子还可以自由转动,这使得轮子只受到地面对辊子轴向上的力,而地面对辊子的圆周力则变为了滚动摩擦可以近似看为零。因此,轮子与地面的接触力不再是沿轮子的圆周方向,而是与它呈一定的夹角,所以这种轮子可以在一个方向上受到摩擦力的驱动,而另一个方向上却能够自由移动。由4个这样的轮子便可以组合出不同的受力情况,从而使移动平台可以实现平面上3个自由度的移动。
1.2 麦克纳姆轮移动平台的运动学模型在文中使用4个麦克纳姆轮来实现平面3个自由度的控制。4个轮子两两镜像,其布局方式为左前轮和右后轮为右旋,右前轮和左后轮为左旋。布局如图1,图中辊子的方向是与地面接触部分的辊子的方向,而非俯视图。
图2是对单个全向轮进行运动学分析,图中R表示全向轮轴心到轮外廓圆周面的距离即轮的半径;
通过对单轮的运动学分析,可以得出
${{V}_i} = \left[ {\begin{array}{*{20}{c}}{{V_{iy}}}\\{{V_{ix}}}\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}R & {\cos \alpha }\\0 & {\sin \alpha }\end{array}} \right]\left[ {\begin{array}{*{20}{c}}{{\omega _i}}\\{{V_g}}\end{array}} \right]$ | (1) |
式中:当i=1、4时,
将i=1、2、3、4带入式(1)后联立方程组可得
$\left[ {\begin{array}{*{20}{c}}{{V_y}}\\{{V_x}}\\\omega \end{array}} \right] = \frac{R}{4}\left[ {\begin{array}{*{20}{c}}1 & 1 & 1 & 1\\{\tan \alpha }& { - \tan \alpha }& { - \tan \alpha }& {\tan \alpha }\\{ - \displaystyle\frac{1}{{{l_0}}}}& {\displaystyle\frac{1}{{{l_0}}}}& { - \displaystyle\frac{1}{{{l_0}}}}& {\displaystyle\frac{1}{{{l_0}}}}\end{array}} \right]\left[ {\begin{array}{*{20}{c}}{{\omega _1}}\\{{\omega _2}}\\{{\omega _3}}\\{{\omega _4}}\end{array}} \right]$ |
式中:
其逆运动学方程为
$\left[ {\begin{array}{*{20}{c}}{{\omega _1}}\\{{\omega _2}}\\{{\omega _3}}\\{{\omega _4}}\end{array}} \right] = K\left[ {\begin{array}{*{20}{c}}{{V_y}}\\{{V_x}}\\\omega \end{array}} \right] = \frac{1}{R}\left[ {\begin{array}{*{20}{c}}1 & {\cot \alpha } & { - {l_0}}\\1 & { - \cot \alpha } & {{l_0}}\\1 & { - \cot \alpha } & { - {l_0}}\\1 & {\cot \alpha } & {{l_0}}\end{array}} \right]\left[ {\begin{array}{*{20}{c}}{{V_y}}\\{{V_x}}\\\omega \end{array}} \right]$ |
式中K为逆运动学的雅可比矩阵,由运动学可知,当雅可比矩阵不满秩事时,系统存在运动学奇异点,此时系统失去可控性[3]。而本设计中,α取
控制系统的工作过程如下[4-5]:上位机通过无线通讯模块将移动指令传输给移动平台的主控中心,主控芯片运用前文中的运动学控制算法可以求出每个轮子的转速和正反向,该主控芯片会把计算结果传输给运动控制器,运动控制器再根据运算结果,通过模糊PID算法来控制各个麦克纳姆轮对应的驱动器,驱动器和电机以及编码器会形成一个闭环控制,从而使电机能够快速到达预定的转速,最终电机会把转速通过减速器传递到相应的麦克纳姆轮,实现移动平台的预定运动。另外,本设计中的移动平台还具有避障能力,因此控制系统要考虑到根据超声波测距模块的反馈结果进行有效的制动控制或者更改路径。
控制系统的结构如图3所示。主控制模块是一块包含有Cortex-M4STM32F407主控芯片的RHF407开发板,它通过CAN总线的方式把运动控制指令传递给运动控制器,并接收来自运动控制芯片的反馈信息;运动控制器的加入可以有效地减少对主控芯片内存的占用,提高效率,它的工作方式是通过PWM信号控制着4个麦克纳姆轮的伺服驱动器[6],从而控制电机转速,并结合编码器一起形成闭环控制,其闭环控制的反馈量为来自4个编码器所测得的电机转速;无线通信单元通过RS232串口与主控制芯片相连;机器人的超声波测距模块由1个超声波控制芯片和16路超声波传感器构成,传感器把模拟信号传递到其控制芯片当中,控制芯片对其进行A/D转换后把测距信息通过总线直接传输数据到达控制模块。
转速负反馈控制的直流PWM信号调压调速系统框图如图4所示[7]。
运用PID控制器可以实现转速的无静差跟踪,所以其在无需快速响应的场景中得到了广泛的应用。但以上数学模型中的参数会受到环境温度、蓄电池电压的波动、电机工作时其内部励磁的波动的影响而导致无法在速度要求精度较高的工作场景中应用。
在图4的基础上对PID控制器进行改进,改进后的模糊PID如图5。它是在传统PID控制器的基础上加入了一个模糊控制器[7],通过模糊控制器实现对
模糊控制器的模糊控制器的结构如图6。输入量先进入模糊器中,经一定的模糊化规则后被转化到相应的论域范围内,然后根据数据库以及相应的推理规则对控制量进行推理,其得到的控制量依旧是模糊量,而PID控制器需要输入准确值,因此最后一步是对控制量进行去模糊化,从而才能输出相应的控制量。
本文采用的是二维模糊控制[9],其输入量为麦克纳姆轮的实际转速和设定转速之间的偏差e(
模糊化是指把输入及输出量的实际值映射到相应的模糊论域中,使其值可以用“大”“小”等语句表述。本文依靠对误差大小的经验判断,将其分为这7个等级,其论域为
把输入量与语言相匹配的过程需要使用隶属度函数。它表示真实值与语言相符合的程度,即一个具体的数值在多大程度上可以用该语言进行描述。隶属度函数有多种形式,常用的有三角型、高斯型、正态分布型等,其对论域的判定有一定的影响,但通常影响不大;而三角型隶属度函数由于其简单易用、不占用过多内存得到了最广泛的应用,本文采用了三角形隶属度函数。其对应的函数图如图7。
文献[7]给出了三角型隶属度函数的数学表达式为
$\mu \left( x \right) = \left\{ {\begin{array}{*{20}{c}}\begin{array}{l}\displaystyle\frac{{x - a}}{{b - a}}\;\;\;\;\;{\kern 1pt} {\kern 1pt} x \in \left( {a,b} \right)\\\end{array}\\[10pt]{\displaystyle\frac{{x - c}}{{b - c}}\;\;\;\;\;\;\;x \in \left( {b,c} \right)}\end{array}} \right.$ |
式中a、b、c为模糊域区间常数。
隶属度函数还可以用表格进行表示,如表1所示。
模糊控制器的核心是对模糊规则的确定以及对模糊结果的推理,模糊规则是对前人长期实践中积累的经验进行总结,并依据前人的经验对参数值的改变范围进行确定。
那么首先需要知道
每个表格中的内容均对应着一系列模糊条件句,模糊条件句的格式如下:
If (条件语句),then (推理结果)。这样一共可以组合得到以下49条语句:
If(e is NB)and(ec is NB),then(
……
……
If(e is NB)and(ec is NS),then(
举例说明第一条语句的含义:如果电机转速的偏差值为负大,转速偏差的变化率也是负大,那么根据经验,需要使
其他48条语句以此规则进行推导理解。
3.5 模糊推理通过模糊规则进行推理后得到的只是模糊量,并不能直接用于控制,因此模糊量还需要转化为清晰值才能够被使用。去模糊化又称解模糊,其目的就是将模糊量转化为可以用于实际计算使用的清晰值,它可以看作是模糊论域到清晰值空间的一种映射关系。参考文献[8]介绍了几种去模糊化的方法:最大隶属度法、中位数法和加权平均法等。本设计根据实际操作的可行性选用了加权平均法,其公式如下
${z_0} = \frac{{\displaystyle\mathop \sum \limits_{i = 1}^n {z_i}{\mu _c}({z_i})}}{{\displaystyle\mathop \sum \limits_{i = 1}^n {\mu _c}({z_i})}}$ |
式中:
求得清晰值后,还需要经过一定的比例变换才能得到最终的控制参数变化量,即
$\Delta {K_{\rm{P}}} = \frac{{{U_2} + {U_1}}}{2} + k\left( {{z_0} - \frac{{{Z_2} + {Z_1}}}{2}} \right)$ |
式中
使用MATLAB的Simulink功能模块对模糊控制PID进行仿真,并通过实物进行验证。
4.1 MATLAB仿真过程与结果分析依照图8,在Simulink中添加相应的环节并连线及设置参数,输入量为电机转速10 r/s的阶跃函数,其输出结果如图9,可以发现电机在大约0.2 s到达最大值,之后维持稳定,但始终都没有达到预设转速。电机的开环系统并不能够实现无静差跟踪[11]。我们使用常规PID进行仿真,其系统结构框图如图10。
对其参数进行整定,并得出当
在系统中加入一个周期为0.1 s,幅值为5 A(等效为负载电流)的正弦扰动得到图12的输出响应,可以看出,常规PID并不能很好应对波动较大的负载扰动[12]。
在上述PID控制的基础上,仅需加入模糊控制器就可以实现对模糊PID的仿真,因此首先要通过MATLAB中的模糊系统编辑器对Fuzzy Logic Controller进行定义,其中包含对论域以及隶属度函数的选择,以及对模糊规则的设定,最终经过设定后得到的以下3个对比例、微分、以及积分参数的控制曲面,如图13所示。
通常对电机组成的机械系统来说,加入的负载都呈正弦波动的规律,这是由其机械结构的特性所导致的,于是我们在系统中加入一个周期为0.1 s,幅值为5 A(等效为负载电流)的正弦扰动,从而得到输出响应如图14所示。
从图中可以看出,系统在接入负载的情况下启动时,仅有较小的超调量,并且能够在0.3 s以内达到预设转速值,所以反应速度灵敏,稳定后持续加入的正弦扰动依然没有使速度有较大波动,其波动量小于2%,因此本系统有很强的鲁棒性,能够在受到负载扰动时完成对预设速度值的跟踪。所以,通过仿真结果可以看出本设计所使用的模糊PID算法符合设计要求。
4.2 实物验证图15是上位机的软件界面,可以通过该软件对移动平台的运动进行控制。控制模式分为速度模式控制和位置模式控制两种。速度模式是针对电机的转速转化为理想无打滑状态时的行驶速度进行的控制,位置模式则是通过对电机转动的圈数转化为行驶距离进行的控制。
实物验证的过程如下:首先通过在上位机控制软件界面设定一个速度值0.5 m/s,从而对移动平台发出一个0.5 m/s的速度指令,然后设置在5 s时制动,通过读取电机编码器的转速,并转化成车速反馈到上位机,最终形成图16所示的曲线。
通过折线图可以发现,编码器所测的速度值很好地证明了本系统的快速响应,仅在启动和制动时速度值有短暂的抖动。但从编码器获取的转速值为电机的转速,其仅能反映出在理想情况下移动平台整体的速度,并不能反映出真实移动速度,因此还需结合实际路面的运行情况来分析。由于距离是对其速度的积分,任何速度的偏差都有可能被放大,因此选择对移动平台的行驶距离进行测量。
按照文中同样的方式,通过上位机对移动平台发出速度指令v(m/s),并设置在t(s)时刻制动,根据速度与时间的乘积算出理论上移动平台的行驶距离
激光测距仪有一定的测量误差,本实验所用的测距仪标注的误差值约为2 mm,其对偏差的值影响小于0.04%,可以忽略不计。通过表5可以看出,模糊PID控制下,位移的实际值和理论值相比有一定的偏差,偏差最大值不超过3%,在可以接受的范围内,出现偏差的原因可能是启动与行驶时,车轮与地面打滑所致。而常规PID控制在低速下误差能控制在5%以内,高速下无法实现目标精确度。因此,实验证明了本设计使用的模糊PID控制算法能够应对打滑等因素所带来的行驶方向上的扰动,对于转速的控制有非常理想的效果,且优于常规PID控制。
5 结论针对麦克纳姆轮移动平台的运动稳定性和方向准确性问题,提出了利用模糊PID算法对麦克纳姆轮移动平台进行运动控制的设计。
1)本文实现了对麦克纳姆轮移动平台的模糊PID控制,通过与开环系统以及常规PID控制的仿真对比中可以看出,模糊PID控制不仅可以实现对转速的无静差跟踪,更能很好地应对负载的扰动,使系统具有更强的鲁棒性能。
2)通过实验也可以验证,模糊PID算法可以避免由车轮打滑造成的速度失效以及方向偏离,并保证移动平台具有良好的运动精确性。
3)本算法仅对电机的转速进行控制,并未对其具体方位进行跟踪控制,为保障其位置精确度,后续还应在速度闭环控制的基础上,加入方位闭环控制。其实现方式可以由定位模块来计算实际位置与设定位置的偏差,并通过PID控制实现。
[1] | 刘磊, 许晓鸣. 带Mecanum轮的移动机器人全向移动控制研究[J]. 系统工程理论与实践, 2011, 31(1): 66-72. (0) |
[2] | (0) |
[3] | HUANG J T, HUNG T V. Singularity-free adaptive control for uncertain omnidirectional mobile robots[C]//2013 9th Asian Control Conference. Istanbul, Turkey, 2013: 1−5. (0) |
[4] | 王冠. 全方位移动平台运动控制技术研究[D]. 北京: 北京理工大学, 2015. (0) |
[5] | 周美锋. 基于Mecanum轮的全方位移动机器人研究[D]. 南京: 南京航空航天大学, 2014. (0) |
[6] | TSAI C C, TAI F C, LEE Y R. Motion controller design and embedded realization for Mecanum wheeled omnidirectional robots[C]//Intelligent control and automation. Taipei, China, 2011: 546−551. (0) |
[7] | 诸静. 模糊控制原理与应用[M]. 北京: 机械工业出版社, 1995: 240-312. (0) |
[8] | 邢峰, 张让辉, 王敦富, 等. 模糊PID控制仿真与实验研究[J]. 机床与液压, 2015, 40(10): 47-149. (0) |
[9] | 周越, 王红. 二维模糊控制器在小型轮式机器人中的应用[J]. 机械设计与制造, 2009(5): 183-184. (0) |
[10] | 唐炜, 刘勇, 于香志, 等. Mecanum轮全方位移动小车嵌入式控制系统的设计[J]. 江苏科技大学学报, 2014, 28(5): 473-479. (0) |
[11] | 贾茜, 王兴松, 夏国庆. Mecanum轮全方位移动机器人的速度修正[J]. 制造技术与机床, 2010(11): 42-45. (0) |
[12] | VILLIERS M D, BRIGHT G. Development of a control model for a four wheel mecanum vehicle[J]. Journal of dy-namic systems measurement & control, 2010, 134(1): 114-133. (0) |