机械原理大作业.docx

上传人:b****6 文档编号:6975673 上传时间:2023-01-13 格式:DOCX 页数:9 大小:49.19KB
下载 相关 举报
机械原理大作业.docx_第1页
第1页 / 共9页
机械原理大作业.docx_第2页
第2页 / 共9页
机械原理大作业.docx_第3页
第3页 / 共9页
机械原理大作业.docx_第4页
第4页 / 共9页
机械原理大作业.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

机械原理大作业.docx

《机械原理大作业.docx》由会员分享,可在线阅读,更多相关《机械原理大作业.docx(9页珍藏版)》请在冰豆网上搜索。

机械原理大作业.docx

机械原理大作业

 

机械原理大作业

 

姓名:

学号:

2

班级:

14

 

偏距e=10mm;基圆半径ro=40mm;滚子半径rr=10mm;推程运动角=150°;远休止角=30°

回程运动角=120°;近休止角=60°

/************凸轮轮廓曲线绘制程序**********/

#include

#include

#include

#defineh20.0

#defineW120

#defineK5

#defineA1150

#defineA2180

#defineA3300

#defineA4360

#defineA5240

#defineX00

#defineY00

#definepi3.14159

#definetpi/180

main()

{FILE*fp;

floate,ro,rr,p,so,dx,dy,st,ct;

floats[200],ds[200],dv[200],da[200],x[200],y[200],xp[200],yp[200];

inti=0,w=0;

e=10;

ro=40;

rr=10;

so=sqrt(ro*ro-e*e);

for(p=0;p<=A4;p+=K)

{if(p<=A1)/*余弦加速度推程段*/

{s[i]=h*(1-cos(pi*p/A1))/2;

ds[i]=h*W*pi*sin(pi*p/A1)/2/A1;

dv[i]=pi*pi*h*W*W*cos(pi*p/A1)/A1/A1/2;

}

if(p>A1&&p<=A2)/*远休止段*/

{s[i]=h;

ds[i]=0;

dv[i]=0;}

if(p>A2&&p<=A5)/*等加速回程段*/

{s[i]=h-2*h*(p-A2)*(p-A2)/(A3-A2)/(A3-A2);

ds[i]=-4*h*W*(p-A2)/(A3-A2)/(A3-A2);

dv[i]=-4*h*W*W/(A3-A2)/(A3-A2);

}

if(p>A5&&p<=A3)/*等减速回程段*/

{s[i]=2*h*(300-p)*(300-p)/(A3-A2)/(A3-A2);

ds[i]=-4*h*W*(300-p)/(A3-A2)/(A3-A2);

dv[i]=4*h*W*W/(A3-A2)/(A3-A2);

}

if(p>A3)/*近休止段*/

{s[i]=0;

ds[i]=0;

dv[i]=0;}

da[i]=(atan((ds[i]/(W*t)-e)/(so+s[i])))/(t);/*压力角*/

x[i]=X0+(so+s[i])*sin(p*t)+e*cos(p*t);/*理论廓线坐标*/

y[i]=Y0+(so+s[i])*cos(p*t)-e*sin(p*t);

dx=(ds[i]-e)*sin(p*t)+(so+s[i])*cos(p*t);

dy=(ds[i]-e)*cos(p*t)-(so+s[i])*sin(p*t);

st=dy/sqrt(dx*dx+dy*dy);

ct=dx/sqrt(dx*dx+dy*dy);

xp[i]=x[i]+rr*st;/*外实际廓线坐标*/

yp[i]=y[i]-rr*ct;

i++;

}

printf("角度理x理y实x实y压力角\n");fp=fopen("shuju","w");

printf("=========================================================\n");

for(w=0;w<=A4/K;w=w+1)

{printf("*%4d%10.2f%8.2f%8.2f%10.2f%10.2f*\n",w*K,x[w],y[w],xp[w],yp[w],da[w]);

fprintf(fp,"%4d\t%6.2f\t%6.2f\t%6.2f\t%6.2f\t%6.2f\n",w*K,x[w],y[w],xp[w],yp[w],da[w]);

}

system("pause");

}

 

