哈尔滨工业大学机械课程机器人技术课程大作业
机器人大作业

IRB1600型机器人的运动学分析及仿真目录1.引言................................................................................................................ - 2 -1.1 ABB公司简介.................................................................................... - 3 -1.2ABB发展历史 .................................................................................... - 4 -2. IRB1600 ........................................................................................................ - 5 -2.1 IRB1600的资料................................................................................. - 6 -2.2建立基于D-H方法的连杆坐标系 ................................................... - 8 -2.3建立六自由度点焊机器人的运动学方程....................................... - 10 -3. 虚拟样机的建立........................................................................................ - 12 -3.1 导入.................................................................................................. - 12 -3.2 添加约束副...................................................................................... - 13 -3.3 基于ADAMS的机器人运动学仿真 ............................................. - 14 -4. 结语............................................................................................................ - 18 -5. 参考资料.................................................................................................... - 19 -1.引言通过这学期对《机器人技术基础》这门课的学习,我对工业机器人有了一定的了解。
哈工大机器人大作业

一、运动学正解程序及结果1、程序:syms x1x2x3x4x5x6d1d2d4a2a3x d aRx=[1 0 0 0;0 cos(x) -sin(x) 0;0 sin(x) cos(x) 0;0 0 0 1];Rz=[cos(x) -sin(x) 0 0;sin(x) cos(x) 0 0;0 0 1 0;0 0 0 1];Tx=[1 0 0 a;0 1 0 0;0 0 1 0;0 0 0 1];Tz=[1 0 0 0;0 1 0 0;0 0 1 d;0 0 0 1];t=pi/180;y1=90;y2=-90;y3=-90;T01=subs(Rz,x,x1)*subs(Tz,d,d1)*subs(Rx,x,y1*t);T12=subs(Rz,x,x2)*subs(Tz,d,d2)*subs(Tx,a,a2);T23=subs(Rz,x,x3)*subs(Tx,a,a3)*subs(Rx,x,y3*t);T34=subs(Rz,x,x4)*subs(Tz,d,d4)*subs(Rx,x,y4*t);T45=subs(Rz,x,x5)*subs(Rx,x,90);T=T01*T12*T23*T34*T45;t=subs(T,{y1,y3,y4,y5},[pi/2,-pi/2,-pi/2,pi/2]);t= simplify(t);nx=t(1,1);ny=t(2,1);nz=t(3,1);ox=t(1,2);oy=t(2,2);oz=t(3,2);ax=t(1,3);ay=t(2,3);az=t(3,3);px=t(1,4);py=t(2,4);pz=t(3,4);结果:Nx=sin(x2 + x3)*cos(x1)*sin(x5) - cos(x5)*sin(x1)*sin(x4)+cos(x1)*cos(x2)*cos(x3)*cos(x4)*cos(x5) - cos(x1)*cos(x4)*cos(x5)*sin(x2)*sin(x3)Ny=cos(x1)*cos(x5)*sin(x4) + sin(x2 + x3)*sin(x1)*sin(x5)+cos(x2)*cos(x3)*cos(x4)*cos(x5)*sin(x1) - cos(x4)*cos(x5)*sin(x1)*sin(x2)*sin(x3)Nz=sin(x2 + x3)*cos(x4)*cos(x5) - cos(x2 + x3)*sin(x5)Ox=sin(x4)*(cos(x1)*sin(x2)*sin(x3) - cos(x1)*cos(x2)*cos(x3)) - cos(x4)*sin(x1)Oy=cos(x1)*cos(x4) - sin(x4)*(cos(x2)*cos(x3)*sin(x1) - sin(x1)*sin(x2)*sin(x3))Oz=-sin(x2 + x3)*sin(x4)Ax=cos(x1)*cos(x2)*cos(x3)*cos(x4)*sin(x5) - sin(x2 + x3)*cos(x1)*cos(x5) - sin(x1)*sin(x4)*sin(x5) - cos(x1)*cos(x4)*sin(x2)*sin(x3)*sin(x5)Ay=cos(x1)*sin(x4)*sin(x5) - sin(x2 + x3)*cos(x5)*sin(x1) + cos(x2)*cos(x3)*cos(x4)*sin(x1)*sin(x5) - cos(x4)*sin(x1)*sin(x2)*sin(x3)*sin(x5)Az=cos(x2 + x3)*cos(x5) + sin(x2 + x3)*cos(x4)*sin(x5)Px=d2*sin(x1) - d4*(cos(x1)*cos(x2)*sin(x3) + cos(x1)*cos(x3)*sin(x2)) + a2*cos(x1)*cos(x2) + a3*cos(x1)*cos(x2)*cos(x3) - a3*cos(x1)*sin(x2)*sin(x3)Py=a2*cos(x2)*sin(x1) - d2*cos(x1) - d4*(cos(x2)*sin(x1)*sin(x3) + cos(x3)*sin(x1)*sin(x2)) + a3*cos(x2)*cos(x3)*sin(x1) - a3*sin(x1)*sin(x2)*sin(x3)Pz=d1 + d4*cos(x2 + x3) + a3*sin(x2 + x3) + a2*sin(x2)二、绘制工作空间(一)正解1、程序syms x1x2x3x4x5x6d1d2d4a2a3x d aRx=[1 0 0 0;0 cos(x) -sin(x) 0;0 sin(x) cos(x) 0;0 0 0 1];Rz=[cos(x) -sin(x) 0 0;sin(x) cos(x) 0 0;0 0 1 0;0 0 0 1];Tx=[1 0 0 a;0 1 0 0;0 0 1 0;0 0 0 1];Tz=[1 0 0 0;0 1 0 0;0 0 1 d;0 0 0 1];t=pi/180;T01=subs(Rz,x,x1)*subs(Tz,d,d1)*subs(Rx,x,90*t);T12=subs(Rz,x,x2)*subs(Tz,d,d2)*subs(Tx,a,a2);T23=subs(Rz,x,x3)*subs(Tx,a,a3)*subs(Rx,x,-90*t);T34=subs(Rz,x,x4)*subs(Tz,d,d4)*subs(Rx,x,-90*t);T45=subs(Rz,x,x5)*subs(Rx,x,90);T=T01*T12*T23*T34*T45;Px=T(1,4);Py=T(2,4);Pz=T(3,4);k=1;for th1=-160*t:10*t:160*tfor th2=-225*t:10*t:45*tfor th3=-45*t:10*t:225*tpx(k)=subs(Px,{x1,x2,x3,a2,a3,d1,d2,d4},[th1,th2,th3,431.8,20.32, 0,149.09,433.07]);py(k)=subs(Py,{x1,x2,x3,a2,a3,d1,d2,d4},[th1,th2,th3,431.8,20.32, 0,149.09,433.07]);pz(k)=subs(Pz,{x1,x2,x3,a2,a3,d1,d2,d4},[th1,th2,th3,431.8,20.32, 0,149.09,433.07]);k=k+1;endendendplot3(px,py,pz,'.');grid on2、结果俯视图3、总结:1).从图形看出,PUMA工作空间是一个中间为圆柱空心的椭球区域。
哈工大机械原理大作业-连杆

