基于和声-遗传算法的机械臂激励轨迹优化
2022-09-19刘金铭刘梅钟佩思梁中源张超王晓
刘金铭,刘梅,钟佩思,梁中源,张超,王晓
(山东科技大学机械电子工程学院,山东青岛 266590)
0 前言
为避免激发机械臂的高频特性、减少噪声干扰对参数辨识的不良影响,提高动力学参数的辨识精度,应选取合适的算法优化激励轨迹。优化后的激励轨迹必须满足关节角度、速度和加速度限制等约束条件,保持机械手运行的平稳性,这是一个单目标多约束问题。
GEE在2001年首次提出和声搜索算法,之后该算法被广泛应用于分布式发电系统的许多领域,如参数优化、全局数值优化和最优无线脉冲响应系统辨识等。NADI等提出了使用和声搜索的自适应参数控制方案,实现了勘探状态和开发状态之间的平衡过渡。HE等提出了和声-遗传算法,其中和声算法用来生成遗传算法的初始种群,使遗传算法在搜索能力上得到了提升。
HOLLAND于1975年首次提出遗传算法,遗传算法的性能优于其他元启发式算法,例如模拟退火和粒子群优化等,尤其是在大规模问题中。刘磊等人引进S形函数优化收敛因子,提出了改进的基于S形函数的灰狼算法,避免了算法的“早熟”。苏二虎结合惩罚函数和遗传算法的优点,虽然提高了算法的迭代速度,但导致算法容易“早熟”。杨从锐等通过种群平均适应与最大适应度的大小关系来判断种群的离散程度,进而调整种群的交叉和变异概率,加快了算法的收敛速度。闫春等人在前人基础上引入反正弦函数,计算种群平均适应度与最大适应度的比值,更好更快地反映了种群离散度的变化,并且引入了交叉和变异顺序的自适应机制,增强了算法的搜索能力和搜索速度,但未考虑个体适应度不佳时,交叉和变异概率的调整问题。
在上述研究的基础上,本文作者改进遗传算法的顺序自适应和概率自适应机制,结合和声算法的优点,提出改进的和声-遗传算法。为验证该算法的性能,使用和声-遗传算法得到SCARA型机械臂优化后的激励轨迹。
1 动力学建模及其线性化
1.1 SCARA型机械臂动力学建模
SCARA型机械臂的空间定位精度由连杆1、2、3共同决定,将连杆4视为连杆3的负载,如图1所示。因此,仅对前3个工作臂进行动力学建模。
图1 SCARA机器人D-H坐标系
因为关节1、2为旋转关节,关节3为移动关节,得到各关节的驱动力矩/力为
(1)
式中:
式中:c表示cos;s表示sin。
1.2 模型的线性化
将机械臂的动力学模型表示为其惯性参数与关节力矩的线形表达式:
(2)
式中:为×10的观测矩阵,为连杆数量;为待辨识惯性参数集,表达式为
=
[]
采用数学推导的方法,依次确定连杆3至连杆1的最小惯性参数和观测矩阵为
(3)
式中:
2+1
=+
=
2 激励轨迹及其优化目标
为减少噪声干扰对参数精度的影响,应在进行激励轨迹优化之前选择合适的激励轨迹模型,避免激发机器人的高频特性。
2.1 激励轨迹及其约束
傅里叶级数公式为
(4)
式中:为连杆编号;为正弦和余弦项的数目,=5;,和,为傅里叶级数的系数;=2π,为基角频率。
激励轨迹需要满足连续性、周期性和运行的平稳性,即在轨迹起始和停止的位置,关节的速度和加速度为0。满足上述要求的条件为
(5)
式中:和分别为轨迹起始和终止的时间。
2.2 优化目标
在进行动力学参数辨识的过程中,阶动力学参数辨识方程=由组观测数据组成的回归矩阵和关节驱动力矩矩阵组成。当和存在扰动δ和δ时,待辨识参数集的相对误差为
(6)
根据定义可知,回归矩阵的条件数为
(7)
将公式(7)代入公式(6)可将待辨识参数集的相对误差进一步表示为
(8)
3 和声-遗传算法
轨迹优化问题的关键是如何在满足约束的条件下,快速、准确地得到回归矩阵的最小条件数。传统的遗传算法在一定程度上实现了这一功能,然而在搜索效率和稳定性方面仍存在一些缺陷。
3.1 算法参数的初始化
算法的参数有和声记忆库的大小、音调调整率、随机选择率、和声搜索算法迭代次数、交叉概率、变异概率和遗传算法的迭代次数。基于经验,将和声记忆的大小设置为50。音调调整率和随机选择率将直接影响算法的运行效果,根据经验将音调调整率和随机选择率的数值均设定为0.3。
3.2 种群的初始化
采用和声算法选择初始种群个体,在确定了和声记忆库的大小之后,随机生成初始和声,并储存在和声记忆库HM中。以设定的随机选择概率生成新解,并以1-的概率在原搜索库中选择新解。根据音调调整率确定是否对新解进行局部扰动,新的解是否优于和声记忆库中的最差解。如果新的解比和声记忆库中的最差解更好,就将最差解替换为新解;反之,重复上述操作。
和声记忆库的初始化过程为
(9)
根据概率产生一个新的解决方案,公式如下:
(10)
式中:为随机选择概率;为和声库之外的变量可行域。
需要进一步检查每个选定的矢量,以确定它需要在哪里进行音调调整。
(11)
式中:为任意带宽;为音调调整概率。
3.3 编码方式
3.4 适应度函数与选择
因为()≥1,所以直接选择()作为适应度函数。为避免算法陷入局部最优,将排序法和轮盘赌法相结合,提出轮排选择法。每次计算适应度值后首先进行排序,从排名靠前的10个个体中随机选择2个个体保留下来;对剩余的个体进行轮盘赌选择,从而保证基因的多样性。
3.5 改进顺序自适应机制
传统的遗传算法,遵循选择、交叉和变异的顺序,但在种群相对集中的情况下,交叉的意义不大,种群依然有可能陷入局部最优解。因此,本文作者提出顺序自适应机制,通过判断种群的集散程度,确定交叉和变异的顺序。当种群较为集中时,先变异;当种群较为发散时,先交叉。
(12)
反正弦函数可以增大算法对种群离散度变化的敏感程度,通过调节离散度扩大系数可以进一步调整算法对种群离散度变化的敏感程度。如图2所示,可知取值越大,算法对种群离散度变化越敏感。
图2 种群离散敏感度曲线
3.6 交叉概率和变异概率的自适应机制
Sigmoid函数是最常用的神经元激活函数,它在线性和非线性之间表现出良好的平衡性,如图3所示。可知:当≤-6时,()接近于0;当≥6时,()接近于1。
图3 Sigmoid函数
(13)
本文作者提出了一种基于S形函数的概率自适应调整机制,如公式(14)(15)所示,使得交叉和变异概率可以根据每一个个体的适应度自适应地进行调整。如果某个个体的适应度大于或等于种群的平均适应度,在交叉或变异概率的最小值的基础上对其进行自适应调整;反之,则采用最大的交叉或变异概率。改进自适应遗传算法流程如图4所示。
图4 改进自适应遗传算法流程
(14)
(15)
式中:、分别为交叉概率的上限和下限;、分别为变异概率的上限和下限;′为当前种群中个体的适应度。
4 激励轨迹优化实验
SCARA机器人各关节角度、角速度和角加速度的限制范围如表1、表2所示。
表1 关节1、2运动限制范围
表2 关节3运动限制范围
在简化后的SCARA机器人中,连杆1、2的转动和连杆3的移动是解耦的。因此,分别求取关节1、2和关节3的激励轨迹。
根据公式(3)可知,前3个关节的回归矩阵。关节1、2的激励轨迹为傅里叶级数,5阶共有22个待优化参数。设置基频=0.2π,迭代次数为400代,种群大小为60,交叉概率上下限、分别为0.9和0.1,变异概率上下限、同上。分别使用所提出的和声-遗传算法与文献[14]和文献[15]中提出的自适应遗传算法求解,结果如表3所示,进而可得到前2个关节和关节3的观测矩阵条件数分别为1.003 9和1.000 0。
表3 最优化傅里叶级数系数
3种算法的迭代结果对比如图5所示。可知:文中提出的和声-遗传算法收敛速度明显优于文献[14]、文献[15]中的自适应遗传算法。
图5 回归矩阵迭代情况
关节1、关节2和关节3的角度、角速度和角加速度变化分别如图6和图7所示。可知:优化后的轨迹满足公式(5)中的约束,可以保证机器人运行的平稳性。
图6 关节1、2的激励曲线
图7 关节3激励轨迹
关节3激励轨迹对应的观测矩阵条件数为1,为最优轨迹。这是因为关节1、2和关节3是解耦的,优化关节3的激励轨迹等同于求解单关节的激励轨迹。
5 结论
(1)利用牛顿-欧拉法得到SCARA型机械手的动力学模型,并使用数学推导的方法对模型进行线性化和参数分离,得到了SCARA型机械手前3个关节的观测矩阵和待辨识的最小参数集。选择5阶傅里叶级数作为激励轨迹,确定了优化约束和目标。
(2)使用和声搜索算法生成遗传算法的初始种群,使用反正弦函数判断种群分布的程度,改进了顺序自适应机制,提高了算法的收敛速度。根据种群平均适应度、最大个体适应度和个体适应度′,非线性调整交叉概率和变异概率;改进了概率自适应机制,考虑了个体适应度在每一代中的影响。
结果表明:与文献[14]、文献[15]中的自适应遗传算法相比,和声-遗传算法具有显著的优越性。