当前位置:文档之家› 凸轮设计Matlab代码

凸轮设计Matlab代码

%凸轮理论廓线与工作廓线的画法
clear %清除变量
r0=50; %定义基圆半径
e=20; %定义偏距
h=50; %推杆上升高度
s0=sqrt(r0^2-e^2);
r=10; %滚子半径
%理论廓线
a1=linspace(0,2*pi/3); % 推程阶段的自变量
s1=h*(3*a1/2/pi-sin(3*a1)/2/pi); % 推杆产生的相应位移
x1=-((s0+s1).*sin(a1)+e*cos(a1)); %x 函数
y1=(s0+s1).*cos(a1)-e*sin(a1); %y 函数
a2=linspace(0,pi/6); % 远休止阶段的自变量
s2=50; %推杆位移
x2=-((s0+s2).*sin(a2+2*pi/3)+e*cos(a2+2*pi/3)); %x 函数
y2=(s0+s2).*cos(a2+2*pi/3)-e*sin(a2+2*pi/3); %y 函数
a3=linspace(0,pi/3); % 回程阶段的自变量
s3=h*(1+cos(3*a3))/2; % 推杆位移
x3=-((s0+s3).*sin(a3+5*pi/6)+e*cos(a3+5*pi/6)); %x 函数
y3=(s0+s3).*cos(a3+5*pi/6)-e*sin(a3+5*pi/6); %y 函数
a4=linspace(0,5*pi/6); % 近休止阶段的自变量
s4=0; %推杆位移
x4=-((s0+s4).*sin(a4+7*pi/6)+e*cos(a4+7*pi/6)); %x 函数
y4=(s0+s4).*cos(a4+7*pi/6)-e*sin(a4+7*pi/6); %y 函数
a0=linspace(0,2*pi); % 基圆自变量
x5=r0*cos(a0); %x 函数
y5=r0*sin(a0); %y 函数
%工作廓线
m1=-(h*3/2/pi*(1-cos(3*a1))-e).*sin(a1)-(s0+s1).*cos(a1); % 中间变量 dx/d$
n1=(h*3/2/pi*(1-cos(3*a1))-e).*cos(a1)-(s0+s1).*sin(a1); % 中间变量 dy/d$
p1=-m1./sqrt(m1.^2+n1.^2); %sin&
q1=n1./sqrt(m1.^2+n1.^2); %cos&
x6=x1-r*q1; %x' 函数
y6=y1-r*p1; %y' 函数
m2=-(s0+s2).*cos(a2+2*pi/3)+e*sin(a2+2*pi/3); % 中间变量 dx/d$
n2=-(s0+s2).*sin(a2+2*pi/3)-e*cos(a2+2*pi/3); % 中间变量 dy/d$
p2=-m2./sqrt(m2.^2+n2.^2); %sin&
q2=n2./sqrt(m2.^2+n2.^2); %cos&
x7=x2-r*q2; %x' 函数
y7=y2-r*p2; %y' 函数
m3=(h*3/2*sin(3*a3)+e).*sin(a3+5*pi/6)-(s0+s3).*cos(a3+5*pi/6); % 中间变量 dx/d$
n3=-(h*3/2*sin(3*a3)+e).*cos(a3+5*pi/6)-(s0+s3).*sin(a3+5*pi/6);% 中间变量 dy/d$
p3=-m3./sqrt(m3.^2+n3.^2); %sin&
q3=n3./sqrt(m3.^2+n3.^2); %cos&
x8=x3-r*q3; %x' 函数
y8=y3-r*p3; %y' 函数
m4=-(s0+s4).*cos(a4+7*pi/6)+e*sin(a4+7*pi/6); %
n4=-(s0+s4).*sin(a4+7*pi/6)-e*cos(a4+7*pi/6); %
p4=-m4./sqrt(m4.^2+n4.^2); %sin&
q4=n4./sqrt(m4.^2+n4.^2); %cos&
x9=x4-r*q4; %x' 函数
y9=y4-r*p4; %y' 函数
%画滚子
g1=x1(1)+r*cos(a0);
j1=y1(1)+r*sin(a0);
g2=x1(25)+r*cos(a0);
j2=y1(25)+r*sin(a0);
g3=x1(50)+r*cos(a0);
j3=y1(50)+r*sin(a0);
g4=x1(60)+r*cos(a0);
j4=y1(60)+r*sin(a0);
g5=x1(75)+r*cos(a0);
j5=y1(75)+r*sin(a0);
g6=x1(90)+r*cos(a0);
j6=y1(90)+r*sin(a0);
g7=x2(1)+r*cos(a0);
j7=y2(1)+r*sin(a0);
g8=x2(50)+r*cos(a0);
j8=y2(50)+r*sin(a0);
g9=x3(1)+r*cos(a0);
j9=y3(1)+r*sin(a0);
g10=x3(25)+r*cos(a0);
j10=y3(25)+r*sin(a0);
g11=x3(40)+r*cos(a0);
j11=y3(40)+r*sin(a0);
g12=x3(50)+r*cos(a0); %中间变量 dx/d$ 中间变量 dy/d$
j12=y3(50)+r*sin(a0);
g13=x3(75)+r*cos(a0);
j13=y3(75)+r*sin(a0); g14=x4(1)+r*cos(a0); j14=y4(1)+r*sin(a0);
g15=x4(50)+r*cos(a0);
j15=y4(50)+r*sin(a0);
figure %创建图形窗口
plot(x1,y1,'b-',x2,y2,'g-',x3,y3,'m-',x4,y4,'c-',...
x6,y6,'b-',x7,y7,'g-',x8,y8,'m-',x9,y9,'c-',...
'LineWidth',2) % 画函数

曲线
grid on %加网格
hold on %保持图像
plot(x5,y5,'r--',g1,j1,'k-',g2,j2,'k-',g3,j3,'k-',...
g4,j4,'k-',g5,j5,'k-',g6,j6,'k-',g7,j7,'k-',...
g8,j8,'k-',g9,j9,'k-',g10,j10,'k-',g11,j11,'k-',...
g12,j12,'k-',g13,j13,'k-',g14,j14,'k-',g15,j15,'k-','LineWidth',2) % 画基圆 title(' 凸轮理论廓线与工作廓线 ','FontSize',16) %标题
axis ([-100,80,-120,60])
axis('equal')
points=[x6',y6',zeros(100,1);x7',y7',zeros(100,1);...
x8',y8',zeros(100,1);x9',y9',zeros(100,1)]

相关主题
文本预览
相关文档 最新文档