哈工大机械原理大作业-连杆本页仅作为文档页封面,使用时可以删除This document is for reference only-rar21year.MarchHarbin Institute of Technology机械原理大作业一课程名称:机械原理设计题目:连杆运动分析院系:机电工程学院班级:设计者:学号:指导教师:陈明设计时间:2013年6月25日1、运动分析题目在图1-10中所示的干草压缩机中,已知LAB=150mm,LBC=600mm,LCE=120mm,LCD=500mm,LEF=600mm,XD=400mm,YD=500mm,YF=600mm,曲柄1作等速转动,其转速n1=50r/min。
求在一个运动循环中活塞5的位移、速度和加速度的变化曲线。
图1-102、机构的结构分析(1)基本杆组的划分①AB即杆件1为原动件②DECB即杆件2、3为RRR型II级杆组,其中CE为同一构件上点。
③ EF 和滑块即4、5为RRP 型II 级杆组(2)、建立以点A 为原点的固定平面直角系3、确定已知参数和求解流程(1)原动件1(I 级杆组RR )如图所示,已知原动件1的转角 πϕ2~01=原动件杆1的角速度 s rad /236.51=ω原动件1的角加速度01=α运动副A 的位置坐标0,0==A A y x运动副A 的速度0,0==yA xA v v运动副A 的加速度0,0==yA xA a a原动件杆I 的长度mm l 1501=可求出B 的位置B 的速度B 的加速度(2)构件2、3(II 级杆组RRR )D 的位置500400==D D y xD 的速度 0==yD xD v vD 的加速度00==yD xD a a杆长mm l l CD j 500==,mm l l BC i 600== 由关系j j D i i B C l x l x x ϕϕcos cos +=+= j j D i i B C l y l y y ϕϕsin sin +=+= 其中)(20sin cos B D i i i x x l A C B A -==-+ ϕϕ)(2B D i y y l B -=222j BD i l l l C -+=222)()(B D B D BD y y X x l -+-= 可解得C A C B A B i +-++=222arctan 2ϕDC DC j x x y y --=arctan ϕ由上面两个式子可以得到两杆的角速度1)()(G y y s x x c w B D j B D j i i -+-==•ϕ132G s G c Gij i i +==ϕα其中i j j i s c s c G -=1,i i i l c ϕcos =,i i i l s ϕsin =,j j j l c ϕcos =,j j j l s ϕsin =可得E 的位置iB E iB E y y x x ϕϕsin 480cos 480+=+=E 的速度 i i yB E yE i i xB E xE v yv v xv ωϕωϕcos 480sin 480+==-==E 的加速度i i i i xB E xE a xa αϕωϕsin 480cos 4802--== i i i i yB E yE a ya ϕαϕωcos 480sin 4802+-== (3)、构件4、5杆组(II 级杆组RRP )在建立的坐标系中取一参考点K600,0==K K y x 则速度0,0==yK xK v v加速度0,0==yK xK a a杆长mm l EF 600=,设F 位移为s 由s x l x x K i EF E F +=+='cos ϕK i EF E F y l y y =+='sin ϕ由上面两个式子可以得到600600arcsin arcsin'E EF E k i y l y y -=-=ϕ 所以:F 点位移 )600600arcsin(cos 600E E F y x x s -+== 速度F F xv = 加速度F F xa =四、编程计算并输出结果(VB编程)主程序:Private Sub Command1_Click()Dim s5(3600) As DoubleDim v5(3600) As DoubleDim a5(3600) As Double Dim pi As DoubleDim pa As Doublepi = 3.1415926pa = pi / 180Dim i As LongDim f1(3600) As Double Dim RR1 As RRDim RR2 As RRDim RRR1 As RRRDim RRP1 As RRPSet RR1 = New RRSet RR2 = New RRSet RRR1 = New RRRSet RRP1 = New RRPFor i = 0 To 3600 Step 1 f1(i) = i * pa / 10RR1.delt = 0RR1.f = f1(i)RR1.w = 5.24RR1.e = 0RR1.L = 150RR1.xA = 0RR1.yA = 0RR1.vxA = 0RR1.vyA = 0RR1.axA = 0RR1.ayA = 0RR1.calRRR1.Li = 600RRR1.Lj = 500RRR1.xB = RR1.xBRRR1.yB = RR1.yBRRR1.vxB = RR1.vxBRRR1.vyB = RR1.vyBRRR1.axB = RR1.axBRRR1.ayB = RR1.ayBRRR1.xD = 400RRR1.yD = 500RRR1.vxD = 0RRR1.vyD = 0RRR1.axD = 0RRR1.ayD = 0RRR1.M = 1RRR1.calRRRRR2.delt = 0RR2.f = RRR1.fi RR2.w = RRR1.wi RR2.e = RRR1.ei RR2.L = 480RR2.xA = RR1.xB RR2.yA = RR1.yB RR2.vxA = RR1.vxB RR2.vyA = RR1.vyB RR2.axA = RR1.axB RR2.ayA = RR1.ayB RR2.calRRP1.Li = 600RRP1.Lj = 0RRP1.fj = piRRP1.wj = 0RRP1.ej = 0RRP1.xB = RR2.xB RRP1.yB = RR2.yB RRP1.vxB = RR2.vxB RRP1.vyB = RR2.vyB RRP1.axB = RR2.axB RRP1.ayB = RR2.ayB RRP1.xK = 0RRP1.yK = 600RRP1.vxK = 0RRP1.vyK = 0RRP1.axK = 0RRP1.ayK = 0RRP1.M = 1RRP1.cals5(i) = RRP1.ssv5(i) = RRP1.vssa5(i) = RRP1.assNext iPicture1.Scale (-30, 700)-(360, 580)Picture1.Line (0, 0)-(360, 0) 'XPicture1.Line (0, 580)-(0, 700) 'YFor i = 0 To 360 Step 10 'X轴坐标Picture1.DrawStyle = 2Picture1.Line (i, 700)-(i, 580)Picture1.CurrentX = i - 10: Picture1.CurrentY = 0 Picture1.Print iNext iFor i = 580 To 700 Step 10 'Y轴坐标Picture1.DrawStyle = 2Picture1.Line (0, i)-(360, i)Picture1.CurrentX = -10: Picture1.CurrentY = iPicture1.Print iNext iFor i = 0 To 3600 Step 1Picture1.PSet (i / 10, s5(i))Next iEnd SubRR:Public L As DoublePublic f As DoublePublic delt As DoublePublic w As DoublePublic e As DoublePublic xA As DoublePublic yA As DoublePublic vxA As DoublePublic vyA As DoublePublic axA As DoublePublic vxB As DoublePublic vyB As DoublePublic axB As DoublePublic ayB As DoublePublic Sub cal()xB = xA + L * Cos(f + delt)yB = yA + L * Sin(f + delt)vxB = vxA - w * L * Sin(f + delt)vyB = vyA + w * L * Cos(f + delt)axB = axA - w ^ 2 * L * Cos(f + delt) - e * L * Sin(f + delt) ayB = ayA - w ^ 2 * L * Sin(f + delt) + e * L * Cos(f + delt) End SubRRR:Public Li As DoublePublic Lj As DoublePublic fi As DoublePublic fj As DoublePublic wi As DoublePublic wj As DoublePublic ei As DoublePublic ej As DoublePublic xB As DoublePublic yB As DoublePublic vxB As DoublePublic vyB As DoublePublic axB As DoublePublic ayB As DoublePublic xC As DoublePublic yC As DoublePublic vxC As DoublePublic vyC As DoublePublic axC As DoublePublic ayC As DoublePublic xD As DoublePublic yD As DoublePublic vxD As DoublePublic vyD As DoublePublic M As DoublePublic Sub calRRR()Dim fDB As DoubleDim Ci As DoubleDim Cj As DoubleDim Si As DoubleDim Sj As DoubleDim G1 As DoubleDim G2 As DoubleDim G3 As DoubleDim LBD As DoubleDim JCBD As DoubleDim val As Doublepi = 3.1415926LBD = Sqr((xB - xD) ^ 2 + (yD - yB) ^ 2)If LBD < Li + Lj And LBD > Abs(Li - Lj) Thenval = (Li ^ 2 + LBD ^ 2 - Lj ^ 2) / (2 * Li * LBD) JCBD = Atn(-val / Sqr(-val * val + 1)) + 2 * Atn(1) End IfRRP:Public Li As DoublePublic Lj As DoublePublic fi As DoublePublic fj As DoublePublic wi As DoublePublic wj As DoublePublic ei As DoublePublic ej As DoublePublic xB As DoublePublic yB As DoublePublic vxB As DoublePublic vyB As DoublePublic axB As DoublePublic ayB As DoublePublic xK As DoublePublic vyK As DoublePublic axK As DoublePublic ayK As DoublePublic xC As DoublePublic yC As DoublePublic vxC As DoublePublic vyC As DoublePublic axC As DoublePublic ayC As DoublePublic xD As DoublePublic yD As DoublePublic vxD As DoublePublic vyD As DoublePublic axD As DoublePublic ayD As DoublePublic M As SinglePublic ss As DoublePublic vss As DoublePublic ass As DoublePublic Sub cal()Dim A0 As DoubleDim Q1 As DoubleDim Q2 As DoubleDim Q3 As DoubleDim Q4 As DoubleDim Q5 As DoubleDim val As DoubleDim pi As Doublepi = 3.14159216A0 = Lj + ((yK - yB) * Cos(fj) - (xK - xB) * Sin(fj)) val = A0 / Lifi = M * Atn(val / Sqr(-val * val + 1)) + fjxC = xB + Li * Cos(fi)yC = yB + Li * Sin(fi)ss = (xC - xK) * Cos(fj) + (yC - yK) * Sin(fj)xD = xK + ss * Cos(fj)yD = yK + ss * Sin(fj)Q1 = vxK - vxB - wj * (ss * Sin(fj) + Lj * Cos(fj))Q2 = vyK - vyB + wj * (ss * Cos(fj) - Lj * Sin(fj))Q3 = Li * Sin(fi) * Sin(fj) + Li * Cos(fi) * Cos(fj)wi = (-Q1 * Sin(fj) + Q2 * Cos(fj)) / Q3vss = -(Q1 * Li * Cos(fi) + Q2 * Li * Sin(fi)) / Q3vxC = vxB - wi * Li * Sin(fi)vyC = vyB + wi * Li * Cos(fi)vxD = vxK + vss * Cos(fj) - ss * wj * Sin(fj)vyD = vyK + vss * Sin(fj) + ss * wj * Cos(fj)Q4 = axK - axB + wi ^ 2 * Li * Cos(fi) - ej * (ss * Sin(fj) + Lj * Cos(fj)) - wj ^ 2 * (ss * Cos(fj) - Lj * Sin(fj)) - 2 * vss * wj * Sin(fj)Q5 = ayK - ayB + wi ^ 2 * Li * Sin(fi) + ej * (ss * Cos(fj) - Lj * Sin(fj)) - wj ^ 2 * (ss * Sin(fj) + Lj * Cos(fj)) + 2 * vss * wj * Cos(fj)ei = (-Q4 * Sin(fj) + Q5 * Cos(fj)) / Q3ass = (-Q4 * Li * Cos(fi) - Q5 * Li * Sin(fi)) / Q3axC = axB - ei * Li * Sin(fi) - wi ^ 2 * Li * Cos(fi)ayC = ayB + ei * Li * Cos(fi) - wi ^ 2 * Li * Sin(fi)axD = axK + ass * Cos(fj) - ss * ej * Sin(fj) - ss * wj ^ 2 * Cos(fj) - 2 * vss * wj * Sin(fj)ayD = ayK + ass * Sin(fj) + ss * ej * Cos(fj) - ss * wj ^ 2 * Sin(fj) + 2 * vss * wj * Cos(fj)End Sub五、计算结果数据如图:位移曲线:速度曲线:加速度曲线:六、计算结果分析主动件转角为0时,滑块的位移为628mm,随着转角的匀速增加,滑块位移先上升,速度为负快速下降,加速度为负且开始值较小并逐渐下降,到达最低点-2200左右,此时速度为0, 然后位移开始继续下降,速度继续下降,然后到达最小值-100左右,此时加速度为0,又开始上升(向左运动),速度正向增大,在后面一段时期速度继续增大,加速度也正向增大,然后速度下降,加速度下降.滑块分别在4.2s,11.4s速度达到正向最大,1.7s,7.7s速度达到负向最大,0.8s,2.7s,5.8s,9.6s加速度达到极值,滑块就是这样周期性的左右运动。
哈工大机械原理大作业

H a r b i n I n s t i t u t e o f T e c h n o l o g y机械原理大作业一课程名称:机械原理设计题目:连杆机构运动分析院系:机电学院班级: 1208105分析者:殷琪学号:指导教师:丁刚设计时间:哈尔滨工业大学设计说明书1 、题目如图所示机构,一只机构各构件的尺寸为AB=100mm,BC=4.28AB,CE=4.86AB,BE=8.4AB,CD=2.14AB,AD=4.55AB,AF=7AB,DF=3.32AB,∠BCE=139?。
构件1的角速度为ω1=10rad/s,试求构件2上点E的轨迹及构件5的角位移、角速度和角加速度,并对计算结果进行分析。
2、机构结构分析该机构由6个构件组成,4和5之间通过移动副连接,其他各构件之间通过转动副连接,主动件为杆1,杆2、3、4、5为从动件,2和3组成Ⅱ级RRR基本杆组,4和5组成Ⅱ级RPR 基本杆组。
如图建立坐标系3、各基本杆组的运动分析数学模型1) 位置分析2) 速度和加速度分析 将上式对时间t 求导,可得速度方程:将上式对时间t 求导,可得加速度方程:RRR Ⅱ级杆组的运动分析如下图所示 当已知RRR 杆组中两杆长L BC 、L CD 和两外副B 、D 的位置和运动时,求内副C的位置、两杆的角位置、角运动以及E 点的运动。
1) 位置方程由移项消去j ϕ后可求得i ϕ:式中,可求得j ϕ:E 点坐标方程:其中2) 速度方程两杆角速度方程为式中,点E 速度方程为3) 加速度方程两杆角加速度为式中,点E 加速度方程为RPR Ⅱ级杆组的运动分析(1) 位移方程(2)速度方程其中(3)加速度方程4、 计算编程利用MATLAB 软件进行编程,程序如下:% 点B 和AB 杆运动状态分析>>r=pi/180;w 1=10;e 1=0;l 1=100;Xa=0;Ya=0;Vax=0;Vay=0;aax=0;aay=0;f1=0:1: 360;% B 点位置Xb=Xa+l1*cos(r*f1);Yb=Ya+l1*sin(r*f1);% B点速度Vbx=Vax-w1*l1*sin(r*f1);Vby=Vay+w1*l1*cos(r*f1);% B点加速度abx=aax-l1*w1.^2.*cos(r*f1);aby=aay-l1*w1.^2.*sin(r*f1);% RRR2级杆组运动分析% 输入D点参数l2=428;l3=214;Xd=455;Yd=0;Vdx=0;Vdy=0;adx=0;ady=0;% 计算E点、2杆、3杆运动参数lbe=840;lce=486;a0=2*l2*(Xd-Xb);b0=2*l2*(Yd-Yb);c0=l2^2+(Xb-Xd).^2+(Yb-Yd).^2-l3^2;f2=2*atan((b0+sqrt(a0.^2+b0.^2-c0.^2))./(a0+c0)); % C点位置Xc=Xb+l2*cos(f2);Yc=Yb+l2*sin(f2);% 2杆、3杆运动参数计算dX=Xc-Xd;dY=Yc-Yd;for n=1:length(dX)if dX(n)>0&dY(n)>=0f3(n)=atan(dY(n)/dX(n));elseif dX(n)==0&dY(n)>0f3(n)=pi/2;elseif dX(n)<0&dY(n)>=0f3(n)=pi+atan(dY(n)/dX(n));elseif dX(n)<0&dY(n)<0f3(n)=pi+atan(dY(n)/dX(n));elseif dX(n)==0&dY(n)<0f3(n)=1.5*pi;elseif dX(n)>0&dY(n)<0f3(n)=2*pi+atan(dY(n)/dX(n));endendC2=l2*cos(f2);C3=l3*cos(f3);S2=l2*sin(f2);S3=l3*sin(f3);G1=C2.*S3-C3.*S2;w2=(C3.*(Vdx-Vbx)+S3.*(Vdy-Vby))./G1;w3=(C2.*(Vdx-Vbx)+S2.*(Vdy-Vby))./G1;G2=adx-abx+(w2.^2).*C2-(w3.^2).*C3;G3=ady-aby+(w2.^2).*S2-(w3.^2).*S3;e2=(G2.*C3+G3.*S3)./G1;% E点位置w=acos((l2^2+lbe^2-lce^2)/(2*l2*lbe));Xe=Xb+lbe*cos(f2-w);Ye=Yb+lbe*sin(f2-w);Vex=Vbx-lbe*w2.*sin(f2-w);Vey=Vby+lbe*w2.*cos(f2-w);aex=abx-lbe*(e2.*sin(f2-w)+w2.^2.*cos(f2-w));aey=aby+lbe*(e2.*cos(f2-w)-w2.^2.*sin(f2-w));% 计算杆5运动参数Xf=646.2912088;Yf=-268.9008617;l5=sqrt((Xe-Xf).^2+(Ye-Yf).^2);dX=Xe-Xf;dY=Ye-Yf;for n=1:length(dX)if dX(n)>0&dY(n)>=0f5(n)=atan(dY(n)/dX(n));elseif dX(n)==0&dY(n)>0f5(n)=pi/2;elseif dX(n)<0&dY(n)>=0f5(n)=pi+atan(dY(n)/dX(n));elseif dX(n)<0&dY(n)<0f5(n)=pi+atan(dY(n)/dX(n));elseif dX(n)==0&dY(n)<0f5(n)=1.5*pi;elseif dX(n)>0&dY(n)<0f5(n)=2*pi+atan(dY(n)/dX(n));endendw5=(-Vex.*sin(f5)+Vey.*cos(f5))./l5;a5=(-aex.*sin(f5)+aey.*cos(f5))./l5;% 画出各参数曲线figure(1);plot(Xe,Ye,'k');xlabel('Xe/\mm');ylabel('Ye/mm');grid on;title('E点位置');figure(2);plot(f1,f5,'k');xlabel('f/\circ');ylabel('f5/\circ');grid on;title('5杆角位移');figure(3);plot(f1,w5,'k');xlabel('f/\circ');ylabel('w5/rad/s');grid on;title('5杆角速度');figure(4);plot(f1,a5,'k');xlabel('f/\circ');ylabel('a5/rad/s2');gridon;title('5杆角加速度');Warning: Unable to interpret TeX string "Xe/\mm"5、计算结果图一:E点的运动轨迹图二:5杆角位移图三:5杆角速度图四:5杆角加速度6、计算结果分析由E点位置图像可看出,构件4做周期往复运动,由图二、三、四可看出,构件5的角位移、角速度、角加速度均成周期性变化。
哈工大机械原理大作业

