两自由度机械手动力学问题 下载本文

两自由度机械手动力学问题

1题目

图示为两杆机械手,由上臂AB、下臂BC和手部C组成。在A处和B处安

装有伺服电动机,分别产生控制力矩M1和M2。M1带动整个机械手运动,M2带动下臂相对上臂转动。假设此两杆机械手只能在铅垂平面内运动,两臂长为l1和l2,自重忽略不计,B处的伺服电动机及减速装置的质量为m1,手部C握持重物质量为m2,试建立此两自由度机械手的动力学方程。

图1

图2

2数值法求解

2.1拉格朗日方程

此两杆机械手可以简化为一个双摆系统,改双摆系统在B、C出具有质量m1,m2,在A、B处有控制力矩M1和M2作用。考虑到控制力矩M2的作用与杆2相对杆1的相对转角θ2有关,故取广义力矩坐标为

q1??1,q2??2

系统的动能为二质点m1、m2的动能之和,即

由图2所示的速度矢量关系图可知

以A处为零势能位置,则系统的势能为

由拉格朗日函数,动势为:

广义力Q1?M1,Q2?M2

求出拉格朗日方程中的偏导数,即

代入拉格朗日方程式,整理得:

2.2 给定条件

(1)角位移运动规律

?1?t???0.1163*t3?0.52335*t2,?2?t???0.1163*t3?0.52335*t2

?1和?2都是从0到90°,角位移曲线为三次函数曲线。 (2)质量

m1=4㎏ m2=5kg (3)杆长

l1=0.5m l2=0.4m

2.3 MATLAB程序

t=0:0.1:3;

theta1=-0.1163*t.^3+0.52335*t.^2; w1=-0.3489*t.^2+1.0467*t; a1=-0.6978*t+1.0467;

theta2=-0.1163*t.^3+0.52335*t.^2; w2=-0.3489*t.^2+1.0467*t; a2=-0.6978*t+1.0467;

m1=4; m2=5; l1=0.5; l2=0.4; g=9.8;

D11=(m1+m2)*l1.^2+m2*l2.^2+2*m2*l1*l2*cos(theta2); D22=m2*l2.^2;

D12=m2*l2.^2+m2*l1*l2*cos(theta2); D21=m2*l2.^2+m2*l1*l2*cos(theta2); D111=0;

D122=-m2*l1*l2*sin(theta2); D222=0;

D211=m2*l1*l2*sin(theta2); D112=-m2*l1*l2*sin(theta2); D121=-m2*l1*l2*sin(theta2); D212=0; D221=0;

D1=(m1+m2)*g*l1*sin(theta1)+m2*g*l2*sin(theta1+theta2);

D2=m2*g*l2*sin(theta1+theta2);

M1=D11.*a1+D12.*a2+D111.*w1.^2+D122.*w2.^2+D112.*w1.*w2+D121.*w2.*w1+D1; M2=D21.*a2+D22.*a2+D211.*w1.^2+D222.*w2.^2+D212.*w1.*w2+D221.*w2.*w1+D2; T1=polyfit(t,M1,3) T2=polyfit(t,M2,3)

subplot(2,1,1),plot(t,M1),grid on,xlabel('时间(s)'),ylabel('控制力矩(N·m)'),title('motion1') subplot(2,1,2),plot(t,M2),grid on,xlabel('时间(s)'),ylabel('控制力矩(N·m)'),title('motion2')

2.4 数值计算结果

M1?t???3.5685*t3?3.7329*t2?31.7993*t?1.6167 M2?t???0.0679*t3?8.9481*t2?25.9801*t?1.5449

图3 M1变化规律图

图4 M2变化规律图

3 ADAMS仿真

3.1模型建立

图5 模型图

3.2 施加运动

在两个关节处分别施加位移函数

图6 关节运动施加图

位移函数为:step(time,0,0,3,pi/2) 运动规律如下图所示:

图7 关节处运动规律图

3.3 运动仿真

设置仿真时间为3s,步数为300步,仿真结果如下图所示:

图8 关节1处控制力矩仿真结果图

图9 关节2处控制力矩仿真结果图

4 结果对比

图10 控制力矩M1结果对比图

图11 控制力矩M2结果对比图

从函数规律上看,两种求解方法得出的结果几乎一样;

从数值上看:

表1 控制力矩M1数值结果对比

t 0 0.5 14.3348 14.5646 1.0 33.4367 33.5798

表2 控制力矩M2数值结果对比

t 数值计算M2 仿真求解M2

0 2.7214 2.8599 0.5 6.3496 6.4585 1.0 15.3227 15.3897 1.5 2 2.5 3.5374 3.4113 3.0 -1.6462 -1.7970 20.0356 14.0218 20.0495 13.9655 1.5 49.4650 49.5093 2 51.6557 51.5775 2.5 3.0 数值计算M1 7.1699 仿真求解M1 7.4526 44.8470 40.0971 44.6398 39.8039 由上两表可以看出:数值计算结果与仿真求解结果相差很小,误差范围为0.437%-0.731%,出现这种结果的原因可能是因为两种方法计算的精度不同,或者是算法存在差异。如果对结果精度要求不是很高,可以认为两种方法求得的结果相等,进一步说明了仿真计算的可靠性。