1、机械原理大作业机械与电子工程学院机械原理大作业(一)平面连杆机构的运动分析(题号:牛头刨床9A)班 级: 学 号: 姓 名: 同组其他人员: 完 成 日 期: 题目、原始数据及要求 1一 平面连杆机构运动分析方程 11.1 位置方程1.2速度计算公式 21.3加速度计算公式 2二 程序 32.1计算程序框图 32.2计算源程序 4三 3.1 (一组数据 Lab =200mm)计算结果 93.2运动线图 103.3 体会 12四 4.1(第二组数据 Lab =150mm)计算结果 124.2 运动线图 134.3 体会 15五 5.1(第三组数据 Lab =220mm)计算结果 165.2 运动
2、线图 175.3 体会 21六 参考资料 21题目及原始数据如图所示,为一牛头刨床(级机构)。假设已知各构件的尺寸如下表所示,原东件1以等角速度 沿着逆时针方向回转,试求各从动件的角位移、角速度和角加速度以及刨头C点位移、速度和加速度的变化。题号h9A200960160900500120平面连杆机构运动分析方程先建立一直角坐标系,标出各杆矢量及其方位角。设各杆的夹角为,其中GE段记为,BD段记为,建立投影方程:1.1机构运动位置分析方程1.2机构运动速度分析方程(以矩阵形式写出) 1.3机构运动加速度分析方程(以矩阵形式写出采用高斯消去法可得角加速度。计算流程图计算源程序#include#in
3、clude#include#define PI 3.1415926#define N 4#define E 0.0001#define T 1000void Solutionangle(double 12,double ); /*迭代法求角位移*/ void Solutionspeed(double NN,double N,double 12,double ); /*角速度求解*/void Solutionacceleration(double NN,double NN,double N,double 12);/*角加速度求解*/void GaussianE(double NN,double
4、N,double N);/*高斯消去*/void FoundmatrixA(double 12,double NN); /创建系数矩阵Avoid FoundmatrixB(double 12,double ,double N);/创建系数矩阵Bvoid FoundmatrixDA(double 12,double NN);/创建矩阵DAvoid FoundmatrixDB(double 12,double ,double N);/创建矩阵DB/定义全局变量double l1=200,l3=960,l4=160,h=900,h1=500,h2=120,as1=1.0;/主函数void main(
5、) int i,j; FILE *fp; double shuju3612; double psvalue12,aNN,daNN,bN,dbN,ang1;/建立文件,并制表头 if(fp=fopen(shuju,w)=NULL) printf(Cannt open this file.n); exit(0); fprintf(fp,n L1 =%lf,l1); fprintf(fp,n s3 ang3 ang4 s5 ); fprintf(fp, s3 as3 as4 s5 ); fprintf(fp, s3 aas3 aas4 s5 n);/计算数据并写入文件 psvalue0=480;ps
6、value1=65*PI/180;psvalue2=10*PI/180;psvalue3=500; for(i=0;i36;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
7、=1;j3;j+) psvaluej=psvaluej*180/PI; for(j=0;j12;j+) shujuij=psvaluej; fprintf(fp,n); for(j=0;j12;j+) fprintf(fp,%12.3f ,shujuij); for(j=1;j3;j+) psvaluej=psvaluej*PI/180; for(j=0;j4;j+) psvaluej+=psvaluej+4; fclose(fp);/输出数据 for(i=0;i36;i+) ang1=i*PI/18; printf(n输出ang1=%d时的求解n,i*10); printf(angle an
8、gspeed angacceleration :n); for(j=0;j4;j+) printf(%lft,shujuij); printf(n); for(j=4;j8;j+) printf(%lft,shujuij); printf(n); for(j=8;j12;j+) printf(%lft,shujuij); printf(n); /*矢量法求角位移*/ void Solutionangle(double value12,double ang1) double ae,s3,ang3,ang4,s5,t=0; s3=value0;ang3=value1;ang4=value2;s5=
9、value3; double xb,yb,xd,yd,xc,yc; while(tT) xb=h2+l1*cos(ang1); yb=h1+l1*sin(ang1); xd=l4*cos(ang4); yd=l4*sin(ang4); s3=sqrt(xd-xb)*(xd-xb)+(yd-yb)*(yd-yb); xc=xd+l3*(xb-xd)/s3; yc=yd+l3*(yb-yd)/s3; ang3=atan2(yc-yd,xc-xd); s5=xc; ae=sqrt(h1*h1+h2*h2); if(fabs(yc-h)2*PI) value1-=2*PI; while(value1P
10、I) value2-=2*PI; while(value2=T) printf(%f 迭代失败.n,ang1*180/PI);exit(0); /*角速度求解*/void Solutionspeed(double a2NN,double b2N,double value12,double ang1) double p2N; GaussianE(a2,b2,p2); value4=p20; value5=p21; value6=p22; value7=p23;/*角加速度求解*/void Solutionacceleration(double a3NN,double da3NN, double
11、db3N,double value12) int i,j; double bkN=0; double p3N; for(i=0;iN;i+) for(j=0;jN;j+) bki+=-da3ij*value4+j; bki+=db3i*as1; GaussianE(a3,bk,p3); value8=p30; value9=p31; value10=p32; value11=p33;/*高斯消去法解矩阵方程*/void GaussianE(double a4NN,double b4N,double p4N) int i,j,k; double a4gNN,b4gN,t; for(i=0;iN;
12、i+) for(j=0;jN;j+) a4gij=a4ij; for(i=0;iN;i+) b4gi=b4i;/施主对角线上的值尽可能大 if(a4g00a4g11) for(j=0;jN;j+) t=a4g0j;a4g0j=a4g1j;a4g1j=t; t=b4g0;b4g0=b4g1;b4g1=t; if(a4g22a4g33) for(j=0;jN;j+) t=a4g2j;a4g2j=a4g3j;a4g3j=t; t=b4g2;b4g2=b4g1;b4g3=t; /初等行变换 for(j=0;jN;j+) for(i=0;iN;i+) if(i!=j) for(k=0;kN;k+) if
13、(k!=j) a4gik-=a4gij/a4gjj*a4gjk; b4gi-=b4gj*a4gij/a4gjj; a4gij=0; for(i=0;iN;i+) b4gi/=a4gii; p40=b4g0; p41=b4g1; p42=b4g2; p43=b4g3;/创建系数矩阵Avoid FoundmatrixA(double value512,double a5NN) double s3,ang3,ang4,s5; s3=value50;ang3=value51;ang4=value52;s5=value53; a500=cos(ang3);a501=-s3*sin(ang3);a502=
14、-l4*sin(ang4); a510=sin(ang3);a511=s3*cos(ang3);a512=l4*cos(ang4); a521=-l3*sin(ang3);a522=-l4*sin(ang4);a523=-1; a531=l3*cos(ang3);a532=l4*cos(ang4); a503=a513=a520=a530=a533=0;/创建系数矩阵Bvoid FoundmatrixB(double value612,double ang1,double b6N) b60=-l1*sin(ang1)*as1; b61=l1*cos(ang1)*as1; b62=b63=0;/
15、创建矩阵DAvoid FoundmatrixDA(double value712,double da7NN) double s3,ang3,ang4,s5,s3g,as3,as4,s5g; s3=value70;ang3=value71;ang4=value72;s5=value73; s3g=value74;as3=value75;as4=value76;s5g=value77; da700=-as3*sin(ang3); da701=-s3g*sin(ang3)-s3*cos(ang3)*as3; da702=-l4*cos(ang4)*as4; da710=as3*cos(ang3);
16、da711=s3g*cos(ang3)-s3*sin(ang3)*as3; da712=-l4*sin(ang4)*as4; da721=-l3*cos(ang3)*as3; da722=-l4*cos(ang4)*as4; da731=-l3*sin(ang3)*as3; da732=-l4*sin(ang4)*as4; da703=da713=da720=da723=da730=da733=0;/创建矩阵DBvoid FoundmatrixDB(double value812,double ang1,double db8N) db80=-l1*as1*cos(ang1); db81=-l1*as1*sin(ang1); db82=db83=0;
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2