机械原理大作业二.docx
《机械原理大作业二.docx》由会员分享,可在线阅读,更多相关《机械原理大作业二.docx(19页珍藏版)》请在冰豆网上搜索。
机械原理大作业二
机械原理大作业二
课程名称:
机械原理
设计题目:
直动从动件盘形凸轮机构(13)
院系:
英才学院
班级:
完成者:
学号:
指导教师:
林琳
设计时间:
2015.5.13
哈尔滨工业大学
1.设计题目
设计如图1所示的直动从动件盘形凸轮机构,其原始参数见表1
图1
行程
(mm)
升程运动角(度)
升程运动规律
升程许用应力角(度)
回程运动角(度)
回程运动规律
回程许用应力角(度)
远休程角
(度)
近休程角
(度)
45
50
余弦加速度
35
90
抛-直-抛
70
100
120
表1
2.凸轮轮廓设计计算数学模型
2.1推程运动规律方程
位移方程:
速度方程:
加速度方程:
2.2回程运动规律方程(抛物线-直线-抛物线)
位移方程:
速度方程:
加速度方程:
式中,
-------推程运动角;
-------远休止角;
-------回程运动角
2.3滚子半径及凸轮的理论廓线和实际廓线
为求滚子许用半径,须确定最小曲率半径,以防止凸轮工作轮廓出现尖点或出现相交包络线,确定最小曲率半径数学模型如下:
;
利用上面的公式可以求得曲率半径的最小值,而后可以确定实际轮廓曲线。
理论轮廓线数学模型:
实际轮廓线数学模型:
其中
为选定的滚子半径,
3.计算流程图
图2.计算流程图
4.计算程序清单
编程语言为MATLAB,编程环境为MATLABR2014a,具体解释见备注
clc;
clear;
h=50;%行程
ds=pi/180;
fai0=50*ds;%升程运动角
fai0_=pi/2;%回程运动角
fais=100*ds;%远休止角
fais_=120*ds;%近休止角
alpha1=35*ds;%升程许用应力角
alpha2=70*ds;%回程许用应力角
n=5;%给定初始值5
w=5;%角速度
fai1=0:
0.01:
fai0;
fai2=fai0+fais:
0.01:
fai0+fais+fai0_/n;
fai3=fai0+fais+fai0_/n:
0.01:
fai0+fais+fai0_*(n-1)/n;
fai4=fai0+fais+fai0_*(n-1)/n:
0.01:
fai0+fais+fai0_;
fai5=fai0:
0.01:
fai0+fais;
fai6=fai0+fais+fai0_:
0.01:
2*pi;
%推程
s1=h/2*(1-cos(pi/fai0*fai1));
v1=pi*h*w/(2*fai0)*sin(pi/fai0*fai1);
a1=pi^2*h*w^2/(2*fai0^2)*cos(pi/fai0*fai1);
%回程抛物线一
s2p1=h-h*n^2/(2*(n-1)*fai0_^2)*power(fai2-fai0-fais,2);
v2p1=-h*n^2*w/((n-1)*fai0_^2)*(fai2-fai0-fais);
a2p1=-h*n^2*w^2/((n-1)*fai0_^2)*ones(1,length(fai2));
%回程直线
s2l=h-h/(n-1)*(n/fai0_*(fai3-fai0-fais)-1/2);
v2l=-h*n*w/((n-1)*fai0_)*ones(1,length(fai3));
a2l=zeros(1,length(fai3));
%回程抛物线二
s2p2=h*n^2/(2*(n-1))*power((1-(fai4-fai0-fais)/fai0_),2);
v2p2=-h*n^2*w/((n-1)*fai0_)*(1-(fai4-fai0-fais)/fai0_);
a2p2=h*n^2*w^2/((n-1)*fai0_^2)*ones(1,length(fai4));
%远休程
s3=h/2*(1-cos(pi/fai0*fai0))*ones(1,length(fai5));
v3=zeros(1,length(fai5));
a3=zeros(1,length(fai5));
%近休程
s4=h*n^2/(2*(n-1))*power((1-(fai0_)/fai0_),2)*ones(1,length(fai6));
v4=zeros(1,length(fai6));
a4=zeros(1,length(fai6));
%从动件位移、速度、加速度图线
figure
(1);
s=[s1,s3,s2p1,s2l,s2p2,s4];
t=[fai1,fai5,fai2,fai3,fai4,fai6];
plot(t,s,'r');
gridon;
holdon;
title('从动件位移图线');
xlabel('凸轮转过的角度');
ylabel('从动件位移');
holdon;
figure
(2);
v=[v1,v3,v2p1,v2l,v2p2,v4];
plot(t,v,'r');
gridon;
holdon;
title('从动件速度图线');
xlabel('凸轮转过的角度');
ylabel('从动件速度');
holdon;
figure(3);
a=[a1,a3,a2p1,a2l,a2p2,a4];
plot(t,a,'r');
gridon;
holdon;
title('从动件加速度图线');
xlabel('凸轮转过的角度');
ylabel('从动件加速度');
holdon;
%画ds/dψ-s图像
symsfaist1st2st3st4diff1diff2diff3diff4;
st1=h/2*(1-cos(pi/fai0*fai));
diff1=diff(st1,fai);
k1=0:
0.01:
fai0;
dif1=eval(subs(diff1,fai,k1));
st2=h-h*n^2/(2*(n-1)*fai0_^2)*power(fai-fai0-fais,2);
diff2=diff(st2,fai);
k2=fai0+fais:
0.01:
fai0+fais+fai0_/n;
dif2=eval(subs(diff2,fai,k2));
st3=h-h/(n-1)*(n/fai0_*(fai-fai0-fais)-1/2);
diff3=diff(st3,fai);
k3=fai0+fais+fai0_/n:
0.01:
fai0+fais+fai0_*(n-1)/n;
dif3=ones(1,length(k3))*eval(diff3);
st4=h*n^2/(2*(n-1))*power((1-(fai-fai0-fais)/fai0_),2);
diff4=diff(st4,fai);
k4=fai0+fais+fai0_*(n-1)/n:
0.01:
fai0+fais+fai0_;
dif4=eval(subs(diff4,fai,k4));
k5=fai0:
0.01:
fai0+fais;
k6=fai0+fais+fai0_:
0.01:
2*pi;
dif5=zeros(1,length(k5));
dif6=zeros(1,length(k6));
dif=[dif1,dif5,dif2,dif3,dif4,dif6];
figure(4);
plot(dif,s,'k');
gridon;
holdon;
title('凸轮机构ds/dψ-s图线');
xlabel('ds/dψ');
ylabel('s');
holdon;
%确定凸轮基圆半径和偏距
%先画过原点的直线,该直线与纵坐标轴的夹角为alpha1
x=0:
0.01:
90;
y=-tan(alpha1)*x;
plot(x,y,'r');
holdon;
%画两条边界切线
x0=90*sin(18*0.398/5);
y0=25-25*cos(18*0.398/5);
x=0:
0.01:
90;
y=tan(pi/2-alpha1)*(x-x0)+y0;
plot(x,y,'r');
holdon;
x0_=90*sin(18*2.177/5);
y0_=25-25*cos(18*2.177/5);
x_=-50:
0.01:
90;
y_=tan(pi/2+alpha2)*(x_+x0_)+y0_;
plot(x_,y_,'r')
holdon;
%凸轮实际轮廓
cx=50;
cy=-45;%基圆圆心坐标
e=50;
r=sqrt(cx^2+cy^2);
s0=sqrt(r^2-e^2);
%凸轮压力角图线
fori=1:
88
Alpha1(i)=atan(abs(dif1(i)-e)/(s0+s1(i)));
end
fori=1:
32
Alpha2(i)=atan(abs(dif2(i)-e)/(s0+s2p1(i)));
end
fori=1:
95
Alpha3(i)=atan(abs(dif3(i)-e)/(s0+s2l(i)));
end
fori=1:
32
Alpha4(i)=atan(abs(dif4(i)-e)/(s0+s2p2(i)));
end
fori=1:
175
Alpha5(i)=atan(e/(s0+s1(88)));
end
fori=1:
210
Alpha6(i)=atan(e/(s0+s2p2(32)));
end
alpha_0=[Alpha1,Alpha5,Alpha2,Alpha3,Alpha4,Alpha6];
figure(5);
plot(t,alpha_0,'r');
title('压力角变化曲线');
xlabel('转过的角度');
ylabel('压力角');
gridon;
holdon;
figure(6);
m=0:
0.01:
2*pi;
x=r*cos(m);
y=r*sin(m);
xe=e*cos(m);
ye=e*sin(m);
plot(x,y,'k');
holdon;
plot(xe,ye,'k');
title('凸轮的理论轮廓与实际轮廓');
axisequal;
gridon;holdon;
%滚子的理论轮廓图线
fori=1:
88
c1x(i)=e*cos(fai1(i))+(s0+s1(i))*sin(fai1(i));
c1y(i)=-e*sin(fai1(i))+(s0+s1(i))*cos(fai1(i));
end
fori=1:
32
c2x(i)=e*cos(fai2(i))+(s0+s2p1(i))*sin(fai2(i));
c2y(i)=-e*sin(fai2(i))+(s0+s2p1(i))*cos(fai2(i));
end
fori=1:
95
c3x(i)=e*cos(fai3(i))+(s0+s2l(i))*sin(fai3(i));
c3y(i)=-e*sin(fai3(i))+(s0+s2l(i))*cos(fai3(i));
end
fori=1:
32
c4x(i)=e*cos(fai4(i))+(s0+s2p2(i))*sin(fai4(i));
c4y(i)=-e*sin(fai4(i))+(s0+s2p2(i))*cos(fai4(i));
end
fori=1:
175
c5x(i)=e*cos(fai5(i))+(s0+s1(88))*sin(fai5(i));
c5y(i)=-e*sin(fai5(i))+(s0+s1(88))*cos(fai5(i));
end
fori=1:
210
c6x(i)=e*cos(fai6(i))+(s0+s2p2(32))*sin(fai6(i));
c6y(i)=-e*sin(fai6(i))+(s0+s2p2(32))*cos(fai6(i));
end
cpx=[c1x,c5x,c2x,c3x,c4x,c6x];
cpy=[c1y,c5y,c2y,c3y,c4y,c6y];
plot(cpx,cpy,'r');
holdon;
%凸轮的滚子半径及其实际轮廓
symssx1sx2sx3sx4sy1sy2sy3sy4sx5sx6sy5sy6;
symss1x1s1x2s1x3s1x4s1y1s1y2s1y3s1y4s1x5s1y5s1y6s1x6;%一阶导数
symss2x1s2x2s2x3s2x4s2y1s2y2s2y3s2y3s2x5s2y5s2y6s2x6;%二阶导数
symsrou1rou2rou3rou4rou5rou6;%曲率半径表达式
sx1=e*cos(fai)+(s0+st1)*sin(fai);
sy1=-e*sin(fai)+(s0+st1)*cos(fai);
sx2=e*cos(fai)+(s0+st2)*sin(fai);
sy2=-e*sin(fai)+(s0+st2)*cos(fai);
sx3=e*cos(fai)+(s0+st3)*sin(fai);
sy3=-e*sin(fai)+(s0+st3)*cos(fai);
sx4=e*cos(fai)+(s0+st4)*sin(fai);
sy4=-e*sin(fai)+(s0+st4)*cos(fai);
sx5=e*cos(fai)+(s0+s1(88))*sin(fai);
sy5=-e*sin(fai)+(s0+s1(88))*cos(fai);
sx6=e*cos(fai)+(s0+s2p2(32))*sin(fai);
sy6=-e*sin(fai)+(s0+s2p2(32))*cos(fai);
s1x1=diff(sx1,fai);
s1y1=diff(sy1,fai);
s2x1=diff(sx1,fai,2);
s2y1=diff(sy1,fai,2);
n1=0:
0.01:
fai0;
rou1=abs((s1x1^2+s1y1^2)^1.5/(s1x1*s2y1-s2x1*s1y1));
rou_1=eval(subs(rou1,fai,n1));
s1x2=diff(sx2,fai);
s1y2=diff(sy2,fai);
s2x2=diff(sx2,fai,2);
s2y2=diff(sy2,fai,2);
n2=fai0+fais:
0.01:
fai0+fais+fai0_/n;
rou2=abs((s1x2^2+s1y2^2)^1.5/(s1x2*s2y2-s2x2*s1y2));
rou_2=eval(subs(rou2,fai,n2));
s1x3=diff(sx3,fai);
s1y3=diff(sy3,fai);
s2x3=diff(sx3,fai,2);
s2y3=diff(sy3,fai,2);
n3=fai0+fais+fai0_/n:
0.01:
fai0+fais+fai0_*(n-1)/n;
rou3=abs((s1x3^2+s1y3^2)^1.5/(s1x3*s2y3-s2x3*s1y3));
rou_3=eval(subs(rou3,fai,n3));
s1x4=diff(sx4,fai);
s1y4=diff(sy4,fai);
s2x4=diff(sx4,fai,2);
s2y4=diff(sy4,fai,2);
s1y5=diff(sy5,fai);
s1x5=diff(sx5,fai);
s1x6=diff(sx6,fai);
s1y6=diff(sy6,fai);
s2x5=diff(sx5,fai,2);
s2y5=diff(sy5,fai,2);
s2y6=diff(sy6,fai,2);
s2x6=diff(sx6,fai,2);
n4=fai0+fais+fai0_*(n-1)/n:
0.01:
fai0+fais+fai0_;
rou4=abs((s1x4^2+s1y4^2)^1.5/(s1x4*s2y4-s2x4*s1y4));
rou_4=eval(subs(rou4,fai,n4));
n5=fai0:
0.01:
fai0+fais;
rou5=abs((s1x5^2+s1y5^2)^1.5/(s1x5*s2y5-s2x5*s1y5));
rou_5=eval(subs(rou5,fai,n5));
n6=fai0+fais+fai0_:
0.01:
2*pi;
rou6=abs((s1x6^2+s1y6^2)^1.5/(s1x6*s2y6-s2x6*s1y6));
rou_6=eval(subs(rou6,fai,n6));
rou=[rou_1,rou_5,rou_2,rou_3,rou_4,rou_6];
n_=[n1,n5,n2,n3,n4,n6];
figure(7);
plot(n_,rou,'b');
axis([04.50100])
title('曲率半径变化曲线');
gridon;holdon;
rou_min=min(rou);
r0=9;
%凸轮的实际轮廓曲线
forj=1:
88
l1x=eval(subs(s1y1/sqrt(s1x1^2+s1y1^2),fai,fai1(j)));
l1y=eval(subs(s1x1/sqrt(s1x1^2+s1y1^2),fai,fai1(j)));
X1(j)=c1x(j)+r0*l1x;
Y1(j)=c1y(j)-r0*l1y;
end
forj=1:
32
l2x=eval(subs(s1y2/sqrt(s1x2^2+s1y2^2),fai,fai2(j)));
l2y=eval(subs(s1x2/sqrt(s1x2^2+s1y2^2),fai,fai2(j)));
X2(j)=c2x(j)+r0*l2x;
Y2(j)=c2y(j)-r0*l2y;
end
forj=1:
95
l3x=eval(subs(s1y3/sqrt(s1x3^2+s1y3^2),fai,fai3(j)));
l3y=eval(subs(s1x3/sqrt(s1x3^2+s1y3^2),fai,fai3(j)));
X3(j)=c3x(j)+r0*l3x;
Y3(j)=c3y(j)-r0*l3y;
end
forj=1:
32
l4x=eval(subs(s1y4/sqrt(s1x4^2+s1y4^2),fai,fai4(j)));
l4y=eval(subs(s1x4/sqrt(s1x4^2+s1y4^2),fai,fai4(j)));
X4(j)=c4x(j)+r0*l4x;
Y4(j)=c4y(j)-r0*l4y;
end
forj=1:
175
l5x=eval(subs(s1y5/sqrt(s1x5^2+s1y5^2),fai,fai5(j)));
l5y=eval(subs(s1x5/sqrt(s1x5^2+s1y5^2),fai,fai5(j)));
X5(j)=c5x(j)+r0*l5x;
Y5(j)=c5y(j)-r0*l5y;
end
forj=1:
210
l6x=eval(subs(s1y6/sqrt(s1x6^2+s1y6^2),fai,fai6(j)));
l6y=eval(subs(s1x6/sqrt(s1x6^2+s1y6^2),fai,fai6(j)));
X6(j)=c6x(j)+r0*l6x;
Y6(j)=c6y(j)-r0*l6y;
end
figure(6);
X=[X1,X5,X2,X3,X4,X6];
Y=[Y1,Y5,Y2,Y3,Y4,Y6];
plot(X,Y,'r');
holdon;
5计算结果分析
5.1计算结果
5.1.1从动件的位移速度加速度线图
图3.从动件的位移图线
图4.从动件的速度图线
图5.从动件的加速度图线
5.1.2凸轮机构
线图
图6.凸轮机构
线图
5.1.3凸轮的理论轮廓上的曲率半径线图
图7.理论轮廓上曲率半径
5.1.3凸轮的理论轮廓上的压力角线图
图8.理论轮廓上的压力角
5.1.4凸轮的理论轮廓与实际轮廓
图9.凸轮的理论轮廓与实际轮廓
5.2计算结果分析
①通过编程得到的图像与任务书上图像吻合,说明计算及编程无误。
②通过分别观察从动件的位移、速度和加速度随凸轮转过角度的变化图线,可以发现直动从动件盘形凸轮机构在回程运动规律分为三段。
③通过绘制凸轮机构的ds/dΨ-s线图及计算凸轮机构的曲率半径,得出滚子的半径取10mm。
④利用凸轮的理论轮廓和滚子半径可以通过计算编程得到凸轮的实际轮廓。
最终将二者显示在图9当中。