一种改进差分进化算法的单关节机械臂控制方法*

2022-07-27 04:30陈晓彤祁文哲孟建军李德仓胥如迅
组合机床与自动化加工技术 2022年7期
关键词:差分交叉变异

陈晓彤,祁文哲,孟建军,李德仓,胥如迅

(兰州交通大学a.机电技术研究所;b.甘肃省物流及运输装备信息化工程技术研究中心;c.甘肃省物流与运输装备行业技术中心,兰州 730070)

0 引言

随着工业自动化的发展,自动化作业逐渐代替人工操作,在机械运动中,不同轨迹规划会产生不同程度的振荡及能耗,于是,在机械控制系统中寻找最优轨迹并使其能耗最小成为热点话题[1]。对于不同领域,如航空航天[2]、电网[3]、农业[4]等,机械臂轨迹优化要求也大不相同,从而导致机械臂末端位姿调整幅度的程度不同,因此,对机械臂进行准确的轨迹规划尤为重要。

目前,在工业自动化装备领域中,常用的轨迹规划方法有A*搜索算法、人工势场法及智能优化算法。A*搜索算法[5]将传统Dijkstra算法和基于贪心策略的BFS(breadth first search)算法结合起来,以最小代价寻找一条全局轨迹规划下的最短轨迹,且计算速度快。人工势场法[6]由KHATIB提出,通过虚拟一种力场在机器人、目标位置、障碍物三者之间建立约束关系。智能优化算法[7]在控制工程、路径规划等领域均取得了一定成果,根据大自然规律和生物群体行为进行优化。上述前两种算法的处理过程中并不是每一步均朝着目的点进行优化,所以,搜索得到的轨迹不是最优结果,而智能优化算法是通过随机搜索确定最优轨迹,因此,在轨迹规划中具有更好的优势。

机械臂作为工业机器人的作业装备,其避障与轨迹规划对精确完成作业具有重要意义。张良安等[8]针对若干码垛及搬运机械装备机械臂的柔顺性和稳定性提出了较高要求,但机械装备自动化程度低、动作粗犷、占用空间大。刘宝等[9]通过在时间最短条件下的三次样条轨迹规划,有效减小了关节轴的残余振动,但脉动不连续。王琛等[10]利用改进遗传算法解决局部最优解问题,设计了机械臂的最优时间轨迹规划,但多自由度计算时速度较慢。李俊等[11]以多关节机器人为对象,利用样条函数和改进的遗传算法,避免了运动轨迹出现奇异结构点和局部最优问题,但结果可靠性差,不能稳定求解。

上述方法中,存在机械臂运动不流畅、加速度轨迹不连贯、脉冲不连续等缺陷,而智能优化算法可对任何形式的定点进行优化作业,弥补了这些缺陷,因此,针对智能优化算法中的差分进化算法进行研究,以单关节机械臂为例,提出一种改进差分进化算法,与传统差分进化算法相比,跟踪轨迹、最优轨迹与理想轨迹更相似且误差较小。

1 单关节机械臂模型构建

1.1 问题描述

研究单关节机械臂控制系统,如图1所示,图中的θ是关节位置。该控制包括控制器、执行器、被控系统及传感反馈。输入信号θd通过控制器与执行器,利用电流i对电机输出端的扭矩τ进行控制,在经过被控系统后以角度θ的形式体现,部分信号输入回传感反馈对整个系统角度θest微调。

图1 控制系统图

1.2 模型建立

现将单关节机械臂作为研究对象,并简化成二阶线性系统,如式(1)所示。

(1)

式中,θ表示角度;I表示转动惯量;b表示粘性系数;τ表示控制输入;d表示加在控制输入上的扰动。

假设:当系统达到稳定状态时,最大允许时间为tmax=3TE(摆线周期TE),根据能量守恒定理,通过非保守力做功来对整个系统在运动中所消耗的能量进行表示,目标函数如式(2)所示。

(2)

式中,ω表示权值;dis(t)表示实际跟踪轨迹与理想轨迹间的距离,最终实现系统能耗最低且轨迹最优,如式(3)所示。

(3)

然后,计算跟踪误差e如式(4)所示。

e=θop-θ

(4)

式中,θop表示插值点处的最优值。通过PD控制律(比例微分控制律)对控制输入进行计算,如式(5)所示。

(5)

式中,kp>0,kp表示比例调节系数;kd<0,kd表示微分调节系数。在比例调节器中,可以对输入输出作出及时反应,但稳定性差,对于惯性较大的控制对象,此缺陷更为显著,现引入微分调节器进行调节,提高机械鲁棒性。

