凸轮机构的设计资料.docx

上传人:b****3 文档编号:27411344 上传时间:2023-06-30 格式:DOCX 页数:18 大小:274.52KB
下载 相关 举报
凸轮机构的设计资料.docx_第1页
第1页 / 共18页
凸轮机构的设计资料.docx_第2页
第2页 / 共18页
凸轮机构的设计资料.docx_第3页
第3页 / 共18页
凸轮机构的设计资料.docx_第4页
第4页 / 共18页
凸轮机构的设计资料.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

凸轮机构的设计资料.docx

《凸轮机构的设计资料.docx》由会员分享,可在线阅读,更多相关《凸轮机构的设计资料.docx(18页珍藏版)》请在冰豆网上搜索。

凸轮机构的设计资料.docx

凸轮机构的设计资料

目录

1.设计任务及要求------------------------------

2.数学模型的建立------------------------------

3.程序框图---------------------------------------

4.程序清单及运行结果------------------------

5.设计总结---------------------------------------

6.参考文献--------------------------------------

 

一、设计内容

凸轮机构的设计

已知:

从动件的最大摆角

,许用压力角

,从动件的长度lod从动件的运动规律为等加,等减速运动,凸轮与曲柄共轴。

数据如下:

要求:

1)按许用压力角

确定凸轮的基圆半径r0;

2)求出理论轮廓线外凸的最小曲率半径

3)选取滚子半径rr绘制凸轮实际轮廓线,并动态显示机构;

4)用计算机打印出计算说明书。

一、机构的数学模型

如图选取xOy坐标系,B1点为凸轮轮廓线起始点。

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

因为实际轮廓线与理论轮廓线为等距离,即法向距离处处相等,都为滚半径

rT.故将理论廓线上的点沿其法向向内测移动距离rT即得实际廓线上的点B(x1,y1).由高等数学知,理论廓线B点处法线nn的斜率应为

根据上式有:

可得

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

此即为凸轮工作的实际廓线方程,式中“-”用于内等距线,“+”用于二、根据运动分析写出与运动方程式

1.设从动件起始角

2.1)

升程加速区,其运动方程为:

2)

属于升程减速区,其运动方程为:

3)

,属于远休止区,其运动方程为:

4)

属于回程加速区,其运动方程为:

5)

,属于回程减速区,其运动方程为:

6)

,于近休止区,其运动方程为

外等距线。

 

三、程序框图

 

四、源程序

#include

#include

#include

#include

#include

#defineI125.0

#defineAa40

#definerb50

#definerr5

#defineK(3.1415926/180)

#definedt0.25

floatQmax,Q1,Q2,Q3;

floatQ_a;doubleL,pr;

floate[1500],f[1500],g[1500];

voidCal(floatQ,doubleQ_Q[3])

{

Qmax=15,Q1=60,Q2=10,Q3=60;

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

{

Q_Q[0]=K*(2*Qmax*Q*Q/(Q1*Q1));

Q_Q[1]=4*Qmax*Q/(Q1*Q1);

Q_Q[2]=4*Qmax/(Q1*Q1);}

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

{

Q_Q[0]=K*(Qmax-2*Qmax*(Q-Q1)*(Q-Q1)/(Q1*Q1));

Q_Q[1]=4*Qmax*(Q1-Q)/(Q1*Q1);

Q_Q[2]=-4*Qmax/(Q1*Q1);

}

if(Q>=Q1&&Q<=Q1+Q2)

{

Q_Q[0]=K*Qmax;

Q_Q[1]=0;

Q_Q[2]=0;

}

if(Q>Q1+Q2&&Q<=Q1+Q2+Q3/2)

{

Q_Q[0]=K*(Qmax-2*Qmax*(Q-Q1-Q2)*(Q-Q1-Q2)/(Q3*Q3));

Q_Q[1]=-4*Qmax*(Q-Q1-Q2)/(Q3*Q3);

Q_Q[2]=-4*Qmax/(Q3*Q3);

}

if(Q>Q1+Q2+Q3/2&&Q

{

Q_Q[0]=K*(2*Qmax*(Q3-Q+Q1+Q2)*(Q3-Q+Q1+Q2)/(Q3*Q3));

Q_Q[1]=-4*Qmax*(Q3-Q+Q1+Q2)/(Q3*Q3);

 

Q_Q[2]=4*Qmax/(Q3*Q3);

}

if(Q>Q1+Q1+Q3&&Q<=360)

{

Q_Q[0]=K*0;Q_Q[1]=0;Q_Q[2]=0;

}

}

voidDraw(floatQ_m)

{

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

doubleQQ[3];

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+QQ[0]+tt*K-30*K);y1=I*sin(Q_a+QQ[0]+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=(QQ[1]+1)*I*sin(Q_a+QQ[0]+tt*K-30*K)-L*sin(tt*K-30*K);

dy=(QQ[1]+1)*I*cos(Q_a+QQ[0]+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);

}

}

voidCurvel()

{

intt;

floaty1,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);

}

e[t]=y1;

f[t]=y2;

