正在加载图片...
张铁等:基于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·
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有