最后根据式(6)计算摆线运动θr,采用差分进化算法或者改进差分进化算法设计最优轨迹θop。

(6)

式中,θd和θ0分别表示角的初始角度与目标角度。

1.3 参数设置及符号

(7)

采用样条插值方法对轨迹进行初始化,插值点D设置为4,即D=4,插值点固定横坐标取第200、400、600、800个点,纵坐标方向随机选取初始点与终止点之间的4个点,而第i个样本(i=1,2,…,N)第j个插值点(j=1,2,3,4)的取值为式(8)。

θop(i,j)=rand(θd-θ0)+θ0

(8)

式中,θop(i,j)表示第i个样本第j个插值点处的最优轨迹;rand(θd-θ0)随机在0~1之间取值。

追踪指令为θd=0.5,比例调节系数kp=300,微分调节系数kd=10。系统状态变量及物理意义如表2所示。

表1 相关参数及初始值

表2 系统状态变量及物理意义

2 差分进化算法

差分进化算法[12](differential evolution,DE)是一种启发式搜索算法,采取“优胜劣汰,适者生存”自然界生物种族的进化规律进行随机搜索[13]。在保全样本的全局搜索策略下,根据父代样本间的差分矢量采用实数编码、变异操作、交叉操作以及一对一的竞争生存原则,提高了局部搜索能力、鲁棒性以及收敛性,降低遗传的复杂性,差分进化算法流程图如图2所示。

图2 差分进化算法流程图

(9)

式中,xij(0)表示初始化样本。

在执行变异操作时,引入变异因子F,对种族多样性与收敛性进行控制,在传统差分进化算法中,F的取值范围是[0,2],若F所取数值过小,导致群体差异较小,进化过程中不一定突破其局部极值,从而收敛过早;而F取值过大,将极易跳出局部极值,同时影响收敛速度。因此,针对传统差分进化算法,选择F=0.5。

在执行变异操作时,通过控制个体参数在各个维度与交叉的参与度,平衡全局及局部区域搜索,变异向量与某个预先决定的目标向量进行参数混合后生成试验向量,在传统差分进化算法中,CR取值范围是[0,1],CR较小时,样本多样性会发生骤减,导致收敛过早;CR较大时,虽然提高了收敛速度,但过大因扰动大于样本差异度导致收敛变慢。因此,针对传统差分进化算法,选择CR=0.9。

选择操作的基本原理是如果试验向量的适应度值优于目标向量的适应度值,则在下一代中试验向量取代目标向量,否则目标向量仍保存下来,即采用“贪婪”策略选择适应度较好的进入下一代。在进入下一代时,利用最大迭代代数G作为进化是否中止的条件。

3 改进差分进化算法

传统差分进化算法通过变异、交叉及选择等操作进行优化,但理想轨迹与实际轨迹之间存在误差,因此,提出改进差分进化算法是在传统算法的基础上,对其变异因子、交叉因子的选取进行优化。

3.1 改进变异因子

在搜索初期,F取值较大便于扩大搜索空间并保持样本多样性;随着迭代次数的增加,在后期,F取值较小,有利于局部进行最优搜索,由此可提高收敛速度及搜索精度。

现有研究表明F在[0.4,1]取值,可以得到更好的效果[14],在改进差分算法中,提出一F满足关于搜索角度θ的复合函数,为了限制范围,将F初始值定义为2,如式(10)所示。

(10)

3.2 改进交叉因子

一般情况下,CR在[0.6,0.9]之间选取,CR越大,F越小,收敛速度加剧,但随着CR的增加,收敛度对F的敏感程度会逐步提高,在改进差分算法中,提出一CR满足关于搜索角度的复合函数,如式(11)所示。

(11)

4 仿真结果及分析

通过差分进化算法及改进差分进化算法,沿参考轨迹进行最优规划,以保证系统在不偏离参考轨迹的基础上,采用PD控制方法,实现对最优轨迹的跟踪,确保整个运动中消耗的能量最小。两种算法均满足式(2)目标函数,并使其值最小,即式(3),从而得到最优轨迹。选取样本数50,优化次数30,进行4次插值,插值点横坐标固定选取,纵坐标在初始点和终止点之间随机选取,进行MATLAB仿真。

4.1 差分进化算法

传统差分进化算法在MATLAB软件进行仿真结果如图3所示。

(a) 最优轨迹优化效果(b) 理想轨迹、最优轨迹、轨迹跟踪

图3a是最优轨迹优化效果图,发现理想轨迹与优化轨迹间存在较大差距,并未达到很高的拟合程度;图3b是理想轨迹、最优轨迹、轨迹跟踪图,仍观察到明显误差距离。

