机械原理大作业1.docx
- 文档编号:4306424
- 上传时间:2022-11-29
- 格式:DOCX
- 页数:21
- 大小:248.83KB
机械原理大作业1.docx
《机械原理大作业1.docx》由会员分享,可在线阅读,更多相关《机械原理大作业1.docx(21页珍藏版)》请在冰豆网上搜索。
机械原理大作业1
一、牛头刨床机构的运动分析
下图为一牛头刨床(Ⅲ级机构)。
假设已知各构件的尺寸如表2所示,原动件1以等角速度w1=1rad/s沿着逆时针方向回转,试求各从动件的角位移、角速度和角加速度以及刨头C点的位移、速度和加速度的变化情况。
表2牛头刨床机构的尺寸参数(单位:
mm)
题号
LAB
LCD
LDE
h
h1
h2
E
8-E
160
1020
250
900
460
120
LDE=250
二、牛头刨床机构的运动分析方程
1)位置分析
建立封闭矢量多边形
建立一直角坐标系,并标出各杆矢量及其方位角,其中共有4个未知量
(θ2=
)、
、
、
。
利用两个封闭图形ABDEFA和EDCGE,建立两个封闭矢量方程,由此可得:
(1)
把
(1)写成投影方程得:
(2)
由以上各式用型转化法可求得
,滑块2的方位角
高斯消去法求解
2)速度分析
对
(2)求一次导数得:
(3)
矩阵式:
(4)
采用高斯消去法可求解(4)可解得角速度ω2,ω3;
3)加速度分析
把(4)对时间求导数得:
(5)
采用高斯消去法可求解(5)可解得角加速度α2,α3,α5,α6
三、程序流程图
四、计算源程序
#include
#include
#include
/*定义变量*/
constdoublePI=3.14159265358979;
constintN=4;
constdoubleEPSILON=0.0001;
constintT=1000;
/*代入已知量*/
doubleLab=160,Lcd=1020,Lde=250,h=900,h1=460,h2=120,Omega1=1;
/*声明子函数*/
voidAngleDisplacement(double[12],double);/*角位移函数*/
voidAngleVelocity(double[N][N],double[N],double[12],double);/*角速度函数*/
voidAngleAcceleration(double[N][N],double[N][N],double[N],double[12]);/*角加速度函数*/
voidGaussE(double[N][N],double[N],double[N]);/*高斯消去法函数*/
voidModulusMatrixA(double[12],double[N][N]);/*矩阵A函数*/
voidModulusMatrixB(double[12],double,double[N]);/*矩阵B函数*/
voidMatrixDA(double[12],double[N][N]);/*矩阵DA函数*/
voidMatrixDB(double[12],double,double[N]);/*矩阵DB函数*/
/*主函数*/
voidmain()
{
inti,j;
FILE*fp;
doubledata[36][12];
doublevalue[12],a[N][N],da[N][N],b[N],db[N],Phi1;
charflag;
/*打开文件*/
if((fp=fopen("Data","w"))==NULL)
{
printf("文件打开错误!
\n");
exit(0);
}
fprintf(fp,"Lab=%lf\n",Lab);
fprintf(fp,"s3\tPhi3\tPhi4\ts5\t");
fprintf(fp,"s3'\tOmega3\tOmega4\ts5'\t");
fprintf(fp,"s3''\tEpsilon3\tEpsilon4\ts5''");
printf("\n\n牛头刨床机构运动分析程序\n\n\n");
printf("\n");
printf("是否开始计算(Y/N):
");
scanf("%c",&flag);
if(flag=='Y')
{
/*计算并写入文件*/
value[0]=480;
value[1]=65*PI/180;
value[2]=10*PI/180;
value[3]=500;
for(i=0;i<36;i++)
{
Phi1=i*PI/18;
AngleDisplacement(value,Phi1);
ModulusMatrixB(value,Phi1,b);
ModulusMatrixA(value,a);
AngleVelocity(a,b,value,Phi1);
MatrixDA(value,da);
MatrixDB(value,Phi1,db);
AngleAcceleration(a,da,db,value);
for(j=1;j<3;j++)
value[j]=value[j]*180/PI;
for(j=0;j<12;j++)
data[i][j]=value[j];
fprintf(fp,"\n");
for(j=0;j<12;j++)
fprintf(fp,"%12.3f\t",data[i][j]);
}
fclose(fp);
/*输出数据*/
printf("\n\n\n计算结果如下:
\n");
for(i=0;i<36;i++)
{
Phi1=i*PI/18;
printf("\n输出Phi1=%d时的求解\n",i*10);
printf("S3Phi3Phi5S5\n");
for(j=0;j<4;j++)
printf("%lf\t",data[i][j]);
printf("\n");
printf("S3'Omega3Omega5S5'\n");
for(j=4;j<8;j++)
printf("%lf\t",data[i][j]);
printf("\n");
printf("S3''Epsilon3Epsilon5S5''\n");
for(j=8;j<12;j++)
printf("%lf\t",data[i][j]);
printf("\n");
}
printf("\n程序运行结束,计算结果已写入Date文件中,请打开查看。
\n");
}
elseif(flag=='n')
printf("无法计算,请重新选择!
\n");
else
exit(0);
}
/*计算角位移*/
voidAngleDisplacement(doublevalue[12],doublePhi1)
{
doubleae,s3,Phi3,Phi4,s5,t=0;
s3=value[0];
Phi3=value[1];
Phi4=value[2];
s5=value[3];
doublexb,yb,xd,yd,xc,yc;
while(t { xb=h2+Lab*cos(Phi1); yb=h1+Lab*sin(Phi1); xd=Lde*cos(Phi4); yd=Lde*sin(Phi4); s3=sqrt((xd-xb)*(xd-xb)+(yd-yb)*(yd-yb)); xc=xd+Lcd*(xb-xd)/s3; yc=yd+Lcd*(yb-yd)/s3; Phi3=atan2(yc-yd,xc-xd); s5=xc; ae=sqrt(h1*h1+h2*h2); if(Phi4>45*PI/180) Phi4-=PI/4; if(fabs(yc-h) return; else Phi4=atan((yd-yc+h)/(Lde*cos(Phi4))); value[0]=s3; value[1]=Phi3; value[2]=Phi4; value[3]=s5; while(value[1]>2*PI) value[1]-=2*PI; while(value[1]<0) value[1]+=2*PI; while(value[2]>PI) value[2]-=2*PI; while(value[2]<-PI) value[2]+=2*PI; t+=1; if(t>=T) { printf("%f迭代失败.\n",Phi1*180/PI); exit(0); } } } /*计算角速度*/ voidAngleVelocity(doublea[N][N],doubleb[N],doublevalue[12],doublePhi1) { doublep[N]; GaussE(a,b,p); value[4]=p[0]; value[5]=p[1]; value[6]=p[2]; value[7]=p[3]; } /*计算角加速度*/ voidAngleAcceleration(doublea[N][N],doubleda[N][N],doubledb[N],doublevalue[12]) { inti,j; doublebk[N]={0}; doublep[N]; for(i=0;i { for(j=0;j { bk[i]+=-da[i][j]*value[4+j]; } bk[i]+=db[i]*Omega1; } GaussE(a,bk,p); value[8]=p[0]; value[9]=p[1]; value[10]=p[2]; value[11]=p[3]; } /*高斯消去法*/ voidGaussE(doublea[N][N],doubleb[N],doublep[N]) { inti,j,k; doubleag[N][N],bg[N],t; for(i=0;i { for(j=0;j { ag[i][j]=a[i][j]; } } for(i=0;i bg[i]=b[i]; /*将绝对值最大的元素换到主对角线上*/ if(ag[0][0] { for(j=0;j { t=ag[0][j]; ag[0][j]=ag[1][j]; ag[1][j]=t; } t=bg[0]; bg[0]=bg[1]; bg[1]=t; } if(ag[2][2] { for(j=0;j { t=ag[2][j]; ag[2][j]=ag[3][j]; ag[3][j]=t; } t=bg[2]; bg[2]=bg[1]; bg[3]=t; } /*初等行变换*/ for(k=0;k for(i=0;i { if(i! =k) { for(j=0;j if(j! =k) { ag[i][j]-=ag[i][k]/ag[k][k]*ag[k][j]; } bg[i]-=bg[k]*ag[i][k]/ag[k][k]; ag[i][k]=0; } } for(i=0;i bg[i]/=ag[i][i]; p[0]=bg[0]; p[1]=bg[1]; p[2]=bg[2]; p[3]=bg[3]; } /*系数矩阵A*/ voidModulusMatrixA(doublevalue[12],doublea[N][N]) { doubles3,Phi3,Phi4,s5; s3=value[0]; Phi3=value[1]; Phi4=value[2]; s5=value[3]; a[0][0]=cos(Phi3); a[0][1]=-s3*sin(Phi3); a[0][2]=-Lde*sin(Phi4); a[0][3]=0; a[1][0]=sin(Phi3); a[1][1]=s3*cos(Phi3); a[1][2]=Lde*cos(Phi4); a[1][3]=0; a[2][0]=0; a[2][1]=-Lcd*sin(Phi3); a[2][2]=-Lcd*sin(Phi4); a[2][3]=-1; a[3][0]=0; a[3][1]=Lcd*cos(Phi3); a[3][2]=Lde*cos(Phi4); a[3][3]=0; } /*系数矩阵B*/ voidModulusMatrixB(doublevalue[12],doublePhi1,doubleb[N]) { b[0]=-Lab*sin(Phi1); b[1]=Lab*cos(Phi1); b[2]=0; b[3]=0; } /*系数矩阵DA*/ voidMatrixDA(doublevalue[12],doubleda[N][N]) { doubles3,Phi3,Phi4,s5,s3g,Omega3,Omega4,s5g; s3=value[0]; Phi3=value[1]; Phi4=value[2]; s5=value[3]; s3g=value[4]; Omega3=value[5]; Omega4=value[6]; s5g=value[7]; da[0][0]=-Omega3*sin(Phi3); da[0][1]=-s3g*sin(Phi3)-s3*cos(Phi3)*Omega3; da[0][2]=-Lde*cos(Phi4)*Omega4; da[0][3]=0; da[1][0]=Omega3*cos(Phi3); da[1][1]=s3g*cos(Phi3)-s3*sin(Phi3)*Omega3; da[1][2]=-Lde*sin(Phi4)*Omega4; da[1][3]=0; da[2][0]=0; da[2][1]=-Lcd*cos(Phi3)*Omega3; da[2][2]=-Lde*cos(Phi4)*Omega4; da[2][3]=0; da[3][0]=0; da[3][1]=-Lcd*sin(Phi3)*Omega3; da[3][2]=-Lde*sin(Phi4)*Omega4; da[3][3]=0; } /*系数矩阵DB*/ voidMatrixDB(doublevalue[12],doublePhi1,doubledb[N]) { db[0]=-Lab*Omega1*cos(Phi1); db[1]=-Lab*Omega1*sin(Phi1); db[2]=0; db[3]=0; } 五.计算结果及数据 Phi1 s3 Phi3 Phi4 s5 s3' Omega3 Omega4 s5' s3'' Epsilon3 Epsilon4 s5'' 0 577.770 84.244 -27.350 324.353 161.964 0.026 -0.012 -31.846 9.717 0.244 -0.109 -298.476 10 606.017 84.705 -27.554 315.773 160.750 0.065 -0.028 -79.421 -23.601 0.209 -0.070 -245.515 20 633.548 85.531 -27.878 300.463 153.800 0.099 -0.036 -117.680 -55.676 0.178 -0.020 -191.693 30 659.391 86.669 -28.236 279.517 141.482 0.128 -0.034 -146.773 -84.926 0.153 0.034 -140.583 40 682.655 88.075 -28.535 253.901 124.368 0.153 -0.024 -167.270 -110.540 0.133 0.087 -93.885 50 702.563 89.713 -28.682 224.437 103.125 0.175 -0.004 -179.980 -132.228 0.118 0.139 -52.311 60 718.453 91.557 -28.587 191.806 78.439 0.194 0.025 -185.899 -150.018 0.107 0.188 -16.259 70 729.782 93.588 -28.164 156.559 50.972 0.212 0.061 -186.247 -164.140 0.099 0.234 13.797 80 736.119 95.793 -27.333 119.128 21.335 0.229 0.106 -182.539 -174.965 0.094 0.277 37.159 90 737.134 98.163 -26.019 79.837 -9.938 0.245 0.158 -176.661 -182.984 0.091 0.316 52.932 100 732.581 100.691 -24.154 38.899 -42.410 0.261 0.216 -170.930 -188.808 0.088 0.350 60.172 110 722.280 103.372 -21.678 -3.577 -75.759 0.276 0.280 -168.103 -193.162 0.086 0.381 58.051 120 706.096 106.203 -18.539 -47.591 -109.800 0.290 0.349 -171.371 -196.888 0.083 0.408 45.930 130 683.914 109.179 -14.688 -93.256 -144.504 0.305 0.422 -184.330 -200.923 0.080 0.434 23.252 140 655.608 112.294 -10.080 -140.801 -180.009 0.318 0.500 -211.001 -206.210 0.075 0.461 -10.718 150 621.016 115.539 -4.666 -190.576 -216.593 0.331 0.583 -255.845 -213.311 0.066 0.493 -56.775 160 579.925 118.898 1.607 -243.020 -254.511 0.341 0.672 -323.517 -220.961 0.048 0.522 -113.277 170 532.118 122.338 8.787 -298.542 -293.335 0.346 0.764 -417.136 -221.355 0.005 0.519 -164.301 180 477.649 125.779 16.856 -357.087 -329.891 0.339 0.846 -531.133 -188.100 -0.092 0.387 -141.282 190 417.677 129.047 25.552 -417.004 -353.805 0.309 0.880 -631.872 -66.105 -0.272 -0.070 132.706 200 355.996 131.836 34.066 -473.239 -346.203 0.243 0.798 -640.593 165.643 -0.474 -0.911 789.265 210 299.342 133.816 40.997 -517.511 -296.332 0.151 0.565 -488.762 393.733 -0.557 -1.718 1515.531 220 254.495 134.835 44.970 -542.304 -2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 机械 原理 作业