1、机械原理大作业机械原理大作业姓名:学号:2班级:14偏距e=10mm;基圆半径ro=40mm;滚子半径rr=10mm;推程运动角=150;远休止角=30回程运动角=120;近休止角=60/*凸轮轮廓曲线绘制程序*/ #include #include#include#define h 20.0 #define W 120 #define K 5 #define A1 150 #define A2 180 #define A3 300 #define A4 360 #define A5 240 #define X0 0 #define Y0 0#define pi 3.14159#define
2、t pi/180 main() FILE *fp;float e,ro,rr,p,so,dx,dy,st,ct; float s200,ds200,dv200,da200,x200,y200,xp200,yp200; int i=0,w=0;e=10; ro=40; rr=10; so=sqrt(ro*ro-e*e);for(p=0;p=A4;p+=K) if(pA1&pA2&pA5&pA3) /*近休止段*/ si=0; dsi=0; dvi=0; dai=(atan(dsi/(W*t)-e)/(so+si)/(t); /*压力角*/ xi=X0+(so+si)*sin(p*t)+e*cos
3、(p*t); /*理论廓线坐标*/ yi=Y0+(so+si)*cos(p*t)-e*sin(p*t); dx=(dsi-e)*sin(p*t)+(so+si)*cos(p*t); dy=(dsi-e)*cos(p*t)-(so+si)*sin(p*t); st=dy/sqrt(dx*dx+dy*dy); ct=dx/sqrt(dx*dx+dy*dy); xpi=xi+rr*st; /*外实际廓线坐标*/ ypi=yi-rr*ct; i+; printf( 角度 理x 理y 实x 实y 压力角 n);fp=fopen(shuju,w);printf(=n); for(w=0;w=A4/K;w=
4、w+1) printf(* %4d%10.2f%8.2f%8.2f%10.2f%10.2f *n,w*K,xw,yw,xpw,ypw,daw); fprintf(fp,%4d t %6.2f t %6.2f t %6.2f t %6.2f t %6.2f n,w*K,xw,yw,xpw,ypw,daw); system(pause); /*杆组运动分析编程程序*/ #include#include#include#include#define PI 3.14159265void rrpm(int model,int p1,int p2,int p3,int m1,int m2,int m3,d
5、ouble l1,double *sr,double *vr2,double *ar2,double t10,double w10,double e10,double p202,double vp202,double ap202) double dx21,dy21,dx31,dy31,dx32,dy32; double ssq,ep,fp,co3,si3,co2,si2,q,ev,fv,ea,fa; tm2=tm3; dx21=pp20-pp10; dy21=pp21-pp11; ssq=dx21*dx21+dy21*dy21; co3=cos(tm3); si3=sin(tm3); ep=2
6、.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; pp30=pp20+(*sr)*co3; pp31=pp21+(*sr)*si3; dx31=pp30-pp10; dy31=pp31-pp11; dx32=pp30-pp20; dy32=pp31-pp21; tm1=atan2(dy31,dx31); co2=cos(tm1); si2=sin(tm1); q=dy31*si3+dx31*co3;
7、 ev=vpp20-vpp10-(*sr)*wm3*si3; fv=vpp21-vpp11+(*sr)*wm3*co3; wm1=(-ev*si3+fv*co3)/q; *vr2=-(ev*dx31+fv*dy31)/q; vpp30=vpp10-l1*wm1*si2; vpp31=vpp11+l1*wm1*co2; ea=app20-app10+wm1*wm1*dx31-wm3*wm3*(*sr)*co3; ea=ea-2.0*wm3*(*vr2)*si3-em3*dy32; fa=app21-app11+wm1*wm1*dy31-wm3*wm3*(*sr)*si3; fa=fa+2.0*w
8、m3*(*vr2)*co3+em3*dx32; em1=(-ea*si3+fa*co3)/q; *ar2=-(ea*dx31+fa*dy31)/q; app30=app10-l1*wm1*wm1*co2-l1*em1*si2; app31=app11-l1*wm1*wm1*si2+l1*em1*co2; wm2=wm3; em2=em3; void rprm(int model, int p1,int p2,int p3, int m1,int m2, double k, double l1, double *sr,double *vr2,double *ar2, double t10,dou
9、ble w10,double e10, double p202,double vp202,double ap202) double dx21,dy21,test,gam,bta,ct,st,q,ev,fv,ea,fa,dx31,dy31; dx21=pp20-pp10; dy21=pp21-pp11; test=dx21*dx21+dy21*dy21-k*k; if(test0) printf(n RPR 不能组装.n); else *sr=sqrt(test); gam=atan(k/(*sr); bta=atan2(dy21,dx21); tm1=bta+model*gam; tm2=tm
10、1; ct=cos(tm1); st=sin(tm1); pp30=pp10+k*st+l1*ct; pp31=pp11-k*ct+l1*st; q=dx21*ct+dy21*st; ev=vpp20-vpp10; fv=vpp21-vpp11; wm1=(fv*ct-ev*st)/q; wm2=wm1; *vr2=(fv*dy21+ev*dx21)/q; dx31=pp30-pp10; dy31=pp31-pp11; vpp30=vpp10-wm1*dy31; vpp31=vpp11+wm1*dx21; ea=app20-app10+wm1*wm1*dx21+2.0*wm1*(*vr2)*s
11、t; fa=app21-app11+wm1*wm1*dy21-2.0*wm1*(*vr2)*ct; em1=-(ea*st-fa*ct)/q; em2=em1; *ar2=(ea*dx21+fa*dy21)/q; app30=app10-em1*dy31-wm1*wm1*dx31; app31=app11+em1*dx31-wm1*wm1*dy31;void barm(int p1,int p2,int m1,double l1,double ang, double t10,double w10,double e10,double p202,double vp202,double ap202)
12、 double lx2,ly2,co,si; co=cos(tm1+ang); si=sin(tm1+ang); lx2=l1*co; ly2=l1*si; pp20=pp10+lx2; pp21=pp11+ly2; vpp20=vpp10-ly2*wm1; vpp21=vpp11+lx2*wm1; app20=app10-ly2*em1-lx2*wm1*wm1; app21=app11+lx2*em1-ly2*wm1*wm1;int main(int argc, char *argv) static double p202,vp202,ap202,del=10.0; static doubl
13、e t10,w10,e10; static int ic; double dr; double l2,vr2,ar2; int i; dr=PI/180.0; p10=0.0; p11=0.0; p30=0.0; p31=-0.98; vp10=0.0; vp11=0.0; ap10=0.0; ap11=0.0; vp30=0.0; vp31=0.0; ap30=0.0; ap31=0.0; w5=0.0; e5=0.0; t5=0.0; w1=172.0*2.0*PI/60; e1=0.0; printf(n 运动参数nn); printf( 转角 位置s 速度v 加速度a w3 w4 a3
14、 a4n); printf( 。 m m/s m/s/s rad/s rad/s rad/s/s rad/s/sn);ic=(int)(360.0/del);for(i=0;i=ic;i+) t1=(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,t1/dr,p50,vp50,ap50,w3, w4,e3,e4); printf(n); getch(); return 0;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1