机械原理大作业平面连杆机构报告.docx
- 文档编号:10371496
- 上传时间:2023-02-10
- 格式:DOCX
- 页数:23
- 大小:299.15KB
机械原理大作业平面连杆机构报告.docx
《机械原理大作业平面连杆机构报告.docx》由会员分享,可在线阅读,更多相关《机械原理大作业平面连杆机构报告.docx(23页珍藏版)》请在冰豆网上搜索。
机械原理大作业平面连杆机构报告
平面连杆机构的运动分析
(题号:
平面六杆机构)
一、题目说明
图示为一平面六杆机构。
设已知各构件的尺寸如表1所示,又知原动件1以等角速度𝛚1=1rad/s沿逆时针方向回转,试求各从动件的角位移、角速度及角加速度以及E点的位移、速度及加速度的变化情况。
已知其尺寸参数如下表所示:
组号
2
3
4
5
6
α
A
B
C
2-A
2-B
2-C
26.5
67.5
87.5
52.4
43.0
600
2=116.6
2=111.6
2=126.6
二、题目分析
1、建立封闭图形:
L1+L2=L3+L4
L1+L2=L5+L6+AG
2、机构运动分析:
a、角位移分析
由图形封闭性得:
将上式化简可得:
b、角速度分析
上式对时间求一阶导数,可得速度方程:
化为矩阵形式为:
c、角加速度分析:
矩阵对时间求一阶导数,可得加速度矩阵
d、E点的运动状态
位移:
速度:
加速度:
三、流程图
四、源程序
#include
#include
#include
#definePI3.1415926
#defineN4
voidSolutionangle(double[18],double);/*矢量法求角位移*/
voidSolutionspeed(double[N][N],double[N],double[18],double);/*角速度求解*/
voidSolutionacceleration(double[N][N],double[N][N],double[N],double[18]);/*角加速度求解*/
voidGaussianE(double[N][N],double[N],double[N]);/*高斯消去*/
voidFoundmatrixA(double[18],double[N][N]);//创建系数矩阵A
voidFoundmatrixB(double[18],double,double[N]);//创建系数矩阵B
voidFoundmatrixDA(double[18],double[N][N]);//创建矩阵DA
voidFoundmatrixDB(double[18],double,double[N]);//创建矩阵DB
//定义全局变量
doublel1=26.5,l2=111.6,l3=67.5,l4=87.5,l5=52.4,l6=43.0;
doublel2g=65.0,xg=153.5,yg=41.7,inang=60*PI/180,as1=1.0;
//主函数
voidmain()
{
inti,j;
FILE*fp;
doubleshuju[36][18];
doublepsvalue[18],a[N][N],da[N][N],b[N],db[N],ang1;
//建立文件,并制表头
if((fp=fopen("filel","w"))==NULL)
{
printf("Cann'topenthisfile.\n");
exit(0);
}
fprintf(fp,"\nTheKinematicParametersofPoint5\n");
fprintf(fp,"ang2ang3ang5ang6");
fprintf(fp,"as2as3as5as6");
fprintf(fp,"aas2aas3aas5aas6");
fprintf(fp,"xeyevexveyaexaey\n");
//计算数据并写入文件
for(i=0;i<36;i++)
{
ang1=i*PI/18;
Solutionangle(psvalue,ang1);
FoundmatrixB(psvalue,ang1,b);
FoundmatrixA(psvalue,a);
Solutionspeed(a,b,psvalue,ang1);
FoundmatrixDA(psvalue,da);
FoundmatrixDB(psvalue,ang1,db);
Solutionacceleration(a,da,db,psvalue);
for(j=0;j<4;j++)
{shuju[i][j]=psvalue[j]*180/PI;}
for(j=4;j<18;j++)
{shuju[i][j]=psvalue[j];}
fprintf(fp,"\n");
for(j=0;j<18;j++)
fprintf(fp,"%12.3f",shuju[i][j]);
}
fclose(fp);
//输出数据
for(i=0;i<36;i++)
{
ang1=i*PI/18;
printf("\n输出ang1=%d时的求解\n",i*10);
printf("angleangspeedangaccelerationE:
\n");
for(j=0;j<4;j++)
printf("%lf\t",shuju[i][j]);
printf("\n");
for(j=4;j<8;j++)
printf("%lf\t",shuju[i][j]);
printf("\n");
for(j=8;j<12;j++)
printf("%lf\t",shuju[i][j]);
printf("\n");
for(j=12;j<18;j++)
printf("%lf\t",shuju[i][j]);
printf("\n");
}
}
/*矢量法求角位移*/
voidSolutionangle(doublevalue[18],doubleang1)
{
doublexe,ye,A,B,C,phi,alpha,csn,ang5g,d2,d,ang2,ang3,ang5,ang6;
A=2*l1*l3*sin(ang1);
B=2*l3*(l1*cos(ang1)-l4);
C=l2*l2-l1*l1-l3*l3-l4*l4+2*l1*l4*cos(ang1);
ang3=2*atan((A+sqrt(A*A+B*B-C*C))/(B-C));
if(ang3<0)//限定ang3大小
{ang3=2*atan((A-sqrt(A*A+B*B-C*C))/(B-C));}
ang2=asin((l3*sin(ang3)-l1*sin(ang1))/l2);
xe=l4+l3*cos(ang3)+l2g*cos(ang2-inang);
ye=l3*sin(ang3)+l2g*sin(ang2-inang);
phi=atan2((yg-ye),(xg-xe));
d2=(yg-ye)*(yg-ye)+(xg-xe)*(xg-xe);
d=sqrt(d2);
csn=(l5*l5+d2-l6*l6)/(2.0*l5*d);
alpha=atan2(sqrt(1.0-csn*csn),csn);
ang5g=phi-alpha;
ang5=ang5g-PI;
ang6=atan2(ye+l5*sin(ang5g)-yg,xe+l5*cos(ang5g)-xg);
value[0]=ang2;value[1]=ang3;value[2]=ang5;value[3]=ang6;
value[12]=xe;value[13]=ye;
//限定角度大小
for(inti=0;i<4;i++)
{
while(value[i]>2*PI)
value[i]-=2*PI;
while(value[i]<0)
value[i]+=2*PI;
}
}
/*角速度求解*/
voidSolutionspeed(doublea2[N][N],doubleb2[N],doublevalue[18],doubleang1)
{
doubleang2,ang3;
ang2=value[0];ang3=value[1];
doublep2[N];
GaussianE(a2,b2,p2);
value[4]=p2[0];
value[5]=p2[1];
value[6]=p2[2];
value[7]=p2[3];
value[14]=-l3*value[5]*sin(ang3)-l2g*value[4]*sin(ang2-inang);
value[15]=l3*value[5]*cos(ang3)+l2g*value[4]*cos(ang2-inang);
}
/*角加速度求解*/
voidSolutionacceleration(doublea3[N][N],doubleda3[N][N],doubledb3[N],doublevalue[18])
{
inti,j;
doubleang2,ang3;
ang2=value[0];ang3=value[1];
doublebk[N]={0};
doublep3[N];
for(i=0;i { for(j=0;j { bk[i]+=-da3[i][j]*value[4+j]; } bk[i]+=db3[i]*as1; } GaussianE(a3,bk,p3); value[8]=p3[0]; value[9]=p3[1]; value[10]=p3[2]; value[11]=p3[3]; value[16]=-l3*value[9]*sin(ang3)-l3*value[5]*value[5]*cos(ang3)-l2g*value[8]*sin(ang2-inang)-l2g*value[4]*value[4]*cos(ang2-inang); value[17]=l3*value[9]*cos(ang3)-l3*value[5]*value[5]*sin(ang3)+l2g*value[8]*cos(ang2-inang)-l2g*value[4]*value[4]*sin(ang2-inang); } /*高斯消去法解矩阵方程*/ voidGaussianE(doublea4[N][N],doubleb4[N],doublep4[N]) { inti,j,k; doublea4g[N][N],b4g[N],t; for(i=0;i for(j=0;j a4g[i][j]=a4[i][j]; for(i=0;i b4g[i]=b4[i]; //使主对角线上的值尽可能大 if(a4g[0][0] { for(j=0;j {t=a4g[0][j];a4g[0][j]=a4g[1][j];a4g[1][j]=t;} t=b4g[0];b4g[0]=b4g[1];b4g[1]=t; } if(a4g[2][2] { for(j=0;j {t=a4g[2][j];a4g[2][j]=a4g[3][j];a4g[3][j]=t;} t=b4g[2];b4g[2]=b4g[1];b4g[3]=t; } //初等行变换 for(j=0;j for(i=0;i { if(i! =j) { for(k=0;k if(k! =j) {a4g[i][k]-=a4g[i][j]/a4g[j][j]*a4g[j][k];} b4g[i]-=b4g[j]*a4g[i][j]/a4g[j][j]; a4g[i][j]=0; } } for(i=0;i b4g[i]/=a4g[i][i]; p4[0]=b4g[0]; p4[1]=b4g[1]; p4[2]=b4g[2]; p4[3]=b4g[3]; } //创建系数矩阵A voidFoundmatrixA(doublevalue5[18],doublea5[N][N]) { doubleang2,ang3,ang5,ang6; ang2=value5[0];ang3=value5[1];ang5=value5[2];ang6=value5[3]; a5[0][0]=-l2*sin(ang2);a5[0][1]=l3*sin(ang3); a5[1][0]=l2*cos(ang2);a5[1][1]=-l3*cos(ang3); a5[2][0]=-l2*sin(ang2)-l2g*sin(ang2-inang); a5[2][2]=l5*sin(ang5);a5[2][3]=l6*sin(ang6); a5[3][0]=l2*cos(ang2)+l2g*cos(ang2-inang); a5[3][2]=-l5*cos(ang5);a5[3][3]=-l6*cos(ang6); a5[0][2]=a5[0][3]=a5[1][2]=a5[1][3]=a5[2][1]=a5[3][1]=0; } //创建系数矩阵B voidFoundmatrixB(doublevalue6[18],doubleang1,doubleb6[N]) { b6[0]=b6[2]=l1*sin(ang1)*as1; b6[1]=b6[3]=-l1*cos(ang1)*as1; } //创建矩阵DA voidFoundmatrixDA(doublevalue7[18],doubleda7[N][N]) { doubleang2,ang3,ang5,ang6,as2,as3,as5,as6; ang2=value7[0];ang3=value7[1];ang5=value7[2];ang6=value7[3]; as2=value7[4];as3=value7[5];as5=value7[6];as6=value7[7]; da7[0][0]=-l2*as2*cos(ang2);da7[0][1]=l3*as3*cos(ang3); da7[1][0]=-l2*as2*sin(ang2);da7[1][1]=l3*as3*sin(ang3); da7[2][0]=as2*(-l2*cos(ang2)-l2g*cos(ang2-inang)); da7[2][2]=as5*l5*cos(ang5);da7[2][3]=as6*l6*cos(ang6); da7[3][0]=as2*(-l2*sin(ang2)-l2g*sin(ang2-inang)); da7[3][2]=as5*l5*sin(ang5);da7[3][3]=as6*l6*sin(ang6); da7[0][2]=da7[0][3]=da7[1][2]=da7[1][3]=da7[2][1]=da7[3][1]=0; } //创建矩阵DB voidFoundmatrixDB(doublevalue8[18],doubleang1,doubledb8[N]) { db8[0]=db8[2]=l1*as1*cos(ang1); db8[1]=db8[3]=l1*as1*sin(ang1); } 五、计算结果及相关曲线图: A组: 数据 ang2 ang3 ang5 ang6 31.416 59.518 274.846 60.933 27.441 56.107 267.104 47.459 24.319 54.603 261.96 39.404 22.071 54.839 257.865 35.153 20.587 56.482 254.057 33.433 19.725 59.178 250.122 33.168 19.356 62.621 245.733 33.4 19.38 66.57 240.472 33.145 19.724 70.84 233.659 31.158 20.338 75.287 224.179 25.656 21.188 79.799 210.788 14.566 22.253 84.282 193.987 357.785 23.518 88.659 177.339 339.158 24.973 92.859 164.018 322.764 26.61 96.825 154.479 309.822 28.423 100.501 147.803 299.87 30.402 103.84 142.952 292.122 32.533 106.8 139.123 285.905 34.799 109.344 135.751 280.708 37.173 111.44 132.448 276.145 39.622 113.061 128.955 271.914 42.105 114.183 125.1 267.78 44.569 114.784 120.784 263.564 46.952 114.839 115.961 259.15 49.182 114.323 110.623 254.486 51.174 113.203 104.779 249.588 52.829 111.44 98.434 244.523 54.036 108.986 91.547 239.386 54.673 105.789 83.996 234.241 54.607 101.797 75.52 229.036 53.708 96.972 65.573 223.378 51.867 91.32 52.837 215.831 49.035 84.93 33.036 200.978 45.27 78.038 355.866 164.371 40.797 71.08 313.857 116.276 36.012 64.679 288.382 82.34 as2 as3 as5 as6 -0.434 -0.434 -1.783 -2.79 -0.357 -0.245 -1.285 -2.163 -0.267 -0.059 -1.053 -1.748 -0.184 0.1 -0.973 -1.493 -0.115 0.223 -0.984 -1.365 -0.06 0.311 -1.059 -1.344 -0.016 0.373 -1.185 -1.418 0.019 0.414 -1.361 -1.585 0.049 0.438 -1.584 -1.842 0.074 0.45 -1.817 -2.151 0.096 0.451 -1.916 -2.343 0.117 0.444 -1.703 -2.175 0.136 0.43 -1.316 -1.762 0.155 0.409 -1.029 -1.409 0.173 0.383 -0.792 -1.132 0.19 0.352 -0.561 -0.872 0.206 0.316 -0.423 -0.689 0.22 0.276 -0.352 -0.563 0.232 0.232 -0.328 -0.482 0.242 0.186 -0.336 -0.435 0.247 0.138 -0.365 -0.415 0.248 0.087 -0.407 -0.415 0.244 0.033 -0.457 -0.43 0.232 -0.023 -0.508 -0.454 0.213 -0.081 -0.559 -0.479 0.184 -0.143 -0.609 -0.5 0.145 -0.21 -0.66 -0.512 0.094 -0.282 -0.719 -0.515 0.031 -0.359 -0.795 -0.515 -0.046 -0.44 -0.908 -0.532 -0.136 -0.524 -1.1 -0.62 -0.234 -0.605 -1.507 -0.964 -0.332 -0.67 -2.666 -2.29 -0.417 -0.702 -4.566 -4.892 -0.471 -0.68 -4.309 -5.087 -0.477 -0.589 -2.745 -3.75 aas2 aas3 aas5 aas6 0.367 1.02 2.386 0.349 0.5 1.109 2.464 1.617 0.506 1.005 1.991 1.827 0.44 0.807 1.573 1.686 0.356 0.6 1.333 1.514 0.281 0.425 1.273 1.446 0.224 0.287 1.393 1.549 0.182 0.182 1.737 1.904 0.154 0.1 2.418 2.671 0.135 0.036 3.589 4.093 0.122 -0.017 4.816 5.81 0.114 -0.062 4.198 5.589 0.109 -0.101 1.884 3.163 0.105 -0.135 0.167 1.128 0.1 -0.166 1.639 1.722 0.095 -0.193 1.033 1.255 0.088 -0.218 0.574 0.869 0.077 -0.239 0.254 0.579 0.063 -0.257 0.034 0.359 0.044 -0.272 -0.114 0.188 0.019 -0.286 -0.21 0.053 -0.01 -0.299 -0.267 -0.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 机械 原理 作业 平面 连杆机构 报告