Harbin Institute of Technology机械原理大作业二课程名称:机械原理设计题目:凸轮机构设计姓名:李清蔚学号:04班级:1408103指导教师:林琳一.设计题目设计直动从动件盘形凸轮机构,其原始参数见表1表一:凸轮机构原始参数二.凸轮推杆运动规律(1)推程运动规律(等加速等减速运动)推程 F 0=90°① 位移方程如下:② 速度方程如下:③ 加速度方程如下:(2)回程运动规律(4-5-6-7多项式)回程 00240190≤≤ϕ,F 0=90°,F s =100°,F 0’=50° 其中回程过程的位移方程,速度方程,加速度方程如下:三.运动线图及凸轮s d ds -φ线图 本题目采用Matlab 编程,写出凸轮每一段的运动方程,运用Matlab 模拟将凸轮的运动曲线以及凸轮形状表现出来。
代码见报告的结尾。
1、程序流程框图2、运动规律ds 图像如下:速度规律dv 图像如下:加速度da 规律如下图:3.凸轮的基圆半径和偏距以ds/df ψ-s 图为基础,可分别作出三条限制线(推程许用压力角的切界限D t d t ,回程许用压力角的限制线D t 'd t ',起始点压力角许用线B 0d ''),以这三条线可确定最小基圆半径及所对应的偏距e,在其下方选择一合适点,即可满足压力角的限制条件。
得图如下:得最小基圆对应的坐标位置O 点坐标大约为(13,-50) 经计算取偏距e=13mm ,r0=51.67mm.2.绘制理论轮廓线上的压力角曲线和曲率半径曲线针对凸轮转向及推杆偏置,令N1=1凸轮逆时针转;N2=1偏距为正。
压力角数学模型:曲率半径数学模型:其中:曲率半径以及压力角的图像如下图:压力角图像:曲率半径图像:3.凸轮理论廓线和实际廓线 输出凸轮的构件形状结束理论廓线数学模型:凸轮实际廓线坐标方程式:其中R0为确定的滚子半径,令R0=15mm利用Matlab程序写出凸轮的理论廓线和实际廓线以及基圆、偏距圆的曲线方程,并且进行模拟,可以得出如下凸轮图像:*附页相关程序代码:①位移曲线phi1=linspace(0,90/2/180*pi); %ÍÆ³Ìphi2=linspace(90/2/180*pi,90/180*pi);phi0=90/180*pi;h=40;s1=2*h*(phi1/phi0).^2;s2=h-2*h*(phi0-phi2).^2/(phi0).^2;plot(phi1,s1)hold onplot(phi2,s2)hold onphi3=linspace(deg2rad(90),deg2rad(190),1000); %Ô¶ÐݳÌs3=h;plot(phi3,s3,'-b')hold onphi4=linspace(deg2rad(190),deg2rad(240)); %»Ø³Ìs4=h*(1-35*((phi4-deg2rad(90)-deg2rad(100))/deg2rad(50)).^4+84*((phi4 -deg2rad(90)-deg2rad(100))/deg2rad(50)).^5-70*((phi4-deg2rad(90)-deg2 rad(100))/deg2rad(50)).^6+20*((phi4-deg2rad(90)-deg2rad(100))/deg2rad (50)).^7);plot(phi4,s4)hold onphi5=linspace(deg2rad(240),deg2rad(360),1000); %½üÐݳÌs5=0;plot(phi5,s5,'-b')axis([0,0+11/10*deg2rad(360),0,0+11/10*h]);grid onylabel('位移/mm');xlabel('凸轮转角 /rad');②速度曲线phi0=deg2rad(90);phi1=linspace(0,deg2rad(90/2));h=40;n=1;w=2*pi*n/60;v1=4*h*w/(deg2rad(90)).^2*phi1;phi2=linspace(deg2rad(90/2),deg2rad(90));v2=4*h*w*(phi0-phi2)/(deg2rad(90)).^2;phi3=linspace(deg2rad(90),deg2rad(190),1000);v3=0;phi4=linspace(deg2rad(190),deg2rad(240));v4=-h*w/deg2rad(50)*[140*((phi4-deg2rad(90)-deg2rad(100))/deg2rad(50) ).^3-420*((phi4-deg2rad(90)-deg2rad(100))/deg2rad(50)).^4+420*((phi4-deg2rad(90)-deg2rad(100))/deg2rad(50)).^5-140*((phi4-deg2rad(90)-deg2 rad(100))/deg2rad(50)).^6];phi5=linspace(deg2rad(240),deg2rad(360),1000);v5=0;plot(phi1,v1)hold onplot(phi2,v2)hold onplot(phi3,v3,'-b')hold onplot(phi4,v4)hold onplot(phi5,v5,'-b')grid onylabel('速度 /mm');xlabel('凸轮转角/rad')③加速度曲线phi0=deg2rad(90); %ÍÆ³Ìphi1=linspace(0,deg2rad(90/2),10.^3);h=40;n=1;w=2*pi*n/60;a1=4*h*w.^2/(phi0).^2;phi2=linspace(deg2rad(90/2),deg2rad(90),10.^3);a2=-4*h*w.^2/(phi0).^2;phi3=linspace(deg2rad(90),deg2rad(190),1000); %Ô¶ÐݳÌa3=0;phi4=linspace(deg2rad(190),deg2rad(240)); %»Ø³Ìa4=-(h*w.^2/(deg2rad(50)).^2)*[420*((phi4-deg2rad(90)-deg2rad(100))/d eg2rad(50)).^2-1680*((phi4-deg2rad(90)-deg2rad(100))/deg2rad(50)).^3+ 2100*((phi4-deg2rad(90)-deg2rad(100))/deg2rad(50)).^4-840*((phi4-deg2 rad(90)-deg2rad(100))/deg2rad(50)).^5];phi5=linspace(deg2rad(240),deg2rad(360),1000); %½üÐݳÌa5=0;phi6=[deg2rad(45),deg2rad(45)];a6=[4*h*w.^2/(phi0).^2,-4*h*w.^2/(phi0).^2];plot(phi1,a1,'-b')hold onplot(phi2,a2,'-b')hold onplot(phi3,a3,'-b')hold onplot(phi4,a4)hold onplot(phi5,a5)hold onplot(phi6,a6)grid onylabel('加速度/mm');xlabel('凸轮转角/rad');3、曲线%ds/f-sphi1=linspace(0,90/2/180*pi,1000);phi2=linspace(90/2/180*pi,90/180*pi,1000);phi0=90/180*pi;h=40;s01=2*h*(phi1/phi0).^2;s02=h-2*h*(phi0-phi2).^2/(phi0).^2;phi3=linspace(deg2rad(90),deg2rad(190),1000);s03=h;phi4=linspace(deg2rad(190),deg2rad(240));s04=h*(1-35*((phi4-deg2rad(90)-deg2rad(100))/deg2rad(50)).^4+84*((phi 4-deg2rad(90)-deg2rad(100))/deg2rad(50)).^5-70*((phi4-deg2rad(90)-deg 2rad(100))/deg2rad(50)).^6+20*((phi4-deg2rad(90)-deg2rad(100))/deg2ra d(50)).^7);phi5=linspace(deg2rad(240),deg2rad(360),1000)s05=0;%ds/fs1=4*h/(deg2rad(90))^2*phi1;s2=4*h*(phi0-phi2)/(deg2rad(90))^2;s3=0;s4=-h/deg2rad(50)*[140*((phi4-deg2rad(90)-deg2rad(100))/deg2rad(50)). ^3-420*((phi4-deg2rad(90)-deg2rad(100))/deg2rad(50)).^4+420*((phi4-de g2rad(90)-deg2rad(100))/deg2rad(50)).^5-140*((phi4-deg2rad(90)-deg2ra d(100))/deg2rad(50)).^6];s5=0;x=[s1,s2,s3,s4,s5];y=[s01,s02,s03,s04,s05];plot(x,y)hold on%确定凸轮半径和偏距k1=tan(pi/2-30/180*pi);k2=-tan(pi/2-60/180*pi); y1=-k1*x+y;y2=-k2*x+y;y11=min(y1);y22=min(y2);x1=linspace(-5,50,10000);x2=linspace(-95,55,10000);d1=k1*x1+y11;d2=k2*x2+y22;x3=linspace(0,45,500);x3=12;y3=-48;plot(line([0,x3],[0,y3]))plot(line([x3,x3],[0,y3]))plot(line([0,x3],[y3,y3]))plot(x1,d1)hold onplot(x2,d2)hold ongrid onaxis([-110,60,-100,50])%选取O点x4=13;y4=-50;plot(line([0,x4],[0,y4]))plot(line([x4,x4],[0,y4]),'k')plot(line([0,x4],[y4,y4]),'k')⑤压力角曲线,曲率半径曲线xo=13;yo=50;%题目2铰链O点取值e=xo;r0=sqrt(xo^2+yo^2);%基圆半径与偏距取值N1=1;N2=2;R0=15;%小滚子半径n=2;omiga=2*pi*n/60;w=omiga;phi1=linspace(0,90/2/180*pi,1000);phi2=linspace(90/2/180*pi,90/180*pi,1000);phi3=linspace(deg2rad(90),deg2rad(190),1000); phi4=linspace(deg2rad(190),deg2rad(240),1000); phi5=linspace(deg2rad(240),deg2rad(360),1000);phi0=90/180*pi;h=40;%推程s1=2*h*(phi1/phi0).^2+0*phi1;v1=4*h*w/(deg2rad(90)).^2*phi1+0*phi1;a1=4*h*w.^2/(phi0).^2+0*phi1;s2=h-2*h*(phi0-phi2).^2/(phi0).^2+phi2*0;v2=4*h*w*(phi0-phi2)/(deg2rad(90)).^2+phi2*0;a2=-4*h*w.^2/(phi0).^2+phi2*0;%远休程s3=h+phi3*0;v3=0+phi3*0;a3=0+phi3*0;%回程s4=h*(1-35*((phi4-deg2rad(90)-deg2rad(100))/deg2rad(50)).^4+84*((phi4 -deg2rad(90)-deg2rad(100))/deg2rad(50)).^5-70*((phi4-deg2rad(90)-deg2 rad(100))/deg2rad(50)).^6+20*((phi4-deg2rad(90)-deg2rad(100))/deg2rad (50)).^7)+phi4*0;v4=-h*w/deg2rad(50)*[140*((phi4-deg2rad(90)-deg2rad(100))/deg2rad(50) ).^3-420*((phi4-deg2rad(90)-deg2rad(100))/deg2rad(50)).^4+420*((phi4-deg2rad(90)-deg2rad(100))/deg2rad(50)).^5-140*((phi4-deg2rad(90)-deg2 rad(100))/deg2rad(50)).^6]+phi4*0;a4=-(h*w.^2/(deg2rad(50)).^2)*[420*((phi4-deg2rad(90)-deg2rad(100))/d eg2rad(50)).^2-1680*((phi4-deg2rad(90)-deg2rad(100))/deg2rad(50)).^3+ 2100*((phi4-deg2rad(90)-deg2rad(100))/deg2rad(50)).^4-840*((phi4-deg2 rad(90)-deg2rad(100))/deg2rad(50)).^5]+phi4*0;%近休程s5=0+phi5*0;v5=0+phi5*0;a5=0+phi5*0;%全部运动过程s=[s1,s2,s3,s4,s5];v=[v1,v2,v3,v4,v5];a=[a1,a2,a3,a4,a5];phi=[phi1,phi2,phi3,phi4,phi5];%初始推程s0,起点坐标x0,y0%理论廓线s0=sqrt(r0^2-e^2);x0=(s0+s).*sin(N1*phi)+N2*e.*cos(N1*phi);y0=(s0+s).*cos(N1*phi)-N2*e.*sin(N1*phi);LXphi=(v./omiga-N1*N2*e).*sin(N1*phi.*pi/180)+N1*(s0+s).*cos(N1*phi.* pi/180);LYphi=(v./omiga-N1*N2*e).*cos(N1*phi.*pi/180)-N1*(s0+s).*sin(N1*phi.* pi/180);%计算压力角%推程压力角r1=s0+s1;ang1=abs(atan((v1/omiga-N1*N2*e)./r1))*180/pi;r2=s0+s2;ang2=abs(atan((v2/omiga-N1*N2*e)./r2))*180/pi;%回程压力角r4=s0+s4;ang4=abs(atan((v4/omiga-N1*N2*e)./r4))*180/pi;%远休程压力角r3=(s0+h)*ones(1,size(s3,5));ang3=abs(atan((-N1*N2*e)./r3))*180/pi+0*phi3;%近休程压力角r5=s0*ones(1,size(s5,5));ang5=abs(atan((-N1*N2*e)./r5))*180/pi+0*phi5;%凸轮的曲率半径LLXphi=(a./omiga^2.-s0-s).*sin(N1*phi.*pi/180)+(2*v./omiga-N1*N2*e).* N1.*cos(N1*phi.*pi/180);LLYphi=(a./omiga^2.-s0-s).*cos(N1*phi.*pi/180)-(2*v./omiga-N1*N2*e).* N1.*sin(N1*phi.*pi/180);A=(LXphi.^2+LYphi.^2).^1.5;B=-LXphi.*LLYphi+LYphi.*LLXphi;rou=A./B;M=-1;rou0=abs(rou+M*R0);plot(phi,rou0)axis([0,6,10,100])xlabel('凸轮转角/rad')ylabel('长度/mm')hold onangle=[ang1,ang2,ang3,ang4,ang5];plot(phi,angle)axis([0,6,0,100])4、理论轮廓线和实际轮廓线xo=13;yo=-50;%题目2铰链O点取值e=xo;r0=sqrt(xo^2+yo^2);%基圆半径与偏距取值N1=1;N2=1;R0=15;%小滚子半径n=2;omiga=2*pi*n/60;w=omiga;phi1=linspace(0,90/2/180*pi,1000);phi2=linspace(90/2/180*pi,90/180*pi,1000);phi3=linspace(deg2rad(90),deg2rad(190),1000);phi4=linspace(deg2rad(190),deg2rad(240),1000);phi5=linspace(deg2rad(240),deg2rad(360),1000);phi0=90/180*pi;h=40;%推程s1=2*h*(phi1/phi0).^2+0*phi1;v1=4*h*w/(deg2rad(90)).^2*phi1+0*phi1;a1=4*h*w.^2/(phi0).^2+0*phi1;s2=h-2*h*(phi0-phi2).^2/(phi0).^2+phi2*0;v2=4*h*w*(phi0-phi2)/(deg2rad(90)).^2+phi2*0;a2=-4*h*w.^2/(phi0).^2+phi2*0;%远休程s3=h+phi3*0;v3=0+phi3*0;a3=0+phi3*0;%回程s4=h*(1-35*((phi4-deg2rad(90)-deg2rad(100))/deg2rad(50)).^4+84*((phi4 -deg2rad(90)-deg2rad(100))/deg2rad(50)).^5-70*((phi4-deg2rad(90)-deg2 rad(100))/deg2rad(50)).^6+20*((phi4-deg2rad(90)-deg2rad(100))/deg2rad (50)).^7)+phi4*0;v4=-h*w/deg2rad(50)*[140*((phi4-deg2rad(90)-deg2rad(100))/deg2rad(50) ).^3-420*((phi4-deg2rad(90)-deg2rad(100))/deg2rad(50)).^4+420*((phi4-deg2rad(90)-deg2rad(100))/deg2rad(50)).^5-140*((phi4-deg2rad(90)-deg2 rad(100))/deg2rad(50)).^6]+phi4*0;a4=-(h*w.^2/(deg2rad(50)).^2)*[420*((phi4-deg2rad(90)-deg2rad(100))/d eg2rad(50)).^2-1680*((phi4-deg2rad(90)-deg2rad(100))/deg2rad(50)).^3+ 2100*((phi4-deg2rad(90)-deg2rad(100))/deg2rad(50)).^4-840*((phi4-deg2 rad(90)-deg2rad(100))/deg2rad(50)).^5]+phi4*0;%近休程s5=0+phi5*0;v5=0+phi5*0;a5=0+phi5*0;%全部运动过程s=[s1,s2,s3,s4,s5];v=[v1,v2,v3,v4,v5];a=[a1,a2,a3,a4,a5];phi=[phi1,phi2,phi3,phi4,phi5];%初始推程s0,起点坐标x0,y0%理论廓线s0=sqrt(r0^2-e^2);x0=(s0+s).*sin(N1*phi)+N2*e.*cos(N1*phi);y0=(s0+s).*cos(N1*phi)-N2*e.*sin(N1*phi);LX=(v./omiga-N1*N2*e).*sin(N1*phi)+N1*(s0+s).*cos(N1*phi);LY=(v./omiga-N1*N2*e).*cos(N1*phi)-N1*(s0+s).*sin(N1*phi);plot(x0,y0,'R','linewidth',2)axis equalhold on%实际廓线M=-1;if R0==0Sx=x0;Sy=y0;elseH=sqrt(LX.^2+LY.^2);Sx=x0-N1*M*R0*LY./H;Sy=y0+N1*M*R0*LX./H;endplot(Sx,Sy)hold onaxis equal%画出基圆r1=r0;k=0:0.005:2*pi;x2=r1*sin(k);y2=r1*cos(k);plot(x2,y2,'-.')axis equalxlabel('凸轮转角/rad')ylabel('长度/mm')%画出偏距圆r2=e;k1=0:0.001:2*pi;x3=r2*sin(k1);y3=r2*cos(k1);plot(x3,y3,'k')r3=R0;k2=0:0.001:2*pi;x4=40.85+r3*sin(k2);y4=44.7+r3*cos(k2);plot(x4,y4,'k')r4=R0/5;k3=0:0.001:2*pi;x5=40.85+r4*sin(k3);y5=44.7+r4*cos(k3);plot(x5,y5,'k')hold ony6=44.7+50;plot(line([40.85,40.85],[44.7,y6]),'k') axis equalgrid onlegend('理论廓线','实际廓线','基圆','偏距圆');。