凸轮机构大作业
大作业(二)
凸轮机构设计
(题号: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;
}
double f_aa(double r0,double s,double s1)
{ double aa;
aa=atan(fabs(s1/(r0+s)));
return aa;
}
double f_s2(double a)
{
double s2;
if(a>=0&&a<=45)
s2=0;
else if(a<=112.5) s2=64*h/9/pow(pi,2);
else if(a<=180) s2=-64*h/9/pow(pi,2);
else if(a<=270) s2=0;
else s2=-8*h*sin(change_angel(4*a-3*360))/pi;
return s2;
}
double f_x2(double s,double s1,double a,double s2,double s0)
{
double x2;
x2=s2*sin(change_angel(a))+2*s1*cos(change_angel(a))-(s0+s)*sin(change_angel(a))-e*cos(cha nge_angel(a));
return x2;
}
double f_y2(double s,double s1,double a,double s2,double s0)
{
double y2;
y2=s2*cos(change_angel(a))-2*s1*sin(change_angel(a))-(s0+s)*cos(change_angel(a))-e*cos(chan ge_angel(a));
return y2;
}
double f_p(double x1,double y1,double x2,double y2)
{
double p;
p=pow(pow(x1,2)+pow(y1,2),1.5)/(x1*y2-x2*y1);
return p;
}
void main()
{
double
y1,x2,r0=30,s0,a,s,s1,x1,s2,y2,x[N],y[N],xx[N],yy[N],aa,p,pa,temp_aa1=0,temp_aa2=0,temp_a1= 0,temp_a2=0,temp_p=0,temp_ap=0;
叮叮小文库s0=f_s0(r0,e);
FILE*fp=fopen("d://he.txt","w");
for(int i=0;i { a=3*i; s=f_s(a); x[i]=f_x(s,s0,a); y[i]=f_y(s,s0,a); s1=f_s1(a); x1=f_x1(s0,a,s,s1); y1=f_y1(s0,a,s,s1); xx[i]=f_xx(x[i],x1,y1); yy[i]=f_yy(y[i],x1,y1); aa=f_aa(r0,s,s1); /*cout<<"s0是:"< cout<<"a是:"< cout<<"s是:"<