凸轮机构大作业
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
大作业(二)
凸轮机构设计
(题号:4—B)
班级:机制02班
学号:2010012407(8)同组人员:杭程光高源
完成日期:2011-11-15
凸轮机构大作业题目
利用计算机辅助设计完成下列偏置式直动滚子推杆盘形凸轮机构(推杆的移动副导路位于凸轮盘回转中心的右侧)或摆动滚子推杆盘形凸轮机构的设计,设计已知数据如下表所示,机构中凸轮沿着逆时针方向做匀速转动。
表1 两种凸轮机构的从动件运动规律
表2 两种凸轮机构的推杆在近休、推程、远休及回程阶段的凸轮转角
表3 偏置直动滚子推杆盘形凸轮机构的已知参数
表4 摆动滚子推杆盘形凸轮机构的已知参数
要求:每两人一组,每组中至少打印出一份源程序。每人都要打印:原始数据;凸轮理论轮廓曲线和实际轮廓曲线的坐标值;推程和回程的最大压力角,以及出现最大压力角时凸轮相应的转角,凸轮实际轮廓曲线的最小曲率半径,以及相应的凸轮转角;凸轮的基圆半径。整个设计过程所选取的计算点数N=72~120。利用计算机绘出凸轮的理论轮廓曲线和实际轮廓。
注:滚子摆动推杆盘形凸轮机构的压力角α计算公式为:
)
sin(])cos([tan 00ϕϕϕϕδ
ϕ
α+-+=
OA AB OA AB L l l d d l μ
且当摆动推杆的角速度ω2与ω1异向时,上式方括号前取减号;当ω2与ω1同向时,取加号。φ0为推杆初位角,可有以下公式计算获得:
AB
OA AB OA l l r l l 2cos 2
0220++=
ϕ
一、作业数据
二、动规律及凸轮廓线方程 推程 等加速
20
2
/2δ
δh s =
等减速
2
020/)(2δδδ--=h h s
回程 理论轮廓廓线方程
x=(s 0+s)sin δ+ecos δ y= (s 0+s)cos δ-esin δ
工作廓线方程
x '=x-t r cos δ y '=y-t r sin δ
叮叮小文库
实际廓线方程:
()
2
2/)/(/)/(sin δδδθd dy d dx d dx += ()
2
2
/)/(/)/(cos δδδθd dy d dx d dy +-=
θcos '
r r x x -=
θsin '
r r y y -=
三、计算程序
#include
#define pi 3.1415926 double oro=0.5;
double rt=12,h=30,e=10,a_max1=30*pi/180,a_max2=75*pi/180,p_min=3.6; double change_angel(int d) { return d*pi/180; }
double f_s0(double r0,double e) { return pow(pow(r0,2)-pow(e,2),0.5); }
double f_s(double a) { double s; if(a>=0&&a<=45) s=0; else if(a<=112.5) s=2*h*pow(a-45,2)/pow(135,2); else if(a<=180)s=h-2*h*pow(180-a,2)/pow(135,2); else if(a<=270)s=h; else s=h*(4-a/90+sin(change_angel(4*a-3*360))/2/pi); return s; }
double f_x(double s,double s0,double a) {
double x;
x=(s0+s)*sin(change_angel(a))+e*cos(change_angel(a));
return x;
}
double f_y(double s,double s0,double a)
{
double y;
y=(s0+s)*cos(change_angel(a))-e*sin(change_angel(a));
return y;
}
double f_s1(double a)
{
double s1;
if(a>=0&&a<=45) s1=0;
else if(a<=112.5) s1=64*h*(change_angel(a)-(pi/4))/9/pow(pi,2);
else if(a<=180) s1=64*h*(pi-change_angel(a))/9/pow(pi,2);
else if(a<=270) s1=0;
else s1=h*(-2/pi+2*cos(change_angel(4*a-3*360))/pi);
return s1;
}
double f_x1(double s0,double a,double s,double s1)
{
double x1;
x1=(s0+s)*cos(change_angel(a))+s1*sin(change_angel(a))-e*sin(change_angel(a));
return x1;
}
double f_y1(double s0,double a,double s,double s1)
{
double y1;
y1=-(s0+s)*sin(change_angel(a))+s1*cos(change_angel(a))-e*cos(change_angel(a));
return y1;
}
double f_xx(double x,double x1,double y1)
{
double xx;
xx=x+rt*y1/pow(pow(x1,2)+pow(y1,2),0.5);
return xx;
}
double f_yy(double y,double x1,double y1)
{
double yy;
yy=y-rt*x1/pow(pow(x1,2)+pow(y1,2),0.5);
return yy;
}