文档库 最新最全的文档下载
当前位置:文档库 › 机械原理课程设计凸轮设计

机械原理课程设计凸轮设计

机械原理课程设计凸轮设计
机械原理课程设计凸轮设计

机械原理课程设计

编程说明书

设计题目:牛头刨床凸轮机构指导教师:王琦王春华设计者:雷选龙

学号:0807100309

班级:机械08-3

2010年7月15日

辽宁工程技术大学

机械原理课程设计任务书(二)

姓名雷选龙专业机械工程及自动化班级机械08-3班学号

五、要求:

1)计算从动件位移、速度、加速度并绘制线图。

2)确定凸轮机构的基本尺寸,选取滚子半径,画出凸轮实际廓线,并按比例绘出机构运动简图。以上内容作在A2或A3图纸上。

3)编写出计算说明书。

指导教师:

开始日期:2010年07月10日完成日期:2010年07月16日

目录

一设计任务及要求-----------------------------------------------2 二数学模型的建立-----------------------------------------------2 三程序框图--------------------------------------------------------5 四程序清单及运行结果-----------------------------------------6 五设计总结-------------------------------------------------------14 六参考文献-----------------------------------------------------15

一 设计任务与要求

已知摆杆9为等加速等减速运动规律,其推程运动角φ=70,远休止角φs =10,回程运动角φ?=70,摆杆长度l 09D =125,最大摆角φ

max =15,许用压力角[α]=40,凸轮与曲线共轴。

(1) 要求:计算从动件位移、速度、加速度并绘制线图(用方格纸

绘制),也可做动态显示。

(2) 确定凸轮的基本尺寸,选取滚子半径,画出凸轮的实际廓线,

并按比例绘出机构运动简图。 (3) 编写计算说明书。

二 机构的数学模型

1 推程等加速区 当2/0?δ≤≤时

角位移 22max /21?δ?=m

角速度 2max /4?δ?ω= 角加速度 2max /4??ε= 2 推程等减速区 当?δ?≤<2/时

