速度
加速度
15
最终运动图
六、感想与建议。
感想:在设计过程中采用分块设计方法可以使问题得到简化,如:1、将整个插床机构分为插削机构和送料机构,而插削机构又以六杆机构为主,依据插床工况条件的限制,题中预先确定了有关几何尺寸和力学参数,因此在满足所设计的插床结构紧凑,机械效率高的前提下设计了其他相应参数。设计送料机构凸轮时,由于回程角比较小,若为简单的等速回程过程,则会出现尖点失真现象,故设计时将将回程规律做了一定修正。2、电机选择时在满足高效率的前提下找到合适的传动比并通过查《机械设计手册》找到合适的电机。在此假设了机构的效率,电机等速特性等,以便简化问题,且同时其对设计目的影响较小。 在整个设计过程中我们在分析清楚题目要求后讨论最佳解法并通过编程来解决。先做好分析后着手做设计具体细节达到了事半功倍的效果。
另外由于知识的有限,将许多模型简化了也必将对设计造成一定负面影响。
建议:希望老师能在以后的课程设计过程中,能给大家讲解一些在设计时理应注意的相关问题,并给大家推荐一些设计书籍供学生参考学习,以保证我们的课程设计能达到预期的目的和要求。
参考文献。
《机械原理》 冯鉴 何俊 雷智翔 主编 西南交通大学出版社
《机械原理课程设计》 王淑仁 主编 北京-科学出版社2006 《C程序设计教程》 谭浩强 著 清华大学出版社
《MATLAB 5.x 程序设计语言》 楼顺天 陈生潭 雷虎民 编著 西安电子科技大学出版社
《机械设计手册》 成大先 主编 化学工业出版社
《Pro/ENGINEER Wildfire 3.0》 钟日铭 等编著 机械工业出版社
16
六杆机构分析源程序 目录:
void main() ..................................................................................................................................... 17 void Solutionangle(double value[M],double ang1) ..................................................................... 20 void Solutionspeed(double a2[N][N],double b2[N],double value[M],double ang1) ................ 20 void Solutionacceleration(double a3[N][N],double da3[N][N],double db3[N],double value[M]) ........................................................................................................................................................ 21 void GaussianE(double a4[N][N],double b4[N],double p4[N]) ................................................. 21 void FoundmatrixA(double value5[M],double a5[N][N]) .......................................................... 23 void FoundmatrixB(double value6[M],double ang1,double b6[N]) ......................................... 23 void FoundmatrixDA(double value7[M],double da7[N][N])..................................................... 23 void FoundmatrixDB(double value8[M],double ang1,double db8[N]) .................................... 24 void mf(double value9[M],double ang1) ..................................................................................... 24
程序:
#include
void Solutionangle(double [M],double ); /*迭代法求角位移*/ void Solutionspeed(double [N][N],double [N],double [M],double ); /*角速度求解*/
void Solutionacceleration(double [N][N],double [N][N],double [N],double [M]);/*角加速度求解*/
void GaussianE(double [N][N],double [N],double [N]);/*高斯消去*/ void FoundmatrixA(double [M],double [N][N]); //创建系数矩阵A void FoundmatrixB(double [M],double ,double [N]);//创建系数矩阵B void FoundmatrixDA(double [M],double [N][N]);//创建矩阵DA void FoundmatrixDB(double [M],double ,double [N]);//创建矩阵DB void mf(double [M],double ); //驱动力矩、阻力矩求解 //定义全局变量 double
as1=2*PI,h=0.120,K=2,lo23=0.150,az=0.055,bz=0.055,cz=0.125,l1=0.120,l3=0.160,l4=0.160,x=0.160,h1=0.136;
double q=2200,g3=140,g5=340,sbju=0.03,g=9.8,js3=0.11,zm=0,pm=0,zdg=0,djg=0,jf=0; //主函数
void main()
{
17
FILE *fp; int fangan; for(fangan=0;fangan<4;fangan++) { switch(fangan) { case 0:as1=4*PI;h=0.060;K=2;lo23=0.130;az=0.045,bz=0.045,cz=0.115; q=2000;g3=130;g5=330;js3=0.10; if((fp=fopen(\ { printf(\ exit(0); }break; default:printf(\请重新启动,输入正确选择。\\n\ } printf(\case 0 %d:\\nas1=%6.3f,H=%6.3f,K=%6.3f,Lo23=%6.3f,a=%6.3f,b=%6.3f ,c=%6.3f\\n\23,az,bz,cz); printf(\ //设计l3、l4,l1,h1尺寸 double mang3; mang3=PI*(K-1)/(K+1)/2; l1=lo23*sin(mang3); l3=l4=h/2/sin(mang3); x=l3*(1+cos(mang3))/2; h1=l3*sin(-mang3)+sqrt(l4*l4-pow(x-l3*cos(-mang3),2)); l1=float(int(l1*1000+0.5))/1000;l3=l4=float(int(l3*1000+0.5))/1000;x=float(int(x*1000+0.5))/1000;h1=float(int(h1*1000+0.5))/1000; int i,j; double shuju[36][M]; double psvalue[M],a[N][N],da[N][N],b[N],db[N],ang1; fprintf(fp,\ fprintf(fp,\ fprintf(fp,\ fprintf(fp,\不均匀系数\\t %lf\\t g\\t%lf\\t J3\\t%lf\\n\ fprintf(fp,\驱动力矩\\t阻力矩\\tJe\\t\ //计算数据并写入文件 for(i=0;i<36;i++) { ang1=i*PI/18;
18
19
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); mf(psvalue,ang1); for(j=1;j<3;j++) psvalue[j]=psvalue[j]*180/PI; zm+=psvalue[13]*PI/18; for(j=0;j pm=zm/(2*PI); djg=pm*as1; for(i=0;i<36;i++) { if(shuju[i][13]>pm) zdg+=(shuju[i][13]-pm)*PI/18; } jf=zdg/(as1*as1*sbju); fprintf(fp,\平均力矩\\t.6f\fprintf(fp,\电机功率\\t.6f\fprintf(fp,\盈亏功\\t.6f\fprintf(fp,\for(i=0;i<6;i++) { fprintf(fp,\ for(j=0;j<6;j++) fprintf(fp,\ fprintf(fp,\ for(j=0;j<6;j++) fprintf(fp,\ fprintf(fp,\ for(j=0;j<6;j++)