凸轮机构大作业 机械原理 课设Word文档格式.docx
《凸轮机构大作业 机械原理 课设Word文档格式.docx》由会员分享,可在线阅读,更多相关《凸轮机构大作业 机械原理 课设Word文档格式.docx(9页珍藏版)》请在冰豆网上搜索。
6.体会及建议8
7.参考书8
1.题目及原始数据
使用计算机辅助设计完成题目要求的摆动滚子推杆判刑凸轮机构的设计,已知数据如下表,凸轮沿逆时针方向运动。
表1转角
转角
进休转角
推程转角
远休转角
回城转角
xxA
200
950
180
900
xxxB
1020
zsC
980
表2已知参数
数据(mm)
初选基圆半径
机架长度
摆杆长度
滚子半径
推杆摆角
许用压力角
需用最小曲率半径
15
60
55
10
24
35
70
0.3
20
65
14
26
40
22
72
68
18
28
45
0.35
2.推杆运动规律及图轮廓线方程
表3运动规律
题号
推程运动规律
回程运动规律
7—A,B,C
等加速等减速运动
余弦加速度运动
摆杆转角方程
理论廓线方程
工作廓线方程
3.计算程序
%本段代码属621原创,版权所有,如有雷同纯属巧合,禁止复制粘贴。
%此代码最终解释权归621所有
clear
%初始化数据
q=1;
%选择组别(1,2,3-A,B,C)
r0=[15,20,22];
loa=[60,70,72];
lab=[55,65,68];
rr=[10,14,18];
h=[24,26,28];
alpha1=[5,40,45];
alpha2=[70,70,65];
u=[0.3,0.3,0.35];
j1=[60,45,30];
j2=[180,210,210];
j3=[270,260,280];
r0=r0(q);
loa=loa(q);
lab=lab(q);
rr=rr(q);
h=h(q);
alpha1=alpha1(q);
alpha2=alpha2(q);
u=u(q);
j1=j1(q);
j2=j2(q);
j3=j3(q);
j=[0:
1:
360];
fori=1:
100
s0=acosd((loa^2+lab^2-r0^2)/(2*loa*lab));
alpha=0;
forp=1:
361
ifj(p)<
j1
s(p)=0;
dxdj(p)=loa*cosd(j(p))-lab*cosd(j(p)+s0);
dydj(p)=-loa*sind(j(p))+lab*sind(j(p)+s0);
ddxdj(p)=-loa*sind(j(p))+lab*sind(j(p)+s0);
ddydj(p)=-loa*cosd(j(p))+lab*cosd(j(p)+s0);
alpha(p)=atand((lab*0-(loa*cosd(s0+s(p))-lab))/loa*sind(s0+s(p)));
else
0.5*(j2+j1)
s(p)=2*h*(j(p)-j1)^2/((j2-j1)^2);
dxdj(p)=loa*cosd(j(p))-lab*cosd(j(p)+2*h*(j(p)-j1)^2/(j2-j1)^2+s0)*(1+4*h*(j(p)-j1)/(j2-j1)^2);
dydj(p)=-loa*sind(j(p))+lab*sind(j(p)+2*h*(j(p)-j1)^2/(j2-j1)^2+s0)*(1+4*h*(j(p)-j1)/(j2-j1)^2);
ddxdj(p)=-loa*sind(j(p))+lab*sind(j(p)+2*h*(j(p)-j1)^2/(j2-j1)^2+s0)*(1+4*h*(j(p)-j1)/(j2-j1)^2)^2-4*lab*cosd(j(p)+2*h*(j(p)-j1)^2/(j2-j1)^2+s0)*h/(j2-j1)^2;
ddydj(p)=-loa*cosd(j(p))+lab*cosd(j(p)+2*h*(j(p)-j1)^2/(j2-j1)^2+s0)*(1+4*h*(j(p)-j1)/(j2-j1)^2)^2+4*lab*sind(j(p)+2*h*(j(p)-j1)^2/(j2-j1)^2+s0)*h/(j2-j1)^2;
alpha(p)=atand((lab*pi/180*4*h*(j(p)-j1)/(j2-j1)^2-(loa*cosd(s0+s(p))-lab))/loa*sind(s0+s(p)));
elseifj(p)<
j2
s(p)=h-2*h*(j2-j(p))^2/((j2-j1)^2);
dxdj(p)=loa*cosd(j(p))+lab*cosd(-j(p)-h+2*h*(j2-j(p))^2/(j2-j1)^2-s0)*(-1-4*h*(j2-j(p))/(j2-j1)^2);
dydj(p)=-loa*sind(j(p))+lab*sind(-j(p)-h+2*h*(j2-j(p))^2/(j2-j1)^2-s0)*(-1-4*h*(j2-j(p))/(j2-j1)^2);
ddxdj(p)=-loa*sind(j(p))-lab*sind(-j(p)-h+2*h*(j2-j(p))^2/(j2-j1)^2-s0)*(-1-4*h*(j2-j(p))/(j2-j1)^2)^2+4*lab*cosd(-j(p)-h+2*h*(j2-j(p))^2/(j2-j1)^2-s0)*h/(j2-j1)^2;
ddydj(p)=-loa*cosd(j(p))+lab*cosd(-j(p)-h+2*h*(j2-j(p))^2/(j2-j1)^2-s0)*(-1-4*h*(j2-j(p))/(j2-j1)^2)^2+4*lab*sind(-j(p)-h+2*h*(j2-j(p))^2/(j2-j1)^2-s0)*h/(j2-j1)^2;
alpha(p)=atand((lab*(-4*h*(j2-j(p))/(j2-j1)^2)-(loa*cosd(s0+s(p))-lab))/loa*sind(s0+s(p)));
j3
s(p)=s(p-1);
dxdj(p)=loa*cosd(j(p))-lab*cosd(j(p)+h+s0);
dydj(p)=-loa*sind(j(p))+lab*sind(j(p)+h+s0);
ddxdj(p)=-loa*sind(j(p))+lab*sind(j(p)+h+s0);
ddydj(p)=-loa*cosd(j(p))+lab*cosd(j(p)+h+s0);
s(p)=h*(1+cos(pi*(j(p)-j3)/(360-j3)))/2;
dxdj(p)=loa*cosd(j(p))-lab*cosd(j(p)+1/2*h*(1+cos(pi*(j(p)-j3)/(360-j3)))+s0)*(1-1/2*h*sin(pi*(j(p)-j3)/(360-j3))*pi/(360-j3));
dydj(p)=-loa*sind(j(p))+lab*sind(j(p)+1/2*h*(1+cos(pi*(j(p)-j3)/(360-j3)))+s0)*(1-1/2*h*sin(pi*(j(p)-j3)/(360-j3))*pi/(360-j3));
ddxdj(p)=-loa*sind(j(p))+lab*sind(j(p)+1/2*h*(1+cos(pi*(j(p)-j3)/(360-j3)))+s0)*(1-1/2*h*sin(pi*(j(p)-j3)/(360-j3))*pi/(360-j3))^2+1/2*lab*cosd(j(p)+1/2*h*(1+cos(pi*(j(p)-j3)/(360-j3)))+s0)*h*cos(pi*(j(p)-j3)/(360-j3))*pi^2/(360-j3)^2;
ddydj(p)=-loa*cosd(j(p))+lab*cosd(j(p)+1/2*h*(1+cos(pi*(j(p)-j3)/(360-j3)))+s0)*(1-1/2*h*sin(pi*(j(p)-j3)/(360-j3))*pi/(360-j3))^2-1/2*lab*sind(j(p)+1/2*h*(1+cos(pi*(j(p)-j3)/(360-j3)))+s0)*h*cos(pi*(j(p)-j3)/(360-j3))*pi^2/(360-j3)^2;
alpha(p)=atand((-lab*(0.5*h*(pi/(360-j3))*sin(pi*(j(p)-j3)/(360-j3)))+(loa*cosd(s0+s(p))-lab))/(loa*sind(s0+s(p))));
end
ifj(p)==j2
alphat=0;
alphat=alpha;
row=((dxdj.^2+dydj.^2).^(3/2))./(dxdj.*ddydj-dydj.*ddxdj);
fori=1:
ifrow(i)>
row(i)=10000;
row(i)=-row(i);
alpha=abs(alpha);
alphat=abs(alphat);
if(max(alphat)>
alpha1)||(max(alpha)>
alpha2)||((min(row)-rr)<
u*rr)
r0=r0+1;
break;
break
end
[max_t,j_t]=max(alphat);
a=[max_t,j_t];
[max_h,j_h]=max(alpha);
a=[a,max_h,j_h];
[min_row,j_row]=min(row);
min_row=min_row-rr;
a=[a,min_row,j_row,r0]
sinj=dxdj./sqrt(dxdj.^2+dydj.^2);
cosj=-dydj./sqrt(dxdj.^2+dydj.^2);
x=loa*sind(j)-lab.*sind(j+s+s0);
y=loa*cosd(j)-lab.*cosd(j+s+s0);
x1=x-rr*cosj;
y1=y-rr*sinj;
%绘图
holdon
gridon
axisequal
plot(x,y,'
LineWidth'
2,'
LineStyle'
'
--'
color'
b'
)
plot(x1,y1,'
2,