《凸轮廓线的MATLAB画法.docx》由会员分享,可在线阅读,更多相关《凸轮廓线的MATLAB画法.docx(6页珍藏版)》请在三一办公上搜索。
1、凸轮廓线的MATLAB画法凸轮廓线的MATLAB画法 1 凸轮轮廓方程 X=OE+EF=E*Cos(J)+(So+S)*Sin(J)Y=BD-FD=(So+S)*Cos(J)-E*Sin(J)(X,Y):凸轮轮廓线上的任意一点的坐标。 E:从动件的偏心距。 R:凸轮的基园半径。 J:凸轮的转角。 S:S=f(J)为从动件的方程。 So:SO=R2-E2。 H为从动件的最大位移。 J1、J2、J3、J4为从动件的四个转角的区域。 S1、S2、S3、S4为与J1、J2、J3、J4对应的从动件的运动规律。 2 实例 R=40,E=10,H=50,J1=J2=J3=J4=900。 1 3 MATLAB
2、程序设计 用角度值计算,对于给定的J1、J2、J3、J4,把相应的公式代入其中,求出位移S和轮廓线上的各点的坐标X、Y,最终求出描述凸轮的数组: J=J1,J2,J3,J4; S=S1,S2,S3,S4; X=X1,X2,X3,X4; Y=Y1,Y2,Y3,Y4; 用函数plot画出凸轮的轮廓曲线; 用plot函数位移S的曲线; 对于速度曲线V-t和加速度曲线a-t, dsdsdsV=dt=dt dJdJwdt在算例中已假设凸轮匀速转动的角速度为1wad/s,所以 dsdsdsdsdt 速度V=dt=dJdtwdJdt同理可得: dv加速度a=dtdsdJ224 程序运行结果 图一:余弦速运动
3、规律下的凸轮轮廓曲线 2 图二:余弦加速作用下的S-曲线 3 5 附程序: 1、程序实例说明 R=40; E=10; H=50; J1=90;J2=90;J3=90;J4=90; S0=(R2-E2)(1/2); syms J S dJ dS d2J d2S syms定义符号变量,定义后字符变量才能用 J11=linspace(0,J1,500); linspace用于产生两点间的N点行矢量。 S1=(H/2).*(1-cos(pi.*J11/J1); X1=E.*cos(J11.*pi/180)+(S0+S1).*sin(J11.*pi/180); Y1=(S0+S1).*cos(J11.*
4、pi/180)-E.*sin(J11.*pi/180); J22=linspace(J1,J1+J2,300); S2=J22./J22.*H; X2=E.*cos(J22.*pi/180)+(S0+H).*sin(J22.*pi/180); Y2=(S0+H).*cos(J22.*pi/180)-E.*sin(J22.*pi/180); J33=linspace(J1+J2,J1+J2+J3,300); S3=H-(H/2).*(1-cos(pi*J33/J3); X3=E*cos(J33*pi/180)+(S0+S3).*sin(J33*pi/180); Y3=(S0+S3).*cos(J
5、33*pi/180)-E*sin(J33*pi/180); J44=linspace(J1+J2+J3,J1+J2+J3+J4,300); X4=E.*cos(J44*pi/180)+S0*sin(J44*pi/180); Y4=S0.*cos(J44*pi/180)-E*sin(J44*pi/180); S4=J44./J44.*0; X=X1,X2,X3,X4; Y=Y1,Y2,Y3,Y4; figure(1); figure控制画图窗口,即显示窗口1 plot(X,Y); plot命令打开一个称为图形窗口的窗口,将坐标轴缩扩以适应并描绘数据 ,将方程坐标转换成图形 hold on; 启动
6、图形保持功能,当前坐标轴和图形都将保持,此后绘制的图形4 都将添加在这个图形之上,并且自动调整坐标轴的范围。 t=linspace(0,2*pi,500); x=R*cos(t); y=R*sin(t); plot(x,y); title(凸轮的轮廓曲线); 给图加标题 axis(-90,90,-90,90); axis一般用来设置axes的样式,包括坐标轴范围,可读比例等 axis square; 生成直方坐标轴 figure(2); plot(J11,S1); hold on; plot(J22,S2); plot(J33,S3); plot(J44,S4); ylabel(S);函数用于
7、在绘图窗口中的纵轴方向上显示一个“标签”。所谓的标签,也就是一个字符串,这个字符串用于表明y轴的意义。 xlabel(/rad); title(S-曲线); J=J11,J22,J33,J44; S=S1,S2,S3,S4; dS=diff(S)./diff(J); %通过对位移求导后可得速度。 dJ=J(1:end-1); d2S=diff(dS)./diff(dJ);%通过对速度求导后可得速度。 d2J=dJ(1:end-1); 5 2、原程序 R=40; E=10; H=50; J1=90;J2=90;J3=90;J4=90; S0=(R2-E2)(1/2); syms J S dJ d
8、S d2J d2S J11=linspace(0,J1,500); S1=(H/2).*(1-cos(pi.*J11/J1); X1=E.*cos(J11.*pi/180)+(S0+S1).*sin(J11.*pi/180); Y1=(S0+S1).*cos(J11.*pi/180)-E.*sin(J11.*pi/180); J22=linspace(J1,J1+J2,300); S2=J22./J22.*H; X2=E.*cos(J22.*pi/180)+(S0+H).*sin(J22.*pi/180); Y2=(S0+H).*cos(J22.*pi/180)-E.*sin(J22.*pi/
9、180); J33=linspace(J1+J2,J1+J2+J3,300); S3=H-(H/2).*(1-cos(pi*J33/J3); X3=E*cos(J33*pi/180)+(S0+S3).*sin(J33*pi/180); Y3=(S0+S3).*cos(J33*pi/180)-E*sin(J33*pi/180); J44=linspace(J1+J2+J3,J1+J2+J3+J4,300); X4=E.*cos(J44*pi/180)+S0*sin(J44*pi/180); Y4=S0.*cos(J44*pi/180)-E*sin(J44*pi/180); S4=J44./J44
10、.*0; X=X1,X2,X3,X4; Y=Y1,Y2,Y3,Y4; figure(1); plot(X,Y); hold on; t=linspace(0,2*pi,500); x=R*cos(t); y=R*sin(t); plot(x,y); title(凸轮的轮廓曲线); 6 axis(-90,90,-90,90); axis square; figure(2); plot(J11,S1); hold on; plot(J22,S2); plot(J33,S3); plot(J44,S4); ylabel(S); xlabel(/rad); title(S-曲线); J=J11,J22,J33,J44; S=S1,S2,S3,S4; dS=diff(S)./diff(J); %通过对位移求导后可得速度。 dJ=J(1:end-1); d2S=diff(dS)./diff(dJ);%通过对速度求导后可得速度。 d2J=dJ(1:end-1); 7