APP下载

基于改进萤火虫算法的两轮机器人平衡控制

2016-06-23杨怀德

杨怀德

(东莞职业技术学院 计算机工程系,广东 东莞 523808)

基于改进萤火虫算法的两轮机器人平衡控制

杨怀德

(东莞职业技术学院 计算机工程系,广东 东莞523808)

摘要:文章针对两轮自平衡机器人的平衡控制问题,提出了一种基于改进萤火虫算法的控制器优化算法。该算法通过引入莱维飞行(Levy flight)的思想,对萤火虫的位置更新策略进行优化。仿真实验表明,新的算法稳定性好、遗传代数小,在两轮自平衡机器人的平衡控制中获得了较好的控制效果。

关键词:两轮机器人;萤火虫优化算法;莱维飞行;平衡控制

0引言

两轮自平衡机器人是一个多变量、非线性、不稳定的典型运动控制系统,可看作是一个一级倒立摆,其平衡控制一直是研究的重点。

文献[1]提出了一种基于模糊控制理论的两轮机器人的平衡控制算法,该算法在参数调节时间和稳定性控制方面取得了一定的优化效果,但其优化效果过于依赖人工的经验。PID控制性能与其3个参数有直接的关系。

文献[2]提出了一种基于LQR模型的平衡控制算法,该算法通过调节权矩阵Q、R的值来控制机器人的平衡自调节,在控制的实时性和稳定性方面取得了一定的优化效果,但是实际的运行环境往往具有时变性、非线性,常规的优化方法很难快速获取参数的最佳值,控制器难以达到理想的控制效果。近年来,随着智能控制理论的发展,利用智能算法对平衡控制器进行优化设计,已成为当前的一个研究热点,如文献[3]提出了一种基于粒子群算法的设计方案,文献[4]研究了基于多种群遗传算法的LQR控制器优化设计方案。

本文在标准的萤火虫算法基础之上提出一种改进的萤火虫算法来解决两轮机器人平衡控制器的参数优化问题。新的算法中融入莱维飞行(Levy flight)的思想,并对萤火虫的位置更新策略进行了改进。

仿真实验结果表明,本文算法在控制的实时性方面取得了较好的效果,在求解的精度上得到了有效的改进。

1两轮自平衡机器人动力学模型

两轮自平衡机器人的实际结构和运动过程都很复杂,为了简化系统分析,假定机器人的运动都在平坦的地面上进行,忽略在允许的误差范围内的弹性摩擦等因素。它主要由机体和2个轮子组成,2个轮子必须同轴,由独立的电机驱动,并且2个轮子的重量和惯性矩都是一样的。所以整个机器人的重心是倒置在轴承上,通过运动来保持平衡[5]。从平衡控制的角度,可以将两轮机器人看作一个车载倒立摆系统,为了降低问题的复杂性,将该两轮机器人分成轮子和机体2个部分来研究[6]。左、右轮的受力模型如图1所示。

图1 左、右轮受力模型

(1)

(2)将(1)式和(2)式合并可得

(3)其中,mw为轮子质量;θw为轮子转角;r为轮子的半径;CL和CR分别为左、右轮的输出力矩;HfR和HfL分别为左、右轮的边缘水平扭矩;HL和HR分别为左、右轮的中心水平扭矩;Iw为轮的角度转动惯量。

将机器人的机体建模为一个倒立摆,机体动力学模型如图2所示。

图2 机体受力模型

(4)其中,mp为机体质量;l为倒立摆长度。运用牛顿第二定律,机体在垂直方向上的受力为

(5)机体质心的力矩之和为

(7)

其中,V为电枢电压。

(8)

(9)

2萤火虫优化算法

萤火虫优化算法(glowworm swarm optimization,GSO)是一种人工智能算法,其模拟自然界萤火虫通过闪光进行信息交互,从而聚集到亮度最强的萤火虫附近的社会性行为[7],在此寻优过程中,荧光亮度和吸引度是实现萤火虫群体进化的2个关键要素[7]。

初始状态时,每只萤火虫个体xi(t)携带荧光素浓度为l0,并且感知半径均为r0,荧光素更新策略如(10)式所示,即

(10)

其中,li(t)为萤火虫i当前的荧光素值;ρ∈(0,1)为荧光素挥发因子;F(xi(t))为萤火虫i此刻在当前位置对应的目标函数值;γ为荧光素更新率。

GSO算法规定,萤火虫xi(t)在自身决策范围内选择荧光素值高于自己的个体组成领域集Ni(t),并以概率pij(t)选择领域集内的个体xj(t)进行移动[8],移动步长为s,移动规则如(11)式,个体xj(t)被选择的概率为pij(t),即

(11)

(12)

(13)

其中,β为动态决策范围更新率;Nt为决策范围内的萤火虫数量阀值;|Ni(t)|为领域集内萤火虫数量。

3两轮机器人平衡控制设计

3.1机器人自平衡LQR控制器

