龙空技术网

机械臂轨迹的非支配排序高斯粒子群多目标优化?如何进行该优化?

章仕齐 69

前言:

当前同学们对“粒子群算法ppt”大体比较关注,姐妹们都想要知道一些“粒子群算法ppt”的相关文章。那么小编也在网络上收集了一些对于“粒子群算法ppt””的相关文章,希望看官们能喜欢,咱们快快来了解一下吧!

文I 章仕齐

编辑I 章仕齐

问题描述与建模

本文以PUMA560机械臂为研究对象,如图1所示,该机械臂具有6个转动关节,前3个转动关节用于控制末端执行器的位置,后3个关节用于控制末端执行器的姿态,本文针对末端执行器的位置进行研究和优化,因此只与前3个关节角相关。

根据任务需求,设置PUMA560机械臂末端执行器必须经过的3点在笛卡尔空间分布如图2所示,图中点与点之间的轨迹为机械臂的现行运行轨迹,现行轨迹点与点间运行时间均为2s,本文研究内容为:在保证末端执行器经过必经点前提下,对机械臂运行轨迹进行优化。

使用逆运动学求解方法,基于PUMA560的D-H模型参数,得到3个笛卡尔空间点对应的关节空间点如表1所示。

本文所研究问题描述为:对于给定的3个位置点,点与点之间使用5次多项式作为轨迹基元,第一点为初始位置,初始位置对应的时刻为初始时刻,记为t0,通过对机械臂末端到达第二点和第三点的时刻t1、t2进行优化,达到减小运行时间、节省能量消耗等目的,第三点为末端位置,末端位置对应的时刻为终止时刻,记为tf,本文中tf=t2

本文使用5次多项式作为点与点间的插值轨迹,也即轨迹基元,即关节n的关节角0n随时间t的变化函数为:

式中:a0~a5-第0次项系数到第5次项系数。

将该段轨迹初始时刻和终止时刻的位置、速度、加速度等作为约束条件,可以对式(1)进行求解,也即可以确定点与点之间的轨迹,初始时刻和终止时刻关节角分别记为0和0,初始速度记为v,终止速度记为v,初始加速度记为a,终止加速度记为ac,则得到轨迹基元待定参数为:

将式(2)得到的系数代入到式(1)中,即可得到点与点之间的运行轨迹。

本文对机械臂轨迹规划设定3个优化目标,分别为运行时间最短、能量消耗最低、脉动冲击最小。

运行时间最短,根据2.1节的问题描述,机械臂运行时间为:

式中:T-机械臂的运行时间,1y-时间优化目标函数。

能量消耗最低,机械臂驱动电机的能耗模型为:

式中:y-能耗优化目标函数,n-关节角编号,a(1)-关节角n随时间变化的加速度函数。

脉动冲击最小,机械臂在运行过程中的脉动冲击计算方法为:

式中:y3-脉动冲击优化目标函数,Jn(t)-关节角n随时间变化的加加速度函数。

机械臂轨迹在优化过程中,应在关节运动能力的约束范围内,关节的运动能力约束包括转动角范围、角速度约束、角加速度约束、角加加速度约束,则多目标优化模型为:

式中:0-n_max关节n的角度极值,vn_max-关节n的速度极值,a-n_max关节角n的加速度极值,Jn_max-关节角n的加加速度极值PUMA560机械臂的运动能力约束如表2所示。

多目标优化模型求解

对于多目标优化问题,一般具有2种处理方法,一类是使用加权系数法,将多个优化目标转化为一个目标;二是使用非支配排序法,得到多个优化目标的Pareto解集,第1种方法可以视为第2种情况下的一个特殊解,因此本文在非支配排序的基础上,提出了基于非支配排序粒子群算法的多目标优化方法。

多目标优化的选择过程是基于非支配排序和拥挤度实现的,非支配排序是针对多目标优化问题提出的排序方法,与传统排序方法相比,它使用多个评价指标,个体具有某一指标的绝对优势就说明此个体可取。

具体的讲,对于L个最小化优化问题,若对于任意一个目标1E{1,2,…L}都有f(xA)≤f(xB),则称个体A支配个体B。

在种群中若某一个体不被其余任意个体支配,则此个体称为非支配个体,非支配排序过程为:首先选择种群中的非支配个体作为第1层,去除第1层个体后,其余个体中的非支配个体作为第2层,不断重复以上过程,直至排序完毕。

拥挤度因子是针对各层个体的聚集程度定义的,每一层两端的个体拥挤度定义为无穷大,其余个体的拥挤度大小为:

式中:d--个体m的拥挤度因子,flm+1、flm-1个体m的相邻个体。

则多目标优化的选择方法为:将更新前后的个体进行混合并分层,首先保留非支配层较小的个体,当选择到某一支配层个体种群规模超出时,使用拥挤度因子进行选择,保留最后一层拥挤度因子较大的个体,直至种群规模维持不变。

传统粒子群算法中,粒子依据种群信息、个体经验和自身惯性进行运动,给出粒子更新方法并进行缺陷分析,为:

