滚子摆动从动件凸轮设计matlab程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
disp ' ******** 滚子摆动从动件凸轮设计 ********'
disp '已知条件:'
disp ' 凸轮作顺时针方向转动,从动件做摆动'
disp ' 从动件在推程作等加速/等减速运动,在回程作等加速等减速运动'
rb =52;rt = 10;qm=15;ft = 60;fs = 10;fh = 60;alp = 35;a=140;l=122;q0=asin(rb/a)*180/pi; fprintf (1,' 基圆半径 rb = % mm \n',rb)
fprintf (1,' 滚子半径 rt = % mm \n',rt)
fprintf (1,' 起始角度 q0= % mm \n',q0)
fprintf (1,' 最大摆动角度 qm = % mm \n',qm)
fprintf (1,' 推程运动角 ft = % 度 \n',ft)
fprintf (1,' 远休止角 fs = % 度 \n',fs)
fprintf (1,' 回程运动角 fh = % 度 \n',fh)
fprintf (1,' 推程许用压力角 alp = % 度 \n',alp)
hd= pi / 180;du = 180 / pi; %角度弧度互换
d1 = ft + fs;d2 = ft + fs + fh;
disp ' '
disp '计算过程和输出结果:'
disp ' 1- 计算凸轮理论轮廓的压力角和曲率半径'
disp ' 1-1 推程(等加速/等减速运动)'
s = zeros(ft);ds = zeros(ft);d2s = zeros(ft);vt=zeros(ft);st1=zeros(ft);at=zeros(ft);
at = zeros(ft);atd = zeros(ft);pt = zeros(ft);
for f = 1 : ft
if f <= ft / 2
s(f)=2*(qm/ft^2)*f^2;st1(f)=s(f);s = s(f); %推程加速方程式
ds(f)=(qm/ft^2)*f;vt(f)=ds(f);ds = ds(f);
d2s(f)=4*qm/ft;at(f)=d2s(f);d2s = d2s(f);
else
s(f)=qm-2*qm*(ft-f)^2/ft^2;st1(f)=s(f); s = s(f); %推程减速方程式
ds(f)=4*qm*(ft-f)/ft^2;vt(f)=ds(f);ds = ds(f);
d2s(f)=-4 *qm/ft^2;at(f)=d2s(f);d2s = d2s(f);
end
at(f)= atan((-l*(1-ds))/(a*sin((s+q0)*hd))-(-1)*cos((s+q0)*hd)/sin((s+q0)*hd));atd(f) = at(f) * du; %推程压力角的角度和弧度表达式
p1= -a*sin(f*hd)+l*sin((s+q0-f)*hd)*(ds-1);
p2= a*cos(f*hd)+l*cos((s+q0-f)*hd)*(ds-1);
p3=-a*cos(f*hd)+l*(ds-1)^2*cos((s+q0-f)*hd)+l*d2s*sin((s+q0-f)*hd);
p4=-a*sin(f*hd)-l*(ds-1)^2*sin((s+q0-f)*hd)+l*ds*cos((s+q0-f)*hd);
pt(f)= (p1^2+p2^2)^(p1*p4-p2*p3) ;p = pt(f);
end
atm = 0;
for f = 1 : ft
if atd(f) > atm
atm = atd(f);
end
end
fprintf (1,' 最大压力角 atm = % 度\n',atm)
for f = 1 : ft
if abs(atd(f) - atm) <
ftm = f;break
end
end
fprintf (1,' 对应的位置角 ftm = % 度\n',ftm)
if atm > alp
fprintf (1,' * 凸轮推程压力角超过许用值,需要增大基圆!\n') end
ptn = rb ;ftn=0;
for f = 1 : ft
if pt(f) < ptn
ptn = pt(f);
end
end
fprintf (1,' 轮廓最小曲率半径 ptn = % mm\n',ptn)
for f = 1 : ft
if abs(pt(f) - ptn) <
ftn = f;break
end
end
fprintf (1,' 对应的位置角 ftn = % 度\n',ftn)
if ptn < rt + 5
fprintf (1,' * 凸轮推程轮廓曲率半径小于许用值,需要增大基圆或减小滚子!\n')
end
disp ' 1-2 回程(等加速等减速运动)'
s = zeros(fh);ds = zeros(fh);d2s = zeros(fh);
ah = zeros(fh);ahd = zeros(fh);ph = zeros(fh);
for f = d1 : d2
k = f - d1;
if k<=fh / 2
s(f) =qm-2*qm*(k)^2/fh^2;st1(f)=s(f); s = s(f);
ds(f)=-4*qm*k/fh^2;ds = ds(f);
d2s(f)= -4*qm/fh^2;d2s = d2s(f);
else
s(f) =2*qm*(d2-f)^2/fh^2;st1(f)=s(f); s = s(f);
ds(f)=-4*qm*(d2-f)/fh^2;ds = ds(f);
d2s(f)=4*qm/fh^2;d2s = d2s(f);
end
at(f)= atan((-l*(1-ds))/(a*sin((s+q0)*hd))-(-1)*cos((s+q0)*hd)/sin((s+q0)*hd));atd(f) = at(f) * du; %推程压力角的角度和弧度表达式
p1= -a*sin(f*hd)+l*sin((s+q0-f)*hd)*(ds-1);
p2= a*cos(f*hd)+l*cos((s+q0-f)*hd)*(ds-1);
p3=-a*cos(f*hd)+l*(ds-1)^2*cos((s+q0-f)*hd)+l*d2s*sin((s+q0-f)*hd);
p4=-a*sin(f*hd)-l*(ds-1)^2*sin((s+q0-f)*hd)+l*ds*cos((s+q0-f)*hd);