平面六杆机构.docx

上传人:b****8 文档编号:11466933 上传时间:2023-03-01 格式:DOCX 页数:16 大小:208.09KB
下载 相关 举报
平面六杆机构.docx_第1页
第1页 / 共16页
平面六杆机构.docx_第2页
第2页 / 共16页
平面六杆机构.docx_第3页
第3页 / 共16页
平面六杆机构.docx_第4页
第4页 / 共16页
平面六杆机构.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

平面六杆机构.docx

《平面六杆机构.docx》由会员分享,可在线阅读,更多相关《平面六杆机构.docx(16页珍藏版)》请在冰豆网上搜索。

平面六杆机构.docx

平面六杆机构

 

平面六杆机构的运动分析

 

成绩

指导老师董海军

班级05010804

学号2008301212张学振

2008301201黄永祥

2008301189罗春琦

 

1、题目说明

如上图所示平面六杆机构,试用计算机完成其运动分析。

已知其尺寸参数如下表所示:

组号

L1

L2

L2’

L3

L4

L5

L6

α

xG

yG

1-A

26.5

105.6

65.0

67.5

87.5

34.4

25.0

600

153.5

41.7

题目要求:

三人一组计算出原动件从0到360时(计算点数37)所要求的各运动变量的

大小,并绘出运动曲线图及轨迹曲线。

2、题目分析

1)建立封闭图形:

   L1+L2=L3+L4

L1+L2=L5+L6+AG

2)机构运动分析

a、角位移分析

由图形封闭性得:

b、角速度分析

上式对时间求一阶导数,可得速度方程:

 

化为矩阵形式为:

c、角加速度分析:

矩阵对时间求一阶导数,可得加速度矩阵为:

d、E点的运动状态

位移:

速度:

 

加速度:

 

3、源程序

#include

#include

#include"agaus.c"

#include"dnetn.c"

#include"conio.h"

#defineAlpha(PI/3)/**/

#definePI3.14159265358979

#defineAngle(PI/180)

#definew11.0

#definexg153.5

#defineyg41.7

intk=100;

doublet=0.1;

doubleh=0.1;

doubleeps=0.0000001;

intm;

intjiaodu;/**/

doublel[7]={65.0,26.5,105.6,67.5,87.5,34.4,25.0};

doublea[4][4];

doubleb[4];

doublec[4];

doublee[6];

doublexx[2];

FILE*fp;

FILE*pf;

main()

