凸轮轮廓线绘制程序
j=0:1:360;
s=rand(1,361);
v=rand(1,361);
a=rand(1,361);
jj=31;
w=1;
j1=80;
j2=20;
j3=80;
j4=180;
j5=360;
t=pi/180;
for i=1:361
if j(i)<=j1 %升程,余弦加速度运动规律,转过的角度是j1。
s(i)=jj*[1-cos(pi*j(i)/j1)]/2;
v(i)=36*(pi*jj*w*sin(pi*j(i)/j1)/(2*j1));
a(i)=36*pi^2*jj*t*w^2*cos(pi*j(i)/j1)/(2*(j1*t)^2);
elseif j(i)<=j1+j2 %远休。
s(i)=31;
v(i)=0;
a(i)=0;
elseif j(i)<=j1+j2+j3 %回程,余弦加速度运动规律,转过的角度是j3。
s(i)=jj-jj*[1-cos(pi*(j(i)-90)/j3)]/2;
v(i)=-36*(pi*jj*w*sin(pi*(j(i)-90)/j3)/(2*j3));
a(i)=-36*pi^2*jj*t*w^2*cos(pi*(j(i)-90)/j3)/(2*(j3*t)^2);
else %推程,余弦加速度运动规律,转过的角度是45。
s(i)=0;
v(i)=0;
a(i)=0;
end
end
%绘制凸轮理论廓线、实际廓线
r0=39;
rr=9;
l=36;
loa=70;
jj0=23;
X=rand(1,361);
Y=rand(1,361);
Xa=rand(1,361);
Ya=rand(1,361);
Xaa=rand(1,361);
Yaa=rand(1,361);
dr=rand(1,361);
A=rand(1,361);
B=rand(1,361);
for i=1:361
%if j(i)<=j1
X(i)=-l*sin((j(i)+s(i)+jj0)*t)+loa *sin(j(i)*t);
Y(i)=-l*cos((j(i)+s(i)+jj0)*t)+loa*cos(j(i)*t);
dx=loa*cos(j(i)*t)-l*(1+v(i)/10)*cos((j(i)+s(i)+jj0)*t);
dy=-loa*sin(j(i)*t)+l*(1+v(i)/10)*sin((j(i)+s(i)+jj0)*t);
st=dx/sqrt(dy^2+dx^2);
ct=-dy/sqrt(dy^2+dx^2);
Xa(i)=X(i)+rr*ct;
Ya(i)=Y(i)+rr*st;
Xaa(i)=X(i)-rr*ct;
Yaa(i)=Y(i)-rr*st;
%X(i)=l*sin((j(i)-s(i)-jj0)*t)-loa*sin(j(i)*t);
%Y(i)=-l*cos((j(i)-s(i)+jj0)*t)+loa*cos(j(i)*t);
%dx=-loa*cos(j(i)*t)-l*(-1+v(i)/10)*cos((-j(i)+s(i)+jj0)*t);
%dy=-loa*sin(j(i)*t)+l*(-1+v(i)/10)*sin((-j(i)+s(i)+jj0)*t);
%st=dx/sqrt(dy^2+dx^2);
%ct=-dy/sqrt(dy^2+dx^2);
%Xa(i)=X(i)+rr*ct;
%Ya(i)=Y(i)+rr*st;
%Xaa(i)=X(i)-rr*ct;
%Yaa(i)=Y(i)-rr*st;
% else
%X(i)=l*sin((j(i)-s(i)-jj0)*t)-loa*sin(j(i)*t);
%Y(i)=-l*cos((j(i)-s(i)+jj0)*t)+loa*cos(j(i)*t);
%dx=-loa*cos(j(i)*t)-l*(-1-v(i)/10)*cos((-j(i)-s(i)-jj0)*t);
%dy=-loa*sin(j(i)*t)+l*(-1-v(i)/10)*sin((-j(i)-s(i)-jj0)*t);
%st=dx/sqrt(dy^2+dx^2);
%ct=-dy/sqrt(dy^2+dx^2);
%Xa(i)=X(i)+rr*ct;
%Ya(i)=Y(i)+rr*st;
%Xaa(i)=X(i)-rr*ct;
%Yaa(i)=Y(i)-rr*st;
% end
jr=0:1:360;
Xr=rand(1,361);
Yr=rand(1,361);
for z=1:361
Xr(z)=X(i)+rr*sin(jr(z)*pi/180);
Yr(z)=Y(i)+rr*cos(jr(z)*pi/180);
A(i,z)=Xr(z);
B(i,z)=Yr(z);
end
end
j0=0:1:360;
X0=rand(1,361);
Y0=rand(1,361);
for i=1:361
X0(i)=r0*sin(jr(i)*pi/180);
Y0(i)=r0*cos(jr(i)*pi/180);
end
R0=[j' X' Y' Xa' Ya' Xaa' Yaa' ]
plot(X0,Y0,'-.k',X,Y,'--k',Xa,Ya,'-.k',Xaa,Yaa,'-k',A(1:8:361,:),B(1:8:361,:),'.k') ;
title('凸轮的理论廓线和实际廓线');
xlabel('水平坐标');
ylabel('竖直坐标');
legend('基圆','实际廓线','理论廓线');
位移速度加速度曲线程序
j=0:3:360;
s=rand(1,121);
v=rand(1,121);
a=rand(1,121);
jj=31;
w=1;
j1=80;
j2=20;
j3=80;
j4=180;
j5=360;
t=pi/180;
for i=1:121
if j(i)<=j1 %升程,余弦加速度运动规律,转过的角度是j1。
s(i)=jj*[1-cos(pi*j(i)/j1)]/2;
v(i)=36*(pi*jj*w*sin(pi*j(i)/j1)/(2*j1));
a(i)=36*(pi^2*jj*t*w^2*cos(pi*j(i)/j1)/(2*(j1*t)^2));
elseif j(i)<=j1+j2 %远休。
s(i)=31;
v(i)=0;
a(i)=0;
elseif j(i)<=j1+j2+j3 %回程,余弦加速度运动规律,转过的角度是j3。
s(i)=jj-jj*[1-cos(pi*(j(i)-100)/j3)]/2;
v(i)=-36*(pi*jj*w*sin(pi*(j(i)-100)/j3)/(2*j3));
a(i)=-36*(pi^2*jj*t*w^2*cos(pi*(j(i)-100)/j3)/(2*(j3*t)^2));
else %推程,余弦加速度运动规律,转过的角度是45。
s(i)=0;
v(i)=0;
a(i)=0;
end
end
%绘制位移线图,速度线图,加速度线图
plot(j,s,'-.b',j,v,'--r*',j,a,'-.gh');
title('位移线图,速度线图,加速度线图');
xlabel('转动的角度');
ylabel('s、v和a的值');
legend('位移线图','速度线图','加速度线图');。