基于粒子群算法优化的机械手控制仿真研究
2024-01-16孙素军张文磊
孙素军,张文磊
(1.滁州职业技术学院 电气工程学院,安徽 滁州 239000;2.滁州职业技术学院 智能制造学院,安徽 滁州 239000)
由于科技的发展,人们的生活水平得到了普遍的提高,现有的人力成本也在不断攀升,这使得替代人力的机械手产品得到了迅猛发展。机械手涉及机械制造、传感器、自动控制和计算机技术等多学科领域[1-2]。机械手能够根据编程程序自动完成人类设置好动作目标,即使在恶劣或者危险的环境中也能正常工作。但是,机械手的发展也面临着很多困难、控制精度要求越来越高、响应速度要求越来越快等。这使得过去生产的机械手无法满足复杂、多变、高精度的生产任务。为了提高机械手在市场中的竞争力,必须对机械手控制系统展开深入研究。
当前,许多科研人员为了改变机械手控制系统的落后局面,从不同角度对机械手控制方法进行了实验。例如:文献[3-4]研究了机械手姿态PID控制理论,分析了主控制器任务流程,给出了PID控制规律的离散表达形式,通过具体实例建立PID控制的Simulink仿真框图,对机械手抓取物体跟踪精度进行仿真,从而完成了机械手抓取物体的控制系统程序设计;文献[5-6]研究了机械手运动轨迹滑模控制仿真方法,定义了机械手位姿坐标示意图,根据拉格朗日定理简化机械手动力学方程式,设计了机械手运动关节滑模控制器,利用李雅普诺夫函数推导机械手滑模控制器的稳定性和收敛性,通过仿真证明机械手滑模控制器的优越性;文献研究了机械手模糊反演控制理论,描述了机械手非线性二阶微分方程式,提出了机械手运动误差自适应模糊反演控制律,采用李雅普诺夫函数证明控制误差的收敛性,通过仿真检验连杆运动轨迹跟踪误差,提高了控制系统输出精度。虽然过去研究机械手定位精度得到了提高,但是,随着高精度科技产品的发展,人们对机械手定位精度要求也随之提高,这就迫使人们对机械手控制系统展开更深入的研究。对此,本文建立n连杆机械手非线性微分方程式,分析了机械手动力学特性,设计了机械手滑模控制系统,采用粒子群算法优化滑模控制器,以两自由度机械手为例,利用MATLAB对机械手角位移进行仿真实验,对比和分析外界扰动环境中误差变化,从而得到优化后控制系统的优越性。
1 机械手动力学
n连杆机械手的动力学可以用1个二阶非线性微分方程[8-9]来描述,如下所示
M(q)q″+C(q,q′)q′+G(q)+τd=u
(1)
(1)式中:q、q′、q″分别为链接位置、速度和加速度向量;u∈Rn为连杆扭矩的矢量,M(q)∈Rn×n为对称正定惯性矩阵,C(q,q′)∈Rn×n为向心矩阵,G(q)∈Rn为重力矢量,τd∈Rn为广义输入扰动的向量。
机械手的动力学特性如下:
特性① 对于某些正常数φ1和φ2,满足
φ1In≤M(q)≤φ2In
(2)
特性② 公式(3)为一个斜对称矩阵,
M′(q)-2C(q,q′)q′
(3)
特性③ 重力矢量G(q)满足下列关系:
‖G(q)‖≤gmax
(4)
特性④ 科里奥利和离心扭矩矢量C(q,q′)满足下列关系
‖C(q,q′)‖≤ξc‖q‖
(5)
(5)式中,ξc为1个正常数。
2 控制器优化设计
2.1 滑模控制器
滑模控制器是从变结构理论中衍生出来的一种技术。这种控制技术具有管理非线性和时变系统的能力。在非线性滑模控制器设计中,滑动面s(t)的表达式[10]定义为
s(t)=e′(t)+λe(t)
(6)
式中:s(t)为n×1向量,λ为对角正定常数矩阵;e(t)=q(t)-qd(t)为跟踪位置误差,qd(t)为理想的位置轨迹。
设计滑模控制器可以使状态向量e(t)在所有t≥0的滑动面(s(t)=0)上保持不变。在极限状态下,limt→∞e(t)=0, 使误差渐近收敛到零。滑动面的导数由以下等式给出
s′(t)=e″(t)+λe′(t)
(7)
由公式(1)和(7)可以得到
(8)
为了达到预期的性能,s′(t)=0决定了等效控制力ueq(t), 设计为
(9)
然而,在发生由参数变化或外部负载干扰引起的不可预测干扰时,等效控制力无法确保良好的控制性能。因此,增加新的控制力,以消除不可预测干扰的影响。新的控制力定义为ud(t):
ud(t)=-Ksign(s(t))
(10)
式中:K=diag{k1,k2,…,kn}为控制增益;sign(·)为符号函数。
为保证稳定性和收敛性,非线性不确定系统的滑模控制定律可以表示为
(11)
2.2 粒子群算法
粒子群算法基于动物的行为,通过调整它们的位置和速度以适应它们的群体信息。在该算法中,种群被称为群,其每个元素被称为粒子。该进化算法通过迭代尝试改进不同参数值的解,用于优化连续或离散、线性或非线性、约束或无约束、不可微函数。
“种群”的初始化是通过一群随机解完成的。对于N维空间,每个粒子(假设第k粒子)的位置坐标和相应的速度分别表示为xk=(xk1,xk2,…,xkN)和vk=(vk1,vk2,…,vkN)。在粒子群算法中,其粒子的速度和位置[11-12]更新为
vk(i)=w·vk(i-1)+r1φ1·(pbestk-xk(i-1))+r2φ2·(gbest-xk(i-1))
(12)
xk(i)=xk(i-1)+vk(i)
(13)
(12)式中:w为惯性权重,r1和r2为介于0和1之间的随机数;φ1和φ2分别为控制粒子认知行为和社交能力的加速度常数,pbestk为粒子个人最佳位置,gbest为粒子全局最佳位置。
采用粒子群算法迭代搜索过程,如图1所示。
图1 粒子群算法迭代搜索过程
2.3 滑模控制器优化设计
对于等式(6)、(10)和(11)中描述的控制器,需要指定以下4个参数:λ1和λ2滑动面坡度和k1和k2控制增益。使用这些参数将链接位置收敛到所需位置。由于机械手系统的非线性和耦合效应,没有直接的方法来寻找这些参数。粒子群优化算法通过考虑所观察系统的性能和特征,并考虑待调整系统的所有响应、2个链路的期望动态性能、最小响应时间和建立静态误差为零等,实现最优控制。
通过测定k1、k2、λ1和λ2定义了最优滑模控制器设计问题。将问题编码为粒子群算法中的种群。所有需要优化的控制器参数都为该问题提供了可能的解决方案。向最优滑模控制器参数的收敛遵循适应度函数。因此,在执行粒子群算法之前,必须正确定义基于误差的函数。基于平方误差的适应度函数由以下等式给出
(14)
式(14)中:e(i)为第i个样本的轨迹误差,N为样本数。
采用粒子群算法优化滑模控制流程,如图2所示。
图2 机械手控制优化流程
3 误差仿真
为了验证机械手滑模控制器优化后的跟踪误差输出效果,采用两自由度机械手,n=2,K=diag{k1,k2}进行测试,如图3所示。
图3 两自由度机械手
利用MATLAB对机械手连杆的角位移和角速度跟踪误差进行仿真,根据仿真结果分析优化前和优化后的跟踪误差。仿真参数设置见表1。
表1 机械手控制仿真参数
假设机械手连杆角位移为q1=q2=2sin(πt/2),在无外界扰动环境中,连杆1和连杆2角位移跟踪误差分别如图4和图5所示。在有外界扰动环境中(τd=2cos(2πt)),连杆1和连杆2角位移跟踪误差分别如图6和图7所示。
图4 连杆1(无扰动)
图4和图5仿真结果显示,在无外界扰动环境中,机械手采用优化前和优化后的滑模控制器,其连杆实际输出角位移能够较好的收敛于期望角位移,机械手连杆输出误差较小。图6和图7仿真结果显示,在有外界扰动环境中,机械手采用滑模控制器,其连杆实际输出角位移与期望角位移偏离较大,机械手连杆输出误差较大。机械手采用粒子群算法优化滑模控制器,其连杆实际输出角位移仍然能够较好地收敛于期望角位移,机械手连杆输出误差较小。因此,在等同外界环境中,采用粒子群算法优化滑模控制器,机械手控制系统反应速度较快,能够根据在线反馈信号进行优化和调节,更适合高精度机械手控制系统。
4 结 论
针对两自由度机械手连杆角位移输出误差较大问题,设计其滑模控制系统,引用粒子群算法优化滑模控制器,通过连杆角位移输出误差进行仿真验证,主要结论如下:
(1)机械手采用滑模控制器,在有扰动的外界环境中,其连杆角位移与期望角位移偏离较大。面对突发波形的干扰,反应速度较慢,自适应调节能力较弱,导致机械手连杆跟踪误差较大。
(2)机械手采用粒子群算法优化后的滑模控制器,在有扰动的外界环境中,其连杆角位移与期望角位移偏离较小。面对突发波形的干扰,反应速度较快,自适应调节能力较强,能够提高机械手连杆角位移跟踪精度。
(3)基于机械手连杆滑模控制器优化研究,提高了机械手控制系统抗干扰能力,但没有考虑机械手连杆末端抓取力的大小。今后可以对机械手抓取力展开进一步研究。