基于自适应粒子群遗传算法的柔性关节机器人动力学参数辨识

2020-02-19 03:17王跃灵王洪斌
计量学报 2020年1期
关键词:遗传算法柔性动力学

王跃灵, 旺 玥, 王 琪, 王洪斌

(燕山大学 工业计算机控制工程河北省重点实验室,河北 秦皇岛 066004)

1 引 言

目前,许多轻型高性能的机器人广泛采用谐波驱动器来驱动关节运动,但谐波减速器的应用引入了关节柔性,同时,一部分机器人通过采用具有弹性模块的关节来提高人机交互过程的安全性,关节柔性的引入使机器人关节成为一种欠驱动系统,增加了控制器设计的难度。为了提高机器人性能,需要研究针对柔性关节机器人的高性能控制器,而柔性关节机器人动力学模型参数的准确性对其至关重要。因此,为了建立精确的柔性关节机器人动力学模型,需要有较好的参数辨识方法[1]。传统的参数辨识方法主要有最小二乘法[2]、遗传算法[3]、粒子群算法[4,5]等。最小二乘法的优点是辨识精度高,缺点是较大规模的计算量导致没有良好的实时性。文献[6]利用遗传算法对工业机器人动力学模型进行参数辨识,该算法可以有效地避免局部最优解,但仍存在收敛慢,计算量大的缺点;文献[7]利用粒子群算法对机械臂各关节动力学参数进行参数辨识,但传统的粒子群算法仍存在搜索空间有限,易陷入局部最优解等问题。

为了提高辨识精度,避免算法陷入局部最优解,本文针对柔性关节机器人的动力学模型,首先确定了需要辨识的动力学参数,在传统粒子群算法的基础上,提出了一种遗传算法(GA)与粒子群算法(particle swarm optimization, PSO)结合的自适应粒子群遗传算法(adaptive particle swarm optimization-genetic algorithm, APSO-GA)。通过仿真实验表明:该算法拥有更好的收敛速度和寻优精度。同时利用旋转柔性关节(rotary flexible joint)实验平台进行了柔性关节机器人动力学参数辨识实验,实验结果验证了该算法的有效性。

2 动力学参数辨识方法

2.1 柔性关节动力学模型

本文以如图1所示单自由度柔性关节机器人为研究对象,关节柔性部分采用Spong[8]提出的经典简化模型,将电机和关节之间视为具有常值系数的线性扭转弹簧,同时考虑系统中粘滞阻尼,其动力学方程如下:

(1)

其中:q,θ分别为负载侧与电机侧的角位移;I,J分别为负载侧与电机侧的等效转动惯量;Dq,Dθ分别为负载侧与电机侧的阻尼系数;G(q)为负载侧重力项;K为关节刚度系数;T为电机输出力矩。

图1 柔性关节简化模型Fig.1 Flexible joint simplified model

2.2 柔性关节动力学模型辨识策略

由于基于模型的辨识方法需要获取输入端输出端角加速度信息,而角加速度通常由角位移的二阶微分获得,微分过程中会引入微分噪声,降低了参数辨识精度。为解决由于微分项带来的辨识算法噪声问题,Flaccoa等[9]在柔性关节参数辨识领域提出了基于积分作用的降阶辨识方法。该方法首先对式(1)两侧分别积分得到:

(2)

其中t为时间。

将式(2)中两式相加可得:

(3)

最后,根据式(3)模型,定义参数矩阵与变量矩阵为:

(4)

3 粒子群算法

3.1 标准粒子群算法

PSO算法对于Hepper的模拟鸟群(鱼群)的模型进行了修正,以使粒子能够飞向解空间,并在最优处降落,从而得到粒子群优化算法[10],其主要内容概括如下:在粒子群算法中,每个优化问题的解都是搜索空间中的一个粒子。所有的粒子都有一个由被优化的函数决定的适应度函数,每个粒子还有一个速度v决定它们飞行的方向和距离。粒子群算法将可行解空间初始化为一群随机粒子,然后粒子根据当前的最优粒子在解空间中搜索最优解。在每一次迭代中,粒子都是通过跟踪2个“极值”来更新自己,一个粒子是自身找到的最优解,称为个体极值;另一个极值是整个群体找到的最优解,称为全局极值。如果粒子的群体规模为M,目标搜索空间为D维,则第i(i=1,2,…,M)个粒子的位置可表示为Xi,它所经过的“最好”位置记为Pi,速度用Vi表示,群体中“最好”粒子的位置为Pg,那么粒子i将根据下面的公式来更新自己的速度和位置:

(4)

式中:d=1,2,…,D;ω称为惯性因子;C1与C2称为加速度常数,一般取C1=C2∈[0,4];random(0,1)表示区间[0,1]上的随机数。

粒子在解空间内不断跟踪个体极值与全局极值进行搜索,直到达到规定的迭代次数或满足规定的误差标准为止。粒子在每一维飞行的速度不能超过算法设定的最大速度Vmax。设置较大的Vmax可以保证粒子种群的全局搜索能力,Vmax较小则可以加强粒子种群的局部搜索能力。