式中:vfdk+1、xfdk+1+粒子i在纬度d迭代t次时速度和位置,w-运动惯性,c1-个体学习因子,c2-种群学习因子,r1、m2-随机数,pidk个体i迭代k次在维度d上的取值,pgdk-迭代k次种群最优粒子在维度d上的取值。

分析式(8)可知,随着迭代的进行,所有粒子在引导作用下向种群最优聚集,当某一粒子与种群最优相似度较大,此时有xidk≈pidk≈pgdk,则pidk-xidk≈0、pgdk-xidk≈0,由此可以看出,当某一粒子与种群最优接近时,粒子只在自身惯性作用下更新,自身经验和种群信息将失去牵引作用,粒子群算法几乎丧失了更新能力。

为了解决这一问题,一般使用随机产生粒子的方式,但是随机产生粒子后,新生粒子适应度难以超过种群最优,在式(8)作用下又会再次陷入上述问题,因此,本文提出向种群最优的邻域学习,而不是单纯的向种群最优学习,具体方法为;向种群最优施加高斯扰动,得到其邻域,使用种群最优的邻域对其余粒子进行引导,即:

式中:pgdk'-种群最优高斯扰动后的粒子;N(pgdk,a)-以pgdk为均值、以为标准差的正态分布,高斯扰动的幅度依据算法需要进行设置,算法前期种群最优的学习价值较小,且粒子需要大范围搜索,因此使用较大的标准差;算法后期种群最优的学习价值较大,且算法具有收敛的需求,因此使用较小的标准差,基于以上分析,本文将标准差设置为递减函数,为:

式中:a0-初始标准差,为常值;Kmax-最大迭代次数。

传统粒子群算法与高斯粒子群算法的粒子速度均由3部分组成,分别为自身惯性、自身经验和种群信息,以上3种影响因素分别用矢量u1、u2和u3来代替,则传统粒子群算法和高斯粒子群算法的粒子更新和多样性对比如图3所示。

粒子群算法向固定的种群最优学习,而高斯粒子群算法是向种群最优的邻域学习,高斯粒子群算法的学习范围更广,既保留了高效的精英学习方式,同时增加了粒子多样性,由此可以看出,高斯粒子群算法优化深度和优化能力好于传统的粒子群算法。

根据优化目标和优化参数,将粒子位置设置为2维,即x=(t1.t2),基于非支配排序高斯粒子群算法的多目标优化流程为:

初始化算法参数,包括粒子规模、最大迭代次数Kmax、自身学习因子1c、种群学习因子2c、运动惯性w、初始标准差a0;初始化粒子位置;粒子按照式(9)和式(10)定义的方式进行位置更新;

将位置更新前后的粒子进行混合,并依据各目标函数值进行非支配排序并选择;k=k+1,判断k=Kmax?若否则返回Step3;若否则算法结束,输出Pareto前沿解。

仿真验证与分析

在3.3节从原理上对比了高斯粒子群与传统粒子群算法的优劣,也即从原理上保证了高斯粒子群算法的优越性,因此不再对2种算法的优化性能进行验证,而直接使用高斯粒子群算法进行求解,设置机械臂的边界条件为:速度v0=vf=0,加速度α0=αf=0。

算法参数设置为:粒子规模为100、最大迭代次数Kmax=200、自身学习因子c1=1.50、种群学习因子c2=1.50、运动惯性w=0.6、初始标准差a0=0.1range,range表示优化维度的取值范围,使用非支配排序高斯粒子群算法得到的Pareto前沿解如图4所示。

对图4给出的优化结果作以下说明:图中给出的优化结果只是各关节针对自身目标、必经点和约束得到的优化结果,机械臂联动时,点与点间运行时间按照各关节运行时间最大值进行确定。

Pareto前沿解集给出了不同方案下的优化结果,设计者可以按照优化需求选择优化方案,由图3优化结果可以看出,3个优化目标中,脉动量与能耗成正相关关系,但是脉动量和能耗与实践成负相关,具有一定的制约关系。

按照3个优化目标同等重要选择一组优化结果,即对3个优化目标权值均设置为1/3,得到此时的3个关节优化结果分别为[1.5017,1.9315],[1.7016,1.9914],[1.6016,1.9832],各关节点之间按照运行时间最大值进行确定,得到整个机械臂的运行结果为[1.7016,1.9914]。

前文中提到,图2所示轨迹为现行轨迹,将优化后轨迹与现行轨迹进行对比,结果如图5~7所示。

由图5~图7可以直观看出,经过优化机械臂的运行时间明显减少,关节角速度幅值比优化前略大,但是由于优化后的运行时间短,因此能耗仍需进一步计算才能比较,无法直观看出,统计优化前后的运行时间、能耗和冲击量,如表3所示。

由表3中数据可知,经过优化,机械臂轨迹的运行时间、能耗及脉动冲击均有所下降,其中运行时间由4s减为3.6930s,减少了7.68%,总能耗由141.1721减少为85.7751,减少了39.24%,脉动冲击由200.0528减少为114.7420,减少了42.64%,由以上数据可以看出,经过优化,机械臂轨迹的运行时间、能耗和冲击均有较大的减少,说明了本文优化方法的有效性。

标签: #粒子群算法ppt #粒子群优化算法的应用范围