滚子摆动从动件凸轮设计matlab程序.doc
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=%3.4fmm\n ,rb)fprintf(1, 滚子半径rt=%3.4fmm\n ,rt)fprintf(1, 起始角度q0=%3.4fmm\n ,q0)fprintf(1, 最大摆动角度qm=%3.4fmm\n ,qm)fprintf(1, 推程运动角ft=%3.4f度\n ,ft)fprintf(1, 远休止角fs=%3.4f度\n ,fs)fprintf(1, 回程运动角fh=%3.4f度\n ,fh)fprintf(1, 推程许用压力角alp=%3.4f度\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);forf=1:ftiffatmatm=atd(f);endendfprintf(1, 最大压力角atm=%3.4f度\n ,atm)forf=1:ftifabs(atd(f)-atm)alpfprintf(1, *凸轮推程压力角超过许用值,需要增大基圆!\n )endptn=rb;ftn=0;forf=1:ftifpt(f)atmatm=atd(f);endendfprintf(1, 最大压力角atm=%3.4f度\n ,atm)forf=1:ftifabs(atd(f)-atm)alpfprintf(1, *凸轮推程压力角超过许用值,需要增大基圆!\n )endptn=rb;ftn=0;forf=1:ftifpt(f)ft/2x=xx(f);yy(f)=a*sin(f*hd)+l*sin((s+q0-f)*hd);y=yy(f);dx(f)=-a*sin(f*hd)+l*sin((s+q0-f)*hd)*(ds-1);dx=dx(f);dy(f)=a*cos(f*hd)+l*cos((s+q0-f)*hd)*(ds-1);dy=dy(f);xp(f)=x-rt*(dy/sqrt(dx^2+dy^2));xxp=xp(f);yp(f)=y+rt*(dx/sqrt(dx^2+dy^2));yyp=yp(f);r(f)=sqrt(x^2+y^2);rp(f)=sqrt(xxp^2+yyp^2);enddisp 2-1推程(等加速/等减速运动) disp 凸轮转角理论x理论y实际x实际y forf=10:10:ftnu=[fxx(f)yy(f)xp(f)yp(f)];disp(nu)enddisp 2-2回程(等加速/等减速运动) disp 凸轮转角理论x理论y实际x实际y forf=d1:10:d2nu=[fxx(f)yy(f)xp(f)yp(f)];disp(nu)enddisp 2-3凸轮轮廓向径 disp 凸轮转角理论r实际r forf=10:10:nnu=[fr(f)rp(f)];disp(nu)enddisp 绘制凸轮的理论轮廓和实际轮廓: plot(xx,yy, r-. )%理论轮廓(红色,点划线)axis([-(150)(150)-(150)(150)])%横轴和纵轴的下限和上限axisequal%横轴和纵轴的尺度比例相同text(50,0, X )%标注横轴text(0,50, Y )%标注纵轴text(-5,5, O )%标注直角坐标系原点title( 摆动从动件盘形凸轮设计 )%标注图形标题holdon;%保持图形plot([-(rb)(rb)],[00], k )%横轴(黑色)plot([00],[-(rb)(rb+rt)], k )%纵轴(黑色)ct=linspace(0,2*pi);%画圆的极角变化范围plot(rb*cos(ct),rb*sin(ct), g )%基圆(绿色)plot(xp,yp, b )%实际轮廓(蓝色)