t=(dxdphi^2+dydphi^2)^0.5;
X(i)=x(i)-rT*dydphi/t;
Y(i)=y(i)+rT*dxdphi/t;
i=i+1;
phi=phi+st;
end
plot(x,y,X,Y)
grid on
计算结果:图4-5
shellII.m
%本脚本用来生成凸轮II理论轮廓和实际轮廓
clear;
usalconst;
i=1;
r0=45; %基圆半径
rT=6.5
e=18; %偏距
eta=-1; %凸轮逆时针转向
s0=(r0^2-e^2)^0.5;
st=0.05*deg;%步长
phi=0;
while(phi<2*pi)
x(i)=(sphiII(phi)+s0)*cos(eta*phi)-e*sin(eta*phi);
y(i)=(sphiII(phi)+s0)*sin(eta*phi)+e*cos(eta*phi);
dxdphi=dsphiII(phi)*cos(eta*phi)-eta*(sphiII(phi)+s0)*sin(eta*phi)-e*eta*cos(eta*phi);
dydphi=dsphiII(phi)*sin(eta*phi)+eta*(sphiII(phi)+s0)*cos(eta*phi)-e*eta*sin(eta*phi);
t=(dxdphi^2+dydphi^2)^0.5;
X(i)=x(i)-rT*dydphi/t;
Y(i)=y(i)+rT*dxdphi/t;
i=i+1;
phi=phi+st;
end
plot(x,y,X,Y)
grid on
结果,图4-6
eszoneI.m
%本脚本用于寻找对应r0的最佳e值
clear;
usalconst;
r0=35; %r0的值
st=0.5; %搜索间隙mm
af=35*deg; %推程许用压力角
ab=75*deg; %回程许用压力角
e=0;
result(1)=-1;
n=1;
best=1;
bestaf=af;
bestab=ab;
while(e<r0)
s0=(r0^2-e^2)^0.5;
[y1,y2]=maxtanaI(e,s0);
if(y1<af)&(y2<ab)
result(n)=e;
if(y1<bestaf)
bestaf=y1;
bestab=y2;
best=n;
end
n=n+1;
end
e=e+st;
end;
if result(1)==-1
fprintf('failed')
else
fprintf('当r0=%2.1f, 凸轮I最好结果 e=%2.1f,a=%2.2f,a`=%2.2f',r0,result(best),bestaf/deg,bestab/deg)
end
结果:当r0=35.0, 凸轮I最好结果 e=11.5,a=20.42,a`=50.80
eszoneII.m
%本脚本用于寻找对应r0的最佳e值
clear;
usalconst;
r0=45; %r0的值
st=0.5; %搜索间隙mm
af=35*deg; %推程许用压力角
ab=75*deg; %回程许用压力角
e=0;
result(1)=-1;
n=1;
best=1;
bestaf=af;
bestab=ab;
while(e<r0)
s0=(r0^2-e^2)^0.5;
[y1,y2]=maxtanaII(e,s0);
if(y1<af)&(y2<ab)
result(n)=e;
if(y1<bestaf)
bestaf=y1;
bestab=y2;
best=n;
end
n=n+1;
end
e=e+st;
end;
if result(1)==-1
fprintf('failed')
else
fprintf('当r0=%2.1f, 凸轮I最好结果 e=%2.1f,a=%2.2f,a`=%2.2f',r0,result(best),bestaf/deg,bestab/deg)
end
结果:当r0=35.0, 凸轮I最好结果 e=11.5,a=20.42,a`=50.80
subplot.m
%本脚本用以绘制所有设计的执行机构关于I轴的运动循环图
clear;
usalconst;
i=1;
phi=0;%轴I转角
st=1*deg;
while(phi<2*pi)
x(i)=phi/deg;
if(phi<=228*deg)&(phi>108*deg)
th(i)=3/5*(pi/6-atan(sin(108*deg+pi/3-phi)/(2-cos(108*deg+pi/3-phi))))/deg; %链轮转角
else
th(i)=0;
end
if(phi<pi)
t=2*phi;
else
t=(phi-pi)*2;
end
s1(i)=sphiI(t); %机械手臂上下运动
psi(i)=(atan((sphiII(phi)-14.207)/25)+asin(6.5/((sphiII(phi)-14.207)^2+25^2)^0.5))/deg+16.5447; %机械手臂摆动
i=i+1;
phi=phi+st;
end
subplot(3,1,1);plot(x,th);grid on;title('槽轮转角\theta (\phi)');
subplot(3,1,2);plot(x,s1);grid on;title('机械手竖直位移s(\phi)');
subplot(3,1,3);plot(x,psi);grid on;title('机械手摆角\psi (\phi)');
i=1;
while(i<=360)
fprintf('%3.2f\n',th(i));
i=i+12;
end
i=1;
fprintf('\n');
while(i<=360)
fprintf('%3.2f\n',s1(i));
i=i+12;
end
fprintf('\n');
i=1;
while(i<=360)
fprintf('%3.2f\n',psi(i));
i=i+12;
end
结果:图5-2,表5-1
心得体会
本次任务设计自我感觉很失败,心得实在不感说什么,总结本次最大的教训有三点:
一.设计是一项反复的过程,不能急于求成
本次设计可以毫不诲言的说让我很狼狈,最后几天几乎没有睡觉得赶着赶那,回头想想其实四个星期以来很多时间是白费了的。其实我在第一个星期就开始用Solidworks建模,可到最后这些工夫几乎是白费,花了大量的时间进行编程,想了很多种优化算法,到最后几天才发现真正不容易做的还是方案制定的部分,特别是动力传动,凸轮机构装配图完成80%时了才发现有运动干涉,只好从来,可以说到现在都是“踩着钢丝上的”实在是教训。
二.不能肓目祟尚装备
本次设计如果说是失败的话,我觉得最大的失败就是一天始把宝压在了Solidworks上,结果不出事还好,一但Solidworks出了问题,只好半途用Autocad。
三.没有条理等于自杀
其实在前两周基本上本报告中的数据我都试着算过,但在写报告时才发现自己的记录东一榔头西一棒的,到头来前面花的工时实在不能说是派上了用场的。
转自:http://me.seu.edu.cn/course/mechdesign/files/kcsj/02/design(2)-(1)-02001112.htm