{

intn,i,j;

doublex[4]={26.23*Angle,49.75*Angle,87.16*Angle,37.25*Angle};

fp=fopen("数据结果.txt","w");

pf=fopen("数据结果2.txt","w");

printf("每段第一行为各杆角度,第二行为各杆角速度,第三行为各杆角加速度,\n各杆顺序为l1,l2,l3,l5,l6\n第四行为E点的位置,E点速度,E点的加速度。

E点各值分别指向X和y方向\n");

for(m=0;m<=35;m++)

{

jiaodu=m*10;/**/

i=dnetn(4,eps,t,h,x,k);/*调用牛顿法求各杆位置,存放在x[0]~~x[3]中*/

printf("%f:

",jiaodu*Angle);/**/

fprintf(fp,"%ld\t%lf\t",jiaodu,jiaodu*Angle);

a[0][0]=l[2]*sin(x[0]);/*第一次赋值,求角速度*/

a[0][1]=-l[3]*sin(x[1]);

a[0][2]=0;

a[0][3]=0;

a[1][0]=l[2]*cos(x[0]);

a[1][1]=-l[3]*cos(x[1]);

a[1][2]=0;

a[1][3]=0;

a[2][0]=-l[0]*sin(x[0]-Alpha);

a[2][1]=-l[3]*sin(x[1]);

a[2][2]=-l[5]*sin(x[2]);

a[2][3]=l[6]*sin(x[3]);

a[3][0]=l[0]*cos(x[0]-Alpha);

a[3][1]=l[3]*cos(x[1]);

a[3][2]=l[5]*cos(x[2]);

a[3][3]=-l[6]*cos(x[3]);

b[0]=-l[1]*sin(jiaodu*Angle)*w1;

b[1]=-l[1]*cos(jiaodu*Angle)*w1;

b[2]=0;

b[3]=0;

for(i=0;i<=3;i++)

{

printf("%f",x[i]);

fprintf(fp,"%lf\t",x[i]);

}

printf("\n");

if(agaus(a,b,4)!

=0)/*调用高斯法求各杆角速度,存放在b[0]~~b[3]中*/

{

printf("");

for(j=0;j<=3;j++)

{printf("%f",b[j]);

fprintf(fp,"%lf\t",b[j]);}

}

printf("\n");

a[0][0]=l[2]*sin(x[0]);/*第一次赋值,求角速度*/

a[0][1]=-l[3]*sin(x[1]);

a[0][2]=0;

a[0][3]=0;

a[1][0]=l[2]*cos(x[0]);

a[1][1]=-l[3]*cos(x[1]);

a[1][2]=0;

a[1][3]=0;

a[2][0]=l[0]*sin(x[0]-Alpha);

a[2][1]=l[3]*sin(x[1]);

a[2][2]=l[5]*sin(x[2]);

a[2][3]=-l[6]*sin(x[3]);

a[3][0]=l[0]*cos(x[0]-Alpha);

a[3][1]=l[3]*cos(x[1]);

a[3][2]=l[5]*cos(x[2]);

a[3][3]=-l[6]*cos(x[3]);

c[0]=l[3]*cos(x[1])*b[1]*b[1]-l[1]*cos(jiaodu*Angle)*w1*w1-l[2]*cos(x[0])*b[0]*b[0];

c[1]=l[1]*sin(jiaodu*Angle)*w1*w1+l[2]*sin(x[0])*b[0]*b[0]-l[3]*sin(x[1])*b[1]*b[1];

c[2]=-l[3]*cos(x[1])*b[1]*b[1]-l[0]*cos(x[0]-Alpha)*b[0]*b[0]-l[5]*cos(x[2])*b[2]*b[2]+l[6]*cos(x[3])*b[3]*b[3];

c[3]=l[3]*sin(x[1])*b[1]*b[1]+l[0]*sin(x[0]-Alpha)*b[0]*b[0]+l[5]*sin(x[2])*b[2]*b[2]-l[6]*sin(x[3])*b[3]*b[3];

if(agaus(a,c,4)!

=0)/*调用高斯法求各杆角jia速度,存放在b[0]~~b[3]中*/

{

printf("");

for(j=0;j<=3;j++)

{printf("%f",c[j]);

fprintf(fp,"%lf\t",c[j]);}

}

printf("\n");

/*fprintf(fp,"\n");*/

e[0]=l[6]*cos(x[3])-l[5]*cos(x[2])+xg;

e[1]=l[6]*sin(x[3])-l[5]*sin(x[2])+yg;

e[2]=-l[6]*sin(x[3])*b[3]+l[5]*sin(x[2])*b[2];

e[3]=l[6]*cos(x[3])*b[3]-l[5]*cos(x[2])*b[2];

e[4]=-l[6]*cos(x[3])*b[3]*b[3]-l[6]*sin(x[3])*c[3]+l[5]*cos(x[2])*b[2]*b[2]+l[5]*sin(x[2])*c[2];

e[5]=-l[6]*sin(x[3])*b[3]*b[3]+l[6]*cos(x[3])*c[3]+l[5]*sin(x[2])*b[2]*b[2]-l[5]*cos(x[2])*c[2];

printf("E:

X=%fY=%f",e[0],e[1]);

printf("E:

Vx=%fVy=%f\n",e[2],e[3]);

printf("E:

ax=%fay%f",e[4],e[5]);

fprintf(fp,"%lf\t%lf\t",e[0],e[1]);

fprintf(fp,"%lf\t%lf\t",e[2],e[3]);

fprintf(fp,"%lf\t%lf\t",e[4],e[5]);

xx[0]=sqrt(e[2]*e[2]+e[3]*e[3]);/*E点的速度绝对值*/

fprintf(pf,"%ld\t",jiaodu);

fprintf(pf,"%lf\t",xx[0]);

xx[1]=sqrt(e[4]*e[4]+e[5]*e[5]);/*E点的加速度绝对值*/

fprintf(pf,"%lf\t",xx[1]);

fprintf(pf,"\n");

printf("\n");

printf("\n");

/*fprintf(fp,"\n");*/

fprintf(fp,"\n");

}

}

voiddnetnf(x,y,n)

intn;

doublex[],y[];

{

y[0]=l[2]*cos(x[0])-l[3]*cos(x[1])+l[1]*cos(m*10*Angle)-l[4];

y[1]=l[2]*sin(x[0])-l[3]*sin(x[1])+l[1]*sin(m*10*Angle);

y[2]=l[3]*cos(x[1])+l[0]*cos(x[0]-Alpha)+l[5]*cos(x[2])-l[6]*cos(x[3])+l[4]-xg;

y[3]=l[3]*sin(x[1])+l[0]*sin(x[0]-Alpha)+l[5]*sin(x[2])-l[6]*sin(x[3])-yg;

n=n;

return;

}

 

4、曲线图:

 

 

 

E点的位移图:

 

E点的速度图:

 

E点速度与原动件角位移关系

 

E点的加速度图:

 

E点加速度与原动件角位移关系图:

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > IT认证

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1