g[t]=y3;

}

}

main()

{

intgd=DETECT,gm;

inti,t,choice,x_I,y_I,flag=1;

doubleQQ1[3],aa;

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

cleardevice();

for(t=0;!

kbhit();t++)

{

for(;t<360;)

t-=360;

if(flag==1)

for(L=I-rb+70;L

{

Q_a=acos((L*L+I*I-rb*rb)/(2.0*L*I));

Cal(t,QQ1);

aa=atan(1*(1-QQ1[1]-L*cos(Q_a-QQ1[0]))/(L*sin(Q_a+QQ1[0])));

pr=(pow((L*L+I*I*(1+QQ1[1])*(1+QQ1[1])-2.0*L*I*(1+QQ1[1]*cos(Q_a+QQ1[0]))),3.0/2))

/((1+QQ1[1])*(2+QQ1[1])*L*I*cos(Q_a+QQ1[0])+QQ1[2]*L*I*sin(Q_a+QQ1[0])-L*L-I*I*pow(1+QQ1[1],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+QQ1[0]-30*K);

y_I=240-L*cos(60*K)-I*sin(Q_a+QQ1[0]-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("\n\n\n\n\n\Q(w,t)");printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\t\t\t\t\t\t\t\tt");

Curvel();

getch();

printf("\n\n\n\n\n\n\n\n\n\n");

for(i=0;i<=1440;i=i+20)

{

delay(1000);

{

printf("%d%f%f%f\n",i/4,e[i],f[i],g[i]);

}

getch();

}

closegraph();}

 

 

五、设计总结

  暑假将至,我们在这学期期末终于迎来了机械原理课程设计,它是我们展现聪明才智,检验学习成果的试金石,我非常兴奋的而且认真的完成了这项研究学习任务。

  在这次为期一周的机械原理课程设计中,我荣幸的接受了滚子摆杆凸轮机构的设计项目。

经过老师一下午的讲解,同学们各自忙了。

当天晚上,我就仔细阅读学习了关于我的设计的相关内容,包括反转法原理,凸轮的轮廓曲线运动方程及位移,速度,加速度的数学表达式。

经过一番努力我终于把相关的知识都掌握了,我仔细浏览的课程设计的详细要求。

看完后,脑袋是一片空白,完全没有思路。

我以为是基础知识不够扎实,就又仔细的看了一边,但是还不行。

一向不爱讨论问题的我,这次也不得不张口了。

集思广益吗,大家的力量就是强大的,经过一番讨论,和教材思路的参考,我们首先把数学模型建立起来。

那时我们都不由自主的惊呼起来,兴奋和成功的优越感在欢呼中荡漾到很远很远。

喜悦之后,有是一个艰难的时期:

怎么进行运动分析,从而确定轮廓线呢,折回不像以前那么简单了,我和我班的同学整整做了一天也没有整出个头绪,最后我们不得不请教老师。

到了老师办公室,那儿真像个学术讨论中心,我见到了前所未见的盛况,教师和同学们济济一堂,共同探讨各类问题。

你一言,我一语。

提出问题,分析问题,解决问题,大家在这个简单而有效的循环中慢慢的揭开了心中寻思已久的谜团。

老师的循序教导,学生的刻苦学习,让我感觉到当时那一幕幕针锋相对但当问题解决时那会心一笑的神圣。

我也在老师的指导下,找了解决问题的方法。

接下来就是推倒公式了,虽然很乏味,但是很高兴,我们翻阅久违的高等数学,翻阅以前以前我们讨厌的大学物理,并做了再一次的学习,当时我们长叹了一口气,看来以前的基础课程真的很重要,以前老抱怨,现在知道了它的重要性了,我们也决定有时间要好好看下以前的知识。

公式推倒等准备工作做完了,下一步就是上机调试了。

这次,我从心里感叹,真是一步难于一步啊,怎么就这么难呢。

程序编译怎么也无从下手。

以前的的都不好用了。

大家还是大家,再一次发挥了集体的力量,几个志趣相投的集在一起仔细的分析每一句。

累了就歇会,烦了就互相取笑,大家就这么在坎坷中完成了程序的编译工作。

那时,我门都快乐的笑了

  通过一周的机械原理课程设计,使我对《机械原理》这个学科中的图解法与解析法之间的区别有了更为深刻的理解,培养了我综合运用所学过的知识;综合实际解决机械工程问题的能力;进一步掌握机构分析:

结构分析,运动分析,动力学分析与综合的基本知识,熟悉运用解析法进行精确计算与简单机构设计的一般方法,培养创新意识,通过对解析法进行机构设计的练习,训练从实际模型中提炼数学模型的能力,以及利用计算机程序等一系列具体方法解决数学问题,培养我们独立思考,独立探索和创新的能力。

并且使我对这门课程有了更具体、更细致、更全面的了解与认识。

以便满足在以后的实际设计工作中的要求。

6参考文献

《机械原理》孙恒、陈作末,高等教育出版社,1995.8

《C语言程序设计》吴德成、王家海吉林大学出版社

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 图表模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1