李盛前,张小帆
(1.广东机电职业技术学院电气技术学院,广东广州 510550;2.广东技术师范大学汽车与交通工程学院,广东广州 510665)
机器人是一种具有不确定、强耦合、多时变、高度非线性的复杂系统,在实际应用中,机器人本身的这些特性使得很难建立其精确的数学模型。因此将传统PID方法直接用于机器人的自动跟踪运动工作,难以满足控制性能要求。而针对类似于机器人的系统控制,有很多控制方法,如自抗扰控制、滑模变结构控制、专家控制、神经网络以及各种复合方法等,其中自抗扰控制器近年来在机器人跟踪控制技术领域受到研究者青睐。自抗扰控制主要继承了PID的控制优点及精髓,利用扩张状态观测器估计外部不确定干扰量并实时进行补偿,是一种不依赖被控对象精确数学模型的新兴实用控制技术。文献[1-2]采用自抗扰技术对机器人进行轨迹跟踪控制,有效解决外部扰动,提高焊接机器人运动性能。文献[3-4]基于自抗扰控制技术设计了六自由度并联机器人的轨迹跟踪器,在不考虑重力补偿时,跟踪效果性能较好。文献[5]针对难以精确建立移动机器人动力学模型、各种外部干扰等问题,构造一种快速终端滑模自抗扰控制器,实现高速高精度轨迹跟踪控制目标。文献[6]针对机器人,分别利用自抗扰和滑模变结构解决控制过程中产生的抖振问题。文献[7]基于自抗扰控制技术和模糊控制方法,结合水下机器人相关运动学及动力学方程,利用切换控制策略,取自抗扰和模糊控制各自的优点,联合建立了欠驱动AUV模糊自抗扰定深跟踪控制器。文献[8]建立基于干扰估计的机器人非线性反馈控制系统,在此基础上提出一种适用于机器人跟踪控制的新型自抗扰控制器,该控制器不需实时计算复杂的机器人动态模型,对测量噪声具有抑制作用。
自抗扰控制器具有“预测+补偿”的能力,提高机器人动态跟踪控制性能,但是自抗扰控制器设计过程比较复杂,包含参数较多,不同的参数取值,自抗扰控制器控制性能都会发生变化。同时,控制器参数取值因不同的控制对象模型而不同,以往的取值方法主要依靠经验试测。为了使自抗扰控制器控制性能达到最优,学者们对这些参数整定方法进行研究。目前常见的智能优化算法有粒子群优化算法、遗传算法、蚁群算法、免疫算法等。文献[9]利用改进鸽群优化算法对机器人自抗扰控制器参数进行整定优化,有效提高了可变形地面移动机器人的机动性能。文献[10]基于双种群鲨鱼优化算法优化自抗扰机械臂轨迹跟踪控制器参数,提供了控制的抗干扰能力。文献[11]设计了PMSM位置伺服系统的复合ADRC,利用神经网络对非线性控制率的参数进行在线整定,同时引入遗传算法对神经网络的重要参数进行优化。文献[12-14]对设计的ADRC,采用粒子群算法对其多参数整定进行优化,克服了经验试凑法整定的缺陷。
综述以上文献,粒子群算法在优化问题求解方面得到了较好应用,而在类似自抗扰控制器对多参数整定优化方面,存在优化过程收敛速度过慢且优化结果极易陷入局部极值的“早熟”现象。对此,引入具有免疫处理机制多样性的免疫算法,提出一种基于免疫粒子群融合算法的自抗扰控制器参数自整定方法,最后利用MATLAB验证优化整定算法的有效性。
自抗扰控制器(Active Disturbances Rejection Control,ADRC)是由我国著名学者韩京清研究员提出的一种新型非线性反馈控制方法[15],它作为一种采用“预测+补偿”模式的思想控制策略,融合了经典控制理论和现代控制理论的优点,可很好满足类似机器人这种高度非线性系统的控制性能要求。ADRC作为一种非线性控制器,主要由跟踪器(TD)、非线性状态误差反馈控制律(NLSEF)、扩张状态观测器(ESO)三部分组成。这三部分相互协调,完成了对被控对象的跟踪控制。典型的二阶ADRC结构如图1所示,其中双点划线部分即为ADRC。
图1 自抗扰控制器结构
由图1可以看出:ADRC首先利用TD处理输入信息,得到较高质量的微分跟踪信号,解决PID控制器快速性与超调性的矛盾;而ESO作为ADRC的核心组成部分,观测估计预测系统状态变化、外部扰动等可利用ESO实时预测并补偿;最后由NLSEF生成控制量输出控制被控对象,提高不确定性、非线性、时变系统控制的稳定性和鲁棒性。以下为这三部分数学模型分析:
(1)非线性跟踪微分器TD
非线性TD具备更高的效率,在噪声抑制方面比较有优势。非线性TD的数学模型为
(1)
式中:f=-h·sign(v1(k)-v0(k)+v2(k)·|v2(k)|/2r),其中sign()函数为符号函数。
由于上式在处理高频噪声信号时存在明显的抖振现象,根据文献[16]采用最速控制综合函数代替符号函数改善系统的高频抖振。最速控制综合函数fhan(v1,v2,v0,r,h1)的表达式为
(2)
因此,根据上述分析,非线性TD最终数学模型为
(3)
(2)扩张状态观测器ESO
(4)
式中:非线性函数fal(e(k),a,δ)表达式为
其中:fal(e(k),a,δ)的表达形式并不是固定的,根据情况,该函数可采用线性函数或非线性函数,它具有小误差采用大增益,而大误差采用小增益的特性。
(3)非线性反馈误差控制律(NLSEF)
ADRC普遍采用的NLSEF表达式为
(5)
式中:z3(k+1)/b为经过扩张非线性观测器对扰动估计结果。
综上分析,可相应得到ADRC的数学模型为
(6)
从上式可看出:ADRC含有多个参数,需要调整合理取值,各个参数取值的不同组合,整个系统的控制性能都存在差异。TD中的滤波因子h1影响系统的滤波效果;而速度因子r可以提高系统达到稳定的速度;ESO决定系统观测估计输出状态的能力,参数β1、β2、β3、β4、β5对系统状态的观测估计精度和速度都有影响;NLSEF是非线性微分跟踪器TD和扩张状态观测器ESO的非线性组合,其性能主要由fal(e(k),a,δ)函数中的参数决定,参数δ、a1、a2、a3、a4、a5改善系统性能,极大发挥系统的比例、积分作用。为了使ADRC控制性能达到最佳,需对这些参数进行组合优化整定。
2.1.1 粒子群算法
粒子群算法(Particle Swarm Optimization,PSO)是通过模拟鸟群觅食行为而发展起来的一种基于群体协作的随机搜索算法。粒子群算法通过设计一种无质量的粒子来模拟鸟群中的鸟,所有的粒子都有一个由被优化的函数决定的适应度,每个粒子还具有两个属性:速度和位置,速度代表移动的快慢,位置代表移动的方向。每个粒子在搜索空间中单独搜寻最优解,将其记为当前个体极值,并将个体极值与整个粒子群里的其他粒子共享,找到最优的那个个体极值作为整个粒子群的当前全局最优解,粒子群中的所有粒子根据自己找到的当前个体极值和整个粒子群共享的当前全局最优解来调整自己的速度和位置,继续在解空间中不断搜索直至满足终止条件而得到最优解。根据其优化原理可知算法流程如下:
第1步,在初始化范围内,对粒子群进行随机初始化,包括随机位置和速度。
第2步,计算每个粒子的适应值。
第3步,更新粒子个体的历史最优位置。
第4步,更新粒子群体的历史最优位置。
第5步,更新粒子的速度和位置。
第6步,若未达到终止条件,则转第2步。
其流程如图2所示。
图2 粒子群算法流程
2.1.2 免疫粒子群算法
生物免疫系统(Biology Immune System,BIS)是由许多分布式的具有一定功能的个体(T细胞、B细胞、抗体等)通过相互作用、学习、自我调整和具有自动调节平衡的复杂大系统。人工免疫系统是模拟、借鉴生物免疫系统机制和免疫理论学而发展起来的各种人工处理技术、计算方法等的统称。它根据生物免疫系统自我调节、学习、自适应平衡等机制,构造出相应的信息处理算法。学者为了解决工程上的实际问题,受到生物免疫系统机制的启发,从中演变出一些类似模型算法。一般免疫算法(IA)流程如图3所示。
图3 免疫算法流程
因此,借鉴免疫系统的多样性、自我调节能力以及训练记忆等免疫处理机制,使得免疫算法过程避免陷入局部最优,同时加快了系统最优解的搜索速率。
根据以上分析知,粒子群算法和免疫算法各自都存在优缺点。为了扬长避短,融合两种算法生成免疫粒子群优化算法(Immune Particle Swarm Optimization,IPSO)。该算法在粒子群算法框架基础上引入免疫系统的免疫记忆库和浓度控制机制生成免疫粒子群算法,使得粒子群算法具备了免疫处理机制。免疫粒子群算法流程如图4所示。
图4 免疫粒子群算法流程
根据以上流程图,其算法步骤如下:
(1)抗原输入。把求解问题的目标函数和约束条件对应为免疫系统的抗原入侵;
(2)初始抗体生成。初始计算迭代,在问题解空间随机取一个解作为初始抗体;
(3)亲和力计算。分别计算问题解空间中抗原与抗体之间的亲和力度、抗体与抗体之前的亲和力度;
(4)记忆库更新。将与抗原亲和度高的抗体加入到记忆库中,同时去除原来记忆库与抗原亲和度最高的抗体;
(5)抗体促进与抑制产生。考虑抗原与抗体之间的亲和力度,高亲和力促进,反之亦然;同时也考虑抗体浓度,浓度越高,则越受抑制,反之亦然。这一步保持了抗体的多样性;
(6)新抗体产生。筛选粒子群父代抗体中高的适应度,产生新一代抗体;
(7)重复步骤(3)—(6),直到满足终止条件;
(8)满足终止条件,退出计算,输入问题最优解。
根据上节推导的ADRC数学模型,可以看出ADRC参数变量较多,有h、r、h0、β1、β2、β3、β4、β5、b、δ、a1、a2、a3、a4、a5等,需要对各组成参数进行整定。由于目前还没有一种完全适用所有情况的整定方法,并且鉴于各参数对控制器性能的影响作用不同,这里没必要整定全部参数,根据自抗扰控制器各模块参数可以相互独立整定的特点,可取h、r、h0、b、δ、a1、a2、a3、a4、a5为固定值,而扩展状态观测器ESO为自抗扰控制器的核心部分,其观测和补偿直接影响整个系统的控制性能,而β1、β2、β3、β4、β5参数决定观测和补偿效果。因此,文中只对自抗扰控制器中的β1、β2、β3、β4、β5五个参数进行优化整定,其参数优化整定过程如图5所示。
图5 基于免疫粒子群的自抗扰控制器参数整定框图
根据上节研究的免疫粒子群融合优化算法可以对多个参数变量目标函数进行参数寻优。融合免疫粒子群算法过程中,选择算子根据计算适应度函数值大小选择抗体,适应度函数代表着抗体的优劣程度。于是,该优化算法的寻优过程即为适应度函数具有最大值的过程,因此,可利用其对ADRC中的β1、β2、β3、β4、β5五个参数进行优化整定,得到控制性能最优的ADRC。对自抗扰控制器中的β1、β2、β3、β4、β5五个参数整定过程的目标函数与适应度函数密切相关,即自抗扰控制器优化问题的评价目标函数对应为免疫粒子群算法的适应度函数。根据此系统要求跟踪控制过程响应速度快、超调量小、跟踪误差小的动态稳定性能,采用ITAE标准作为评价目标函数,利用输出误差绝对值与时间乘积并积分作为问题求解的最小目标函数。因此,文中整定问题的评价目标函数表达式为
式中:e(t)为系统输出误差;t为时间。由于自抗扰控制器优化问题的评价目标函数值越小越好,而免疫粒子群融合算法则要求抗体个体适应度函数值越大越好,因此,需要把评价目标函数的倒数作为文中优化算法的适应度函数。
根据以上分析,只整定对自抗扰控制器影响性能较大的参数β1、β2、β3、β4、β5,其余参数h、r、h0、b、δ、a1、a2、a3、a4、a5取预先固定值不变。为了验证文中算法的有效性,基于MATLAB 7.0/Simulink平台建立了机器人自抗扰控制器仿真模型,如图6所示。
图6 ADRC MATLAB/Simulink仿真模型
然后采用免疫粒子群融合算法和粒子群算法分别对自抗扰控制器参数优化整定。免疫粒子群融合算法优化过程的适应度变化情况如图7所示,各算法整定优化结果最终使得控制器收敛稳定输入,对应的整定优化后ADRC的控制性能曲线如图8所示。
图7 免疫粒子群融合算法适应度变化曲线
图8 各算法整定后自抗扰控制器性能对比
从适应度曲线和性能对比可看出:文中算法经过5次迭代后就已经收敛到全局最优值,说明了文中算法计算迭代次数少,收敛快,加快了搜索速度;同时,文中算法具有全局寻优,改善了PSO算法易陷入局部最小值的缺陷。对比IPSO和PSO整定参数后,IPSO整定后的ADRC控制跟踪过程超调量小,结果误差也较小,验证了文中算法的有效性。
机器人是一种具备不确定性、多时变性、强耦合性、高度非线性的系统,建立其精确的动力学模型非常困难。利用自抗扰技术为机器人设计了自抗扰跟踪控制器,但是自抗扰控制器多个参数需要进行整定优化。利用粒子群算法整定优化极易陷入局部最优,存在“早熟”的缺陷,以及优化整定过程过于繁杂而消耗时间过长,导致自抗扰控制器稳定性能大大降低。为了解决问题,提出一种基于免疫粒子群融合算法的机器人自抗扰控制器参数整定方法,结合了免疫算法和粒子群算法的各自优点,扬长避短,较快实现了自抗扰控制器参数整定的全局最优化。仿真结果表明:该方法具有全局寻优,改善粒子群算法易陷入局部最优的缺点,以及提高了最优值求解的速度,验证了该方法适用于机器人自抗扰控制器多参数整定。