工程科学学报,第41卷,第8期:1085-1091,2019年8月 Chinese Journal of Engineering,Vol.41,No.8:1085-1091,August 2019 DOI:10.13374/j.issn2095-9389.2019.08.014;http://journals.ustb.edu.cn 基于BP神经网络的机器人波动摩擦力矩修正方法 张铁),洪景东),李秋奋),刘晓刚) 1)华南理工大学机械与汽车工程学院,广州5106412)桂林航天工业学院广西高校机器人与焊接重点实验室,桂林541004 区通信作者,E-mail:merobot(@scut.edu.cn 摘要针对机器人谐波减速器关节在转动过程中存在的波动摩擦力矩,提出一种基于傅里叶级数函数和BP神经网络的建 模方法,并完善机器人的动力学模型,修正了因波动摩擦力矩带来的关节力矩计算误差.通过研究谐波减速器关节的波动摩 擦力矩在不同影响因素下的变化特性,采用傅里叶级数与BP神经网络结合的方法对波动摩擦力矩进行建模.通过添加傅里 叶级数函数作为B神经网络的辅助输入,克服了力矩误差曲线因存在高频周期性波动而难以拟合的困难.在离线环境下训 练神经网络,完成对关节波动摩擦力矩的建模,进而完善机器人的动力学模型和修正关节中存在的波动摩擦力矩.验证实验 表明,使用完善后的动力学模型可以有效计算谐波减速器关节的波动摩擦力矩,并使修正后的力矩误差维持在[-0.5,0.5]N m的范围之内,方差为0.1659N2m2,是修正前的24.23%. 关键词机器人动力学:关节波动摩擦力矩:BP神经网络:傅里叶级数函数:误差修正 分类号TP242.2 Wave friction correction method for a robot based on BP neural network ZHANG Tie HONG Jing-dong,LI Qiu-fen,LIU Xiao-gang 1)School of Mechanical and Automotive Engineering,South China University of Technology,Guangzhou 510641,China 2)Guangxi Key Laboratory of Robotics and Welding,Guilin University of Aerospace Technology,Guilin 541004,China Corresponding author,E-mail:merobot@scut.edu.cn ABSTRACT For sensorless force control of a robot such as by drag-teaching and collision detection,the control accuracy depends on the accuracy of the robot dynamics model.The error of the robot dynamics model comes from two aspects,modeling and identification errors and from unmodeled dynamics.Among the unmodeled dynamics,one of the important sources of unmodeled dynamic is the fric- tion inside the robot reducer.When the reducer rotates,there is mutual extrusion and friction between the internal components of the reducer.This kind of friction will change as the gear meshing state transforms,resulting in the phenomenon of wave friction torque.A remarkable feature of wave friction torque is that it has a periodic relationship with the joint location and it is often modeled by the Fou- rier series function.Wave friction torque is obvious when the rotational speed of the joint is low and decreases with the increase in rota- tional speed.In order to improve the accuracy of the robot dynamics model,the wave friction torque needs to be modeled and elimina- ted.Aiming at the wave friction of the robot harmonic joint during the rotation process,a modeling method based on a Fourier series function and BP neural network was proposed,the dynamic model of the robot was optimized,and the calculation error of the joint torque caused by the wave friction was corrected.By studying the variation characteristics of the wave friction of the harmonic reducer joint under different influencing factors,the combination of the Fourier series and BP neural network was used to model the wave fric- tion.By adding the Fourier series function as the auxiliary input of the BP neural network,the difficulty of fitting the torque error curve due to the presence of high frequency periodic fluctuations was overcome.The neural network was trained in the off-line environment to complete the modeling of the wave friction,and then to improve the dynamic model of the robot and correct the wave friction.The ex- 收稿日期:2018-07-20 基金项目:国家科技重大专项资助项目(2015ZX04005006):广东省科技重大专项资助项目(2014B090921004,2014B090920002):中山市科技 重大资助项目(2016F2FC0006):广西高校机器人与焊接重点实验室课题基金资助项目(JQR2015KF02)
工程科学学报,第 41 卷,第 8 期:1085鄄鄄1091,2019 年 8 月 Chinese Journal of Engineering, Vol. 41, No. 8: 1085鄄鄄1091, August 2019 DOI: 10. 13374 / j. issn2095鄄鄄9389. 2019. 08. 014; http: / / journals. ustb. edu. cn 基于 BP 神经网络的机器人波动摩擦力矩修正方法 张 铁1) 苣 , 洪景东1) , 李秋奋1) , 刘晓刚2) 1)华南理工大学机械与汽车工程学院, 广州 510641 2)桂林航天工业学院广西高校机器人与焊接重点实验室, 桂林 541004 苣通信作者, E鄄mail: merobot@ scut. edu. cn 摘 要 针对机器人谐波减速器关节在转动过程中存在的波动摩擦力矩,提出一种基于傅里叶级数函数和 BP 神经网络的建 模方法,并完善机器人的动力学模型,修正了因波动摩擦力矩带来的关节力矩计算误差. 通过研究谐波减速器关节的波动摩 擦力矩在不同影响因素下的变化特性,采用傅里叶级数与 BP 神经网络结合的方法对波动摩擦力矩进行建模. 通过添加傅里 叶级数函数作为 BP 神经网络的辅助输入,克服了力矩误差曲线因存在高频周期性波动而难以拟合的困难. 在离线环境下训 练神经网络,完成对关节波动摩擦力矩的建模,进而完善机器人的动力学模型和修正关节中存在的波动摩擦力矩. 验证实验 表明,使用完善后的动力学模型可以有效计算谐波减速器关节的波动摩擦力矩,并使修正后的力矩误差维持在[ - 0郾 5,0郾 5] N ·m 的范围之内,方差为 0郾 1659 N 2·m 2 ,是修正前的 24郾 23% . 关键词 机器人动力学; 关节波动摩擦力矩; BP 神经网络; 傅里叶级数函数; 误差修正 分类号 TP242郾 2 收稿日期: 2018鄄鄄07鄄鄄20 基金项目: 国家科技重大专项资助项目(2015ZX04005006);广东省科技重大专项资助项目(2014B090921004,2014B090920002);中山市科技 重大资助项目(2016F2FC0006);广西高校机器人与焊接重点实验室课题基金资助项目(JQR2015KF02) Wave friction correction method for a robot based on BP neural network ZHANG Tie 1) 苣 , HONG Jing鄄dong 1) , LI Qiu鄄fen 1) , LIU Xiao鄄gang 2) 1) School of Mechanical and Automotive Engineering, South China University of Technology, Guangzhou 510641, China 2) Guangxi Key Laboratory of Robotics and Welding, Guilin University of Aerospace Technology, Guilin 541004, China 苣Corresponding author, E鄄mail: merobot@ scut. edu. cn ABSTRACT For sensorless force control of a robot such as by drag鄄teaching and collision detection, the control accuracy depends on the accuracy of the robot dynamics model. The error of the robot dynamics model comes from two aspects, modeling and identification errors and from unmodeled dynamics. Among the unmodeled dynamics, one of the important sources of unmodeled dynamic is the fric鄄 tion inside the robot reducer. When the reducer rotates, there is mutual extrusion and friction between the internal components of the reducer. This kind of friction will change as the gear meshing state transforms, resulting in the phenomenon of wave friction torque. A remarkable feature of wave friction torque is that it has a periodic relationship with the joint location and it is often modeled by the Fou鄄 rier series function. Wave friction torque is obvious when the rotational speed of the joint is low and decreases with the increase in rota鄄 tional speed. In order to improve the accuracy of the robot dynamics model, the wave friction torque needs to be modeled and elimina鄄 ted. Aiming at the wave friction of the robot harmonic joint during the rotation process, a modeling method based on a Fourier series function and BP neural network was proposed, the dynamic model of the robot was optimized, and the calculation error of the joint torque caused by the wave friction was corrected. By studying the variation characteristics of the wave friction of the harmonic reducer joint under different influencing factors, the combination of the Fourier series and BP neural network was used to model the wave fric鄄 tion. By adding the Fourier series function as the auxiliary input of the BP neural network, the difficulty of fitting the torque error curve due to the presence of high frequency periodic fluctuations was overcome. The neural network was trained in the off鄄line environment to complete the modeling of the wave friction, and then to improve the dynamic model of the robot and correct the wave friction. The ex鄄
·1086· 工程科学学报,第41卷,第8期 perimental results show that the improved dynamic model can effectively predict the wave friction of the harmonic reducer joint and keep the corrected torque error within the range of [-0.5,0.5]N.m,and the variance is 0.1659 N2.m2,which is 24.23%before the cor- rection KEY WORDS robot dynamics;joint wave friction torque;BP neural network;Fourier series function;error correction 对于机器人的免力矩传感器柔顺控制,无论是 效果[9 机器人的直接示教[山,还是力位混合控制2】和碰撞 本文通过实验研究谐波减速器关节中的波动摩 检测[3),都需要精确的机器人动力学模型,以借助 擦力矩在不同机器人运动状态下的变化特征.采用 机器人的动力学模型和运动信息计算出机器人本体 基于BP神经网络的辨识方法,并添加傅里叶级数 在运动中所消耗的关节力矩(后文统称为计算力 函数作为神经网络的辅助输入,从而增强神经网络 矩),从而联合关节的实际力矩计算出机器人的外 对周期非线性的拟合能力.在离线环境下训练神经 部受力.这要求在机器人空载和无外力的情况下,网络,由此完成对波动摩擦力矩的建模,同时完善机 计算力矩与实测力矩间的误差要尽可能小.通过对 器人动力学模型.最后通过实验验证傅里叶级数- 复杂且重要的未建模力矩项进行建模和辨识,可以 神经网络模型对波动力矩误差的修正效果. 进一步提高机器人动力模型的精确性,减少计算力 矩的误差. 1谐波减速器关节的波动摩擦力矩特性 谐波减速器由于具有体积小、重量轻、减速比大 1.1机器人平台 等优点,在机器人中得到广泛应用,但谐波减速器存 使用国产SD500E机器人研究谐波减速器关节 在严重的非线性摩擦力矩特性,其在低速转动时会 的波动摩擦力矩特性.机器人实验平台如图1所 产生与关节转角呈周期性变化的摩擦力矩[4刀,即 示.机器人控制和采样周期都为1ms.实验中关节 波动摩擦力矩,导致关节计算力矩与实际力矩间存 的力矩信号通过伺服系统的电流环采样得到,机器 在波动的力矩误差.波动摩擦力矩产生的原因与减 人的关节转角通过关节编码盘换算得到. 速器传动过程中内部零件的不断啮合和摩擦有关, 因此与关节转角呈现周期性变化规律。针对该波动 机器人 摩擦力矩,常用的解决方法是采用一个周期性函数 工控机 进行拟合和修正.根据选择的周期性函数的不同, 文献[4]采用傅里叶级数曲线来进行拟合,文献[6] 和[7]则采用Stribeck模型与正余弦函数结合的方 控制柜 式来描述谐波驱动关节的摩擦力矩特性,并发现周 期性摩擦力矩存在两种主要的频率成分.然而上述 文献都只研究了某一转速下的摩擦力矩,并采用一 图1机器人实验平台 Fig.I Robot experiment platform 组恒定的参数进行建模,而忽略了当关节转速发生 变化时,该摩擦力矩项的幅值也会随着改变.文献 1.2机器人动力学模型和力矩误差 [5]考虑到关节转速的影响,并使用指数模型进行 机器人的动力学方程为[1] 建模,但其并没有使用复杂的实验轨迹研究其模型 T=M(q)9+C(q,9)9+G(q)+F,(1) 的力矩计算精度 其中,g为机器人关节转角向量,M(g)为惯量矩阵, 为了减少甚至消除波动摩擦力矩所带来的计算 C(q,9)为速度项矩阵,与离心力和和科氏力有关, 力矩误差,需要对关节波动摩擦力矩进行准确的建 G(q)为重力项,F,为常规摩擦项,T为关节力矩向 模和辨识.传统的辨识方法需要知道波动摩擦力矩 量,称为实际力矩 的产生机制并以此建立方程,然后通过回归的方法 通过基于改进的傅里叶级数辨识轨迹[1o]、带权 进行参数辨识.而基于BP神经网络的辨识方法可 最小二乘法]和SDP物理可行性分析]的机器人 以在缺少系统模型等先验知识的情况下进行系统辨 动力学辨识方案,并采用5Hz截止频率的低通滤波 识,具有优秀的多维非线性拟合能力[8】.但对于曲 器3-4]对采样数据进行滤波处理,最终得到一套机 折多变的非线性函数,使用BP神经网络进行拟合 器人动力学模型和参数.根据该模型和动力学方 需要大量的神经元,且往往无法得到理想的拟合 程,得到
工程科学学报,第 41 卷,第 8 期 perimental results show that the improved dynamic model can effectively predict the wave friction of the harmonic reducer joint and keep the corrected torque error within the range of [ - 0郾 5,0郾 5] N·m, and the variance is 0郾 1659 N 2·m 2 , which is 24郾 23% before the cor鄄 rection. KEY WORDS robot dynamics; joint wave friction torque; BP neural network; Fourier series function; error correction 对于机器人的免力矩传感器柔顺控制,无论是 机器人的直接示教[1] ,还是力位混合控制[2] 和碰撞 检测[3] ,都需要精确的机器人动力学模型,以借助 机器人的动力学模型和运动信息计算出机器人本体 在运动中所消耗的关节力矩(后文统称为计算力 矩),从而联合关节的实际力矩计算出机器人的外 部受力. 这要求在机器人空载和无外力的情况下, 计算力矩与实测力矩间的误差要尽可能小. 通过对 复杂且重要的未建模力矩项进行建模和辨识,可以 进一步提高机器人动力模型的精确性,减少计算力 矩的误差. 谐波减速器由于具有体积小、重量轻、减速比大 等优点,在机器人中得到广泛应用,但谐波减速器存 在严重的非线性摩擦力矩特性,其在低速转动时会 产生与关节转角呈周期性变化的摩擦力矩[4鄄鄄7] ,即 波动摩擦力矩,导致关节计算力矩与实际力矩间存 在波动的力矩误差. 波动摩擦力矩产生的原因与减 速器传动过程中内部零件的不断啮合和摩擦有关, 因此与关节转角呈现周期性变化规律. 针对该波动 摩擦力矩,常用的解决方法是采用一个周期性函数 进行拟合和修正. 根据选择的周期性函数的不同, 文献[4]采用傅里叶级数曲线来进行拟合,文献[6] 和[7]则采用 Stribeck 模型与正余弦函数结合的方 式来描述谐波驱动关节的摩擦力矩特性,并发现周 期性摩擦力矩存在两种主要的频率成分. 然而上述 文献都只研究了某一转速下的摩擦力矩,并采用一 组恒定的参数进行建模,而忽略了当关节转速发生 变化时,该摩擦力矩项的幅值也会随着改变. 文献 [5]考虑到关节转速的影响,并使用指数模型进行 建模,但其并没有使用复杂的实验轨迹研究其模型 的力矩计算精度. 为了减少甚至消除波动摩擦力矩所带来的计算 力矩误差,需要对关节波动摩擦力矩进行准确的建 模和辨识. 传统的辨识方法需要知道波动摩擦力矩 的产生机制并以此建立方程,然后通过回归的方法 进行参数辨识. 而基于 BP 神经网络的辨识方法可 以在缺少系统模型等先验知识的情况下进行系统辨 识,具有优秀的多维非线性拟合能力[8] . 但对于曲 折多变的非线性函数,使用 BP 神经网络进行拟合 需要大量的神经元,且往往无法得到理想的拟合 效果[9] . 本文通过实验研究谐波减速器关节中的波动摩 擦力矩在不同机器人运动状态下的变化特征. 采用 基于 BP 神经网络的辨识方法,并添加傅里叶级数 函数作为神经网络的辅助输入,从而增强神经网络 对周期非线性的拟合能力. 在离线环境下训练神经 网络,由此完成对波动摩擦力矩的建模,同时完善机 器人动力学模型. 最后通过实验验证傅里叶级数鄄鄄 神经网络模型对波动力矩误差的修正效果. 1 谐波减速器关节的波动摩擦力矩特性 1郾 1 机器人平台 使用国产 SD500E 机器人研究谐波减速器关节 的波动摩擦力矩特性. 机器人实验平台如图 1 所 示. 机器人控制和采样周期都为 1 ms. 实验中关节 的力矩信号通过伺服系统的电流环采样得到,机器 人的关节转角通过关节编码盘换算得到. 图 1 机器人实验平台 Fig. 1 Robot experiment platform 1郾 2 机器人动力学模型和力矩误差 机器人的动力学方程为[10] , T = M(q) q ·· + C(q,q · ) q · + G(q) + Ff (1) 其中,q 为机器人关节转角向量,M(q)为惯量矩阵, C(q,q · )为速度项矩阵,与离心力和和科氏力有关, G(q)为重力项,Ff 为常规摩擦项,T 为关节力矩向 量,称为实际力矩. 通过基于改进的傅里叶级数辨识轨迹[10] 、带权 最小二乘法[11]和 SDP 物理可行性分析[12]的机器人 动力学辨识方案,并采用 5 Hz 截止频率的低通滤波 器[13鄄鄄14]对采样数据进行滤波处理,最终得到一套机 器人动力学模型和参数. 根据该模型和动力学方 程,得到 ·1086·
张铁等:基于BP神经网络的机器人波动摩擦力矩修正方法 ·1087· T=M(q)g+c(q,q)q+G(q)+f.q+f.sign(q) (2) 其中,M,C,G为式(1)中相应变量的辨识值,根据 0.5 动力学模型得到.T为计算力矩.∫,为关节的黏性 -1.0 摩擦系数,其单位为N.m.rad-ls,∫。为库伦摩擦系 -1.5 数,其单位为N·m,式(2)采用黏性摩擦+库伦摩擦 -2.0 0.08 0.100.120.140.160.180.200.22 模型对关节的摩擦力矩进行建模,式中M(q)9、 关节转角rad C(q,9)9、G(q)∫,9和f.sign(g)的单位为Nm. 图3四种转速下的力矩误差集合 由于动力学模型的不完善以及参数的辨识误 Fig.3 Torque error set at four speeds 差,导致实际力矩T和计算力矩T间存在一定的偏 高次谐波(52Hz).其中一次谐波的频率为电机转 差,称为力矩误差△T, 动频率的2倍,高次谐波频率为一次谐波的2倍 AT-T-T (3) 对于不同的谐波减速器关节,一次谐波、高次谐波和 而力矩误差中最大的来源是减速器传动过程中产生 电机转动频率间的倍数关系可能不相同.10°·s1 的波动摩擦力矩 转速下的波动力矩误差主要为一次谐波(26Hz). 1.3机器人关节的波动摩擦力矩特性 分析可得,波动摩擦力矩中的高次谐波会随着速度 机器人的谐波减速器关节,由于传动过程中柔 的增加发生明显的衰弱,其衰弱要先于一次谐波. 性轮和刚轮间的啮合和摩擦5-16),导致关节转动过 而当随着关节转速的继续增加,最终一次谐波也会 程中会产生波动的摩擦力矩.本小节通过机器人实 削减到消失 验平台研究该波动摩擦力矩在不同运动状态下的 1.0 特性. 0.8 使用机器人在空载和无外力的环境下进行实 52 Hz 验,以1°·s的转速正向转动机器人第2关节,计算 0.6 =-19·s -10°.s 和采样得到该关节的计算力矩、实际力矩和力矩误 0.4 差如图2所示,可以发现实际力矩中存在周期性的 26 Hz 力矩波动,这便是由减速器的波动摩擦力矩所造成 的.在4、7、10°·s1转速下进行同样实验,采用关节 100 150 200 250 频率 转角作为横坐标,得到不同速度下的力矩误差如图 图4两种转动速度下的力矩误差频谱 3所示,可以发现力矩误差曲线的幅度随着关节转 Fig.4 Torque error spectrum at two speeds 速的增加而明显减弱,同时力矩误差波动的波峰和 通过实验,可以确定谐波减速器关节中的波动 波谷都对应于相似的关节角,可以确定波动摩擦力 摩擦力矩具有以下的性质:1)波动摩擦力矩与机器 矩与关节转角间存在周期性关系 人关节转角具有周期性关系,且存在两种主要的频 率:2)波动摩擦力矩的幅值随着关节转速的提高而 制 减少.由此确定波动摩擦力矩为关节转角和转速的 -10 15 te444uwa当 一实际关节力矩 一一计算力矩 非线性函数.由于不知道波动摩擦力矩的具体产生 …力矩误差 机理,故先把波动摩擦力矩T,与关节转角q和转速 9的关系简单表示为: 20 3 4 56 7 T=T(9,9) (4) 时间/(10°ms) 式中表示关节的单关节的波动摩擦力矩T。为关节 图2谐波减速器关节实际力矩,计算力矩和力矩误差 转角g和转速9的函数,该函数关系用T,表示. Fig.2 Actual torque,calculated torque,and torque error of the Har- monic reducer joint 通过图2可以发现,关节力矩误差曲线中除了 关节的波动摩擦力矩外,还存在其他的建模误差,但 对1°·s1和10°·s转速下的关节力矩误差进 相比于波动摩擦力矩,其他建模误差导致的力矩误 行频谱分析,结果如图4所示.1°·s1转速下的波动 差在数值和影响上相对较小,所以本文直接将关节 力矩误差主要由两种谐波组成:一次谐波(26Hz), 的力矩误差△T作为关节波动摩擦力矩的实测值
张 铁等: 基于 BP 神经网络的机器人波动摩擦力矩修正方法 ^T = M^ (q) q ·· + ^C(q,q · ) q · + ^G(q) + fvq · + fc sign( q · ) (2) 其中,M^ , ^C, ^G 为式(1)中相应变量的辨识值,根据 动力学模型得到. ^T 为计算力矩. fv 为关节的黏性 摩擦系数,其单位为 N·m·rad - 1·s,fc 为库伦摩擦系 数,其单位为 N·m,式(2)采用黏性摩擦 + 库伦摩擦 模型对关节的摩擦力矩进行建模,式中 M^ ( q) q ·· 、 ^C(q,q · ) q · 、 ^G(q)、fvq · 和 fc sign( q · )的单位为 N·m. 由于动力学模型的不完善以及参数的辨识误 差,导致实际力矩 T 和计算力矩 ^T 间存在一定的偏 差,称为力矩误差 驻T, 驻T = T - ^T (3) 而力矩误差中最大的来源是减速器传动过程中产生 的波动摩擦力矩. 1郾 3 机器人关节的波动摩擦力矩特性 机器人的谐波减速器关节,由于传动过程中柔 性轮和刚轮间的啮合和摩擦[15鄄鄄16] ,导致关节转动过 程中会产生波动的摩擦力矩. 本小节通过机器人实 验平台研究该波动摩擦力矩在不同运动状态下的 特性. 使用机器人在空载和无外力的环境下进行实 验,以 1毅·s - 1的转速正向转动机器人第 2 关节,计算 和采样得到该关节的计算力矩、实际力矩和力矩误 差如图 2 所示,可以发现实际力矩中存在周期性的 力矩波动,这便是由减速器的波动摩擦力矩所造成 的. 在 4、7、10毅·s - 1转速下进行同样实验,采用关节 转角作为横坐标,得到不同速度下的力矩误差如图 3 所示,可以发现力矩误差曲线的幅度随着关节转 速的增加而明显减弱,同时力矩误差波动的波峰和 波谷都对应于相似的关节角,可以确定波动摩擦力 矩与关节转角间存在周期性关系. 图 2 谐波减速器关节实际力矩、计算力矩和力矩误差 Fig. 2 Actual torque, calculated torque, and torque error of the Har鄄 monic reducer joint 对 1毅·s - 1和 10毅·s - 1转速下的关节力矩误差进 行频谱分析,结果如图4 所示. 1毅·s - 1转速下的波动 力矩误差主要由两种谐波组成:一次谐波(26 Hz), 图 3 四种转速下的力矩误差集合 Fig. 3 Torque error set at four speeds 高次谐波(52 Hz). 其中一次谐波的频率为电机转 动频率的 2 倍,高次谐波频率为一次谐波的 2 倍. 对于不同的谐波减速器关节,一次谐波、高次谐波和 电机转动频率间的倍数关系可能不相同. 10毅·s - 1 转速下的波动力矩误差主要为一次谐波(26 Hz). 分析可得,波动摩擦力矩中的高次谐波会随着速度 的增加发生明显的衰弱,其衰弱要先于一次谐波. 而当随着关节转速的继续增加,最终一次谐波也会 削减到消失. 图 4 两种转动速度下的力矩误差频谱 Fig. 4 Torque error spectrum at two speeds 通过实验,可以确定谐波减速器关节中的波动 摩擦力矩具有以下的性质:1)波动摩擦力矩与机器 人关节转角具有周期性关系,且存在两种主要的频 率;2)波动摩擦力矩的幅值随着关节转速的提高而 减少. 由此确定波动摩擦力矩为关节转角和转速的 非线性函数. 由于不知道波动摩擦力矩的具体产生 机理,故先把波动摩擦力矩 Tb 与关节转角 q 和转速 q · 的关系简单表示为: Tb = 祝b (q,q · ) (4) 式中表示关节的单关节的波动摩擦力矩 Tb 为关节 转角 q 和转速 q · 的函数,该函数关系用 祝b 表示. 通过图 2 可以发现,关节力矩误差曲线中除了 关节的波动摩擦力矩外,还存在其他的建模误差,但 相比于波动摩擦力矩,其他建模误差导致的力矩误 差在数值和影响上相对较小,所以本文直接将关节 的力矩误差 驻T 作为关节波动摩擦力矩的实测值, ·1087·
·1088· 工程科学学报,第41卷,第8期 即 性过程十分接近的非线性映射能力,相当于使用一 T=△T (5) 个网络结构模型对复杂非线性过程进行建模和辨 由于关节波动摩擦的生成机理没有完全清楚, 识,其中的B,9,,Y,便是模型的参数.神经网络 只知道它与关节转角和转速间存在非线性的函数关 建模的优点在于其建模过程只用到输入输出数据, 系,所以采用传统的建模+参数辨识的建模方法可 而不需要知道非线性过程的内在机制. 能行不通.本文借助BP神经网络的非线性拟合能 2.2BP神经网络建模波动摩擦力矩 力[),依靠实验数据离线训练BP神经网络并使其 通过采集不同关节转角和转速下的波动摩擦力 满足式(4)函数的映射功能,由此完成对波动摩擦 矩数据,在离线情况下建立BP神经网络并进行训 力矩的建模 练,最后得到一个满足波动摩擦力矩映射关系的网 络模型. 2谐波减速器关节的波动摩擦力矩特性 根据式(4),波动摩擦力矩映射的输入数据为 2.1BP神经网络 关节转角和转速[g9],目标输出数据为波动摩擦 BP神经网络是一种基于反向传播算法的多层 力矩T,因此,构建的神经网络对应的输入层有两 前向网络,它有一个输入层和一个输出层以及多个 个神经元,对应g和g,输出层有一个神经元,为波 隐含层.根据逼近理论,具有非线性传递函数的BP 动摩擦力矩的计算值T,通过机器人实验采集 神经网络,在隐含层神经元数量足够多的情况下,可 [q9T]三种数据序列,在离线环境下训练BP 以实现任意精度的非线性映射.对于只知道输入数 神经网络.通过计算T。和T的误差并反向传递, 据和输出数据的非线性过程和函数,可以利用BP 神经网络优秀的拟合能力,利用其输入输出数据进 依靠梯度下降法不断调整B,日,,Y,使得工。与T 的残差平法和不断减小,最终网络实现了与式(4) 行训练从而使得BP神经网络获得与该非线性过程 十分接近的映射功能,由此完成对波动摩擦力矩的 十分接近的映射功能 建模 对于一个n维输入m维输出的三层BP神经网 然而,由于神经网络的拟合能力有一定限制,如 络,其正向计算过程为: 果使用上述的建模方法将需要用到大量的神经元, 网络输人:X=(x1,x2,…,xn) 且拟合效果并不理想.其原因在于波动摩擦力矩与 输入层:a:=x,i=1,2,…,n 关节转角间的高频周期性对于神经网络而言属于高 中间层5=立A-9,j=1,2…P 度的非线性,具有非常高的拟合难度.本节解决方 i=1 b=F(s),j=1,2,…p 法是,先采用一个周期性函数对波动摩擦力矩进行 拟合,事先提炼出波动摩擦力矩中的周期性特性,再 输出层l=立4-1=1,2,m 结合该周期性拟合函数和神经网络,完成对波动摩 y=F2(l),t=1,2,…,m 擦力矩的建模.具体方法如下 网络输出:Y=(y1,y2,…,ym) 由前文的频谱分析可知,波动摩擦力矩与关节 其中,B,9,Y,为神经网络参数,它们的值在训练 转角q呈现两个频率的周期性关系,故可设计一个 过程中进行调整,X为网络输入向量,Y为网络输出 以g为自变量的二级傅里叶级数函数作为波动摩擦 向量,其余为神经网路的中间变量.F(·)和F2(·) 力矩的周期性拟合函数,即: 为中间层和输出层的传递函数.F,(·)一般为非线 F,(q)=ao+a1sin(09)+b1cos(wo9)+ 性函数,如sigmoid函数,F2(·)可以选择线性函数. azsin (2w0q)+b cos (2w0q) (6) F,(·)的非线性是实现BP神经网络非线性映射的 式中,ao为偏置,a1,a2,b1,b2为各项幅值,w。为基 基础。在网络神经元个数确定的情况下,不同的B, 础角速度.具体情况下可以采用一种较低转速下的 ,,Y,值确定了网络不同的输入输出映射.BP神 波动摩擦力矩曲线数据,并用式(6)进行拟合,从而 经网络采用误差反向传播来调整B,日,y2,Y,的值, 得到式(6)中各参数的具体值. 网络训练的过程相当于不断调整B,0,,Y,的值 设计BP神经网络,网络的输入层有三个神经 使得网络的输出越来越接近训练数据中的目标输出 元,对应的输入为[99F,(q)],输出层有一个神 数据.若将一个复杂非线性过程的输入输出数据用 经元,对应为波动摩擦力矩的计算值T.神经网络 于训练BP网络,训练完成的网络将拥有与该非线 增加了F,(q)作为辅助输入,F,(q)可以协助神经
工程科学学报,第 41 卷,第 8 期 即 Tb = 驻T (5) 由于关节波动摩擦的生成机理没有完全清楚, 只知道它与关节转角和转速间存在非线性的函数关 系,所以采用传统的建模 + 参数辨识的建模方法可 能行不通. 本文借助 BP 神经网络的非线性拟合能 力[17] ,依靠实验数据离线训练 BP 神经网络并使其 满足式(4)函数的映射功能,由此完成对波动摩擦 力矩的建模. 2 谐波减速器关节的波动摩擦力矩特性 2郾 1 BP 神经网络 BP 神经网络是一种基于反向传播算法的多层 前向网络,它有一个输入层和一个输出层以及多个 隐含层. 根据逼近理论,具有非线性传递函数的 BP 神经网络,在隐含层神经元数量足够多的情况下,可 以实现任意精度的非线性映射. 对于只知道输入数 据和输出数据的非线性过程和函数,可以利用 BP 神经网络优秀的拟合能力,利用其输入输出数据进 行训练从而使得 BP 神经网络获得与该非线性过程 十分接近的映射功能. 对于一个 n 维输入 m 维输出的三层 BP 神经网 络,其正向计算过程为: 网络输入:X = (x1 ,x2 ,…,xn ) 输入层:ai = xi,i = 1,2,…,n 中间层:sj = 移 n i = 1 茁ijai - 兹j, j = 1,2,…,p bj = F1 (sj), j = 1,2,…,p 输出层:l t = 移 p j = 1 vjt bj - 酌t, t = 1,2,…,m yt = F2 (l t), t = 1,2,…,m 网络输出:Y = (y1 ,y2 ,…,ym ) 其中,茁ij,兹j,vjt,酌t 为神经网络参数,它们的值在训练 过程中进行调整,X 为网络输入向量,Y 为网络输出 向量,其余为神经网路的中间变量. F1 (·)和 F2 (·) 为中间层和输出层的传递函数. F1 (·)一般为非线 性函数,如 sigmoid 函数,F2 (·)可以选择线性函数. F1 (·)的非线性是实现 BP 神经网络非线性映射的 基础. 在网络神经元个数确定的情况下,不同的 茁ij, 兹j,vjt,酌t 值确定了网络不同的输入输出映射. BP 神 经网络采用误差反向传播来调整 茁ij,兹j,vjt,酌t 的值, 网络训练的过程相当于不断调整 茁ij,兹j,vjt,酌t 的值 使得网络的输出越来越接近训练数据中的目标输出 数据. 若将一个复杂非线性过程的输入输出数据用 于训练 BP 网络,训练完成的网络将拥有与该非线 性过程十分接近的非线性映射能力,相当于使用一 个网络结构模型对复杂非线性过程进行建模和辨 识,其中的 茁ij,兹j,vjt,酌t 便是模型的参数. 神经网络 建模的优点在于其建模过程只用到输入输出数据, 而不需要知道非线性过程的内在机制. 2郾 2 BP 神经网络建模波动摩擦力矩 通过采集不同关节转角和转速下的波动摩擦力 矩数据,在离线情况下建立 BP 神经网络并进行训 练,最后得到一个满足波动摩擦力矩映射关系的网 络模型. 根据式(4),波动摩擦力矩映射的输入数据为 关节转角和转速[q q ·],目标输出数据为波动摩擦 力矩 Tb ,因此,构建的神经网络对应的输入层有两 个神经元,对应 q 和 q · ,输出层有一个神经元,为波 动摩擦力矩的计算值 ^Tb . 通过机器人实验采集 [q q · Tb ]三种数据序列,在离线环境下训练 BP 神经网络. 通过计算 ^Tb 和 Tb 的误差并反向传递, 依靠梯度下降法不断调整 茁ij,兹j,vjt,酌t 使得 ^Tb 与 Tb 的残差平法和不断减小,最终网络实现了与式(4) 十分接近的映射功能,由此完成对波动摩擦力矩的 建模. 然而,由于神经网络的拟合能力有一定限制,如 果使用上述的建模方法将需要用到大量的神经元, 且拟合效果并不理想. 其原因在于波动摩擦力矩与 关节转角间的高频周期性对于神经网络而言属于高 度的非线性,具有非常高的拟合难度. 本节解决方 法是,先采用一个周期性函数对波动摩擦力矩进行 拟合,事先提炼出波动摩擦力矩中的周期性特性,再 结合该周期性拟合函数和神经网络,完成对波动摩 擦力矩的建模. 具体方法如下. 由前文的频谱分析可知,波动摩擦力矩与关节 转角 q 呈现两个频率的周期性关系,故可设计一个 以 q 为自变量的二级傅里叶级数函数作为波动摩擦 力矩的周期性拟合函数,即: Fp (q) = a0 + a1 sin (w0 q) + b1 cos (w0 q) + a2 sin (2w0 q) + b1 cos (2w0 q) (6) 式中,a0 为偏置,a1 ,a2 ,b1 ,b2 为各项幅值,w0 为基 础角速度. 具体情况下可以采用一种较低转速下的 波动摩擦力矩曲线数据,并用式(6)进行拟合,从而 得到式(6)中各参数的具体值. 设计 BP 神经网络,网络的输入层有三个神经 元,对应的输入为[q q · Fp (q)],输出层有一个神 经元,对应为波动摩擦力矩的计算值 ^Tb . 神经网络 增加了 Fp ( q)作为辅助输入,Fp ( q) 可以协助神经 ·1088·
张铁等:基于BP神经网络的机器人波动摩擦力矩修正方法 ·1089· 网络在少量神经元的情况下拟合波动摩擦力矩.训 练BP神经网络并保留训练后神经网络的B,,, 0.5 Y,值,则训练完成的神经网络在输入输出关系上相 当于一个有三个自变量的非线性函数: -0.5 T=I(q,q.F(q)) (7) -1.0 其中,式(7)表明关节的波动摩擦力矩可以表示为 -15 一周期性摩擦一傅里叶级数曲线 0.55 0.60 0.65 0.70 0.75 q,9,F(q)的函数,该函数关系用T表示.结合式 关节转角/rd (6)和式(7),两个函数共同形成了波动摩擦力矩的 图5傅里叶级数曲线拟合原始力矩误差曲线 计算模型.利用这两个函数,便可在机器人运动过 Fig.5 Fourier curvature fitting of the original torque error curves 程中计算关节存在的波动摩擦力矩值,由此完善原 前三种数据作为神经网络输入,第四种数据用于神 来的动力学模型,减少计算力矩与实际力矩间的误 经网络的目标输出进行训练.使用Matlab的神经网 差.新的动力学模型为 络工具箱,设计三层结构的BP神经网络,并设置10 T=M(q)9+C(q,9)9+G(q)+f9+ 个隐层神经元,将所有采样数据用于神经网络进行 f.sign(q)+(q,q,F(q)) (8) 离线训练.保存训练完成的BP神经网络及其参数, 其中,T(q,9,F(q))为把式(7)的方法拓展到所 由此完成对波动摩擦力矩的建模工作,下面验证该 有关节而得到波动摩擦力矩计算向量,T为改进 模型对波动摩擦力矩的修正效果. 后的计算力矩.式(8)在式(2)T的基础上增加了 3.2验证傅里叶级数函数和神经网络 波动摩擦力矩的建模结果,其动力学模型相比式 解锁机器人的第1、3、4、5、6关节,驱动机器人 (2)更加完善和精确. 末端在无负载和外力情况下做4段连续直线运动: 3关节波动摩擦力矩修正实验 P1→P2→P3→P4一→P1.轨迹如图6所示,其各轨迹 点的三维坐标如表2所示,得到的机器人第2关节 3.1获取傅里叶级数函数和神经网络 转角、角速度曲线如图7所示,第2关节的计算力矩 使用SD500E机器人在空载和无外力环境下进 和实际力矩如图8所示,用实际力矩减去计算力矩 行实验,实验平台和数据的获取方法如前文所述. 即得到原始动力学模型下的力矩误差.使用傅里叶 由于实际中机器人第2关节受影响因素较多,力矩 级数函数和神经网络函数计算关节波动摩擦力矩, 变化范围和力矩误差都是最大,且存在明显的力矩 并对原来的计算力矩进行补偿得到新的计算力矩, 误差,所以对机器人第2关节进行实验和验证 用实际力矩减去新的计算力矩即得到修正后的力矩 将机器人第1、3、4、5、6关节的转角分别锁定在 误差.图9为修正前和修正后的力矩误差,图10为 其转角范围的中值位置.采集机器人第2关节在正图9的部分放大图.图9中,关节在换向的时候会 向转速为1°·s-1下的力矩误差曲线,并使用二次傅 出现较大的计算力矩误差,这是由于本文的关节摩 里叶级数函数对其进行拟合,得到傅里叶级数函数 擦采用库伦摩擦和黏性摩擦的静态摩擦模型进行建 (式(6))的具体参数如表1所示.拟合效果如图5 模的缺陷造成的,使用动态摩擦模型8)可以有效减 所示,其中的两条曲线分别为傅里叶级数曲线和波 动摩擦力矩曲线 U.61 表1傅里叶级数参数 0.4 Table 1 Fourier series parameters 0.2 do! a1/b,/ a3/ b,/ 10o/ (N.m)(N.m)(N.m)(N.m)(N.m)(rad.s-1) -0.2 0.00057840.1666-0.02131-0.8926-0.1009162 -0.4 0.6 采集机器人二关节在正向和反向转速在1、2、 0.4 0.2 3、4、5、6、7、8、9和10°s时的关节力矩误差数据, -0.2 0 to0.2 02 0.4 可以得到[q9T]三种数据列.再根据二级傅里 0.4 0.6-0.6 叶级数函数计算相应关节转角q下的F,(q)值,总 图6机器人末端运动轨迹 共可以得到[q9F(q)T]四种数据列,其中, Fig.6 Motion trajectory of the robot extremity
张 铁等: 基于 BP 神经网络的机器人波动摩擦力矩修正方法 网络在少量神经元的情况下拟合波动摩擦力矩. 训 练 BP 神经网络并保留训练后神经网络的 茁ij,兹j,vjt, 酌t 值,则训练完成的神经网络在输入输出关系上相 当于一个有三个自变量的非线性函数: ^Tb = 祝net(q,q · ,Fp (q)) (7) 其中,式(7)表明关节的波动摩擦力矩可以表示为 q,q · ,Fp (q)的函数,该函数关系用 祝net表示. 结合式 (6)和式(7),两个函数共同形成了波动摩擦力矩的 计算模型. 利用这两个函数,便可在机器人运动过 程中计算关节存在的波动摩擦力矩值,由此完善原 来的动力学模型,减少计算力矩与实际力矩间的误 差. 新的动力学模型为 ^Tmod = M^ (q) q ·· + ^C(q,q · ) q · + ^G(q) + fvq · + fc sign( q · ) + 祝net(q,q · ,Fp (q)) (8) 其中,祝net(q,q · ,Fp (q))为把式(7)的方法拓展到所 有关节而得到波动摩擦力矩计算向量, ^Tmod为改进 后的计算力矩. 式(8) 在式(2) ^T 的基础上增加了 波动摩擦力矩的建模结果,其动力学模型相比式 (2)更加完善和精确. 3 关节波动摩擦力矩修正实验 3郾 1 获取傅里叶级数函数和神经网络 使用 SD500E 机器人在空载和无外力环境下进 行实验,实验平台和数据的获取方法如前文所述. 由于实际中机器人第 2 关节受影响因素较多,力矩 变化范围和力矩误差都是最大,且存在明显的力矩 误差,所以对机器人第 2 关节进行实验和验证. 将机器人第 1、3、4、5、6 关节的转角分别锁定在 其转角范围的中值位置. 采集机器人第 2 关节在正 向转速为 1毅·s - 1下的力矩误差曲线,并使用二次傅 里叶级数函数对其进行拟合,得到傅里叶级数函数 (式(6))的具体参数如表 1 所示. 拟合效果如图 5 所示,其中的两条曲线分别为傅里叶级数曲线和波 动摩擦力矩曲线. 表 1 傅里叶级数参数 Table 1 Fourier series parameters a0 / (N·m) a1 / (N·m) b1 / (N·m) a2 / (N·m) b2 / (N·m) w0 / (rad·s - 1 ) 0郾 0005784 0郾 1666 - 0郾 02131 - 0郾 8926 - 0郾 1009 162 采集机器人二关节在正向和反向转速在 1、2、 3、4、5、6、7、8、9 和 10毅·s - 1时的关节力矩误差数据, 可以得到[q q · Tb ]三种数据列. 再根据二级傅里 叶级数函数计算相应关节转角 q 下的 Fp ( q)值,总 共可以得到[q q · Fp (q) Tb ]四种数据列,其中, 图 5 傅里叶级数曲线拟合原始力矩误差曲线 Fig. 5 Fourier curvature fitting of the original torque error curves 前三种数据作为神经网络输入,第四种数据用于神 经网络的目标输出进行训练. 使用 Matlab 的神经网 络工具箱,设计三层结构的 BP 神经网络,并设置 10 个隐层神经元,将所有采样数据用于神经网络进行 离线训练. 保存训练完成的 BP 神经网络及其参数, 由此完成对波动摩擦力矩的建模工作,下面验证该 模型对波动摩擦力矩的修正效果. 3郾 2 验证傅里叶级数函数和神经网络 解锁机器人的第 1、3、4、5、6 关节,驱动机器人 末端在无负载和外力情况下做 4 段连续直线运动: P1寅P2寅P3寅P4寅P1. 轨迹如图 6 所示,其各轨迹 点的三维坐标如表 2 所示,得到的机器人第 2 关节 转角、角速度曲线如图 7 所示,第 2 关节的计算力矩 和实际力矩如图 8 所示,用实际力矩减去计算力矩 即得到原始动力学模型下的力矩误差. 使用傅里叶 级数函数和神经网络函数计算关节波动摩擦力矩, 并对原来的计算力矩进行补偿得到新的计算力矩, 用实际力矩减去新的计算力矩即得到修正后的力矩 误差. 图 9 为修正前和修正后的力矩误差,图 10 为 图 9 的部分放大图. 图 9 中,关节在换向的时候会 图 6 机器人末端运动轨迹 Fig. 6 Motion trajectory of the robot extremity 出现较大的计算力矩误差,这是由于本文的关节摩 擦采用库伦摩擦和黏性摩擦的静态摩擦模型进行建 模的缺陷造成的,使用动态摩擦模型[18] 可以有效减 ·1089·