H a r b i n I n s t i t u t e o f T e c h n o l o g y大作业设计说明书课程名称:机械原理设计题目:凸轮机构院系:机电学院班级:姓名:学号:指导教师:丁刚设计时间:2014.5.29哈尔滨工业大学1.设计题目第31题:升程/mm 升程运动角/。
升程运动规律升程许用压力角/。
回程运动角/。
回程运动规律回程许用压力角/。
远休止角/。
近休止角/。
150 90 等加等减速40 80 余弦加速度70 40 1502.运动方程式及运动线图由题目要求凸轮逆时针旋转(1)确定凸轮机构推杆升程、回程运动方程,并绘制推杆位移、速度、加速度线图。
升程第一段:(0 <φ< pi /4)φ0=pi/2;s1 = 73*φ^2;v1=146*w*φ;a1 = 146*w^2;升程第二段:(pi/4 <φ< pi /2)s2 =90-73*(pi/2-φ)^2;v2=146*w*( pi/2-φ);a2 =-146*w.^2;远休止程:(pi/2 <φ< 10*pi/9)s3 = 90;v3 = 0;a3 = 0;回程:(10*pi/9)< φ< ( 14*pi/9)s4 =45*(1+cos(9/4*(φ-10*pi/9)));v4 =-101.25*w*sin(9/4*(φ-10*pi/9)) ;a4 =-227.8*w^2* cos(9/4*(φ-10*pi/9)); 近休止程:(14*pi/9)< φ < ( 2*pi);s5 =0;v5 =0;a5 =0;1.由上述公式通过编程得到位移、速度、加速度曲线如下:(编程见附录).基圆半径为r0 = (50^2+100^2)0.5=112mm,偏距e = 50mm。
3.凸轮实际轮廓,理论轮廓,基圆,偏距圆绘制4.整体图像附录1.求位移、速度、加速度的程序(matlab)w = input('请输入W=');x = 0:(pi/1000):(pi/4);s1 = 73*x.^2;v1=146*w*x;a1 = 146*w.^2;y = (pi/4):(pi/1000):(pi/2);s2 =90-73*(pi/2-y).^2;v2=146*w*( pi/2-y);a2 =-146*w.^2;z = (pi/2 ):(pi/1000):(10*pi/9);s3 = 90;v3 = 0;a3 = 0;c = (10*pi/9):(pi/1000):( 14*pi/9);s4 =45*(1+cos(9/4*(c-10*pi/9)));v4 =-101.25*w*sin(9/4*( c-10*pi/9)) ;a4 =-227.8*w.^2* cos(9/4*(c-10*pi/9));d=(14*pi/9):(pi/1000):( 2*pi);s5 =0; v5 =0; a5 =0;subplot (2,2,1)plot(x,s1,'b',y,s2,'b',z,s3,'b',c,s4,'b', d,s5,'b');xlabel('转角/rad')ylabel('位移/(mm/s)')title('位移与转角曲线')grid onsubplot (2,2,2)plot(x,v1,'g',y,v2,'g',z,v3,'g ',c,v4,'g', d,v5,'g')ds4 =45*9/4*sin(9/4*(c-10*pi/9));d=(14*pi/9):(pi/1000):( 2*pi);s5 =0;ds5 =0;plot(ds1,s1,'b',ds2,s2,'b',ds3,s3,'b',ds4,s4,'b',ds5,s5,'b'); xlabel('ds/dp');ylabel('(位移s/mm)')title('ds/dp 与位移s曲线')grid onhold onx3=-150:0.001:0;y3 = 0.577*x3;plot (x3,y3,'r');hold onx1=-150:0.001:150;for i=1:1:250;k1=(s1(i+1)-s1(i))/ (ds1(i+1)-ds1(i));if(k1>=-1.733 && k1<=-1.731)y1=k1*(x1-ds1(i))+s1(i);plot (x1,y1,'r');end3.确定滚子半径(1)先求凸轮理论轮廓曲线,程序如下:Clc;clear;w = input('请输入w=');s0 = 100;s = 90;e = 50; x = 0:(pi/100):(pi/4);x1 = (s + s0)*cos(x)-e*sin(x);y1 = (s0 + s)*sin(x) - e*cos(x);y = (pi/4):(pi/100):(pi/2);x2 = (s + s0)*cos(y)-e*sin(y);y2 = (s0 + s)*sin(y) - e*cos(y);z = (pi/2 ):(pi/100):(10*pi/9);x3 = (s + s0)*cos(z)-e*sin(z);y3 = (s0 + s)*sin(z) - e*cos(z);c = (10*pi/9):(pi/1000):( 14*pi/9);x4 = (s + s0)*cos(c)-e*sin(c);y4 = (s0 + s)*sin(c) - e*cos(c);d=(14*pi/9):(pi/1000):( 2*pi);x5 = (s + s0)*cos(d)-e*sin(d);y5 = (s0 + s)*sin(d) - e*cos(d);plot(x1,y1,'b',x2,y2,'b',x3,y3,'b',x4,y4,'b',x5,y5,'b');xlabel('x/mm')ylabel('y/mm')title('理论轮廓曲线')grid on(2)理论轮廓线最小曲率半径编程代码:由下程序结果可知pmin =81.6667这里滚子半径为 r r < pmin-ΔΔ=3~5mm;取r r=10mm;clear;clc;v=[];syms x1 x2 x3 x4 x5s0 = 100;e = 50;s1 = 73*x1.^2;t1 = (s1 + s0)*cos(x1)-e*sin(x1);y1 = (s0 + s1)*sin(x1) - e*cos(x1);tx1=diff(t1,x1);txx1=diff(t1,x1,2);yx1=diff(y1,x1);yxx1=diff(y1,x1,2);for xx1= 0:(pi/100):(pi/4);k1=subs(abs((tx1*yxx1-txx1*yx1)/(tx1^2+yx1^2)^1.5),{x1},{xx1}); v=[v,1/k1];ends2 =90-73*(pi/2-x2).^2;t2 = (s2 + s0)*cos(x2)-e*sin(x2);y2 = (s0 + s2)*sin(x2) - e*cos(x2);tx2=diff(t2,x2);txx2=diff(t2,x2,2);yx2=diff(y2,x2);yxx2=diff(y2,x2,2);for xx2=(pi/4):(pi/100):(pi/2);k2=subs(abs((tx2*yxx2-txx2*yx2)/(tx2^2+yx2^2)^1.5),{x2},{xx2});k4=subs(abs((tx4*yxx4-txx4*yx4)/(tx4^2+yx4^2)^1.5),{x4},{xx4}); v=[v,1/k4];ends5 =0;t5 = (s5 + s0)*cos(x5)-e*sin(x5);y5 = (s0 + s5)*sin(x5) - e*cos(x5);tx5=diff(t5,x5);txx5=diff(t5,x5,2);yx5=diff(y5,x5);yxx5=diff(y5,x5,2);for xx5=(10*pi/9):(pi/100):( 4*pi/3);k5=subs(abs((tx5*yxx5-txx5*yx5)/(tx5^2+yx5^2)^1.5),{x5},{xx5}); v=[v,1/k5];endpmin=min(v)4.绘制凸轮轮廓曲线clear ;clc;syms x y z c dw= input('请输入w=');n3 = diff(x3);m3 = diff(y3);xt3= subs(x3 + (r*m3)./sqrt(m3.^2+n3.^2),z,zz);yt3 = subs(y3 - (r*n3)./sqrt(m3.^2+n3.^2),z,zz);cc= (10*pi/9):(pi/1000):( 14*pi/9);s4 =45*(1+cos(9/4*(c-10*pi/9)));x4 = (s4 + s0).*cos(c)-e*sin(c);y4 = (s0 +s4).*sin(c) - e*cos(c);n4 = diff(x4);m4 = diff(y4);xt4= subs(x4 + (r*m4)./sqrt(m4.^2+n4.^2),c,cc);yt4 =subs( y4 - (r*n4)./sqrt(m4.^2+n4.^2),c,cc);dd=(14*pi/9):(pi/1000):( 2*pi);s5 =0;x5 = (s5 + s0).*cos(d)-e*sin(d);y5 = (s0 +s5).*sin(d) - e*cos(d);n5 = diff(x5);m5 = diff(y5);xt5= subs(x5 + (r*m5)./sqrt(m5.^2+n5.^2),d,dd);yt5 =subs( y5 - (r*n5)./sqrt(m5.^2+n5.^2),d,dd);plot(xt1,yt1,'b',xt2,yt2,'b',xt3,yt3,'b',xt4,yt4,'b',xt5,yt5,'b')for i=1:3601if yy(1,i)<=y0/2s(1,i)=2*h*(yy(i)./y0).^2;v(1,i)=4*h*w*yy(i)./(y0.^2);a(1,i)=4*h*w.^2./(y0.^2);elseif yy(1,i)>y0/2 && yy(1,i)<y0s(1,i)=h-2*h./y0.^2.*(y0-yy(i)).^2;v(1,i)=4*h*w*(y0-yy(i))./(y0.^2);a(1,i)=-4*h*w.^2./(y0.^2);elseif yy(1,i)>=y0 && yy(1,i)<y0+yss(1,i)=h;v(1,i)=0;a(1,i)=0;elseif yy(1,i)>=y0+ys && yy(1,i)<y0+ys+y01s(1,i)=h/2*(1+cos(pi/y01*(yy(1,i)-y0-ys)));v(1,i)=-pi*h*w/2/y01*sin(pi/y01*(yy(1,i)-y0-ys));a(1,i)=-pi^2*h*w^2/2/y01^2*cos(pi/y01*(yy(1,i)-y0-ys)); elseif yy(1,i)>=y0+ys+y01 && yy(1,i)<=360s(1,i)=0;v(1,i)=0;a(1,i)=0;subplot(2,3,5) ;plot(x,y,'r',xt,yt,eex,eey,'g',r0x,r0y,'k')%画图title('实际理论轮廓线')axis equal%使坐标轴比例相等grid on%画网格线。
哈工大机械原理大作业3

