凸轮机构设计说明书.docx
《凸轮机构设计说明书.docx》由会员分享,可在线阅读,更多相关《凸轮机构设计说明书.docx(14页珍藏版)》请在冰豆网上搜索。
凸轮机构设计说明书
HarbinInstituteofTechnology
凸轮机构设计设计说明书
课程名称:
机械原理
设计题目:
齿轮机构设计
院系:
班级:
设计者:
学号:
指导教师:
哈尔滨工业大学
大作业2凸轮机构设计
1.设计题目
如图2-1所示直动从动件盘形凸轮机构,其原始参数见表2-1。
从表2-1中选择一组凸轮机构的原始参数,据此设计该凸轮机构。
序号
升程(mm)
升程运
动角
(
)
升程运
动规律
升程
许用
压力角
(
)
回程运
动角
(
)
回程运
动规律
回程
许用
压力角
(
)
远休
止角
(
)
近休
止角
(
)
19
110
90
等加等减速
30
80
余弦加速度
70
120
70
表2-1凸轮机构原始参数
1.运动方程式及运动线图
本实验假设凸轮逆时针旋转。
(1)确定凸轮机构推杆升程、回程运动方程,并绘制推杆位移、速度、加速度线图。
(设定角速度为ω=1.)
升程(0
):
当0
时;
由公式:
;
v=4h
a=4h
由此得:
s=
;
v=1760
;
a=1760
;
当
时,
由公式
;
v=4h
a=-4h
得
;
v=1760
a=-1760
回程(21π/18<φ<29π/18):
由公式s=
v=
;
a=
;
得到
s=
v=
;
a=
;
推杆远休止(π/2<φ<21π/18):
s=110;
v=0;
a=0;
推杆近休止(29π/18<φ<21π/18):
s=110;
v=0;
a=0;
利用上述方程进行编程(Matlab)得到下面所示的凸轮推杆位移,速度,加速度线图(源代码见附录1):
2.凸轮机构的
当0
时,
v=1760
;
当
时,
=1760
;
当π/2<φ<21π/18时,
=0;
当21π/18<φ<29π/18时,
=
;
当29π/18<φ<21π/18时,
=0;
将上面的
及s与
的关系进行编程计算(Matlab,源代码见附录2),获得下图所示的
:
(图中三条直线是为了确定凸轮的基圆半径和齿轮偏距而作的辅助线)
由上图可知在左下区域为凸轮中心的可选择位置,本题选择s0=110mm,e=50mm。
将选择好的参数带入编好的程序中(原程序见附录3),可以得到凸轮的理论轮廓。
为了得到凸轮的实际轮廓,需要得到滚子的半径,为此有必要得到凸轮理论轮廓的最小曲率半径。
为此编写了一段程序(见附录5),得到最小曲率半径ρmin=161.06mm,所以滚子可以取半径为20mm,将这些参数带入附录3的程序中,得到凸轮的理论轮廓,实际轮廓和基圆图,如下图所示:
附录1:
tan1=0:
pi/200:
pi/4;
w=1;
s1=220*(2*tan1/pi).^2;
v1=440*w/(pi^2/4)*tan1;
a1=440*w*4/(pi^2);
tan2=pi/4:
pi/200:
pi/2;
s2=110-880/pi^2*(pi/2-tan2).^2;
v2=440*w*4/pi^2*(pi/2-tan2);
a2=-440*4*w^2/(pi^2);
tan3=pi/2:
pi/200:
pi*21/18;
s3=110;
v3=0;
a3=0;
tan4=pi/18*21:
pi/200:
29*pi/18;
s4=55*(1+cos(9/4*(tan4-17*pi/18)));
v4=-9*w*110/8*sin(9/4*(tan4-17/18*pi));
a4=-81*w^2*110/32*cos(9/4*(tan4-17/18*pi));
tan5=29/18*pi:
pi/200:
pi*2;
s5=0;
v5=0;
a5=0;
subplot(311);
plot(tan1,s1,'r',tan2,s2,'r',tan3,s3,'r',tan4,s4,'r',tan5,s5,'r');
axis([02*pi+pi/4-10,140]);
ylabel('s(mm)');
xlabel('¦Õ');
set(gca,'xtick',[0,pi/2,pi,pi*3/2,pi*2]);
grid;
subplot(312);
axis([02*pi+pi/4-10,140]);
plot(tan1,v1,'r',tan2,v2,'r',tan3,v3,'r',tan4,v4,'r',tan5,v5,'r');
ylabel('v(w*mm)');
xlabel('¦Õ');
set(gca,'xtick',[0,pi/2,pi,pi*3/2,pi*2]);
grid;
subplot(313);
axis([02*pi+pi/4-10,140]);
plot(tan1,a1,'r',tan2,a2,'r',tan3,a3,'r',tan4,a4,'r',tan5,a5,'r');
ylabel('a(w^2*mm)');
xlabel('¦Õ');
set(gca,'xtick',[0,pi/2,pi,pi*3/2,pi*2]);
grid;
附录2:
clear;
tan1=0:
pi/200:
pi/4;
x1=-440*4/pi^2*tan1;
y1=220*(2*tan1/pi).^2;
tan2=pi/4:
pi/200:
pi/2;
y2=(110-220*4/pi^2*(pi/2-tan2).^2);
x2=-440*4/pi^2*(pi/2-tan2);
tan3=pi/2:
pi/200:
pi/18*21;
y3=-110;
x3=0;
tan4=21*pi/18:
pi/200:
pi/18*29;
y4=55*(1+cos(9/4*(tan4-21*pi/18)));
x4=9*110/8*sin(9/4*(tan4-21*pi/18));
tan5=pi*29/18:
pi/200:
pi*2;
y5=0;
x5=0;
b=y4-x4*1/(tan(70*pi/180));
t=min(b);
x6=-150:
0.1:
150;
y6=1/(tan(70*pi/180))*x6+t;
a=y1+x1*1/(tan(pi*30/180));
t1=min(a);
x7=-150:
0.1:
150;
y7=-x7*1/(tan(30/180*pi))+t1;
y8=x7*1/(tan(30/180*pi));
plot(x1,y1,x2,y2,x3,y3,x4,y4,x5,y5,x6,y6,x7,y7,x7,y8);
xlabel('ds/d¦Õ');
ylabel('s(mm)');
grid;
附录3:
clear;
s0=110;
e=-50;
x1=0:
1:
2000;
x2=0:
1:
2000;
y2=0:
1:
2000;
y1=0:
1:
2000;
r0=sqrt(s0^2+e^2);
b=20;
for(k1=0:
1:
500)
theta1=pi/2000*k1;
x=(1760*theta1*cos(theta1))/pi^2-sin(theta1)*((880*theta1^2)/pi^2+s0)-e*cos(theta1);
y=cos(theta1)*((880*theta1^2)/pi^2+s0)-e*sin(theta1)+(1760*theta1*sin(theta1))/pi^2;
a=sqrt(x^2+y^2);
s1=220*((2*theta1/pi)^2);
x1(k1+1)=(s0+s1)*cos(theta1)-e*sin(theta1);
x2(k1+1)=x1(k1+1)-b*y/a;
y1(k1+1)=(s0+s1)*sin(theta1)+e*cos(theta1);
y2(k1+1)=y1(k1+1)+b*x/a;
end
for(k2=1:
1:
500)
theta2=pi/4+pi/2000*k2;
x=cos(theta2)*((196070722416409*pi)/2199023255552-(196070722416409*theta2)/1099511627776)-e*cos(theta2)-sin(theta2)*(s0-(196070722416409*(pi/2-theta2)^2)/2199023255552+110);
y=sin(theta2)*((196070722416409*pi)/2199023255552-(196070722416409*theta2)/1099511627776)-e*sin(theta2)+cos(theta2)*(s0-(196070722416409*(pi/2-theta2)^2)/2199023255552+110);
a=sqrt(x^2+y^2);
s2=110-880/pi^2*(pi/2-theta2)^2;
x1(k1+k2)=(s0+s2)*cos(theta2)-e*sin(theta2);
x2(k1+k2)=x1(k1+k2)-b*y/a;
y1(k1+k2)=(s0+s2)*sin(theta2)+e*cos(theta2);
y2(k1+k2)=y1(k1+k2)+b*x/a;
end
k3=-1;
k=k1+k2;
theta3=theta2;
while(theta3<=pi/18*21)
k3=k3+1;
theta3=pi/2+pi/2000*k3;
x=-sin(theta3)*(s0+110)-e*cos(theta3);
y=cos(theta3)*(s0+110)-e*sin(theta3);
a=sqrt(x^2+y^2);
s3=110;
x1(k+k3)=(s0+s3)*cos(theta3)-e*sin(theta3);
x2(k+k3)=x1(k+k3)-b*y/a;
y1(k+k3)=(s0+s3)*sin(theta3)+e*cos(theta3);
y2(k+k3)=y1(k+k3)+b*x/a;
end
k=k+k3;
k4=0;
theta4=theta3;
while(theta4<=pi*29/18)
k4=k4+1;
theta4=pi*21/18+pi/2000*k4;
x=-(495*sin((9*theta4)/4-(21*pi)/8)*cos(theta4))/4-e*cos(theta4)-sin(theta4)*(s0+55*cos((9*theta4)/4-(21*pi)/8)+55);
y=cos(theta4)*(s0+55*cos((9*theta4)/4-(21*pi)/8)+55)-(495*sin((9*theta4)/4-(21*pi)/8)*sin(theta4))/4-e*sin(theta4);
s4=55*(1+cos(9/4*(theta4-21*pi/18)));
a=sqrt(x^2+y^2);
x1(k+k4)=(s0+s4)*cos(theta4)-e*sin(theta4);
x2(k+k4)=x1(k+k4)-b*y/a;
y1(k+k4)=(s0+s4)*sin(theta4)+e*cos(theta4);
y2(k+k4)=y1(k+k4)+b*x/a;
end
k=k+k4;
k5=0;
theta5=theta4;
while(theta5<=2*pi)
k5=k5+1;
theta5=29/18*pi+pi/1800*k5;
x=-e*cos(theta5)-s0*sin(theta5);
y=s0*cos(theta5)-e*sin(theta5);
s5=0;
a=sqrt(x^2+y^2);
x1(k+k5)=(s0+s5)*cos(theta5)-e*sin(theta5);
x2(k+k5)=x1(k+k5)-b*y/a;
y1(k+k5)=(s0+s5)*sin(theta5)+e*cos(theta5);
y2(k+k5)=y1(k+k5)+b*x/a;
end
theta=0:
pi/2000:
pi*2;
x3=r0*cos(theta);
y3=r0*sin(theta);
plot(x1,y1,x2,y2,x3,y3);
grid;
axisequal;
附录4(求导使用):
clear;
symsas1s0e;
s1=220*(2*a/pi)^2;
x1=(s0+s1)*cos(a)-e*sin(a);
x(1,1)=diff(x1,'a',1);
x(1,2)=diff(x1,'a',2);
y1=(s0+s1)*sin(a)+e*cos(a);
y(1,1)=diff(y1,'a',1);
y(1,2)=diff(y1,'a',2);
%s2=110-880/pi^2*(pi/2-theta2)^2;
symsas2s0e;
s2=110-220*4/pi^2*(pi/2-a)^2;
x2=(s0+s2)*cos(a)-e*sin(a);
x(2,1)=diff(x2,'a',1);
x(2,2)=diff(x2,'a',2);
y2=(s0+s2)*sin(a)+e*cos(a);
y(2,1)=diff(y2,'a',1);
y(2,2)=diff(y2,'a',2);
%s4=55*(1+cos(9/4*(theta4-21*pi/18)));
symsas3s0e;
s3=55*(1+cos(9/4*(a-21/18*pi)));
x3=(s0+s3)*cos(a)-e*sin(a);
x(3,1)=diff(x3,'a',1);
x(3,2)=diff(x3,'a',2);
y3=(s0+s3)*sin(a)+e*cos(a);
y(3,1)=diff(y3,'a',1);
y(3,2)=diff(y3,'a',2);
symsas0e;
x4=(s0+110)*cos(a)-e*sin(a);
x(4,1)=diff(x4,'a',1);
x(4,2)=diff(x4,'a',2);
y4=(s0+110)*sin(a)+e*cos(a);
y(4,1)=diff(y4,'a',1);
y(4,2)=diff(y4,'a',2);
symsas0e;
x5=(s0+0)*cos(a)-e*sin(a);
x(5,1)=diff(x5,'a',1);
x(5,2)=diff(x5,'a',2);
y5=(s0+0)*sin(a)+e*cos(a);
y(5,1)=diff(y5,'a',1);
y(5,2)=diff(y5,'a',2);