凸轮机构设计大作业

发布时间:2014-01-19 21:10:40

大作业(二)

凸轮机构设计

(题号:8

级:

、学

绩:

期:

1.凸轮机构大作业题目……………………………………2

2.推杆运动规律及凸轮廓线方程…………………………3

3.程序流程图………………………………………………3

4.源程序 …………………………………………………^5

5.计算结果…………………………………………………14

6.凸轮机构图………………………………………………16

7.体会及建议………………………………………………19

8.参考资料…………………………………………………20

一、凸轮机构大作业题目

试用计算机辅助设计完成下列摆动滚子推杆盘形凸轮机构的设计,已知数据如下表所示,凸轮沿着逆时针方向做匀速转动。

表1 凸轮机构的推杆运动规律

推程运动规律

正弦加速度运动

回程运动规律

等加速等减速运动

2 两种凸轮机构的推杆在近休、推程、远休及回程阶段的凸轮转角

题号

近休凸轮转角

推程凸轮转角

远休凸轮转角

回程凸轮转角

A

060

60180

180270

270360

B

045

45210

210260

260360

C

030

30210

210280

280360

表3 摆动滚子推杆盘形凸轮机构的已知参数

题号

初选基圆半径r0/mm

机架长度lOA/mm

摆杆长度lAB/mm

滚子半径

rr/mm

推杆摆角

许用压力角

许用最小曲率半径[ρamin]

[α1]

[α2]

A

15

60

55

10

24

35

70

0.3rr

B

20

70

65

14

26

40

70

0.3rr

C

22

7275

68

18

28

45

65

0.35rr

要求:每组(每三人为一组,每人一题)至少打印出一份源程序,每人打印出原始数据;凸轮理论轮廓和实际轮廓的坐标值;推程和回程的最大压力角,以及出现最大压力角时凸轮的相应转角;凸轮实际轮廓曲线的最小曲率半径,以及相应的凸轮转角;和最后说确定的基圆半径。计算点数N=72~120

绘出凸轮的理论轮廓和实际轮廓(可用计算机绘图)。

二、推杆运动规律及凸轮廓线方程

推程(正弦加速度):s=h[(δ/δ0)-sin(2πδ/δ0)/(2π)]

回程(等加速段):s=h-2hδ2/δ'02

回程(等减速段):s=2h(δ'0-δ)2/δ'02

凸轮理论廓线方程:x=lOAsinδ-lABsin(δ+φ+φ0)

y=lOAcosδ-lABcos(δ+φ+φ0)

式中,φ0为推杆的初始位置角,其值为:

φ0=arccos

程序流程图

源程序

clear

r0=22;%初选的基圆半径

dr0=0.05;

a=72; %机架长度

L=68;%摆杆长度

rr=18;%滚子半径

fai=28*pi/180;%推杆摆角

PI=3.141592653;

alpha1=45;%许用压力角α1

alpha2=65;%许用压力角阿尔法2

lambda=6.3;%许用最小曲率半径

N=120;%取用点的个数

delta1=180*pi/180;%推程凸轮最大转角

delta2=70*pi/180; %远休凸轮最大转角

delta3=80*pi/180;%回程凸轮最大转角

delta4=30*pi/180;%近休凸轮最大转角

alphamax1=0;% 推程最大压力角初值

alphamax2=0; %回程最大压力角初值

roumin=100; %凸轮最小曲率半径初值

X=ones(1,121);

Y=ones(1,121);

XP=ones(1,121);

YP=ones(1,121);

FAI=ones(1,121);

I=0;

%初始化

while(I<=N)

F0=acos((a*a+L*L-r0*r0)/(2*a*L));

delta=3*I*pi/180;

if(delta<180*pi/180&delta>=0) %正弦推程

F0=acos((a*a+L*L-r0*r0)/(2*a*L));

F=fai* ((delta/delta1)-sin(2*pi*delta/delta1)/(2*pi));

x=a*sin(delta)-L*sin(delta+F+F0);

y= a*cos(delta)-L*cos(delta+F+F0);

dF= fai*(1/delta1-cos(2*pi*delta/delta1)/delta1);

ddF=fai*2*pi*sin(2*pi*delta/delta1)/(delta1*delta1);

dx=a*cos(delta)-L*cos(delta+F+F0)*(1+dF);

ddx=-a*sin (delta)+L* sin(delta+F+F0)*(1+dF)^2-L*cos(delta+F+F0)*ddF;

dy=-a*sin(delta)+L*sin(delta+F+F0)*(1+dF);

ddy=-a*cos (delta)+L* cos(delta+F+F0)*(1+dF)^2+ L*sin(delta+F+F0)*ddF;

stheta=dx/sqrt(dx*dx+dy*dy);

ctheta=-dy/sqrt(dx*dx+dy*dy);

xp=x-rr*ctheta;

yp=y-rr*stheta;

alpha=atan((L*abs(dF)+(a*cos(F+F0)-L))/(a* sin(F+F0)))*180/pi;

alpha=abs(alpha);

if (alpha>alphamax1)

alphamax1=alpha;

deltamax1=delta*180/pi;

end

end

if(delta>=180*pi/180&delta<250*pi/180)%远休

F0=acos((a*a+L*L-r0*r0)/(2*a*L));

F=fai;

x=a*sin(delta)-L*sin(delta+F+F0);

y= a*cos(delta)-L*cos(delta+F+F0);

dF=0;

ddF=0;

dx=a*cos(delta)-L*cos(delta+F+F0)*(1+dF);

ddx=-a*sin (delta)+L* sin(delta+F+F0)*(1+dF)^2-L*cos(delta+F+F0)*ddF;

dy=-a*sin(delta)+L*sin(delta+F+F0)*(1+dF);

ddy=-a*cos (delta)+L* cos(delta+F+F0)*(1+dF)^2+ L*sin(delta+F+F0)*ddF;

stheta=dx/sqrt(dx*dx+dy*dy);

ctheta=-dy/sqrt(dx*dx+dy*dy);

xp=x-rr*ctheta;

yp=y-rr*stheta;

end

if(delta>=250*pi/180&delta<290*pi/180)%等加速回程

F0=acos((a*a+L*L-r0*r0)/(2*a*L));

F=fai-2*fai*(delta -250*pi/180)*(delta-250*pi/180)/(delta3*delta3);

x=a*sin(delta)-L*sin(delta+F+F0);

y=a*cos(delta)-L*cos(delta+F+F0);

dF=-4*fai*(delta-250*pi/180)/(delta3*delta3);

ddF=-4*fai/(delta3*delta3);

dx=a*cos(delta)-L*cos(delta+F+F0)*(1+dF);

ddx=-a*sin (delta)+L* sin(delta+F+F0)*(1+dF)^2-L*cos(delta+F+F0)*ddF;

dy=-a*sin(delta)+L*sin(delta+F+F0)*(1+dF);

ddy=-a*cos (delta)+L* cos(delta+F+F0)*(1+dF)^2+ L*sin(delta+F+F0)*ddF;

stheta=dx/sqrt(dx*dx+dy*dy);

ctheta=-dy/sqrt(dx*dx+dy*dy);

xp=x-rr*ctheta;

yp=y-rr*stheta;

alpha=atan((L*abs(dF) -(a*cos(F+F0)-L))/(a* sin(F+F0))) *180/pi;

alpha=abs(alpha);

if (alpha>alphamax2)

alphamax2=alpha;

deltamax2=delta*180/pi;

end

end

if(delta>=290*pi/180&delta<330*pi/180)%等减速回程

F0=acos((a*a+L*L-r0*r0)/(2*a*L));

F=2*fai*(delta3-(delta-250*pi/180))*(delta3-(delta-250*pi/180))/(delta3*delta3);

dF=-4*fai*(delta3-(delta-250*pi/180))/(delta3*delta3);

ddF=4*fai/(delta3*delta3);

x=a*sin(delta)-L*sin(delta+F+F0);

y=a*cos(delta)-L*cos(delta+F+F0);

dx=a*cos(delta)-L*cos(delta+F+F0)*(1+dF);

ddx=-a*sin (delta)+L* sin(delta+F+F0)*(1+dF)^2-L*cos(delta+F+F0)*ddF;

dy=-a*sin(delta)+L*sin(delta+F+F0)*(1+dF);

ddy=-a*cos (delta)+L* cos(delta+F+F0)*(1+dF)^2+ L*sin(delta+F+F0)*ddF;

stheta=dx/sqrt(dx*dx+dy*dy);

ctheta=-dy/sqrt(dx*dx+dy*dy);

xp=x-rr*ctheta;

yp=y-rr*stheta;

alpha=atan((L*abs(dF)-(a*cos(F+F0)-L))/(a*sin(F+F0)))*180/pi;

alpha=abs(alpha);

if (alpha>alphamax2)

alphamax2=alpha;

deltamax2=delta*180/pi;

end

end

if(delta>=330*pi/180&delta<=360*pi/180) %近休

F0=acos((a*a+L*L-r0*r0)/(2*a*L));

F=0;

x=a*sin(delta)-L*sin(delta+F+F0);

y=a*cos(delta)-L*cos(delta+F+F0);

dF=0;

ddF=0;

dx=a*cos(delta)-L*cos(delta+F+F0)*(1+dF);

ddx=-a*sin (delta)+L* sin(delta+F+F0)*(1+dF)^2-L*cos(delta+F+F0)*ddF;

dy=-a*sin(delta)+L*sin(delta+F+F0)*(1+dF);

ddy=-a*cos (delta)+L* cos(delta+F+F0)*(1+dF)^2+ L*sin(delta+F+F0)*ddF;

stheta=dx/sqrt(dx*dx+dy*dy);

ctheta=-dy/sqrt(dx*dx+dy*dy);

xp=x-rr*ctheta;

yp=y-rr*stheta;

end

if (alphamax1>alpha1)||(alphamax2>alpha2) %优化条件

r0=r0+dr0;

I=0;

alphamax1=0;

alphamax2=0;

continue

end

rou=((dx^2+dy^2)^(3/2))/(dx*ddy-dy*ddx); %计算曲率半径

if (rou<0)

rou=-rou;

if ((rou-rr)<(0.35*rr)) %优化条件

r0=r0+dr0;

I=0;

alphamax1=0;

alphamax2=0;

continue

end

if(rou

roumin=rou;

deltamin=delta *180/pi;

roumina=roumin-rr;

end

end

X(I+1)=x;

Y(I+1)=y;

XP(I+1)=xp;

YP(I+1)=yp;

I=I+1;

end

figure(1);

axis equal

hold on

t=0:3:360;

X_1=r0*cosd(t); %画基圆

Y_1=r0*sind(t);

X_2=rr*cosd(t)+X(10); %画滚子

Y_2=rr*sind(t)+Y(10);

plot(X_1,Y_1,'m--',X,Y,':',XP,YP,'k',X_2,Y_2,'c--');

legend('基圆','理论轮廓','实际轮廓');

plot(0,0,'ko'); %固定凸轮点

plot(X(10),Y(10),'ko'); %固定滚子点

title('凸轮轮廓曲线图');

xlabel('X/mm');

ylabel('Y/mm');

hold off

disp('推程最大压力角:');

alphamax1

disp('推程最大压力角相应转角:');

deltamax1

disp('回程最大压力角:');

alphamax2

disp('回程最大压力角相应转角:');

deltamax2

disp('凸轮最小曲率半径:');

roumin

disp('凸轮最小曲率半径相应转角:');

roumina

disp('最后确定的凸轮基圆半径:');

r0

计算结果

A组:

推程最大压力角:

alphamax1 =34.9492

推程最大压力角相应转角:

deltamax1 =45

回程最大压力角:

alphamax2 =46.7626

回程最大压力角相应转角:

deltamax2 = 255

凸轮最小曲率半径:

roumin =15.0000

凸轮最小曲率半径相应转角:

roumina =5.0000

最后确定的凸轮基圆半径:

r0 =19.7000

B组:

推程最大压力角:

alphamax1 =24.2568

推程最大压力角相应转角:

deltamax1 = 177.0000

回程最大压力角:

alphamax2 = 51.9666

回程最大压力角相应转角:

deltamax2 = 291.0000

凸轮最小曲率半径:

roumin = 24.3000

凸轮最小曲率半径相应转角:

roumina =6.3000

最后确定的凸轮基圆半径:

r0 =32.8000

C组:

推程最大压力角:

alphamax1 =24.2568

推程最大压力角相应转角:

deltamax1 = 177.0000

回程最大压力角:

alphamax2 = 51.9666

回程最大压力角相应转角:

deltamax2 = 291.0000

凸轮最小曲率半径:

roumin = 24.3000

凸轮最小曲率半径相应转角:

roumina =6.3000

最后确定的凸轮基圆半径:

r0 =32.8000

凸轮机构图

A组:

B组:

C:



体会及建议

本次凸轮机构的设计,我们熟悉了解析法在机构设计中的应用,锻炼了编程能力。这次大作业用到了非常多的MATLAB编程知识,我们查阅了大量资料,也请教了不少同学,最后编出来程序实属不易。通过这次亲手设计实践,我们也认识到具体的操作远远比想象中的难,尤其是工程问题,涉及到方方面面的知识,这一点在以后的学习生活中也应该引起注意,注重细节才能做得更好。另外,大作业带给我们最大的好处就是我们更加熟悉凸轮的运动规律,这比起上课老师的讲解印象更深,因为加入了自己的思考和亲手设计,我们也能更加熟练地理解凸轮的设计实践,我想这是大作业带给我们最大的好处。

这次凸轮设计的大作业也引起了我们的思考,因为这实在是涉及到太多的编程知识,C语言MATLAB等都可能用到,然而我们平常的教学过程中没有怎么教到这些知识,尤其是MATLAB,我们想学校应该给大家开设这样的课程,这对于同学们的科研能力和综合水平都是由很大提高和帮助的。

八、参考资料

孙桓 陈作模 葛文杰,等,机械原理【M】,8版,北京:高等教育出版社,2013

苏金明,等,MATLAB高级编程【M2版,电子工业出版社,2008

凸轮机构设计大作业

相关推荐