滚子摆动从动件凸轮设计matlab程序

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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);

相关文档
最新文档