机械原理凸轮机构课程设计任务书.doc
Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-date机械原理凸轮机构课程设计任务书目录机械原理课程设计任务书姓名 张海征 专业 机械设计制造及其自动化 班级 13-2班 学号 27 一、设计题目:插床凸轮机构的设计 二、系统简图:三、工作条件已知从动件的最大摆角,许用压力角,从动件长度,从动件运动规律为等加、等减速运动,凸轮与曲柄共轴。 四、原始数据凸轮机构的设计从动杆加速度规律°mm°1540125601060等加速运动 五、要求:1)按许用压力角确定凸轮机构的基本尺寸。 2)求出理论廓线外凸曲线的最小曲率半径。 3)选取滚子半径绘制凸轮实际廓线。 4)编写说明书。指导教师:席本强 王春华开始日期: 2015 年 7 月 11 日 完成日期: 2015 年7 月 17 日 目录 1 设计任务及要求2 数学模型的建立3 程序框图4 程序清单及运行结果5 设计总结6 参考文献 一、设计题目:插床凸轮机构的设计二、系统简图:三、工作条件 已知从动件的最大摆角,许用压力角,从动件长度,从动件运动规律为等加、等减速运动,凸轮与曲柄共轴。四、原始数据凸轮机构的设计从动杆加速度规律°Mm°1540125601060等加速运动五、要求:1)按许用压力角确定凸轮机构的基本尺寸。 2)求出理论廓线外凸曲线的最小曲率半径。 3)选取滚子半径绘制凸轮实际廓线,并绘制简图。 4)编写并打印说明书。一、设计任务及要求 (凸轮机构的设计)已知:从动件的最大摆角,许用压力角,从动件的长度lo4d从动件的运动规律为等加,等减速运动,凸轮与曲柄共轴。数据如下:要求:1)按许用压力角 确定凸轮的基圆半径r0;2)求出理论轮廓线外凸的最小曲率半径3)选取滚子半径r绘制凸轮实际轮廓线;4)用计算机打印出说明书二、机构的数学模型一、如图选取xOy坐标系,B1点为凸轮轮廓线起始点。开始时推杆轮子中心处于B1点处,当凸轮转过角度时,摆动推杆角位移为,由反转法作图可看出,此时滚子中心应处于B2点,其直角坐标为: 式中,为推杆的初始位置角,其值为=,上式即为凸轮的理论廓线方程。因为实际轮廓线与理论轮廓线为等距离,即法向距离处处相等,都为滚半径rT.故将理论廓线上的点沿其法向向内测移动距离rT即得实际廓线上的点B(x1,y1).由高等数学知,理论廓线B点处法线nn的斜率应为根据上式有: 可得实际轮廓线上对应的点B(x,y)的坐标为此即为凸轮工作的实际廓线方程,式中“-”用于内等距线.二 、根据运动分析写出与运动方程式1 设从动件起始角21)升程加速区,其运动方程为:2) 属于升程减速区,其运动方程为:3),属于远休止区,其运动方程为:4)属于回程加速区,其运动方程为:5),属于回程减速区,其运动方程为:6) ,于近休止区,其运动方程为三、 程序框图输入已知数据计算压力角绘制角位移,角速度,角加速度曲线图输出计算结果,选取合理的 输出压力角,与需用压力角比较-四、 程序清单及运行结果#include<math.h>#include<dos.h>#include<graphics.h>#include<conio.h>#include<stdio.h>#define I 125.0#define Aa 40#define rb 50#define rr 5#define K (3.1415926/180)#define dt 0.25float Qmax,Q1,Q2,Q3;float Q_a;double L,pr;float e1500,f1500,g1500;void Cal(float Q,double Q_Q3)Qmax=15,Q1=60,Q2=10,Q3=60;if(Q>=0&&Q<=Q1/2)Q_Q0=K*(2*Qmax*Q*Q/(Q1*Q1);Q_Q1=4*Qmax*Q/(Q1*Q1);Q_Q2=4*Qmax/(Q1*Q1);if(Q>Q1/2&&Q<=Q1) Q_Q0=K*(Qmax-2*Qmax*(Q-Q1)*(Q-Q1)/(Q1*Q1); Q_Q1=4*Qmax*(Q1-Q)/(Q1*Q1); Q_Q2=-4*Qmax/(Q1*Q1); if(Q>=Q1&&Q<=Q1+Q2) Q_Q0=K*Qmax; Q_Q1=0; Q_Q2=0; if(Q>Q1+Q2&&Q<=Q1+Q2+Q3/2) Q_Q0=K*(Qmax-2*Qmax*(Q-Q1-Q2)*(Q-Q1-Q2)/(Q3*Q3); Q_Q1=-4*Qmax*(Q-Q1-Q2)/(Q3*Q3); Q_Q2=-4*Qmax/(Q3*Q3); if(Q>Q1+Q2+Q3/2&&Q<Q1+Q2+Q3) Q_Q0=K*(2*Qmax*(Q3-Q+Q1+Q2)*(Q3-Q+Q1+Q2)/(Q3*Q3);Q_Q1=-4*Qmax*(Q3-Q+Q1+Q2)/(Q3*Q3);Q_Q2=4*Qmax/(Q3*Q3); if(Q>Q1+Q1+Q3&&Q<=360) Q_Q0=K*0;Q_Q1=0;Q_Q2=0; void Draw(float Q_m) float tt,x,y,x1,y1,x2,y2,x3,x4,y3,y4,dx,dy;double QQ3;circle(240,240,5);circle(240+L*sin(60*K),240-L*cos(60*K),5);moveto(240,240);lineto(240+20*cos(240*K),240-20*sin(240*K);lineto(260+20*cos(240*K),240-20*sin(240*K);lineto(240,240);moveto(240+L*sin(60*K),240-L*cos(60*K);lineto(240+L*sin(60*K)+20*cos(240*K),240-L*cos(60*K)-20*sin(240*K);lineto(240+L*sin(60*K)+20*cos(60*K),240-L*cos(60*K)-20*sin(240*K);lineto(240+L*sin(60*K),240-L*cos(60*K);for(tt=0;tt<=720;tt=tt+2)Cal(tt,QQ);/*tulunlunkuoxian*/x1=L*cos(tt*K-30*K)-I*cos(Q_a+QQ0+tt*K-30*K); y1=I*sin(Q_a+QQ0+tt*K-30*K)-L*sin(tt*K-30*K);x2=x1*cos(Q_m*K)-y1*sin(Q_m*K);y2=x1*sin(Q_m*K)+y1*cos(Q_m*K);putpixel(x2+240,240-y2,2);dx=(QQ1+1)*I*sin(Q_a+QQ0+tt*K-30*K)-L*sin(tt*K-30*K);dy=(QQ1+1)*I*cos(Q_a+QQ0+tt*K-30*K)-L*cos(tt*K-30*K);x3=x1+rr*dy/sqrt(dx*dx+dy*dy);y3=y1-rr*dx/sqrt(dx*dx+dy*dy);x4=x3*cos(Q_m*K)-y3*sin(Q_m*K);y4=x3*sin(Q_m*K)+y3*cos(Q_m*K);putpixel(x4+240,240-y4,YELLOW);void Curvel()int t;float y1,y2,y3,a=0;for(t=0;t<=360/dt;t+)delay(300);a=t*dt;if(a>=0&&a<=Q1/2)y1=(2*Qmax*pow(a,2)/pow(Q1,2)*10;y2=(4*Qmax*(dt*K)*a/pow(Q1,2)*pow(10,4.8);y3=(4*Qmax*pow(dt*K),2)/pow(Q1,2)*pow(10,8.5);putpixel(100+a,300-y1,1);putpixel(100+a,300-y2,2); putpixel(100+a,300-y3,4); line(100+Q1/2,300-y3,100+Q1/2,300); if(a>Q1/2)&&(a<=Q1) y1=(Qmax-2*Qmax*pow(Q1-a),2)/pow(Q1,2)*10; y2=(4*Qmax*(dt*K)*(Q1-a)/pow(Q1,2)*pow(10,4.8); y3=(-4)*Qmax*pow(dt*K),2)/pow(Q1,2)*pow(10,8.5); putpixel(100+a,300-y1,1); putpixel(100+a,300-y2,2); putpixel(100+a,300-y3,4); line(100+Q1,300-y3,100+Q1,300); line(100+Q1/2,300,100+Q1/2,300-y3); if(a>Q1)&&(a<=Q1+Q2) y1=Qmax*10; y2=0; y3=0; putpixel(100+a,300-y1,1); putpixel(100+a,300-y2,2); putpixel(100+a,300-y3,4); line(100+Q1+Q2),300,(100+Q1+Q2),300-y3); if(a>Q1+Q2)&&(a<=Q1+Q2+Q3/2) y1=(Qmax-2*Qmax*pow(a-Q1-Q2),2)/pow(Q3,2)*10; y2=(-4*Qmax*(dt*K)*(a-Q1-Q2)/pow(Q3,2)*pow(10,4.8); y3=(-4*Qmax*pow(dt*K),2)/pow(Q3,2)*pow(10,8.5); putpixel(100+a,300-y1,1); putpixel(100+a,300-y2,2); putpixel(100+a,300-y3,4); line(100+Q1+Q2+Q3/2),300,(100+Q1+Q2+Q3/2),300-y3); line(100+Q1+Q2),300,100+Q1+Q2,300-y3); if(a>Q1+Q2+Q3/2)&&(a<=Q1+Q2+Q3) y1=(2*Qmax*pow(Q3+Q2+Q1-a),2)/pow(Q3,2)*10; y2=(-4*Qmax*(dt*K)*(Q3+Q2+Q1-a)/pow(Q3,2)*pow(10,4.8); y3=(4*Qmax*pow(dt*K),2)/pow(Q3,2)*pow(10,8.5); putpixel(100+a,300-y1,1); putpixel(100+a,300-y2,2); putpixel(100+a,300-y3,4); line(100+Q1+Q2+Q3),300-y3,(100+Q1+Q2+Q3),300); line(100+Q1+Q2+Q3/2),300,(100+Q1+Q2+Q3/2),300-y3); if(a>Q1+Q2+Q3)&&(a<=360) y1=0; y2=0; y3=0; putpixel(100+a,300,1); putpixel(100+a,300,2); putpixel(100+a,300,4); et=y1; ft=y2; gt=y3; main()int gd=DETECT,gm;int i,t,choice,x_I,y_I,flag=1;double QQ13,aa;initgraph(&gd,&gm,"");cleardevice();for(t=0;!kbhit();t+)for(;t<360;)t-=360;if(flag=1)for(L=I-rb+70;L<I+rb;L+=2)Q_a=acos(L*L+I*I-rb*rb)/(2.0*L*I);Cal(t,QQ1);aa=atan(1*(1-QQ11-L*cos(Q_a-QQ10)/(L*sin(Q_a+QQ10);pr=(pow(L*L+I*I*(1+QQ11)*(1+QQ11)-2.0*L*I*(1+QQ11*cos(Q_a+QQ10),3.0/2)/(1+QQ11)*(2+QQ11)*L*I*cos(Q_a+QQ10)+QQ12*L*I*sin(Q_a+QQ10)-L*L-I*I*pow(1+QQ11,3); if(aa<=Aa&&pr>rr) flag=0; break; if(flag=0) Cal(t,QQ1); Draw(t);cleardevice(); x_I=240+L*sin(60*K)-I*cos(Q_a+QQ10-30*K); y_I=240-L*cos(60*K)-I*sin(Q_a+QQ10-30*K); circle(x_I,y_I,rr); line(240+L*sin(60*K),240-L*cos(60*K),x_I,y_I); delay(1); getch(); cleardevice();line(100,80,100,445); line(70,300,530,300); line(100,80,98,90); line(100,80,102,90); line(520,298,530,300); line(520,302,530,300); setcolor(2); outtextxy(300,150," ");printf("nnnnnQ(w,t)");printf("nnnnnnnnnnnnnnttttttttt");Curvel();getch();printf("nnnnnnnnnn");for(i=0;i<=1440;i=i+20)delay(1000);printf("%d%f%f%fn",i/4,ei,fi,gi);getch();closegraph(); 角度角位移角速度角加速度0 0.000 0.000 0.011 5 0.133 0.053 0.011 10 0.533 0.107 0.011 15 1.200 0.160 0.011 20 2.133 0.213 0.011 25 3.333 0.267 0.011 30 4.800 0.320 0.011 35 6.533 0.373 0.011 40 8.467 0.373 0.011 45 10.200 0.320 -0.011 50 11.667 0.267 -0.011 55 12.867 0.213 -0.011 60 13.800 0.160 -0.011 65 14.467 0.107 -0.011 70 14.867 0.053 -0.011 75 15.000 0.000 -0.011 80 15.000 0.000 0.000 85 15.000 0.000 -0.011 90 14.867 -0.053 -0.011 95 14.467 -0.107 -0.011 100 13.800 -0.160 -0.011 105 12.867 -0.213 -0.011 110 11.667 -0.267 -0.011 115 10.200 -0.320 -0.011 120 8.467 -0.373 -0.011 125 6.467 -0.427 -0.011 130 4.800 -0.320 0.011 135 3.333 -0.267 0.011 140 2.133 -0.213 0.011 145 1.200 -0.160 0.011 150 0.533 -0.107 0.011 155 0.133 -0.053 0.011 160 000165 000170 000175 000180 000185 000190 000195 000200 000205 000210 000215 000220 000225 000230 000235 000240 000245 000250 000255 000260 000265 000270 000275 000280 000285 000290 000295 000300 000305 000310 000315 000320 000325 000330 000335 000340 000345 000350 000355 000360 000五、设计总结 为期一周的课程设计圆满结束了,在这一周里我觉得自己学会了很多东西。虽然这几天遇到了很多困难,但是在完成了课程设计之后心里特别的激动。这是一次深入的综合性的总复习,也是一次理论联系实际的训练,我希望能通过这次课程设计为将来工作奠定一些基础,并从中锻炼自己,为自己以后的生活打下一个良好的基础。但这次课程设计的确有些力不从心的地方,心里有种恐惧感,后来随着困难的慢慢解决,这种心态才一点点消失。 虽然在这次设计中自己有所收获,但同时也存在一定的不足和缺陷,我想这正是本次设计的价值所在。所以,在以后的学习和生活中,无论怎样首先都不能气馁,要对自己有信心,遇事沉着冷静,什么事情都是可以解决的!六、参考文献1、机械原理课程设计指导书 徐翠萍 冷兴聚2、机械原理(第七版) 孙恒 陈作模 葛文杰3、c程序设计 谭浩强