角位移 22max max /)(21?δ???--=m

角速度 2max /)(4?δ??ω-= 角加速度 2max /4??ε-= 3 远休止区 当s ??δ?+≤<时

角位移 max 1?=m 角速度 0=ω 角加速度 0=ε

4 回程等加速区

当2/???δ??'++≤<+s s 时

角位移 22max max /)(21???δ??'---=s m

角速度 2max /)(4???δ?ω'---=s 角加速度 2max /4??ε'-= 5 回程等减速区

当???δ???'++≤<'++s s 2/时 角位移 22max /)(21?δ????'-'++=s m 角速度 2max /)(4?δ????ω'-'++-=s 角加速度 2max /4??ε'= 6 近休止区

角位移 01=m 角速度 0=ω 角加速度 0=ε

如图选取xOy 坐标系,B1点为凸轮轮廓线起始点。开始时推杆轮子中心处于B1点处,当凸轮转过角度时,摆动推杆角位移为,由反转法作图可看出,此时滚子中心应处于B 点,其直角坐标为:

()()

00cos cos sin sin ??δδ??δδ++-=++-=l a y l a x

因为实际轮廓线与理论轮廓线为等距离,即法向距离处处相等,都为滚半径rT.故将理论廓线上的点沿其法向向内测移动距离r r 即得实际廓线上的点B(x1,y1).由高等数学知,理论廓线B 点处法线nn 的斜率应为 ()()θθδδθcos /sin ////=-==d dy d dx dy dx tg 根据上式有:

()()()()

δ???δδδδ???δδδd d l a d dy d d l a d dx /1sin sin //1cos cos /00++++-=+++-=

可得()()()()()()

2

22

2////cos ///

/sin δδδθδδδθd dy d dx d dy d dy d dx d dx +-=+=

实际轮廓线上对应的点B(x,y)的坐标为

?

?

?==θθ

sin 1cos 1r r r y y r x x μμ 此即为凸轮工作的实际廓线方程,式中“-”用于内等距线,“+”用于外等距线。

四程序清单及运行结果#include<>

#include<>

#include<>

#include<>

#include<>

#define l

#define Aa 40

#define r_b 50

#define rr

#define K 180)

#define dt

float Q_max,Q_t,Q_s,Q_h;

float Q_a;

double L,pr;

float e[1500],f[1500],g[1500];

void Cal(float Q,double Q_Q[3])

{

Q_max=15,Q_t=70,Q_s=10,Q_h=70;

if(Q>=0&&Q<=Q_t/2)

{

Q_Q[0]=K*(2*Q_max*Q*Q/(Q_t*Q_t));

Q_Q[1]=4*Q_max*Q/(Q_t*Q_t);

Q_Q[2]=4*Q_max/(Q_t*Q_t);

}

if(Q>Q_t/2&&Q<=Q_t)

{

Q_Q[0]=K*(Q_max-2*Q_max*(Q-Q_t)*(Q-Q_t)/(Q_t*Q_t));

Q_Q[1]=4*Q_max*(Q_t-Q)/(Q_t*Q_t);

Q_Q[2]=-4*Q_max/(Q_t*Q_t);

}

if(Q>Q_t&&Q<=Q_t+Q_s)

{

Q_Q[0]=K*Q_max;

Q_Q[1]=0;

Q_Q[2]=0;

}

if(Q>Q_t+Q_s&&Q<=Q_t+Q_s+Q_h/2)

{

Q_Q[0]=K*(Q_max-2*Q_max*(Q-Q_t-Q_s)*(Q-Q_t-Q_s)/(Q_h*Q_h));

Q_Q[1]=-4*Q_max*(Q-Q_t-Q_s)/(Q_h*Q_h);

Q_Q[2]=-4*Q_max/(Q_h*Q_h);

}

if(Q>Q_t+Q_s+Q_h/2&&Q<=Q_t+Q_s+Q_h)

{

Q_Q[0]=K*(2*Q_max*(Q_h-Q+Q_t+Q_s)*(Q_h-Q+Q_t+Q_s)/(Q_h*Q_h)); Q_Q[1]=-4*Q_max*(Q_h-Q+Q_t+Q_s)/(Q_h*Q_h);

Q_Q[2]=4*Q_max/(Q_h*Q_h);

}

if(Q>Q_t+Q_s+Q_h&&Q<=360)

{

Q_Q[0]=K*0;

Q_Q[1]=0;

Q_Q[2]=0;

}

}

void Draw(float Q_m)

{

float tt,x,y,x1,y1,x2,y2,x3,y3,x4,y4,dx,dy;

double QQ[3];

circle(240,240,3);

circle(240+L*sin(50*K)+4*cos(240*K),240+L*cos(50*K)-4*sin(240*K),3); 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(50*K)+4*cos(240*K),240+L*cos(50*K)-4*sin(240*K)); lineto(240+L*sin(50*K)+20*cos(240*K),240+L*cos(50*K)-20*sin(240*K)); lineto(255+L*sin(50*K)+20*cos(240*K),240+L*cos(50*K)-20*sin(240*K)); lineto(240+L*sin(50*K)+4*cos(240*K),240+L*cos(50*K)-4*sin(240*K)); for(tt=0;tt<=720;tt=tt+2)

{

Cal(tt,QQ);

x1=L*cos(tt*K)-l*cos(Q_a+QQ[0]-tt*K);

y1=l*sin(Q_a+QQ[0]-tt*K)+L*sin(tt*K);

x2=x1*cos(Q_m*K+40*K)+y1*sin(Q_m*K+40*K);

y2=-x1*sin(Q_m*K+40*K)+y1*cos(Q_m*K+40*K);

putpixel(x2+240,240-y2,2);

dx=(QQ[1]-1)*l*sin(Q_a+QQ[0]-tt*K)-L*sin(tt*K);

dy=(QQ[1]-1)*l*cos(Q_a+QQ[0]-tt*K)+L*cos(tt*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+40*K)+y3*sin(Q_m*K+40*K);

y4=-x3*sin(Q_m*K+40*K)+y3*cos(Q_m*K+40*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<=Q_t/2))

{

y1=(2*Q_max*pow(a,2)/pow(Q_t,2))*10;

y2=(4*Q_max*(dt*K)*a/pow(Q_t,2))*pow(10,;

y3=(4*Q_max*pow((dt*K),2)/pow(Q_t,2))*pow(10,;

putpixel(100+a,300-y1,1);

putpixel(100+a,300-y2,2);

putpixel(100+a,300-y3,4);

line(100+Q_t/2,300-y3,100+Q_t/2,300);

}

if((a>Q_t/2)&&(a<=Q_t))

{

y1=(Q_max-2*Q_max*pow((Q_t-a),2)/pow(Q_t,2))*10;

y2=(4*Q_max*(dt*K)*(Q_t-a)/pow(Q_t,2))*pow(10,;

y3=((-4)*Q_max*pow((dt*K),2)/pow(Q_t,2))*pow(10,;

putpixel(100+a,300-y1,1);

putpixel(100+a,300-y2,2);

putpixel(100+a,300-y3,4);

line(100+Q_t,300-y3,100+Q_t,300);

line(100+Q_t/2,300,100+Q_t/2,300-y3);

}

if((a>Q_t)&&(a<=Q_t+Q_s))

{

y1=Q_max*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+Q_t+Q_s),300,(100+Q_t+Q_s),300-y3);

}

if((a>Q_t+Q_s)&&(a<=Q_t+Q_s+Q_h/2))

{

y1=(Q_max-2*Q_max*pow((a-Q_t-Q_s),2)/pow(Q_h,2))*10;

y2=((-4)*Q_max*(dt*K)*(a-Q_t-Q_s)/pow(Q_h,2))*pow(10,;

y3=((-4)*Q_max*pow((dt*K),2)/pow(Q_h,2))*pow(10,;

putpixel(100+a,300-y1,1);

putpixel(100+a,300-y2,2);

putpixel(100+a,300-y3,4);

line((100+Q_t+Q_s+Q_h/2),300,(100+Q_t+Q_s+Q_h/2),300-y3); line((100+Q_t+Q_s),300,(100+Q_t+Q_s),300-y3);

}

if((a>Q_t+Q_s+Q_h/2)&&(a<=Q_t+Q_s+Q_h))

{

y1=(2*Q_max*pow((Q_h-a+Q_t+Q_s),2)/pow(Q_h,2))*10;

y2=((-4)*Q_max*(dt*K)*(Q_h-a+Q_t+Q_s)/pow(Q_h,2))*pow(10,; y3=(4*Q_max*pow((dt*K),2)/pow(Q_h,2))*pow(10,;

putpixel(100+a,300-y1,1);

putpixel(100+a,300-y2,2);

putpixel(100+a,300-y3,4);

line((100+Q_t+Q_s+Q_h),300-y3,(100+Q_t+Q_s+Q_h),300);

line((100+Q_t+Q_s+Q_h/2),300,(100+Q_t+Q_s+Q_h/2),300-y3);

}

if((a>Q_t+Q_s+Q_h)&&(a<=360))

{

y1=0;

y2=0;

y3=0;

putpixel(100+a,300,1);

putpixel(100+a,300,2);

putpixel(100+a,300,4);

}

e[t]=y1;

f[t]=y2;

g[t]=y3;

}

}

main()

{

int gd=DETECT,gm;

int i,t,choice,x_1,y_1,flag=1;

double QQ1[3],aa;

FILE *f1;

if((f1=fopen("","w"))==NULL)

{

printf(" cannot open!\n");

exit(0);

}

initgraph(&gd,&gm," ");

cleardevice();

for(t=0;!kbhit();t++)

{

for(;t>360;)

t-=360;

if(flag==1)

for(L=l-r_b+70;L

{

Q_a=acos((L*L+l*l-r_b*r_b)/*L*l));

Cal(t,QQ1);

aa=atan(l*(1-QQ1[1]-L*cos(Q_a-QQ1[0]))/(L*sin(Q_a+QQ1[0])));/*压力角*/ pr=(pow((L*L+l*l*(1+QQ1[1])*(1+QQ1[1])*L*l*(1+QQ1[1]*cos(Q_a+QQ1[0] ))),2))/*曲率半径*Cal

实他在学习上取得了很多傲人的成绩,但是我所赞赏的还是他追求的过程,当遇到问题的时候,那种斟酌的态度就值得我们每一位学习,人家是在用心造就自己的任务,而且孜孜不倦,追求卓越.

在这些过程当中我充分的认识到自己在知识理解和接受应用方面的不足,特别是自己的系统的自我学习能力的欠缺,将来要进一步加强,今后的学习还要更加的努力。本次课程设计不仅仅是对自己所学的知识的一次系统总结与应用,还是对自己体质的一次检验。六参考文献

1.《机械原理课程设计指导书》徐萃萍冷兴聚

2.《机械原理电算课程设计指导书》冷兴聚

3.《机械原理》孙恒称作模,高等教育出版社,

4.《C程序设计》谭浩强,清华大学出版社,

5.《C语言典型零件CAD》王占勇,东北大学出版社

6.《计算机图形学》罗笑南王若梅中山大学出版社

7.《机械原理课程设计指导书》裘建新,高等教育出版社,

相关文档