1. 引言
移动机器人的概念早在20世纪50年代就已经出现了。在1966~1972年间,斯坦福研究院就制造出首个具备感知和规划路径能力的机器人“Shakey”。之后半个世纪是移动机器人的高速发展时期。近年来,随着社会的不断发展,工业生产生活需求的增多,人们也对移动机器人提出了更高的要求。对于移动机器人而言,能够安全地、准确地抵达目的地是最重要的,所以路径规划与避障技术一直是移动机器人设计的关键要素。如何提高路径规划算法已经是当下移动机器人发展的核心问题。
传统的路径规划并没有实时调节参数的功能。模糊控制一直是移动机器人算法研究中的热点;另外一个广泛使用的就是PID控制算法:PID控制诞生70多年以来,凭借其简单的结构、稳定的性能,成为了目前世界上使用最广泛的控制方法之一。因此结合模糊控制与PID控制算法以提高控制效率,完成实时调节参数的功能。
在移动机器人控制领域,诸多学者开展了深入研究并取得成果。Fernando等[1]构建了模糊PID控制器作用下的移动机器人模型,该模型依据误差及误差率对PID控制器参数予以整定,从而达成移动机器人的轨迹跟踪任务。在优化控制器及规划算法的探索中,诸多学者开展了富有成效的研究。在机器人动力学方面,Zhao等人[2]借助遗传算法,确定了比例–积分–微分(PID)控制器的最佳参数。这一举措不仅增强了控制器的稳定性,还极大缩短了参数调节所需的时间。Ren [3]采用改进型RRT算法,开展车辆的路径规划与避障工作。与传统RRT算法、神经网络算法,以及模糊控制算法相比,改进型RRT算法在规划效率上优势明显。Han等人[4]提出自适应PID神经网络路径跟踪控制策略,运用遗忘因子最小二乘算法识别模型参数,并借助神经网络算法对控制器参数进行调控。此外,Faisal等[5]实现了一套模糊逻辑控制系统,让移动机器人能够在动态环境里完成目标跟踪与避障操作。Waqa等人[6]也提出了一种新的避障方法,通过YOLOv3深度学习算法优化,来改进提高避障功能;本研究基于传统PID控制系统,首先设计模糊控制器并结合PID控制器,实现模糊PID控制功能;再通过粒子群优化算法,进一步优化模糊PID算法。通过Matlab与Simulink进行模拟仿真,在有障碍物的环境中对智能小车的运动输出误差进行分析,并比较不同控制系统和算法下的稳定性。
2. 系统模型建立
2.1. 系统运动模型
文章的小车系统模型采用后轮驱动、前轮无动力系统,设置固定间隔时间采样。对后轮进行运动学的数学建模,运动模型如图1所示。采用直角坐标系XOY表示移动机器人的工作环境平面,采用
记录移动机器人的运动位置。其中,X为移动机器人水平方向坐标;Y为移动机器人垂直方向坐标;θ为移动机器人与X轴正向夹角;
为移动机器人在k时的坐标;
为角速度,
为线速度,
为采样间隔时间。拟定左右车轮的线速度分别
和
,角速度分别为
和
,小车两轮之间的间距为l,车轮半径为r,则移动机器人的线速度可表示为[7]:
(1)
而左右轮的线速度为:
(2)
(3)
移动机器人的转动角速度为:
(4)
由式(3)和式(4)可以得出半径r为:
(5)
Figure 1. Motion model of mobile robot
图1. 移动机器人运动模型
由(5)式可以得出:
当
时,小车将朝
反向做圆弧运动;当
时,将朝
正向做圆弧运动;当
时,小车做直线运动;特殊地,当
与
方向相反且转速相同时,移动机器人将在原地转圈,此时旋转半径为0。机器人运动模型由矩阵表示为:
(6)
2.2. PID控制器结构
传统的PID系统中,如图2所示,输入值为
,输出值
。由
与
构成控制偏差
。一般人们通过使用
的比例(p)、积分(I)、微分(D)三种方式来进行线性组合,进行控制操作。通常PID控制器的控制规律为:
(7)
Figure 2. Traditional PID control system
图2. 传统PID控制系统
此时PID系统通常的传递函数为:
(8)
为比例调节系数,
是积分调节系数,
是微分调节系数,
为积分时间常数,
为微分时间常数;存在关系:
;
。通常情况下,
越大,系统调节作用越强,响应速度越快,但控制系统稳定性降低
越小,调节作用越弱,响应速度越慢,控制系统稳定性提高,并且可以降低余差,但不能消除余差;
的作用是纠正系统偏差,减小静态误差,但
过大会延长系统反应时间;
的作用是抑制系统震荡,参数越大,对系统施加的控制力就越强,从而降低震荡与惯性影响,使系统稳定性越高。
传统PID中,这三个参数依赖于人工的经验算法调节[8],且无法做到动态调节。由此添加模糊控制部分,实现快速且准确地调节
、
、
这三个参数的功能。
2.3. 输入输出模糊化
Figure 3. Fuzzy PID control system
图3. 模糊PID控制系统
模糊PID控制框图如图3所示。X(t)为系统输入,Y(t)为输出,则误差E(t)为E(t) = X(t) − Y(t)。模糊PID控制器输出为:
(9)
引入输入变量E、EC以及输出变量
、
、
来构建模糊PID控制器。其中,
、
、
为
、
、
参数的初始值,
、
、
为在线自调节参数值:
(10)
模糊控制器主要有查表法、硬件模糊控制器和软件模糊推理三种实现方式,其中以利用经验进行总结的查表法使用最多。根据以往经验,首先确定模糊论域的取值为[−6, 6],其中实际论域和模糊论域之间可以通过引入量化因子和比例因子来建立联系;再通过调试选取[9],总结整理得出输入变量E、EC以及输出变量
、
、
的基本论域和量化论域见表1。E隶属函数曲线如图4所示。
Figure 4. E membership function curve
图4. E隶属函数曲线
Table 1. Quantization table of fuzzy PID parameters
表1. 模糊PID参数量化表
变量 |
E |
EC |
|
|
|
模糊论域 |
[−6, 6] |
[−6, 6] |
[−6, 6] |
[−6, 6] |
[−6, 6] |
实际论域 |
[−2.35, 2.35] |
[−6, 6] |
[−0.6, 0.6] |
[−0.6, 0.6] |
[−0.6, 0.6] |
量化因子 |
0.3931 |
1 |
— |
— |
— |
比例因子 |
— |
— |
0.1 |
0.1 |
0.1 |
模糊控制规则是模糊控制器中知识库的一部分,是人们的经验总结。模糊控制规则是由语言变量表达的:语言变量会被赋予像“大”、“中”、“小”这类模糊子集。随后,各个模糊子集借助隶属函数,来展现基本论域中的值与模糊子集的契合程度。所以,得把基本论域里的精确值,按照隶属函数归入不同的模糊子集当中,进而用语言变量值(例如“大”、“中”、“小”等)替换精确值。这里所涉及的输入输出模糊子集为{NB, NM, NS, ZO, PS, PM, PB},依次代表负大、负中、负小、零、正小、正中、正大[10]。根据不同的情况,可以总结得到7 × 7 = 49种对应的控制规则,控制规则如表2所示。
Table 2. Fuzzy control rules
表2. 模糊控制规则
输入变量 |
NB |
NM |
NS |
ZO |
PS |
PM |
PB |
NB |
PB/NB/PS |
PB/NB/PS |
PM/NB/ZO |
PM/NM/ZO |
PS/NM/ZO |
PS/ZO/PB |
ZO/ZO/PB |
NM |
PB/NB/NS |
PB/NB/NS |
PM/NM/NS |
PM/NM/NS |
PS/NS/ZO |
ZO/ZO/NS |
ZO/ZO/PM |
NS |
PM/NM/NB |
PM/NM/NB |
PM/NS/NM |
PS/NS/NS |
ZO/ZO/ZO |
NS/PS/PS |
NS/PS/PM |
ZO |
PM/NM/NB |
PS/NS/NM |
PS/NS/NM |
ZO/ZO/NS |
NS/PS/ZO |
NM/PS/PS |
NM/PM/PM |
PS |
PS/NS/NB |
ZO/ZO/NM |
ZO/ZO/NS |
NS/PS/NS |
NS/PS/ZO |
NM/PM/PS |
NM/PM/PS |
PM |
ZO/ZO/NM |
ZO/ZO/NS |
NS/PS/NS |
NM/PM/NS |
NM/PM/ZO |
NM/PB/PS |
NB/PB/PS |
PB |
ZO/ZO/PS |
NS/ZO/ZO |
NS/PS/ZO |
NM/PM/ZO |
NM/PB/ZO |
NB/PB/PB |
NB/PB/PB |
为搭建模糊PID控制器,需输入隶属函数以及49条模糊控制规则,并以此构建.fis结构文件。借助该模糊PID控制器开展处理工作后,便能直观地对输出变量进行查看。通过模糊PID控制器处理,可以直观地查看输出变量
、
、
随输入变量E、EC变化的情况,如图5所示。
Figure 5. The output surface of
,
,
图5.
、
、
输出曲面
2.4. 模糊粒子群PID算法
粒子群优化算法(Particle Swarm Optimization, PSO)是一种通过模拟鸟群捕食行为,找到最优捕食点的方法。模糊粒子群PID算法优势包括:能利用粒子群算法高效优化PID参数,减少人工整定工作量与盲目性;借助模糊控制根据系统状态实时调整参数,自适应能力强;结合两者优点可实现更精确控制,处理复杂系统控制问题能力佳;粒子群算法快速收敛与模糊控制灵活调整策略,使系统动态性能良好[11]。
采用经典的PSO优化流程:
1) 初始化粒子群参数:设定粒子群个数N = 30,PID控制器待优化参数为8 (量化因子、模糊因子、
、
、
、E、EC),所以解空间维度为8维。对粒子进行初始化,使每个粒子获得随机速度与位置,并设置中止条件。
2) 更新粒子适应度:选择ITAE指标作为PSO算法的适应度函数,公式如下:
(11)
3) 更新个体极值:对比计算所得适应度值与当前粒子与个体最优位置适应度值,取最优值替换为当前个体最优位置。
4) 更新全局极值:对比计算所得适应度值与当前粒子与全局最优位置适应度值,取最优值替换为当前全局最优位置。
5) 更新速度与位置:通过公式(11)和(12)更新每个粒子的速度与位置。
(12)
(13)
6) 检查是否满足结束条件,若没有,重复上面式(2)~(5)。
3. 实验结果分析
3.1. Matlab仿真实验
在Matlab模糊控制器设计流程中,首先要针对输入、输出量完成设定工作,同时设置与之对应的隶属度函数。接下来,将全部模糊规则以if-then语句的形式,逐一进行录入操作。
系统仿真参数设为:小车L = 1.5 m,r = 0.1 m。创建相应的障碍物地形,各障碍物间距均大于小车轮间距,以保证小车可以通过。
以阶跃信号为输入,系统X位置响应曲线,系统Y位置响应曲线,方向曲线响应曲线如图6所示。由曲线图可得到,X位置上,传统PID控制下的调平时间最久,用时为2.8 s,模糊PID控制为2.5 s,粒子群模糊控制PID则最快,为1.3 s。Y位置上,调节时长由短到长也依次为粒子群模糊PID控制,模糊PID控制,传统PID控制。方向角曲线对比中,我们可以看到粒子群优化模糊PID控制达到稳定点的时间最短,为2.2 s,并且曲线波动最小,控制稳定性最佳;同时,模糊PID控制与PID控制的曲线基本拟合,在调节方向角度上,两种控制方法下系统的稳定性与响应速度接近。
Figure 6. System X position, system Y position, direction angle response curve
图6. 系统X位置,系统Y位置,方向角响应曲线
为了检测系统鲁棒性,添加阶跃信号作为扰动信号,如图7所示。统一在5 s时刻处添加扰动信号,观察在扰动信号作用下,系统回到稳定状态的时间。可以发现:相同扰动作用下,粒子群优化模糊PID算法最早回到稳定状态,调整时间为1 s;模糊PID控制第二,调整时间为1.5 s,传统PID最慢,调整时间为2 s。由此可以得到,三种控制方法中,传统PID控制的系统鲁棒性最差,而粒子群优化算法的系统鲁棒性最好。
Figure 7. System X position, system Y position curve with disturbance
图7. 添加扰动后的系统X位置,系统Y位置响应曲线
不同控制算法下的移动机器人运动路径如图8所示。先使用A*算法规划目标路径,之后记录各种控制方法下的移动机器人的运动路径。由图可知,传统PID路径波动最大,虽然最终抵达目的点,满足了控制精度需求,但路径曲线一直没有稳定;在模糊PID控制下,运动路径的波动得到改进,能够满足精度要求,并且相对于传统PID控制移动机器人的路径跟踪的稳定性获得了较大的改善。粒子群优化模糊PID控制效果最佳,首先是精度上满足了要求,路径的波动最小,系统最为稳定。从到达时间上来看,PID控制为36.17 s,模糊PID控制为31.43 s,粒子群模糊PID为29.9 s。可以看到在快速性,粒子群模糊PID控制调节效率也是最佳。
Figure 8. Motion path
图8. 运动路径
3.2. 仿真实验总结
本论文对模糊控制下移动机器人避障算法进行了研究,采用PID控制的方法,通过添加模糊控制器与粒子群优化算法,实现避障算法的改进。并且通过对移动机器人避障控制效果进行仿真实验,对比分析实验结果曲线,得到以下结论:
1) 模糊PID控制器能够有效处理非线性问题。在控制精度与稳定性方面优于传统PID控制;模糊PID控制器具有更短的响应时间,提升了系统中的动态响应性能;还拥有更好的鲁棒性,可以更好地维持系统稳定。此外,由移动机器人运动路径图可以得到,实时调节参数确实能够显著改善控制系统稳定性,这点符合理论中实时调参的要求。
2) 利用粒子群算法可以高效优化PID参数,减少人工整定工作量与盲目性;借助模糊控制根据系统状态实时调整参数,自适应能力强;结合两者优点可实现更精确控制,处理复杂系统控制问题能力佳;粒子群算法快速收敛与模糊控制灵活调整策略,使系统动态性能良好。经验证,在粒子群优化算法控制下,系统的响应时间是三种控制方法里最短的,系统鲁棒性与稳定性也是好的。
算法改进上,还有许多控制方法,如神经网络算法、鲸鱼算法等可以选择组合,测试控制效果,因此本文还有很多改进点。另外本文重点关注于仿真部分,在实物实验部分欠缺,在之后的学习中将更加关注此方面。
NOTES
*通讯作者。