文档介绍:机械原理大作业
课程名称: 机械学原理
设计题目:凸轮结构Mat lab设计
院系:
班级:
设计者:
学号:
设计时间:
一、运动分析题目(如图):
运用凸轮原理建立直角坐标模型
x=E*cos(J(n))+(S0+S)*sin(J);
y=(S0+S)*cos(J(n))-E*sin(J);
其中
H参数是从动件最大位移
R是基圆半径
E是偏心圆半径
二、程序代码
Matlab源程序:
clear
R=input('基圆半径为R=');
E=input('偏心圆半径为E=');
if(E>R)
error('偏心圆半径输入错误!偏心圆半径必须小于基圆半径。')
end
H=input('从动件最大位移为H=');
j1=input('推程角(角度制)为J1=');
j2=input('远休止角(角度制)为J2=');
j3=input('回程角(角度制)为J3=');
j4=input('近休止角(角度制)为J4=');
if(j1+j2+j3+j4~=360)
error('输入错误!各角度值之和必须为360度。');
end
fprintf('选择匀速输入“1”,选择匀加/减速输入“2”,\r选择余弦加速输入“3”,选择找抽输入其他……\r');
value=input('请选择从动件运动规律:');
if(value<1||value>3)
error('你真的真的找抽么???');
end
S0=sqrt(R^2-E^2);
J1=j1/180*pi;
J2=j2/180*pi;
J3=j3/180*pi;
J4=j4/180*pi;
%凸轮轮廓线
x=zeros(1,360);
y=zeros(1,360);
for j=1:360
J=j/180*pi;
switch value
case 1
S1=H/J1*J;
S2=H;
S3=H-H/J3*(J-J1-J2);
S4=0;
case 2
if j<j1/2;
S1=2*H*(J/J1)^2;
else
S1=H-2*H*((J1-J)/J1)^2;
end
S2=H;
if j<j1+j2+j3/2;
S3=H-2*H*((J-J1-J2)/J3)^2;
else
S3=2*H*((J3-J+J1+J2)/J3)^2;
end
S4=0;
case 3
S1=H/2*(1-cos(pi/J1*J));
S2=H;
S3=H-H/2*(1-cos(pi/J3*(J-J1-J2)));
S4=0;
end
if j>360-j4
S=S4;
elseif j>360-j4-j3
S=S3;
elseif j>360-j4-j3-j2
S=S2;
else
S=S1;
end
x(j)=E*cos(J)+(S0+S)*sin(J);
y(j)=(S0+S)*cos(J)-E*sin(J);
end
plot(x,y);
hold on;
%基圆和偏心圆
x=0::2*pi;
y=R*sin(x);