clear;
theta_1=input('请输入凸轮近休止角 theta1=')
theta_2=input('请输入凸轮推程止角 theta2=')
theta_3=input('请输入凸轮远修止角 theta3=')
r_0=input('请输入初选基圆半径 r0=')
l_oa=input('请输入机架长度 l_oa=')
l_ab=input('请输入摆杆长度 l_ab=')
r_r=input('请输入滚子半径 r_r=')
phi=input('请输入推杆摆角 phi=')
alpha_1=input('请输入许用压力角 aloha_1=')
alpha_2=input('请输入许用压力角 aloha_2=')
rho_amin=input('请输入许用最小曲率半径半径/r_r=')r_r;
delta_0=0.005;
omega=1;
delta_1=theta_1;
delta_2=theta_2-theta_1;
delta_3=theta_3-theta_2;
delta_4=360-theta_3;
temp=0;
while(temp==0)
phi_0=acosd((l_ab^2+l_oa^2-r_0^2)/(2*l_ab*l_oa));
temp=1;
%最大压力角及相应凸轮转角初值
alpha_1max=0;
alpha_2max=0;
delta_1max=0;
delta_2max=0;
%最小曲率半径及相应凸轮转角初值。
rho_0min=r_0-r_r;
delta_min=0;
for i=0:120
delta=i*3;
if delta>=0&delta s=0;
v=0;a=0;
elseif delta>=theta_1&delta s=phi*((delta-theta_1)/delta_2-sin(2*pi*(delta-theta_1)/delta_2)/(2*pi));
v=phi*omega*(1-cos(2*pi*(delta-theta_1)/delta_2))/delta_2;
a=2*pi*phi*omega^2*sin(2*pi*(delta-theta_1)/delta_2)/delta_2^2;
elseif delta>=theta_2&delta s=phi;
v=0;a=0;
elseif delta>=theta_3&delta<(theta_3+delta_4/2) %回程加速。
s=phi-2*phi*(delta-theta_3)^2/delta_4^2;
v=-4*phi*omega*(delta-theta_3)/delta_4^2;
a=-4*phi*omega^2/delta_4^2;
elseif delta>=(theta_3+delta_4/2)&delta<=360 %回程减速。
s=2*phi*(delta_4-(delta-theta_3))^2/delta_4^2;
v=-4*phi*omega*(delta_4-(delta-theta_3))/delta_4^2;
a=4*phi*omega^2/delta_4^2;
endx=l_oa*sind(delta)-l_ab*sind(delta+s+phi_0); 理论轮廓方程。
y=l_oa*cosd(delta)-l_ab*cosd(delta+s+phi_0);
d_x=l_oa*cosd(delta)-l_ab*cosd(delta+s+phi_0理论方程一阶导数。
d_y=l_oa*(-sind(delta))+l_ab*sind(delta+s+phi_0);
dd_x=-l_oa*sind(delta)+l_ab*sind(delta+s+phi_0); 理论方程二阶导数。
dd_y=-l_oa*cosd(delta)+l_ab*cosd(delta+s+phi_0);
x_0=x-r_r*(-d_y/sqrt(d_x^2+d_y^2实际轮廓方程。
y_0=y-r_r*(d_x/sqrt(d_x^2+d_y^2));
if delta>=theta_2&delta alpha_11=atand((l_ab*abs(v/omega)-(l_oa*cosd(phi_0+s)-l_ab))/l_oa*sind(phi_0+s
推程压力角方程。
if alpha_11<0
alpha_11=-alpha_11;
endalpha_11(i+1)=alpha_11;
if alpha_11>alpha_1
r_0=r_0+delta_0;
temp=0;
break;
else if alpha_11>alpha_1max
alpha_1max=alpha_11;
delta_1max=delta;
endend
else if delta>=theta_3&delta<=360回程压力角。
alpha_22=atand((l_ab*abs(v/omega)+(l_oa*cosd(phi_0+s)-l_ab))/l_oa*sind(phi_0+s)))
回程压力角方程。
if alpha_22<0
alpha_22=-alpha_22;
endalpha_22(i+1)=alpha_22;
if alpha_22>alpha_2
r_0=r_0+delta_0;
temp=0;
break;
else if alpha_22>alpha_2max
alpha_2max=alpha_22;
delta_2max=delta;
endend
endend
rho=1/((abs(d_x*dd_y-dd_x*d_y))/d_x^2+d_y^2)^(3/2)))曲率半径方程。
if rho>=rho_amin
if rho rho_0min=rho;
delta_min=delta;
endelse
r_0=r_0+delta_0;
temp=0;
breakend
delta(i+1)=delta;
x(i+1)=x;
y(i+1)=y;
x_0(i+1)=x_0;
y_0(i+1)=y_0;
s(i+1)=s;
v(i+1)=v;
a(i+1)=a;
rho(i+1)=rho;
endend
figure(1);
axis equal
hold on
t=0:360;
x_1=r_0*cosd(t画基圆。
y_1=r_0*sind(t);
x_2=r_r*cosd(t)+x(10); 画滚子。
y_2=r_r*sind(t)+y(10);
plot(x_1,y_1,'m--'x,y,':x_0,y_0,'k',x_2,y_2,'c--'
legend('基圆','理论轮廓','实际轮廓');
plot(0,0,'ko');固定凸轮点。
plot(x(10),y(10),'ko');固定滚子点。
title('凸轮轮廓曲线图');
xlabel('x/mm');
ylabel('y/mm');
hold off
figure(2);
plot(delta,s);
title('凸轮运动规律曲线图——摆角');
xlabel('/o)')
ylabel('/o)')
grid on
figure(3);
plot(delta,v);
title('凸轮运动规律曲线图——角速度');
xlabel('/o)')
ylabel('/rad/s)')
grid on
figure(4);
plot(delta,a);
title('凸轮运动规律曲线图——角加速度');
xlabel('/o)')
ylabel('/m/s^2)')
grid on
disp('推程最大压力角:')
alpha_1max
disp('推程最大压力角相应转角:')
delta_1max
disp('回程最大压力角:')
alpha_2max
disp('回程最大压力角相应转角:')
delta_2max
disp('凸轮最小曲率半径:')
rho_0min
disp('凸轮最小曲率半径相应转角:')
delta_min
disp('最后确定的凸轮基圆半径:')r_0
机械原理大作业 凸轮机构
二 凸轮机构。一 运动分析。凸轮的运动分为4个阶段 推程运动 远休程 回程运动 近休程。该凸轮机构4个阶段的运动角分别为推程运动角90 远休止角100 回程运动角50 近休止角120 推程运动阶段的运动规律为正弦加速度运动,回程运动的运动规律为4 5 6 7多项式运动。凸轮的简图如图1所示。图1对该...
机械原理大作业2凸轮机构大作业
大作业 二 凸轮机构设计。题号。班级。学号。姓名。同组其他人员。完成日期。凸轮机构大作业题目。目录。1 题目及原始数据 2 推杆的运动规律及凸轮廓线方程 3 计算程序框图。4 计算程序 5 计算结果及分析 6 凸轮机构图 包括推杆及凸轮理论和实际廓线,并标出有关尺寸及计算结果。7 体会及建议。8 参...
机械原理大作业2凸轮机构大作业
大作业 二 凸轮机构设计。题号。班级。学号。姓名。同组其他人员。完成日期。凸轮机构大作业题目。目录。1 题目及原始数据 2 推杆的运动规律及凸轮廓线方程 3 计算程序框图。4 计算程序 5 计算结果及分析 6 凸轮机构图 包括推杆及凸轮理论和实际廓线,并标出有关尺寸及计算结果。7 体会及建议。8 参...