LQR理论是现代控制理论中发展最早也最为成熟的一种状态空间设计法,并且LQR可得到状态线性反馈的最优控制规律,易于构成闭环最优控制[9]。其优化控制本质上是寻找使得成本函数J取得最小值时的控制变量u值的过程。成本函数J的表达式为:

(14)

其中,u=-R-1BTPx;P为(15)式黎卡提方程的解,即

PA+ATP+Q-PBR-1BTP=0

(15)

最优反馈系数矩阵K=R-1BTP,用Matlab可求出最优反馈系数矩阵K的值。R为矩阵,一般用来平衡输入量,增大R的值可以降低系统的能耗,但会增长系统调稳的时间;Q为一对角矩阵,是状态量的权重,增大Q的值能缩短系统调稳时间,但会增强系统的震荡,增加能耗。所以机器人平衡的关键在于寻找矩阵R和Q的最佳值。

采用线性二次型性能指标公式(14)式作为适应度函数,Q为4×4的恒为正值的对称正定矩阵,R一般为常量矩阵,因此系统性能指标可以表示为:

(16)

其中,q0、q1、q2、q3分别为两轮机器人的位置权重、速度权重、角度权重和角速度权重。因此可以通过萤火虫算法寻找LQR控制器参数最优值和其对应的系统性能指标,从而实现对机器人的平衡控制。

3.2改进萤火虫算法优化LQR参数

在标准萤火虫算法中,每个萤火虫个体在各自的感知范围内搜索更优秀的个体,容易陷入局部最优,甚至在极端情况下,当感知范围内的萤火虫的荧光素值都相等时,算法将停止搜索,无法寻到最优值。针对标准的萤火虫算法在迭代时易陷入局部最优、收敛速度偏慢的情况,本文通过引入莱维飞行的思想对迭代过程进行改进:将最优萤火虫的状态及对应的目标函数值记录到记录板,若在连续3次迭代中,记录板上的目标函数值变化很小(变化量小于μ,μ取值范围为 10-4~10-6),则认为算法陷入局部最优[10-11]。此时,使用莱维飞行更新位置,计算目标函数值,直至找到高于记录板中当前最优值的新位置,再利用(11)式进行搜索。莱维飞行的更新公式为:

(17)

其中,α(α>0)为步长因子;⨁为点对点的乘法;xg为当前记录板中记录的最优个体位置;L(λ)为服从幂律分布的随机搜索过程,L(λ)∶u=t-λ,1<λ<3。u、v均服从正态分布:

(18)

改进的萤火虫算法(IGSO)优化LQR控制器原理是将萤火虫初值赋给Q,然后运行Simulink模型得到该组参数对应的系统性能指标,该指标作为萤火虫算法的目标函数值,进行迭代寻优。具体实施步骤如下:

(1) 初始化记录板、 荧光素更新率和荧光素初值等参数,在问题的解空间中随机地初始化萤火虫群。

(2) 计算初始萤火虫的目标函数值。

(3) 对所有萤火虫按(10)式更新荧光素值,萤火虫解码为控制器参数q0、q1、q2、q3。

(4) 进入运动阶段,在新位置用(11)式进行位置的更新,并运用(13)式进行决策域半径更新。

(5) 计算当前萤火虫的目标函数值,若优于记录板的值,则将之更新到记录板中。

(6) 判断是否进行莱维飞行。若记录板上的目标函数值在连续3次迭代中的变化都极小,则执行步骤(7);否则执行步骤(8)。

日者,阳精之宗,积精成象,象成为禽,金鸡、火鸟也,皆曰三足,表阳之类,其数奇;月者,阴精之宗,积精而成象,象成为兽,玉免、蟾蜍也,皆四足,表阴之类,其数偶。[注](宋)张君房:《云笈七籖》,新文丰出版公司,1957年,第685页。

(7) 莱维飞行。按照(17)式进行飞行,寻找新的更优位置并计算当前萤火虫的目标函数值,直至寻找到优于记录板中的历史最优值的位置为止,并更新记录板中的信息。

(8) 判断是否满足结束条件。若满足,则退出迭代,输出结果;否则执行步骤(3),进入下一次迭代。

4仿真实验

为了验证本文提出的改进算法优化参数的优越性,用标准萤火虫算法(GSO)、改进萤火虫算法(IGSO)与遗传算法(GA)在Matlab平台下的 Simulink中进行仿真,对控制器的参数进行优化,寻找出合适的q0、q1、q2、q3。机器人平衡运动1 000步,耗时约10 s。各算法参数设置如下:

(1) 遗传算法。采用文献[4]的参数集,种群规模为 100,变异概率为 0.05,交叉概率为 0.6。

(2) 标准萤火虫算法和本文的改进算法。采用文献[11]的建议,荧光素挥发因子为 0.4,荧光素更新率为0.6,动态决策范围更新率为0.08,控制邻域范围内邻居萤火虫个数为5,荧光素初值为5,变化量u为10-4,步长s为0.3。