/************杆组运动分析编程程序**********/

#include

#include

#include

#include

#definePI3.14159265

voidrrpm(intmodel,intp1,intp2,intp3,intm1,intm2,intm3,doublel1,double*sr,double*vr2,double*ar2,doublet[10],doublew[10],doublee[10],doublep[20][2],doublevp[20][2],doubleap[20][2])

doubledx21,dy21,dx31,dy31,dx32,dy32;

doublessq,ep,fp,co3,si3,co2,si2,q,ev,fv,ea,fa;

t[m2]=t[m3];

dx21=p[p2][0]-p[p1][0];

dy21=p[p2][1]-p[p1][1];

ssq=dx21*dx21+dy21*dy21;

co3=cos(t[m3]);

si3=sin(t[m3]);

ep=2.0*(dx21*co3+dy21*si3);

fp=ssq-l1*l1;

if(ep*ep<=4.0*fp){

printf("\nRRP不能组装.\n");

}

else

{

*sr=fabs(-ep+model*sqrt(ep*ep-4.0*fp))/2.0;

p[p3][0]=p[p2][0]+(*sr)*co3;

p[p3][1]=p[p2][1]+(*sr)*si3;

dx31=p[p3][0]-p[p1][0];

dy31=p[p3][1]-p[p1][1];

dx32=p[p3][0]-p[p2][0];

dy32=p[p3][1]-p[p2][1];

t[m1]=atan2(dy31,dx31);

co2=cos(t[m1]);

si2=sin(t[m1]);

q=dy31*si3+dx31*co3;

ev=vp[p2][0]-vp[p1][0]-(*sr)*w[m3]*si3;

fv=vp[p2][1]-vp[p1][1]+(*sr)*w[m3]*co3;

w[m1]=(-ev*si3+fv*co3)/q;

*vr2=-(ev*dx31+fv*dy31)/q;

vp[p3][0]=vp[p1][0]-l1*w[m1]*si2;

vp[p3][1]=vp[p1][1]+l1*w[m1]*co2;

ea=ap[p2][0]-ap[p1][0]+w[m1]*w[m1]*dx31-w[m3]*w[m3]*(*sr)*co3;

ea=ea-2.0*w[m3]*(*vr2)*si3-e[m3]*dy32;

fa=ap[p2][1]-ap[p1][1]+w[m1]*w[m1]*dy31-w[m3]*w[m3]*(*sr)*si3;

fa=fa+2.0*w[m3]*(*vr2)*co3+e[m3]*dx32;

e[m1]=(-ea*si3+fa*co3)/q;

*ar2=-(ea*dx31+fa*dy31)/q;

ap[p3][0]=ap[p1][0]-l1*w[m1]*w[m1]*co2-l1*e[m1]*si2;

ap[p3][1]=ap[p1][1]-l1*w[m1]*w[m1]*si2+l1*e[m1]*co2;

w[m2]=w[m3];

e[m2]=e[m3];

}

}

voidrprm(intmodel,intp1,intp2,intp3,intm1,intm2,doublek,doublel1,double*sr,double*vr2,double*ar2,doublet[10],doublew[10],doublee[10],doublep[20][2],doublevp[20][2],doubleap[20][2])