Harbin Institute of Technology机械原理大作业三课程名称:设计题目:院系:班级:设计者:学号:指导教师:设计时间:哈尔滨工业大学大作业3 齿轮传动设计 1、设计题目1.1机构运动简图1.2机械传动系统原始参数2、传动比的分配计算由已知条件,电动机转速n=1450r/min ,输出转速n 1=27 r/min ,n 2=31 r/min ,n 3=37 r/min ,带传动最大传动比max p i =2.5,滑移齿轮传动最大传动比=4,定轴齿轮传动最大 传动比=4。
可求得:传动系统的总传动比为:11n ni == 1450/27=53.70322n ni == 1450/31=46.774 33n ni == 1450/37=39.189 传动系统的总传动比分别由带传动、滑移齿轮传动和定轴齿轮传动三部分实现。
设带传的传送比为其最大传送比5.2max =p i ,滑移齿轮的传动比为321,,v v v i i i ,定轴齿轮传动的传动比为f i ,则总传动比由于1i > 2i > 3i ,故取1max 4v v i i ==则定轴齿轮传动部分的传动比为1max max5.37f p v i i i i ==滑移齿轮传动的传动比22max3.49v f p i i i i ==33m a x2.92v f p i i i i ==定轴齿轮传动由3对齿轮传动组成, 每对齿轮的传动比为:1.754d i ==≤3、齿轮齿数的确定滑移齿轮齿数3=v i 65622.9521z z == 2=v i 8766 3.4719z z ==1=v i 10967 3.9417z z ==齿轮7,齿轮8:719z = 866z =781()852a m z z =+=齿轮9,齿轮10:917z =1067z =此时已知条件为'a =85mm ,910211()842()ni i a m z z X X ==+=-∑mm ''arccos(cos )21.78a aαα==总变位系数:'910()0.552tan z z x inv inv ααα∑+=-=根据x ∑值和1093.94 3.0z uz ==>,按选择变位系数线图左部斜线⑤分配变位系数,得90.45x =齿轮5,齿轮6:5=21z662z =此时已知'a =85mm ,561()832a m z z =+= ''arccos(cos )23.42a a αα==100.10x =总变位系数:'65() 1.082tan z z x inv inv ααα∑+=-=根据x ∑值和652.953z u z ==>,按选择变位系数线图左部斜线④分配变位系数,得 50.5x =60.58x =定轴圆柱齿轮齿数=d i 1214111326 1.5317z z z z ===齿轮11,齿轮12:角度变位正传动。
哈工大机械原理大作业直动从动件盘形凸轮机构满分完美版哈尔滨工业大学

