H a r b i n I n s t i t u t e o f T e c h n o l o g y
课程名称:精密机械学基础
设计题目:直动从动件盘形凸轮的设计
院系:航天学院控制科学与工程系
班级: 0904102班
设计者:陈学坤
学号: ********** 设计时间: 2011年10月
直动从动件盘形凸轮机构的计算机辅助设计
说明:
凸轮轮阔曲线的设计,一般可分为图解法和解析法,尽管应用图解法比较简便,能简单地绘制出各种平面凸轮的轮廓曲线,但由于作图误差比较大,故对一些精度要求高的凸轮已不能满足设计要求。
此次应用MATLAB 软件结合轮廓线方程用计算机辅助设计。
首先,精确地计算出轮廓线上各点的坐标,然后运用MATLAB 绘制
比较精确的凸轮轮廓曲线以及其S-α曲线、v-t 曲线、a-t 曲线。
。
1 凸轮轮廓方程
*()()*()
()*()*()
X OE EF E Cos J So S Sin J Y BD FD So S Cos J E Sin J =+=++=-=+-
(X,Y):凸轮轮廓线上的任意一点的坐标。
E :从动件的偏心距,OC 。
R :凸轮的基园半径,OA 。
J :凸轮的转角。
S :S=f(J)为从动件的方程。
So :O S =
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。
3 MATLAB 程序设计
用角度值计算,对于给定的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 (X,,Y )画出凸轮的轮廓曲线; 用plot (J,S )函数位移S 的曲线; 对于速度曲线V-t 和加速度曲线a-t ,
ds ds ds dt dt V dJ dJ dt
ω
===
在算例中已假设凸轮匀速转动的角速度为1wad/s ,所以
ds ds ds ds dt dt V dJ dt dJ dt
ω====
速度 同理可得:
dJ
ds dt
dv
a 2
2=
=加速度
4 程序运行结果
图一:余弦速运动规律下的凸轮轮廓曲线
图二:余弦加速作用下的S-α曲线
图三:余弦加速作用下的v-t曲线
图四:余弦加速作用下的a-t曲线
5 附程序:
function tulun
R=40;
E=10;
H=50;
J1=90;J2=90;J3=90;J4=90;
S0=(R^2-E^2)^(1/2);
syms J S dJ dS 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/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.*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('凸轮的轮廓曲线');
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);
figure(3);
plot(dJ,dS);
ylabel('V')
xlabel('t')
title('V-t曲线');
figure(4);
plot(d2J,d2S);
ylabel('a')
xlabel('t')
title('a-t曲线')
end。