4.2 改进差分进化算法

4.2.1 改进变异因子

仅改进变异因子差分算法,通过MATLAB进行仿真,仿真结果如图4所示。

(a) 最优轨迹优化效果 (b) 轨迹跟踪

由图4a最优轨迹优化效果和图4b轨迹跟踪看出,仅改变变异因子的改进差分进化算法下的最优轨迹与理想轨迹有细微接近;跟踪运动轨迹与理想轨迹虽误差变小但不明显。

4.2.2 改进交叉因子

仅改进交叉因子差分算法,通过MATLAB进行仿真,仿真结果如图5所示。

(a) 最优轨迹优化效果 (b) 轨迹跟踪

由图5a最优轨迹优化效果和图5b轨迹跟踪结果看出,最优轨迹与理想轨迹虽有明显接近,但全程存在误差;且跟踪运动轨迹与理想轨迹误差虽然较小但全程存在。

4.2.3 改进差分进化算法

改进差分算法(包括改变变异因子与交叉因子)通过MATLAB进行仿真,仿真结果如图6所示。

(a) 最优轨迹优化效果 (b) 轨迹跟踪

由图6a最优轨迹优化效果和图6b轨迹跟踪结果看出,优化后轨迹更接近理想轨迹,极好地减小了实际与理想轨迹间的误差距离,虽然中后期存在微小误差,但优化后轨迹与理想轨迹相似度较高。

4.3 结果对比及分析

4种算法的仿真图如图7所示。

(a) 最优轨迹优化效果 (b) 轨迹跟踪

由图7a直观地观察到,仅改变变异因子的改进差分进化算法与传统差分进化算法,其最优轨迹与理想轨迹有细微靠近;仅改变交叉因子的改进差分进化算法,其最优轨迹与理想轨迹虽有明显靠近,但全程存在误差;而改进差分算法(包括改变变异因子与交叉因子),最优轨迹与理想轨迹有明显接近,仅在后期存在较小偏差。由图7b轨迹跟踪效果图看出,仅改变变异因子的改进差分进化算法与传统差分进化算法,其跟踪运动轨迹与理想轨迹虽误差变小但不明显;仅改变交叉因子的改进差分进化算法,其跟踪运动轨迹与理想轨迹误差虽然较小但全程存在;而改进差分算法(包括改变变异因子与交叉因子),跟踪运动轨迹与理想轨迹在前期基本拟合,仅在后期存在较小误差。

传统差分进化算法、仅改进变异因子的差分进化算法、仅改变交叉因子改进进化算法以及改进差分算法(包括改变变异因子与交叉因子),仿真结果数据表如表3和表4所示。

表3 最优轨迹数据

表4 理想轨迹、最优轨迹、轨迹跟踪数据

通过表3最优轨迹数据与表4理想轨迹、最优轨迹、轨迹跟踪数据对比,可以看出传统差分进化算法和改进差分进化算法在X轴方向不发生改变,改进后的方案只作用在Y轴方向上,选择与理想数据更为接近的算法将有利于改善控制系统精度的问题。在两组数据对比中,改进差分进化算法(包括改变变异因子与交叉因子)极差与标准与理想数据最为贴近,误差普遍缩小了0.15%。

5 结论

以单关节机械臂为研究对象,提出了一种改进差分进化算法,改变变异因子确保样本的多样性,又提高了后期进行搜索的能力,改变交叉因子提供了更好的迭代空间。

(1)4种算法控制下的轨迹优化在0~0.4 s之间,只有改进差分进化算法与理想轨迹高度契合;在0.4 s后,4种算法均产生误差,相较之下,改进差分进化算法误差距离较小;

(2)4种算法控制下的理想轨迹、最优轨迹、轨迹跟踪在0~0.4 s之间,只有改进差分进化算法轨迹跟踪与理想轨迹、最优轨迹更为拟合;在0.4 s后,4种算法均产生误差,相较之下,改进差分进化算法误差距离较小且跟踪轨迹与理想轨迹、最优轨迹的相似度较高。

通过对改进前后的仿真结果分析表明,改进差分算法相比起传统差分算法、仅改变单个因子差分进化算法,所得到的实际轨迹更接近理想轨迹且误差更小,在一定程度上提高了机械臂控制系统运动轨迹精度。

猜你喜欢
差分交叉变异
RLW-KdV方程的紧致有限差分格式
符合差分隐私的流数据统计直方图发布
菌类蔬菜交叉种植一地双收
数列与差分
变异危机
变异
“六法”巧解分式方程
连数
连一连
变异的蚊子