两自由度机械手动力学问题
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%,出现这种结果的原因可能是因为两种方法计算的精度不同,或者是算法存在差异。如果对结果精度要求不是很高,可以认为两种方法求得的结果相等,进一步说明了仿真计算的可靠性。