1、机 构 运 动 分 析 基 本 杆 组 法程序设计机 构 运 动 分 析 基 本 杆 组 法程序设计 机械原理实验报告 实验名称 班 级 学 号 姓 名 日 期 成 绩 指导教师 (签字) 机 构 运 动 分 析 基 本 杆 组 法 程序编写说明 机构运动分析的方法很多,主要有图解法和解析法。 图解法最为基本,简单明了,易于观察各部分间运动的相互关系、大小、方向,缺点是不精确,对于复杂运动关系分析起来较为困难,另外对于多个位置要重复作图,很麻烦;解析法精确可靠,对于一个确定的机构可列写出最终表达式,当原动件角度变化时可直接得出结果,但缺点是解析式的求解很麻烦,易出错,对于每个机构都要单独列写表
2、达式,通用性较差。所以,能否找到一种既为精确又具有通用性的分析方法呢?对于平面机构,采用“基于C+编程的基本杆组分析法”。 基于C+编程的解析法采用杆组分析的方法,设计通用的级杆组子程序,可对一般的级机构进行运动分析。指导书中给出了6种分析基本杆组的子程序,对于确定的机构,给出初始条件,然后调用相应的子程序即可得到结果,大大简化了工作量。以下是几种基本杆组分析的图解: 单杆运动分析 RRR 杆组运动分析 RRP 杆组运动分析 RPR 杆组运动分析 PRP 杆组运动分析 RPP 杆组运动分析 编程过程中变量较多易出现错误,因而要求我们在编程过程中务必做到认真细心,完全掌握解析机构运动的方法,准确
3、分析构件的杆组组成,确定坐标点。本次上机不仅仅加深了我们对于机械构件运动的理解,还提供机会让我们第一次使用C+编程的方法解决实际问题,使得大家对于C+有了更为深入的理解。 例3-1 图示平面四杆机构中,已知各构件尺寸:lAB=24mm,lAD=78mm,lCD=48mm,=100 , 并知原动件角速度为10rad/s沿逆时针方向回转。试求转角为60 时构件2和3的角速度和角加速度。 基本杆组: 主程序: #include 机构运动分析子程序.h /* 运动分析子程序 */ #include #include /* 输入输出头文件 */ #include using namespace std;
4、 void main() /* 主程序 */ ofstream outfile(1.txt, ios_base:out); if (!outfile) cerr double d1=0.024, d3=0.048, xa=0,ya=0, xd=0.078, yd=0; double dv=10, da=0, df=0, c1=0; int i,n; cout cout cout cout cout cout coutdfn; df *= PI/180; c1 *= PI/180; cout cout cout for ( i=1; i cout outfile 输出结果: 例3-6 图3-12
5、所示为牛头刨床的机构运动简图。设已知各构件的尺寸为:l1=125mm,l3=600mm,l4=150mm,原动件1的方位角1=0-360和等角速度w1=1rad/s。求出该机构中各从动件的方位角、角速度和角加速度以及E 点的位移、速度和加速度。 基本杆组: 主程序: #include 机构运动分析子程序.h /* 运动分析子程序 */ #include /* 输入输出头文件 */ void main() /* 主程序 */ double d1=0.125,d3=0.6,d4=0.15,xa=0,ya=0,xc=0,yc=-0.275,xg=0,yg=0.3; double dv=1,da=0,
6、df=0,c1=0; int i,n; cout cout cout cout cout cout coutdfn; df *= PI/180; c1 *= PI/180; kp=1; cout cout cout cout x1=xa;y11=ya;xv1=0;yv1=0;xa1=0;ya1=0; SSL(); l1=w=m=0; x1=x2;y11=y2;xv1=xv2;yv1=yv2;xa1=xa2;ya1=ya2; x2=xc;y2=yc;xv2=0;yv2=0;xa2=0;ya2=0; RPR(); l=r=d3;af=0;ct=ct2;cv=cv2;ca=ca2; x1=xc;y1
7、1=yc;xv1=0;yv1=0;xa1=0;ya1=0; SSL(); if ( ct2 cout l1=d4;m=-1; ct2=0;cv2=ca2=0; x1=x2;y11=y2;xv1=xv2;yv1=yv2;xa1=xa2;ya1=ya2; x2=xg;y2=yg;xv2=0;yv2=0;xa2=0;ya2=0; RRP(); if ( ct1 cout coutdf; 输出结果: 3-6图示四杆机构中,lAB=60mm,lCD=90mm,lAD=lBC=120mm,w2=10rad/s.试用瞬心法求: (1)当=165时,C 点的速度Vc. (2)当=165时,构件三的BC 线上(
8、或其延长线上)速度最小的E 点的位置及其速度的大小。 (3)当Vc=0时,角之值。(有两个解) 基本杆组: 主程序: #include 机构运动分析子程序.h /* 运动分析子程序 */ #include /* 输入输出头文件 */ void main() /* 主程序 */ double d2=0.06,d3=0.12,d4=0.09,xa=0,ya=0,xd=0.12,yd=0; double dv=10,da=0,c1=0; kp=1; cout cout cout cout cout cout cout l2= cv= cout cinc1; c1 *= PI/180; cout co
9、ut cout cout af=0;l=r=d2;ct=c1;cv=dv;ca=da; x1=xa;y11=ya;xv1=0;yv1=0;xa1=0;ya1=0; SSL(); m=1;l1=d3;l2=d4; x1=x2;y11=y2;xv1=xv2;yv1=yv2;xa1=xa2;ya1=ya2; x2=xd;y2=yd;xv2=0;yv2=0;xa2=0;ya2=0; RRR(); af=0;l=r=d4;ct=ct2;cv=cv2;ca=ca2; x1=xd;y11=yd;xv1=0;yv1=0;xa1=0;ya1=0; SSL(); if ( ct2 ct2 *= 180/PI; c
10、out cout cout cout cout cinCT; 输出结果: #include 机构运动分析子程序.h /* 运动分析子程序 */ #include /* 输入输出头文件 */ void main() /* 主程序 */ double d2=0.06,d3=0.12,d4=0.09,xa=0,ya=0,xd=0.12,yd=0; double dv=10,da=0,c1=0; kp=1; cout cout cout cout cout l2= cv= cout cinc1; c1 *= PI/180; cout cout cout cout af=0;l=r=d2;ct=c1;c
11、v=dv;ca=da; x1=xa;y11=ya;xv1=0;yv1=0;xa1=0;ya1=0; SSL(); m=1;l1=d3;l2=d4; x1=x2;y11=y2;xv1=xv2;yv1=yv2;xa1=xa2;ya1=ya2; x2=xd;y2=yd;xv2=0;yv2=0;xa2=0;ya2=0; RRR(); af=0;l=r=0.189;ct=ct1;cv=cv1;ca=ca1; SSL(); if ( ct1 ct1 *= 180/PI; cout cout cout cout cout cinCT; 输出结果: 3-14图示曲柄滑块机构中,已知lAB=30mm,lAC=1
12、00mm,lBD=50mm,lDE=40mm,曲柄以等角速度w1=10rad/s回转。试确定1=45 时,D 点和E 点的速度和加速度,以及构件2的角速度和角加速度。 基本杆组: 主程序: #include 机构运动分析子程序.h /* 运动分析子程序 */ #include /* 输入输出头文件 */ void main() /* 主程序 */ double d1=0.03,d4=0.1,xa=0,ya=0; double dv=-10,da=0,c1=0; kp=1; cout cout cout cout cout cout cout cout cout cinc1; c1 *= PI/
13、180; cout cout cout cout l=r=d1;af=0;ct=c1;cv=dv;ca=da; x1=xa;y11=ya;xv1=0;yv1=0;xa1=0;ya1=0; SSL(); l1=w=m=0; x1=-d4;y11=0;xv1=0;yv1=0;xa1=0;ya1=0; RPR(); l=0.05;r=sqrt(0.05*0.05+0.04*0.04);af=atan(0.04/0.05); ct=ct2;cv=cv2;ca=ca2; x1=x2;y11=y2;xv1=xv2;yv1=yv2;xa1=xa2;ya1=ya2; SSL(); if ( ct2 ct2 *
14、= 180/PI; cout cout cout cout cout cout cout cinc1; 输出结果: 3-15. 图示机构中,lAE=70mm,lAB=40mm,lEF=60mm,lDE=35mm,lCD=75mm,lBC=50mm,原动 件以等角速度w1=10rad/s回转。试确定当 1=50 时,C 点的速度和加速度。 基本杆组: 主程序: #include机构运动分析子程序.h /* 运动分析子程序 */ #include #include /* 输入输出头文件 */ #include using namespace std; void main() ofstream ou
15、tfile(1.txt, ios_base:out); if (!outfile) cerr exit(-1); double d1=0.04,d2=0.06,d3=0.035,d4=0.075,d5=0.05,xa=0,ya=0,xe=0.07,ye=0,xx=0,yy=0,xxv=0,xxa=0,yyv=0,yya=0; double dt=50,dv=10,da=0; cout cout cout cout cout cout dt=(PI/180)*dt; kp=1; l1=d2;m=1; x1=xe;xv1=0;xa1=0;y11=0;yv1=0;ya1=0; x2=xa;xv2=0
16、;xa2=0;y2=0;yv2=0;ya2=0; ct2=dt;cv2=dv;ca2=da; RRP(); l=r=d3;af=0;ct=ct1+PI;cv=cv1;ca=ca1; x1=xe;xv1=0;xa2=0;y11=0;yv1=0;ya2=0; SSL(); xx=x2;xxv=xv2;xxa=xa2;yy=y2;yyv=yv2;yya=ya2; l=r=d1;af=0;ct=dt+PI;cv=dv;ca=da; x1=xa;xv1=0;xa2=0;y11=ya;yv1=0;ya2=0; SSL(); l1=d5;l2=d4;m=1; x1=x2;xv1=xv2;xa1=xa2;y1
17、1=y2;yv1=yv2;ya1=ya2; x2=xx;xv2=xxv;xa2=xxa;y2=yy;yv2=yyv;ya2=yya; RRR(); l=r=d4; af=0;ct=ct2;cv=cv2;ca=ca2; x1=x2;xv1=xv2;xa1=xa2;y11=y2;yv1=yv2;ya1=ya2; SSL(); cout cout outfile cout outfile cout outfile 输出结果: 3-16. 图示凸轮机构中,已知凸轮1以等角速度w1=10rad/s转动,凸轮为一偏心圆,其半径R=25mm,lAB=15mm,lAD=50mm,1=90。试求构件2的角速度和
18、角加速度。 基本杆组: 主程序: #include 机构运动分析子程序.h /* 运动分析子程序 */ #include /* 输入输出头文件 */ void main() /* 主程序 */ double d1=15,d2=25,d4=50,xa=0,ya=0,xd=-50,yd=0; double w1=10,c1=0; int w2,af2; cout cout cout cout cout cout cout cout cinc1; c1 *= PI/180; kp=1; cout cout l=r=d1;af=0;ct=c1;cv=w1;ca=0; x1=xa;y11=ya;xv1=
19、0;yv1=0;xa1=0;ya1=0; SSL(); l1=d2; w=0; m=-1; x1=x2;y11=y2;xv1=xv2;yv1=yv2;xa1=xa2;ya1=ya2; x2=xd;y2=yd;xv2=0;yv2=0;xa2=0;ya2=0; RPR(); cout cout cout 输出结果: 3-25. 图示机构中,已知原动件1以等角速度w1=10rad/s逆时针方向转动,lAB=100mm,lBC=300mm,e=30mm.当1=60时,求构件2的转角、角速度和角加速度,构件3速度和加速度。 基本杆组: 主程序: #include 机构运动分析子程序.h /* 运动分析子
20、程序 */ #include /* 输入输出头文件 */ void main() /* 主程序 */ double d1=45,d2=225,d3=180,xa=0,ya=0; double dv=10,da=0,c1=0; kp=1; cout cout cout cout cout cout cout l1= cout cout cinc1; c1 *= PI/180; cout cout cout cout af=0;l=r=d1;ct=c1;cv=dv;ca=da; x1=xa;y11=ya;xv1=0;yv1=0;xa1=0;ya1=0; SSL(); m=1;l1=d2;ct2=0
21、;cv2=0;ca2=0; x1=x2;y11=y2;xv1=xv2;yv1=yv2;xa1=xa2;ya1=ya2; x2=0;y2=0;xv2=0;yv2=0;xa2=0;ya2=0; RRP(); af=30*PI/180;l=d2;r=d3;ct=ct1;cv=cv1;ca=ca1; SSL(); if ( ct ct *= 180/PI; cout cout cout cout cout 输出结果: 3-26. 图示摆动导杆机构中,已知曲柄AB 以等角速度w1=10rad/s转动, lAB=100mm,lAC=200mm,lCK=40mm.当1=30时,求构件3的角速度和角加速度。
22、基本杆组: 主程序: #include 机构运动分析子程序.h /* 运动分析子程序 */ #include /* 输入输出头文件 */ void main() /* 主程序 */ double d1=100,d2=200,d3=40,xa=0,ya=0,xc=0,yc=-200; double w1=10,c1=0; int w2,af2; cout cout cout cout cout cout cout cout cinc1; c1 *= PI/180; kp=1; cout cout l=r=d1;af=0;ct=c1;cv=w1;ca=0; x1=xa;y11=ya;xv1=0;yv1=0;xa1=0;ya1=0; SSL(); l1=0; w=d3; m=0; x1=x2;y11=y2;xv1=xv2;yv1=yv2;xa1=xa2;ya1=ya2; x2=xc;y2=yc;xv2=0;yv2=0;xa2=0;ya2=0; RPR(); cout cout cout 输出结果:
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1