{

doubledx21,dy21,test,gam,bta,ct,st,q,ev,fv,ea,fa,dx31,dy31;

dx21=p[p2][0]-p[p1][0];

dy21=p[p2][1]-p[p1][1];

test=dx21*dx21+dy21*dy21-k*k;

if(test<0){

printf("\nRPR不能组装.\n");

}

else

{

*sr=sqrt(test);

gam=atan(k/(*sr));

bta=atan2(dy21,dx21);

t[m1]=bta+model*gam;

t[m2]=t[m1];

ct=cos(t[m1]);

st=sin(t[m1]);

p[p3][0]=p[p1][0]+k*st+l1*ct;

p[p3][1]=p[p1][1]-k*ct+l1*st;

q=dx21*ct+dy21*st;

ev=vp[p2][0]-vp[p1][0];

fv=vp[p2][1]-vp[p1][1];

w[m1]=(fv*ct-ev*st)/q;

w[m2]=w[m1];

*vr2=(fv*dy21+ev*dx21)/q;

dx31=p[p3][0]-p[p1][0];

dy31=p[p3][1]-p[p1][1];

vp[p3][0]=vp[p1][0]-w[m1]*dy31;

vp[p3][1]=vp[p1][1]+w[m1]*dx21;

ea=ap[p2][0]-ap[p1][0]+w[m1]*w[m1]*dx21+2.0*w[m1]*(*vr2)*st;

fa=ap[p2][1]-ap[p1][1]+w[m1]*w[m1]*dy21-2.0*w[m1]*(*vr2)*ct;

e[m1]=-(ea*st-fa*ct)/q;

e[m2]=e[m1];

*ar2=(ea*dx21+fa*dy21)/q;

ap[p3][0]=ap[p1][0]-e[m1]*dy31-w[m1]*w[m1]*dx31;

ap[p3][1]=ap[p1][1]+e[m1]*dx31-w[m1]*w[m1]*dy31;}

}

voidbarm(intp1,intp2,intm1,doublel1,doubleang,doublet[10],doublew[10],doublee[10],doublep[20][2],doublevp[20][2],doubleap[20][2])

{

doublelx2,ly2,co,si;

co=cos(t[m1]+ang);

si=sin(t[m1]+ang);

lx2=l1*co;

ly2=l1*si;

p[p2][0]=p[p1][0]+lx2;

p[p2][1]=p[p1][1]+ly2;

vp[p2][0]=vp[p1][0]-ly2*w[m1];

vp[p2][1]=vp[p1][1]+lx2*w[m1];

ap[p2][0]=ap[p1][0]-ly2*e[m1]-lx2*w[m1]*w[m1];ap[p2][1]=ap[p1][1]+lx2*e[m1]-ly2*w[m1]*w[m1];

}

intmain(intargc,char*argv[])

{

staticdoublep[20][2],vp[20][2],ap[20][2],del=10.0;

staticdoublet[10],w[10],e[10];

staticintic;

doubledr;

doublel2,vr2,ar2;

inti;

dr=PI/180.0;

p[1][0]=0.0;

p[1][1]=0.0;

p[3][0]=0.0;

p[3][1]=-0.98;

vp[1][0]=0.0;

vp[1][1]=0.0;

ap[1][0]=0.0;

ap[1][1]=0.0;

vp[3][0]=0.0;

vp[3][1]=0.0;

ap[3][0]=0.0;

ap[3][1]=0.0;

w[5]=0.0;

e[5]=0.0;

t[5]=0.0;

w[1]=172.0*2.0*PI/60;

e[1]=0.0;

printf("\n运动参数\n\n");

printf("转角位置s速度v加速度aw[3]w[4]a[3]a[4]\n");

printf("。

mm/sm/s/srad/srad/srad/s/srad/s/s\n");

ic=(int)(360.0/del);

for(i=0;i<=ic;i++)

{

t[1]=(i)*del*dr;

barm(1,2,1,0.057,0.0,t,w,e,p,vp,ap);

rprm(1,3,2,4,3,2,0.0,0.6,&l2,&vr2,&ar2,t,w,e,p,vp,ap);

rrpm(1,4,1,5,4,5,0.0,0.6,&l2,&vr2,&ar2,t,w,e,p,vp,ap);printf("\n%2d%8.3f%8.3f%9.3f%10.3f%10.3f%10.3f%10.3f%10.3f",i+1,t[1]/dr,p[5][0],vp[5][0],ap[5][0],w[3],w[4],e[3],e[4]);

printf("\n");

}

getch();

return0;

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1