(3) 机器人质量m为2.0 kg,高为0.20 m,两轮距离为0.20 m,轮半径为0.06 m,加速度策略范围为±2g,陀螺仪的角度测量范围为±150°,驱动器最大输出电流为2 A。

(4) 标准萤火虫算法和遗传算法的迭代次数均设置为300,而改进萤火虫算法最大迭代次数设置为 50。

实验结果如图3~图5 所示。

图3 改进萤火虫算法适应度变化曲线

图4 机器人倾角响应曲线

图5 机器人机身角速度响应曲线

从图3可以看出,遗传算法(GA)的稳态误差为0.24%,而萤火虫算法(GSO)、改进萤火虫算法(IGSO)求解后稳态误差均在 0.05%以下。标准萤火虫算法和遗传算法在 100 代之后最优解才稳定下来,而IGSO算法在进化代数为56 时,最优解就能稳定下来,说明改进算法能使控制器较快地获得合适的参数,从而能快速地进入稳定状态,达到最优的控制效果。

从图4可以看出,运用改进萤火虫算法后,系统能较好地跟踪阶跃信号,对控制器参数优化的效果最好,超调量、稳态误差等都有较好的表现,在控制器参数优化上有较好的寻优能力,所得参数对机器人平衡控制的效果很好,精度也很高。

从图5可以看出,运用改进萤火虫算法后,机器人大概经历380步、耗时约4 s就能进入到平衡状态,而标准GSO算法下,机器人需要经过约800步才能进入稳定状态。这表明改进后的算法能较快地进行自适应调整以迅速进入平衡状态。

5结束语

针对两轮自平衡机器人平衡控制优化问题,本文提出了一种基于改进萤火虫算法的优化设计方案,并进行了仿真实验。实验结果表明,该算法相比于遗传算法和标准萤火虫算法在寻优能力和控制精度上有显著提升,能更好地对机器人进行平衡控制。

[参考文献]

[1]Wu J, Zhang W. Design of fuzzy logic controller for two-wheeled self-balancing robot[C]//International Forum on Strategic Technology. IEEE, 2011:1266-1270.

[2]Fang J. The LQR controller design of two-wheeled self-balancing robot based on the particle swarm optimization algorithm[J]. Mathematical Problems in Engineering, 2014, 2014(1):1-6.

[3]张家骏.基于粒子群算法的PID控制器参数优化研究[J]. 计算机仿真, 2010, 27(10):191-193.

[4]谌海云,杜振华,邹宁波,等. 多种群遗传算法的倒立摆LQR控制器设计[J]. 控制工程, 2014, 21(3):391-394.

[5]张金学,掌明.两轮自平衡机器人的LQR实时平衡控制[J]. 自动化与仪表, 2013, 28(5):5-9.

[6]阮晓钢,李世臻,侯旭阳,等.基于非线性PID的柔性两轮机器人运动控制[J]. 控制工程, 2012, 19(3):498-501.

[7]王迎菊,周永权.一种基于荧光素扩散的人工萤火虫算法[J]. 计算机工程与应用, 2012, 48(10):34-38.

[8]杜晓昕,张剑飞,孙明.基于自适应t分布混合变异的人工萤火虫算法[J]. 计算机应用, 2013, 33(7):1922-1925.

[9]武俊峰,孙雷.两轮自平衡机器人的控制方法研究[J]. 哈尔滨理工大学学报, 2014, 19(6):22-26.

[10]毛书军,盛贤君.基于混合计算智能的分数阶PID控制器参数优化[J]. 计算机应用, 2014,34(Z1):159-161.

[11]莫愿斌,刘付永,张宇楠. 带高斯变异的人工萤火虫优化算法[J]. 计算机应用研究, 2013, 30(1): 121-123.

(责任编辑胡亚敏)

Balance control of two-wheeled robot based on improved glowworm swarm optimization algorithm

YANG Huai-de

(Dept. of Computer Engineering, Dongguan Polytechnic, Dongguan 523808, China)

Abstract:Aiming at the balance control of self-balancing two-wheeled robot, a new algorithm based on improved glowworm swarm optimization algorithm is proposed to optimize controller parameters, in which the glowworm location updating strategy is optimized by introducing the Levy flight. The simulation result shows that the new algorithm has good stability and smaller generations, and good control effect in the balance control of self-balancing two-wheeled robot.

Key words:two-wheeled robot; glowworm swarm optimization algorithm; Levy flight; balance control

收稿日期:2015-07-01;修回日期:2016-02-19

基金项目:东莞市社会科技发展资助项目(2013108101045)

作者简介:杨怀德(1983-),男,湖北黄冈人,东莞职业技术学院工程师.

doi:10.3969/j.issn.1003-5060.2016.05.014

中图分类号:TP242

文献标识码:A

文章编号:1003-5060(2016)05-0642-05