机械原理大作业Word文档下载推荐.docx
《机械原理大作业Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《机械原理大作业Word文档下载推荐.docx(9页珍藏版)》请在冰豆网上搜索。
![机械原理大作业Word文档下载推荐.docx](https://file1.bdocx.com/fileroot1/2023-1/12/acf7b386-f6ae-45a3-bc46-2d3277000040/acf7b386-f6ae-45a3-bc46-2d32770000401.gif)
#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&
&
=A2)/*远休止段*/
{s[i]=h;
ds[i]=0;
dv[i]=0;
}
A2&
=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);
A5&
=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);
A3)/*近休止段*/
{s[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"
=========================================================\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"
system("
pause"
}
/************杆组运动分析编程程序**********/
conio.h>
#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];
test=dx21*dx21+dy21*dy21-k*k;
if(test<
0){
\nRPR不能组装.\n"
*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;
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;
\n运动参数\n\n"
转角位置s速度v加速度aw[3]w[4]a[3]a[4]\n"
。
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,&
\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]);
\n"
getch();
return0;