洪 鹰,徐世超,肖聚亮,王国栋,张智涛,刘宏业,段文斌,滕宗烨
(1. 天津大学机构理论与装备设计教育部重点实验室,天津 300350;2. 天津扬天科技有限公司,天津 300073)
随着工业的发展,人们对协作机器人的要求进一步提高,要求机器人的伺服控制系统有很高的轨迹跟踪精度、无超调的定位过程和更快的响应速度.目前,在机器人领域应用最多的还是经典 PID反馈控制系统,而通过调整控制器的增益来提高系统的跟踪精度和响应速度是最简单最容易实现的方法[1].基于此,Chang等[2]提出一种交流伺服系统的非线性自适应反逐步控制方案,给出了控制器增益的选择准则;Ji等[3]将有源控制器参数作为机械手姿态和负载的函数进行切换来调整 PID控制器增益.二者都是利用动态调整增益的方法来改善控制性能,从而使得伺服系统在电机高转速时具有较好的跟踪特性,在电机低转速时具有较小的稳态误差.但调整控制系统开环增益,是在牺牲一种特性的情况下提升另一种特性,无法兼顾系统的跟踪精度和系统的稳态误差与动态品质.
为了解决一般反馈控制系统在提高控制精度与确保系统稳定性之间存在的矛盾,提升伺服控制系统的综合性能,针对机器人控制系统,一些学者提出了前馈控制加反馈控制的复合控制方法.孙玉阳等[4]利用遗传算法对机器人动力学参数进行离线辨识,将优化后的动力学模型作为前馈函数,一定程度上提升了前馈力矩的准确度,但该技术没有考虑关节中传动机构的弹性作用,在实际应用中容易引发机械谐振、速度控制不精确,而且离线辨识方法不具有通用性,对于不同结构的机器人,惯性参数的组合方式就不相同,缺乏普适性.Wang等[5]提出了一种利用BP(back propagation)神经网络算法代替动力学模型的力矩前馈控制方法,避免了由于动力学模型建立不准确而带来的精度下降的问题,同时也省去了复杂的动力学参数辨识环节,实验证明该方法能够提升机器人的轨迹跟踪精度.但 BP神经网络算法有其自身的缺点,例如学习速度慢、容易陷入局部极小值等,从而在一定程度上降低了该种方法的可操作性.Zeeshan等[6]和Rene等[7]提出将动力学模型与学习算法相结合来对前馈函数进行优化的方法,既降低了建立机器人逆动力学模型的难度,又简化了训练学习算法的复杂过程,同时提升了前馈模型的准确度.但这种优化方法依然是离线优化,不能将机器人实际运行过程中的惯量变化实时反映到前馈模型中,一定程度上会影响前馈惯性力矩的准确性.
本文提出了一种新型的可应用于轻型模块化协作机器人的前馈控制技术,该技术充分考虑机器人关节的传动机构中由于存在齿轮、皮带、谐波减速器等部件而引发的柔性问题,将关节电机与电机的负载拆分成两个刚体,构造两刚体弹簧系统并建立数学模型.另外,由于机器人在运行过程中,各关节电机的负载转动惯量是不停变化的,该技术引入在线辨识算法,辨识各关节电机的负载转动惯量,实时修正前馈通道上动力学模型中的惯性参数,得到更精确的前馈力矩,使伺服系统保持优秀的跟踪性能.为了验证该技术的有效性,本文基于实验室研制的一种轻型模块化机器人对惯量前馈控制进行了仿真.结果表明,该技术能够显著提升机器人伺服控制系统的动态特性和轨迹跟踪精度.
惯量前馈控制技术是在传统的机器人驱动器的三闭环控制结构的基础上增加一个前馈模块,这个前馈模块本质上属于力矩前馈,但和一般的力矩前馈有所区别.普通的力矩前馈模块中的动力学模型只需 3个输入:位移、速度、加速度,便可得到前馈力矩输出,模型中的惯性矩阵中的惯性参数多由SolidWorks、UG等三维软件测量而来,或者通过动力学参数离线辨识而来[8].而本文提出的基于机器人动力学模型的力矩前馈需要 4个输入:位移、速度、加速度和惯量矩阵,惯量矩阵中对角线上元素由在线辨识的惯量值转化而来.
图1是本文提出的惯量前馈控制结构示意图.首先,根据作业要求规划机器人的笛卡尔空间轨迹,控制器求解机器人的逆运动学模型,计算出机器人关节角位移q、角速度角加速度等.以第i关节为例,控制器一方面将该关节角位移信号qi和角速度信号˙qi经减速比R转换为关节电机的位移指令信号和速度指令信号,输入到驱动器中,速度指令信号作为前馈速度信号qω与位置控制器的输出ω进行叠加作为速度环的输入,再经速度控制器、电流控制器的调控作用,得到电机的输入电流im,im与电机转矩常数K相乘,得到电机电磁力矩Te.被控系统包括电机、负载、电机与负载之间的传动机构,将被控系统等效为两刚体弹簧系统,系统的输入为电磁力矩Te,输出为电机转速mω与负载转速Lω,在机器人运行过程中,采集Te与mω信号,作为在线辨识单元的输入,输出第i关节电机负载的等效转动惯量辨识值与该关节电机转动惯量Jmi相加得到关节i的总的等效转动惯量惯量转换单元的输入为各关节总的等效转动惯量,利用等效转动惯量与实际转动惯量以及转动惯量与惯性矩阵的关系,输出惯量矩阵作为逆动力学模型的一个输入,替换模型中的惯性矩阵;另一方面,控制器将根据规划轨迹计算出的各关节角位移q、角速度角加速度˙输入到动力学模型当中,计算出机器人在运动过程中各关节所需驱动力矩τ.然后根据力矩与电流的关系,将计算出的前馈力矩转换为前馈电流iq,叠加到驱动器电流环的输入端,完成串联机器人的惯量前馈控制.
图1 惯量前馈控制结构示意Fig.1 Structural diagram of inertia feedforward control
实验用协作机器人模型如图2所示.
由于机器人在运行过程中,前3个关节的力矩变化较后3个关节更为明显,所以取前3个关节为代表对机器人动力学模型进行验证,分别给定前3个关节的角位移与时间的关系,即
图2 机器人三维模型Fig.2 Robot 3D model
利用拉格朗日动力学公式[9]对图 2中的轻型模块化串联机器人进行动力学建模,即
式中q1、q2、q3分别为关节1、2、3的角位移,rad.
后3个关节转速设为0,机器人从初始零位开始运动,利用 Matlab和 Adams联合仿真验证.图3(a)、(b)、(c)分别为前 3个关节力矩的验证曲线,图3(d)为前3关节力矩的误差曲线.
由图3的验证结果可以看出:关节1力矩的误差峰值为0.945 N· m,相对误差为1.46%;关节 2力矩的误差峰值为3.005 N· m,相对误差为0.17%;关节 3力矩的误差峰值为1.044 N· m,相对误差为1.9%.从Matlab软件中编写的 Lagrangian动力学方程计算出的关节力矩与在 Adams中测量的关节力矩基本一致,验证了所建立动力学模型的正确性.
图3 动力学模型仿真验证Fig.3 Verification of dynamic model in simulation
工业机器人的发展趋势是使用具有弹性的轻型机器人结构,这种弹性主要来源于齿轮、轴承、弹性地基以及连杆的弯曲与扭转[10-12].本实验室研制的协作机器人各个关节采用中空模块化设计[13-14],关节内采用电机加谐波减速器的组合,电机与减速器之间采用带轮传动,中空的设计减轻了各关节模块的质量,采用谐波减速器能够获得较大的关节输出力矩,采用带轮传动能够使电机轴线偏离减速器轴线,使关节内部结构更加紧凑,如图4所示.
图4 模块化关节内部结构Fig.4 Internal structure of modular joint
这些结构特性会使电机与连杆之间出现弹性作用,因此,将被控系统等效为两刚体弹簧系统,其中,电机转轴与负载分别等效为刚体,具有弹性作用的中间传动机构等效为扭转弹簧,如图5所示.
图5 两刚体弹簧系统结构示意Fig.5 Structural diagram of two rigid body spring system
图 5中,伺服驱动器控制电机运行,提供电磁转矩Te,Te与传动轴系扭转力矩Ts共同作用于转动惯量为Jm、阻尼系数为Cm的电机转轴,对其角速度mω产生影响.Ts与负载转矩TL共同作用于等效转动惯量为JL、阻尼系数为CL的执行机构,最终决定执行机构的转速Lω.其中,Ks与Cs分别为等效弹簧的扭转刚度和阻尼系数.
根据上述理论分析,可推出驱动端与负载端的Laplace形式的关系式[15]为
式中:s为Laplace算子;mθ为电机输出轴角位移;Lθ为连杆角位移,由于系统中摩擦阻尼对系统影响较小,忽略不计[15],得到电磁转矩到电机输出轴角速度的传递函数
传递函数中含有电机负载的等效转动惯量JL,电磁转矩Te与电机输出轴角速度mω能够直接被测出或者通过测量量转换得到,所以,式(4)将作为负载转动惯量在线辨识的基础.
机器人在运行过程中,随着位置和姿态的改变,各关节电机的负载转动惯量也在不停变化,转动惯量的辨识是否及时,辨识结果是否准确,会直接影响到前馈力矩的输出,进而决定整个惯量前馈控制技术的控制效果.最小二乘辨识算法具有原理简单,易于实现,算法跟踪时变参数能力强,辨识结果具有无偏性和一致性等特点[16],同时,为了降低旧的观测数据对由新观测数据辨识出的结果产生影响,本文采用经过改进的带有遗忘因子的最小二乘辨识算法对各关节电机的负载转动惯量进行在线辨识.辨识算法原理如图6所示.
以某一关节为例,为实现对转动惯量的在线辨识,将被控系统的传递函数式(4)转化为差分方程
其中,待辨识参数
式中:ωm(k)为k时刻电机输出轴角速度采样数据;Te(k- 1)为k-1时刻电磁力矩采样数据;,为两刚体弹簧系统的谐振频率;T为采样周期.
将式(5)转化为最小二乘标准式:
图6 辨识算法原理图Fig.6 Schematic diagram of identification algorithm
其中
式中θ=[a,b,c]T,为待辨识参数列向量.
经推导,第i关节负载转动惯量JLi与θ向量中各元素的关系为
将辨识出的θ向量中各元素值代入式(10)中,即可得到此刻该关节电机负载等效转动惯量的估计值.
将第k-1次辨识出的θ向量代入式(7)中,得到y( k)的估计值为
则第k次辨识的先验误差为
引入增益向量K(k)和协方差矩阵P(k),则带有遗忘因子的最小二乘辨识算法的标准表达式[17]为
式中λ( 0 <λ≤ 1)为遗忘因子.普通遗忘因子最小二乘法中λ为常数,λ较大时,辨识算法对输入的波动不敏感,辨识结果比较稳定,收敛时辨识误差也较小,但对时变参数的跟踪能力较弱;λ较小时,算法对时变参数的跟踪能力较强,但辨识结果易波动,稳定误差较大.综合考虑,为了提升对负载转动惯量的辨识效果,需要根据辨识误差值实时改变遗忘因子λ的取值,本文采用常铁原等[18]提出的倒置双曲线正切函数的改进方式对遗忘因子λ的取值进行修正.
记λ(k+1)为第k+1次辨识的遗忘因子,
式中参数f、l、d、m均为常数,由试验确定.f和l控制λ(k+1)的取值范围,d和m控制双曲线正切函数收敛速度快慢并改善倒置后曲线顶部的形状.d较大、m较小时,辨识结果收敛速度快、跟踪能力强;d较小、m较大时,辨识结果的稳定性增强、稳态误差减小.
以第i个关节为例,事先给定一个足够小的误差节点E0,机器人开始动作时,辨识算法运行,对待辨识参数和协方差矩阵赋初值,控制系统在线采集电磁力矩信号和电机转速信号并将其输入到最小二乘标准式(7)中,初始遗忘因子设为 1,利用带有遗忘因子的最小二乘法对式(13)进行迭代运算,输出辨识结果和辨识惯量,定义误差E( k)为第k次各参数的辨识结果与第k-1次各参数辨识结果的差的绝对值之和.从式(6)可以看出,参数a的量级与“1”一致,参数b、c的量级与周期T一致,为了保证 3个参数的辨识误差对E( k)的贡献一致,定义的表达式为
当E(k)≤E0时,认为辨识结果稳定,电磁力矩信号和电机转速信号变化平稳,此时令下一时刻遗忘因子λ(k+ 1 )=1,保证辨识结果具有较强的稳定性和较小的稳态误差;当 E ( k)>E0时,认为辨识结果发生波动,辨识算法的输入信号变化明显,此时令,利用先验误差与遗忘因子的关系对λ的取值进行修正,加快辨识结果的收敛速度.
不断进行在线辨识算法的循环,即可获得实时的电机所带负载的转动惯量的辨识值
在快速响应的伺服系统中,相较于较高的采样频率,串联机器人各关节电机负载的等效转动惯量变化缓慢,在仿真验证中,改变传递函数式(4)中负载转动惯量JL的数值,使其按照的规律变化,取仿真的采样周期 T = 0 .1ms,取误差节点E0= 0 .0001,为了兼顾辨识结果具有较小的稳态误差和较强的跟踪能力,经过多次仿真实验,式(14)中取m= 150,d=20,f=0.2,l=0.75,通过惯量在线辨识得到相应的结果,如图7所示.
图7 在线辨识算法仿真验证Fig.7 Verification of online identification algorithm in simulation
从辨识结果可以看出,辨识算法刚启动时,辨识结果波动明显,辨识误差较大,属于过渡阶段.约0.1s后,辨识结果收敛理论值,辨识惯量紧紧跟随理论惯量变化,收敛后,最大的辨识误差为0.012 2 kg· m2,相对误差为0.0228%,辨识结果的均方根误差为 5 .56× 1 0-5kg· m2.验证结果表明:改进型的遗忘因子最小二乘辨识算法具有很好的适应性和较高的辨识精度,能够应用于对串联机器人运行过程中各关节电机负载转动惯量的在线辨识.
在线辨识算法辨识出的负载转动惯量不能直接被利用,需要通过一系列转换关系将其转换成动力学模型中的惯性力项参与前馈控制.
式中Ri为第i关节电机到连杆的减速比.
将得到的各关节前馈电流叠加到驱动器电流环的输入端,完成6自由度串联机器人的惯量前馈控制.
基于本实验室研制的模块化串联机器人,利用Solidworks+Adams+Matlab进行联合仿真,在Simulink环境中,搭建机器人惯量前馈控制系统,如图 8所示.系统输入为预先规划的各关节的角位移、角速度和角加速度,系统输出为各连杆实际角位移和角速度,各关节伺服系统中 PID控制器参数由工程法进行整定,整定结果如表1所示.
图8 串联机器人惯量前馈控制仿真系统Fig.8 Inertia feedforward control simulation system of serial robot
式中Mkj表示原惯性矩阵M( q)中第k行第 j列位置元素.
机器人在运行过程中,控制系统不断把实时的运动学信息和惯量矩阵输入到动力学方程式(19)中,即可输出当前时刻的目标前馈力矩估计向量.对于第i关节,记其前馈力矩为力矩不
表1 PID参数Tab.1 PID parameters
图 8中,被控系统为 Solidworks所建机器人三维模型经由 Adams导入 Matlab的机器人正动力学模型.由于在线辨识算法刚启动时存在过渡阶段,辨识误差较大,所以在系统中加入时间选择器,并将时间节点定为0.1s.系统刚开始运行时,辨识结果未收敛,选择器输出原动力学模型中的惯性矩阵M( q),进行普通的力矩前馈,0.1s后辨识结果收敛并稳定,选择器输出含有辨识转动惯量的惯量矩阵惯量前馈开始作用.
为了展现惯量前馈技术的控制效果,利用Matlab中的机器人工具箱分别在笛卡尔空间中的水平面与竖直面内规划圆形轨迹,如图 9所示,轨迹参数如表 2所示,其中,圆心坐标是在机器人底座坐标系下的坐标.
图9 笛卡尔空间圆形轨迹Fig.9 Circular trajectories in Cartesian space
表2 圆形轨迹参数Tab.2 Circular trajectory parameters mm
分别在施加惯量前馈、施加普通力矩前馈、不施加前馈3种不同控制条件下,使机器人末端沿着圆形轨迹运动,通过对比机器人各关节在关节空间中的轨迹跟踪误差以及机器人末端在笛卡尔空间中的轨迹跟踪误差,来验证惯量前馈控制性能,由于机器人在运行过程中,前 3个关节电机的负载惯量变化较大,所以在关节空间中,选取前 3个关节进行验证.本文选择最大跟踪误差和均方根误差对跟踪误差进行量化,均方根误差的定义如下:
式中:N为采样点数;e为跟踪误差.
根据水平面内圆形轨迹,利用机器人工具箱中的“robotname.ikine”函数逆解出前3个关节的关节空间轨迹,如图10所示,其中图10(a)为各关节角位移曲线,由于机器人不是从设定零位开始运动,而是以圆形轨迹上某一点为初始点开始运动,所以各关节在零时刻的初始位移不为零,图 10(b)为各关节角速度曲线,图10(c)为各关节角加速度曲线.
图10 水平圆关节空间轨迹Fig.10 Joint space trajectories of horizontal circle
将逆解出的关节空间轨迹作为图 8所示仿真系统的输入进行仿真,得到各关节在不同控制条件下的轨迹跟踪误差如图 11所示,机器人末端在不同控制条件下的轨迹跟踪误差如图12所示.
图11 水平圆关节轨迹跟踪误差Fig.11 Joint trajectory tracking error of horizontal circle
图12 水平圆跟踪误差Fig.12 Tracking error of horizontal plane
从图 11的仿真结果可以看出,当机器人稳定运行后,各关节轨迹跟踪误差峰值出现的时刻与其角加速度峰值出现的时刻一致,误差为0的时刻与其角加速度为0的时刻一致,这表明各关节的轨迹跟踪误差与各自的角加速度的大小密切相关,这是因为加速度越大,控制所需的惯性力越大,机器人各关节电机所带的负载产生的惯性效应越大,就越会对该关节的伺服系统的控制产生不利影响,当采用惯量前馈控制技术时,控制系统根据在线辨识出的各关节电机的负载的惯量值实时计算并输出准确的前馈力矩来对机器人进行控制,从而抑制了机器人在运行过程中的超调,减小误差波动的范围,降低轨迹跟踪误差.
结合图11与图12可以看出,关节误差会累积到机器人末端的轨迹跟踪误差上,影响整体的控制效果.通过对比水平面内机器人各关节和机器人末端在3种不同控制条件下的轨迹跟踪误差曲线,可以看出,惯量前馈控制技术能够显著提升机器人伺服控制系统的动态响应速度,提高机器人的控制精度,而且机器人运行的加速度越大,该技术对惯性效应的抑制作用越明显.
由于机器人运行0.1s后惯量前馈才开始作用,所以对0.1s之后的仿真数据进行处理,得到水平面内前3关节的轨迹跟踪误差量化结果如表3所示,机器人末端轨迹跟踪误差量化结果如表 4所示.根据表 3和表4可得,惯量前馈控制技术能将传统无前馈作用的控制系统的控制精度提高 94%以上,与普通力矩前馈技术相比,能将控制精度提高70%以上.
表3 水平圆关节轨迹跟踪误差Tab.3 Joint trajectory tracking error of horizontal circle 10-5 rad
表4 水平圆跟踪误差Tab.4 Tracking error in horizontal plane 10-2mm
根据竖直面内圆形轨迹,同样利用机器人工具箱逆解出前 3个关节的关节空间轨迹如图 13所示,其中图 13(a)为各关节角位移曲线,图 13(b)为各关节角速度曲线,图13(c)为各关节角加速度曲线.
将逆解出的关节空间轨迹作为仿真系统的输入进行仿真,得到各关节在不同控制条件下的轨迹跟踪误差如图 14所示,机器人末端在不同控制条件下的竖直圆跟踪误差如图15所示.
结合图13、图14和图15可以看出,机器人末端在竖直面内运行时,其末端轨迹跟踪误差依然是由各关节轨迹跟踪误差累积而来,各关节的跟踪误差依然由各自的角加速度来决定,角加速度较大时,惯性效应明显,导致控制精度下降.而惯量前馈控制技术能够保证系统在加速度较大时也能具有较高的轨迹跟踪精度、较小的稳态误差和较小的超调量.
对0.1s之后的仿真数据进行处理,得到前3关节的轨迹跟踪误差量化结果如表5所示,机器人末端轨迹跟踪误差量化结果如表 6所示.根据表 5和表 6的具体数值,可以算出当机器人末端在竖直面内走圆形轨迹时,惯量前馈控制技术能将传统无前馈作用的控制系统的控制精度提高 90%以上,与普通力矩前馈技术相比,能将控制精度提高70%以上.
图13 竖直圆关节空间轨迹Fig.13 Joint space trajectories of vertical circle
图14 竖直圆关节轨迹跟踪误差Fig.14 Joint trajectory tracking error of vertical circle
图15 竖直圆跟踪误差Fig.15 Tracking error of vertical plane
对比以上仿真结果中的跟踪误差曲线,可以看出,在控制系统不施加前馈和施加惯量前馈两种条件下得到的误差曲线变化趋势是相同的,而且都与施加普通力矩前馈得到的误差曲线变化趋势相反,这是因为不施加前馈的控制系统单纯依靠反馈作用进行调节,只有当控制偏差出现之后才发挥作用,属于滞后控制;施加惯量前馈的控制系统需要根据上一周期采集的关节电机的角速度与电磁力矩,在线辨识出上一周期各关节的负载转动惯量,将惯量辨识值输入到前馈通道上的动力学模型中计算出此刻的前馈力矩,所以惯量前馈控制滞后了一个速度环的周期,也属于滞后调节,但由于速度环周期较小,处在“ms”级,与此相比,机器人动作缓慢,可以认为相邻两个周期内,机器人各关节电机所带负载的转动惯量没有变化,所以上一周期辨识出的负载惯量可以在下一个控制周期使用;而普通的力矩前馈只与输入有关,与控制系统的各项输出无关,是一种预见性控制,属于超前调节,得到的跟踪误差的方向与滞后调节的误差方向相反.又因为在机器人开始运行的 0.1s内,辨识误差较大,图8所示的惯量前馈仿真系统采用的是普通前馈,0.1s后辨识结果稳定,惯量前馈开始发挥作用,所以在最初的0.1s内,本文提出的惯量前馈技术与普通的力矩前馈技术的作用效果一致.基于上述原因,最终使得机器人在3种不同控制条件下的轨迹跟踪误差曲线的变化趋势如图 11、图 12、图 14和图15所示.
表5 竖直圆关节轨迹跟踪误差Tab.5 Joint trajectory tracking error of vertical circle 10-5 rad
表6 竖直圆跟踪误差Tab.6 Tracking error in vertical plane 10-2 mm
综上,从水平面和竖直面内的仿真图像与误差量化结果可以看出,无前馈控制下的超调量大,跟踪误差的波动范围大,稳态误差大;普通力矩前馈控制下的超调量有所减小,跟踪误差的波动范围与稳态误差都比较小;惯量前馈控制下的超调量几乎为零,误差波动范围更小,稳态误差基本为零.
所以,本文提出的惯量前馈控制技术能够明显加快各关节的响应速度,减小超调量,改善机器人控制系统的动态特性;能够大幅度降低机器人控制系统的稳态误差,提升轨迹跟踪精度;能够提高机器人运行的稳定性,对于输入信号的波动具有很强的适应性.其控制效果明显优于普通的力矩前馈控制方法.
为了降低串联协作机器人在运行过程中自身惯量变化对机器人各关节控制系统产生的不利影响,本文提出了一种基于在线辨识的惯量前馈控制技术,保证机器人运行过程具有非常好的动态性能和较高的轨迹跟踪精度.该技术利用在线辨识算法对任意时刻各关节电机所带负载的转动惯量进行在线辨识,通过辨识值实时修正动力学模型中的惯性力矩,提供更加准确的前馈力矩.另外,为了保证辨识惯量更接近真实惯量,将被控系统等效为两刚体弹簧系统进行辨识算法构建.仿真结果表明,结合了在线辨识功能的惯量前馈控制技术能够显著提升机器人控制系统的响应速度与跟踪特性,验证了该惯量前馈控制技术的优越性.由于该技术无需对动力学模型进行离线参数辨识也可以输出较为准确的前馈力矩,所以降低了动力学前馈技术的复杂性,适用范围更广.