end
%曲率半径
dx=diff(x);
dx(36001)=0;
dy=diff(y);
dy(36001)=0;
dydx=dy./dx;
ddy=diff(dydx);
ddy(36001)=0;
ddy=ddy./dx;
~7~
xlabel('凸轮转角φ/°');
ylabel('从动件加速度 a/(mm/s^2)');
title('加速度');
subplot(2,3,4);
plot(dsdPhi,s);
axis equal
axis([-30 50 -50 30]);
hold on
plot(x1,f1,'r');
hold on
axis equal
hold on
plot(x,y,'k')
legend('理论廓线',-1);
hold on
%轮廓图
%实际廓线
%理论廓线
~8~
哈尔滨工业大学
直动从动件盘型凸轮机构设计说明书
plot(x0,y0,':')
hold on
%基圆
plot(xe,ye,'k:')
%偏距圆
legend('实际廓线','理论廓线','基圆','偏距圆',-1);
subplot(2,3,1);
plot(Phi,s);
grid on
axis([0 360 0 27]);
哈工大PUMA机器人大作业

2017 年秋季学期研究生课程考核(读书报告、研究报告)考核科目:机器人技术:机电学院学生所在院(系)学生所在学科:机械电子学生姓名:王学号:17S学生类别:学硕考察结果:阅卷人:PUMA 机器人正逆运动学推导及运动空间解算图1 PUMA 机器人模型任务:1.建立坐标系;2.给出D-H参数表;3.推导正、逆运动学;4.编程得工作空间。
一、 建立坐标系根据PUMA 机器人运动自由度,在各关节处建立坐标系如图2所示。
图2 PUMA 机器人坐标系建立图其中0O ∑与1O ∑原点交于一点, 4O ∑与5O ∑原点交于一点。
二、 D-H 参数表D-H 参数表可根据坐标系设定而得出,见表1。
1) i θ为绕1i Z -轴,从1i X -到i X 的角度; 2) i a 为绕i X 轴,从1i Z -到i Z 的角度; 3) i l 为沿i X 轴,从1i Z -与i X 交点到i O 的距离; 4) i d 为沿1i Z -轴,从1i Z -与i X 到1i O -的距离。
表1 PUMA 机器人杆件参数表三、 正运动学推导由坐标系及各杆件参数可得到6个连杆变换矩阵。
111101cos 0sin 0sin 0cos 001000001T θθθθ-⎡⎤⎢⎥⎢⎥=-⎢⎥⎢⎥⎣⎦ 22222222122cos sin 0cos sin cos 0sin 0010001a a T d θθθθθθ-⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎣⎦3333333323cos 0sin cos sin 0cos sin 01000001a a T θθθθθθ-⎡⎤⎢⎥⎢⎥=-⎢⎥⎢⎥⎣⎦ 4444344cos 0sin 0sin 0cos 00100001T d θθθθ-⎡⎤⎢⎥⎢⎥=-⎢⎥⎢⎥⎣⎦555545cos 0sin 0sin 0cos 001000001T θθθθ⎡⎤⎢⎥-⎢⎥=-⎢⎥⎢⎥⎣⎦ 6666566cos sin 00sin cos 000010001T d θθθθ-⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎣⎦根据各连杆变换矩阵相乘,可以得到PUMA 机械手变换矩阵,其矩阵为关节变量的函数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
机器人技术课程作业——PUMA机器人如上图所示的PUMA机器人,要求实现右图所示的运动,求解:①建立坐标系;②给出D-H参数表;③推导正运动学、逆运动学;④编程得出工作空间。
解:①建立坐标系a、建立原始坐标系b、坐标系简化②给出D-H参数表a、PUMA机器人的杆件参数d0.6604m,1 d 0.14909m,2d 0.43307m,4d 0.05625m6a 0.4318m,a3 0.02032m2b、D-H参数表关节i i i Lid i 运动范围1 90 0 0 0 -160o~160oo o2 0 -90 0 d2 0.14909m -225~453 -90 0 a2 0.4318m 0 -45o ~225o4 0 -90 a3 0.02032m d4 0.43307m -110o ~170o5 0 90 0 0 -100 o ~100o6 0 -90 0 d6 0.05625m -266 o ~266o③推导正运动学、逆运动学a、正运动学推导c s0ai i i1由式i1Ti s c c c s d si i1i i1i1i i1s s c s c d ci i1i i1i1i i1可得:0001c s 1100c s2200c s0a3320 T1s c001100101T2001d2s c22002T3s c00330010 000100010001c s0a443c s5500c s66003 T4001d4s c44004T50010s c55005T60010s c6600 000100010001由0012345T T T T T T T,得机械手变换矩阵:6123456n o a px x x x0 T6n o a p y y y yn o a p z z z z0001n c(c c c c s s c)s c s c c c s s s c s x236541641236516541641 n c(c c c s s s s)s c s s c c s c s c c y236541641236516541641n s(c c c s s)c c sz23654642365o c(s c c c c s c)s s s c s c s s c c s x236541641236516541641 o c(s c c s c s s)s s s s s s c c c c c y236541641236516451641o s(s c c s s)c c sz23654642365a c s c c s c c s s sx235412351541a c s c s s c s s s cy235412351541a c c s s cz2352354p a c c a c c d s c d s x3231221423121 p a c s a c s d s s d c y3231221423121p d c a s a sz42332322b、逆运动学推导1).求1用逆变换01T左乘方程10012345T T T T T T T两边:612345601012345T T T T T T T1623456c s00n o a p11x x x xs c00n o a p11y y y y1T60010n o a pz z z z00010001得s p c p d1x1y2三角代换p cos,sinp xy式中,22p p,tan2(,)a p px y x y得到1的解2221a tan2(p y,p x)a tan2(d2,p x p y d2)2).求3矩阵方程两端的元素(1,4)和(2,4)分别对应相等c p s p a c a cd s1x1y32322423p d c a s a sz42332322平方和为:d s a c k4333其中k2222222 p p p d d a a x y z24232a2解得:222 3a tan2(a3,d4)a tan2(k,d4a3k)3).求2在矩阵方程0012345T T T T T T T两边左乘逆变换612345601 T。
3010345T T T T T36456c c sc s a c n o a p1231232323x x x xc s s s c a s n o a p1231232323y y y y3T6s c d n o a p1102z z z z00010001方程两边的元素(1,4)和(3,4)分别对应相等,得c c p s c p s p a a c123x123y23z323c s p s s p c p a s d123x123y23z234联立,得s和c2323a s d c p s p p a c a2341x1y z233s2322p c p s px1y1za c a c p s p p a s d2331x1y z234c2322p c p s px1y1zs和c23表达式的分母相等,且为正,于是232323a tan2a2s3d4c1p x s1p y p z a2c3a3,a2c3a3c1p x s1p y p z a2s3d4根据解1和3的四种可能组合,可以得到相应的四种可能值23,于是可得到2的四种可能解:2233,式中2取与3相对应的值。
4.求4令两边元素(1,3)和(2,3)分别对应相等,则可得c c a sc a s a c s123x123y23z45s a c a s s1x1y45只要s,便可求出4504a tan2s1a x c1a y,c1c23a x s1c23a y s23a z 当s50时,机械手处于奇异形位。
5.求501045T T T T4656c c c s s s c c c s s c c c ad s c a n o a p1 4 23 1 4 1 4 23 1 4 23 4 3 42 2 4 43 x x x xs c c sc s s c c c s s c s a d c s a n o a p4 1 23 1 4 4 1 23 1 4 23 4 3 4 2 2 4 4 3 y y y y 4T6c s s s c s ad n o a p1 23 1 23 23 32 4 z z z z0 0 0 1 0 0 0 1根据矩阵两边元素(1,3)和(2,3)分别对应相等,可得a s c a c c c s s a s c c c s sz 23 4 x 1 4 23 1 4 y 1 4 23 1 4 5a c s a s s a c cx 1 23 y 23 1 z 23 55 a tan 2 a z s23c4 a x c1c4 c23 s1s4 a y s1c4c23 c1s4 , a x c1 s23 a y s23 s1 a z c236.求60 1 0 5T T T5 6 6根据矩阵两边元素(2,1)和(1,1)分别对应相等,可得n c s c s c n s s c c c n s s sx 1 4 23 1 4 y 4 1 23 1 4 z 23 4 6n c c c c s c s c s s n c s c c s s s s c c n s c c s s c x 1 4 5 23 1 5 4 1 5 23 y 4 1 5 23 1 5 23 4 1 5 z 5 23 4 5 23 6 从而求得:6atan2 s6,c6④编程得出工作空间a、已知条件可以将连杆 6 的原点做为机器人的动点,连杆 6 原点相对于坐标系0 就是0T 的p x 、p y 、p z ,已知:6p a c c a c c d s c d sx 3 23 1 2 2 1 4 23 1 2 1p a c s a c s d s s d cy 3 23 1 2 2 1 4 23 1 2 1p d c a s a sz 4 23 3 23 2 2b、Matlab程序clc,clearlength2=431.8;length3=20.32;d2=149.09;d4=433.07;a=pi/180;for a1=-160*a:20*a:160*a for a2=-225*a:20*a:45*a a3=-45*a:20*a:225*a****** for k=1:length(a3)px(k)=cos(a1)*(length2*cos(a2)+length3*cos(a2+a3(k))-d4*sin(a2+a3(k)))-d2*sin(a1)py(k)=sin(a1)*(length2*cos(a2)+length3*cos(a2+a3(k))-d4*sin(a2+a3(k)))+d2*cos(a1)pz(k)=-a3(k)*sin(a2+a3(k))-length2*sin(a2)-d4*cos(a2+a3(k))endplot3(px,py,pz),title(' 机器人的工作空间'),xlabel('xmm'),ylabel('y mm'),zlabel('z mm')hold ongrid onendendc、机器人工作空间。