3.2 自适应粒子群遗传算法

PSO算法中,由于粒子向自身历史最佳位置和邻域或群体历史最佳位置聚集,形成了粒子种群的快速趋同效应,容易出现陷入局部极值、早熟收敛或停滞现象。同时,PSO的性能也依赖于算法参数,为了克服上述不足,本文提出了一种采用动态调整策略的自适应粒子群遗传算法。

在该算法执行过程中,随着迭代次数的增加,惯性权重因子的数值会不断地减少。在迭代的早期,大的惯性权重因子有利于跳出局部最优和促进全局寻优。在迭代的后期,小的惯性权重有利于局部寻优而且有利于算法的收敛,因此选择自适应调整来改进惯性权重系数以跳出局部最优,自适应惯性权重系数为:

(5)

式中:ωs,ωe分别为起始与结束时的惯性权重;g为当前迭代次数;G为总迭代次数。粒子群算法中,2个学习因子分别代表了粒子自身的学习能力和向群体学习的能力,在迭代早期,较大的C1和较小的C2可以让粒子拥有更好的全局搜索能力,在迭代的后期,较小的C1和较大的C2让粒子拥有较差的自我学习能力和较强的种群学习能力,能促进算法的收敛,因此本文学习因子设置为如下形式:

(6)

式中C1s,C1e与C2s,C2e分别为第1个学习因子与第2个学习因子的起始值与结束值。

在更新粒子速度与位置后,为避免粒子群算法迭代过程中多样性损失而陷入局部最优解的情况,引入遗传算法的选择、交叉和变异机制,首先对粒子进行选择操作,传统的遗传算法大多采用轮盘赌博的形式,但在迭代初始化阶段,粒子初始值的随机性比较大,若采用轮盘赌博的形式易陷入局部最优,丧失种群的多样性[11~18],本文对选择算子做出了改进,首先对种群进行4等分,适应度好的前3/4完全保留进入下次迭代,后1/4用最好的个体进行完全复制,以提高算法的精度和效率。

同时,考虑传统的固定交叉概率,在进化前期种群因为随机取值造成个体差异性较大,此时进行交叉操作并不能保留优良性状,到了进化后期,种群间差异性较小,选择较大的交叉概率更有利于跳出局部最优,因此,本文引入改进的交叉机制,当相似度小于r时进行交叉操作,相似度大于r时不进行交叉操作,改进的自适应交叉临界值为:

(7)

结合遗传算法的变异操作,传统的遗传算法变异具有一定的盲目性,可能将优良性状变异为较差的性状,本文参考蜂群进化思想,设计了新型的变异概率算子,若变异后性状比父系性状差,则保留原始基因,从而能将优良性状更好的遗传到下一代,其自适应变异概率公式为:

(8)

式中:Pm为当前变异概率;Pmax,Pmin为最大与最小变异概率;f,favg为当前与父系适应度函数值。

具体改进算法的计算步骤如下:

Step 1:粒子群初始化,包括粒子速度与位置初始化及个体最优与全局最优的初始化。

Step 2:计算自适应的惯性权重系数ω,学习因子C1,C2。

Step 3:按公式更新粒子速度与位置,并对越限粒子做边界化处理。

Step 4:选择:保留适应度好的前3/4,后1/4用最好的个体进行完全复制。

Step 5:交叉:采用改进的自适应交叉临界值对粒子进行交叉操作。

Step 6:变异:采用变异概率算子进行变异操作。

Step 7:更新个体最优值与全局最优值。

Step 8:判断是否达到最大迭代次数,如果是则转Step 9,否则转Step 2。

Step 9:输出全局最优解。

4 仿真与实验

4.1 仿真实验

本文采用自适应粒子群算法针对式(1)的单自由度柔性关节模型进行了参数辨识,定义适应度函数为:

(9)

实验中分别用PSO算法、GA算法、ABC算法对柔性关节参数进行辨识,并与APSO-GA算法进行比较,为获得精确数据,其中每种算法的粒子群数目n选为60,每种算法分别进行100次迭代。

初始化参数:学习因子取为C1s=2.5,C1e=0.5,C2s=0.5,C2e=2.5;自适应惯性权重系数为ωs=0.9,ωe=0.4;变异概率最大为pmax=0.2,最小为pmin=0.001,ABC、GA、PSO、APSO-GA等4种算法的其它参数设置相同,结果如图2至图7所示。

图2 参数Dq辨识结果Fig.2 Identification results of parameter Dq

图3 参数I辨识结果Fig.3 Identification results of parameter I

图4 参数Dθ辨识结果Fig.4 Identification results of parameter Dθ

图5 参数J辨识结果Fig.5 Identification results of parameter J

图6 参数Gq辨识结果Fig.6 Identification results of parameter Gq

图7 参数K辨识结果Fig.7 Identification results of parameter K

