??vEx??L6?sin?6??6?L5?sin?5??5速度:?v?L?cos????L?cos??? ?666555?Ey加速度: 22?a??L?cos????L?sin????L?cos????L5?sin?5??5?Ex666666555?22aEy??L6?sin?6??6?L6?cos?6??6?L5?sin?5??5?L5?cos?5??5?? 三、流程图 开始 输入l1,l2,l3,l4,l5,l6,l2’,xg,yg,ω I=0 θ1=I*10° 用矢量法求解角位移函数,并计算θ2,θ3,θ5,θ6,并计算Xe,Ye 调用系数矩阵A子函数,计算A 调用原动件位置参数矩阵B子程序,创建矩阵B 调用求解角速度子程序,调用高斯消去法求解A*ω=B*ω1,得到ω2,ω3,ω5,ω6,再求解Vex,Vey 调用系数矩阵DA,计算DA 调用系数矩阵DB,计算DB 调用求解角加速度子程序,计算B(K)= -DA*ω+DB*ω1,然后调用高斯消去法程序结A*a= B(K)求的a2,a3,a5,a6,再求出aex,aey I=I+1 I<36 N 输出结果 结束 四、源程序 #include #include #include #define PI 3.1415926 #define N 4 void Solutionangle(double [18],double ); /*矢量法求角位移*/ void Solutionspeed(double [N][N],double [N],double [18],double ); /*角速度求解*/ void Solutionacceleration(double [N][N],double [N][N],double [N],double [18]);/*角加速度求解*/ void GaussianE(double [N][N],double [N],double [N]);/*高斯消去*/ void FoundmatrixA(double [18],double [N][N]); //创建系数矩阵A void FoundmatrixB(double [18],double ,double [N]);//创建系数矩阵B void FoundmatrixDA(double [18],double [N][N]);//创建矩阵DA void FoundmatrixDB(double [18],double ,double [N]);//创建矩阵DB //定义全局变量 double l1=26.5,l2=111.6,l3=67.5,l4=87.5,l5=52.4,l6=43.0; double l2g=65.0,xg=153.5,yg=41.7,inang=60*PI/180,as1=1.0; //主函数 void main() { int i,j; FILE *fp; double shuju[36][18]; double psvalue[18],a[N][N],da[N][N],b[N],db[N],ang1; //建立文件,并制表头 if((fp=fopen(\ { printf(\ exit(0); } fprintf(fp,\ fprintf(fp,\ fprintf(fp,\ fprintf(fp,\ fprintf(fp,\aey\\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,\ for(j=0;j<18;j++) fprintf(fp,\ } fclose(fp);