机械原理大作业3 凸轮结构设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
机械原理大作业(二)
作业名称:机械原理
设计题目:凸轮机构设计
院系:机电工程学院
班级:
设计者:
学号:
指导教师:丁刚陈明
设计时间:
哈尔滨工业大学机械设计
1.设计题目
如图所示直动从动件盘形凸轮机构,根据其原始参数设计该凸轮。
表一:凸轮机构原始参数
序号升程
(mm) 升程运动
角(º)
升程运动
规律
升程许用
压力角
(º)
回程运动
角(º)
回程运动
规律
回程许用
压力角
(º)
远休止角
(º)
近休止角
(º)
12 80 150 正弦加速
度30 100 正弦加速
度
60 60 50
2.凸轮推杆运动规律
(1)推杆升程运动方程
S=h[φ/Φ0-sin(2πφ/Φ0)]
V=hω1/Φ0[1-cos(2πφ/Φ0)]
a=2πhω12sin(2πφ/Φ0)/Φ02
式中:
h=150,Φ0=5π/6,0<=φ<=Φ0,ω1=1(为方便计算)
(2)推杆回程运动方程
S=h[1-T/Φ1+sin(2πT/Φ1)/2π]
V= -hω1/Φ1[1-cos(2πT/Φ1)]
a= -2πhω12sin(2πT/Φ1)/Φ12
式中:
h=150,Φ1=5π/9,7π/6<=φ<=31π/18,T=φ-7π/6 3.运动线图及凸轮线图
运动线图:
用Matlab编程所得源程序如下:
t=0:pi/500:2*pi;
w1=1;h=150;
leng=length(t);
for m=1:leng;
if t(m)<=5*pi/6
S(m) = h*(t(m)/(5*pi/6)-sin(2*pi*t(m)/(5*pi/6))/(2*pi));
v(m)=h*w1*(1-cos(2*pi*t(m)/(5*pi/6)))/(5*pi/6);
a(m)=2*h*w1*w1*sin(2*pi*t(m)/(5*pi/6))/((5*pi/6)*(5*pi/6));
% 求退程位移,速度,加速度
elseif t(m)<=7*pi/6
S(m)=h;
v(m)=0;
a(m)=0;
% 求远休止位移,速度,加速度
elseif t(m)<=31*pi/18
T(m)=t(m)-21*pi/18;
S(m)=h*(1-T(m)/(5*pi/9)+sin(2*pi*T(m)/(5*pi/9))/(2*pi));
v(m)=-h/(5*pi/9)*(1-cos(2*pi*T(m)/(5*pi/9)));
a(m)=-2*pi*h/(5*pi/9)^2*sin(2*pi*T(m)/(5*pi/9));
% 求回程位移,速度,加速度
else
S(m)=0;
v(m)=0;
a(m)=0;
% 求近休止位移,速度,加速度end
end
推杆位移图
推杆速度图
推杆加速度图
4.确定凸轮基圆半径和偏距
在凸轮机构的ds/dφ-s线图里再作斜直线D t d t与升程的[d s/dφ-s(φ)]曲线相切并使与纵坐标夹角为升程许用压力角[α],则D t d t线的右下方为选择凸轮轴心的许用区。作斜直线D t'd t'与回程的曲线相切,并使与纵坐标夹角为回程的许用压力角[α],则D t'd t'线的左下方为选择凸轮轴心的许用区。考虑到升程开始瞬时机构压力角也不超过许用值,自B0点作限制线B0d0''与纵坐标夹角为升程[α],则两直线D t d t和B0d0''组成的d t O1d0'' 以下区域为选取凸轮中心的许用区,如选O点作为凸轮回转中心,在推程和回程的任意瞬时,凸轮机构压力角均不会超过许用值,此时凸轮的基圆半径r0=OB0,偏距为e。若选在O1点则O1B0为凸轮最小基圆半径r0min。
%求ds/dα-sS线图
v1=-v;
plot(v1,S);
title('ds/d\phi-S');
hold on;
grid on;
%求Dtdt线
for m=1:leng
if v1(m)<0
b(m)=(S(m)-tan(120*pi/180)*v1(m));
else b(m)=0;
end
end
k=1;
for m=1:leng
if b(k)>b(m)
k=m;
end
end
X3=-150:150;
Y3=tan(120*pi/180)*X3+b(k);
plot(X3,Y3);
hold on
%求Dt'dt'线
for m=1:leng
if v1(m)>0
b(m)=(S(m)-tan(30*pi/180)*v1(m));
else b(m)=0;
end
end
n=1;
for m=1:leng
if b(n)>b(m)
n=m;
end
end
X=-150:150;
Y=tan(30*pi/180)*X+b(n);
plot(X,Y);
hold on