从图2至图7可以看出,相比ABC、GA、PSO算法,APSO-GA不仅在前期拥有更好的辨识速度,同时后期的辨识精度也要高于其他算法,在第70次迭代时APSO-GA已经收敛到实际值左右,而且相比其它3种算法,APSO-GA的最终辨识结果与实际最为接近,同时避免了陷入局部最优解。因此,用APSO-GA算法辨识柔性关节机器人动力学参数的效果要明显优于ABC、GA与PSO,为了进一步说明本文算法的优越性,表1~表2分别给出了4种算法对各参数的辨识结果与相对误差。

从表1、表2中可以看出与ABC、GA、PSO相比,APSO-GA算法拥有更高的辨识精度,其整体性能要优于其它3种算法,对于多峰值辨识问题,APSO-GA可以找到理论最优值而不会陷入局部最优解,算法稳定性更好,精度更高。

表1 不同算法参数辨识结果Tab.1 Different algorithms parameter identification results

表2 不同算法参数辨识相对误差Tab.2 Relative errors in parameter identification of different algorithms

4.2 实验验证

为了进一步验证APSO-GA算法的优越性,本文利用加拿大Quanser公司的旋转柔性关节实验平台进行了参数辨识实验,实验装置由伺服驱动平台、基座与输出连杆3部分组成,如图8所示。

图8 旋转柔性关节实验平台Fig.8 Rotating flexible joint experimental platform

设备基座由直流伺服电机驱动,与水平面平行,输出连杆通过两个弹性元件与基座固定连接,从而产生关节柔性,负载侧与电机侧均安装有光电编码器,通过采集编码器信息实时读取相关位置与速度信息,由于连杆只做水平旋转运动,故辨识模型不包含重力项,同时考虑到负载侧粘滞阻尼趋近于零,其受噪声影响严重,故本实验只针对I、J、Dθ、K等4个参数进行辨识。

实际测量时,噪声干扰和动力学建模误差会影响动力学模型参数得辨识结果,因此,本文使用基频为0.05 Hz的周期性傅里叶级数作为关节的激励轨迹,为实现关节轨迹的控制要求,采用PD控制方式,同时为了避免由于积分作用造成的噪声累计,总的测量时间限制为8 s。

通过Q-PID运动采集卡采集系统辨识所需的电机侧与连杆侧传感器信号,采样周期为2 ms。关节力矩是通过读取关节电机电压数据并计算得出的,其关系如下:

(10)

式中:ηg为变速箱效率;Kg为总传动比;ηm为电机效率;Kt为电机转矩常数;Vm为输入电压;Km为电动机反电动势常数;Rm为电机电枢常数。运用ABC、GA、PSO、APSO-GA等4种算法分别对同一组实验数据进行辨识,结果如图9至图12所示。

图9 参数I辨识曲线Fig.9 Identification results of parameter I

图10 参数Dθ辨识曲线Fig.10 Identification results of parameter Dθ

图11 参数J辨识曲线Fig.11 Identification results of parameter J

图12 参数K辨识曲线Fig.12 Identification results of parameter K

从图9至图12可以看出,APSO-GA在40次迭代的时候已经收敛到实际值附近,而且相比其它3种算法,APSO-GA拥有更好的辨识精度,并且避免了陷入局部最优解,为了进一步验证各算法的辨识精度,表3至表4给出了各算法的辨识结果与相对误差。

表3 不同算法参数辨识结果Tab.3 Different algorithms parameter identification results

由辨识结果可以看出,相对于仿真结果,由于实验中噪声等因素影响,参数辨识精度要略低于仿真结果,但在同等条件下,相比于ABC、GA、PSO 3种算法,APSO-GA拥有更高的辨识精度。采用APSO-GA算法,辨识曲线能够快速收敛到稳定值,辨识结果更接近模型给定参数。由表4可以看出,针对柔性关节动力学模型参数辨识问题,APSO-GA收敛结果与误差均优于其它3种算法,进一步说明了APSO-GA算法具有收敛精度高的优点。

表4 不同算法参数辨识相对误差Tab.4 Relative errors in parameter identification of different algorithms

5 结 论

针对柔性关节机器人动力学参数辨识问题,将粒子群算法与遗传算法融合,并在其基础上引入动态调整策略,设计了一种自适应混合算法,并利用MATLAB进行仿真实验,验证了APSO-GA算法应用于柔性关节模型参数辨识的有效性。为了进一步说明算法的可行性,利用旋转柔性关节实验平台进行了实验验证,结果表明,APSO-GA算法在收敛速度和辨识精度上均有优势,将APSO-GA算法用于柔性关节动力学参数辨识能够进一步提高模型的准确性。

猜你喜欢
遗传算法柔性动力学
一种柔性抛光打磨头设计
《空气动力学学报》征稿简则
具有Markov切换的非线性随机SIQS传染病模型的动力学行为
灌注式半柔性路面研究进展(1)——半柔性混合料组成设计
高校学生管理工作中柔性管理模式应用探索
一种基于遗传算法的聚类分析方法在DNA序列比较中的应用
软件发布规划的遗传算法实现与解释
基于改进的遗传算法的模糊聚类算法
基于随机-动力学模型的非均匀推移质扩散
基于改进多岛遗传算法的动力总成悬置系统优化设计