资源描述:
《凸轮轮廓线的绘制(MATLAB)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、HarbinInstituteofTechnology课程名称:精密机械学基础设计题目:直动从动件盘形凸轮的设计院系:航天学院控制科学与工程系班级:0904102班设计者:陈学坤学号:1090410229设计时间:2011年10月7直动从动件盘形凸轮机构的计算机辅助设计说明:凸轮轮阔曲线的设计,一般可分为图解法和解析法,尽管应用图解法比较简便,能简单地绘制出各种平面凸轮的轮廓曲线,但由于作图误差比较大,故对一些精度要求高的凸轮已不能满足设计要求。此次应用MATLAB软件结合轮廓线方程用计算机辅助设计。首先,精确地计算出轮廓线上各点的坐标,然
2、后运用MATLAB绘制比较精确的凸轮轮廓曲线以及其S-α曲线、v-t曲线、a-t曲线。。1凸轮轮廓方程(X,Y):凸轮轮廓线上的任意一点的坐标。E:从动件的偏心距,OC。R:凸轮的基园半径,OA。J:凸轮的转角。S:S=f(J)为从动件的方程。So:。H为从动件的最大位移(mm)。J1、J2、J3、J4为从动件的四个转角的区域。S1、S2、S3、S4为与J1、J2、J3、J4对应的从动件的运动规律。2实例R=40,E=10,H=50,J1=J2=J3=J4=900。3MATLAB程序设计用角度值计算,对于给定的J1、J2、J3、J4,把相应
3、的公式代入其中,求出位移S和轮廓线上的各点的坐标X、Y,最终求出描述凸轮的数组:J=[J1,J2,J3,J4];S=[S1,S2,S3,S4];X=[X1,X2,X3,X4];Y=[Y1,Y2,Y3,Y4];用函数plot(X,,Y)画出凸轮的轮廓曲线;用plot(J,S)函数位移S的曲线;对于速度曲线V-t和加速度曲线a-t,7在算例中已假设凸轮匀速转动的角速度为1wad/s,所以同理可得:4程序运行结果图一:余弦速运动规律下的凸轮轮廓曲线图二:余弦加速作用下的S-α曲线7图三:余弦加速作用下的v-t曲线7图四:余弦加速作用下的a-t曲线
4、5附程序:functiontulunR=40;E=10;H=50;J1=90;J2=90;J3=90;J4=90;S0=(R^2-E^2)^(1/2);symsJSdJdSd2Jd2SJ11=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=
5、J22./J22.*H;7X2=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(J33*pi/180)-E*sin(J33*pi/180);J44=lins
6、pace(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);plot(X,Y);holdon;t=linspace(0,2*pi,500);x=R*cos(t);y=R*sin(t);plot(x,y);title('凸轮的轮廓曲线');axis([-90,90,-
7、90,90]);axissquare;figure(2);plot(J11,S1);holdon;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];7dS=diff(S)./diff(J);%通过对位移求导后可得速度。dJ=J(1:end-1);d2S=diff(dS)./diff(dJ);%通过对速度求导后可得速度。d2J=dJ(1:end-1);figu
8、re(3);plot(dJ,dS);ylabel('V')xlabel('t')title('V-t曲线');figure(4);plot(d2J,d2S);ylabel('a'