资源预览内容
第1页 / 共10页
第2页 / 共10页
第3页 / 共10页
第4页 / 共10页
第5页 / 共10页
第6页 / 共10页
第7页 / 共10页
第8页 / 共10页
第9页 / 共10页
第10页 / 共10页
亲,该文档总共10页全部预览完了,如果喜欢就下载吧!
资源描述
C语言程序设计报告 学院:机械工程学院 班级: 姓名: 学号: 基于网格法的蜗杆传动优化设计一.设计题目:基于网格法的蜗杆传动优化设计。蜗杆与涡轮可用来传递空间两交错轴间的运动和动力。由于其具有传动比大且结构紧凑等优点,在各类机械设备的传动系统中应用广泛。设计一普通圆柱蜗杆,已知参数:输入功率;蜗杆转速;传动比;由电动机驱动,载荷平衡。蜗杆材料,表面硬度,蜗轮材料为,离心铸造,蜗杆减速器每日8h,全年按300个工作日计,要示工作寿命不低于10年。根据以上条件进行优化设计,通常在满足使用要求的前提下,以结构尺寸是否紧凑、传动效率是否较高作为评判设计优劣的指标,在此以传动中心别具匠心为目标函数:式中:传动中心距;蜗杆轴向和蜗轮端面模数;蜗杆直径系数;蜗杆头数;蜗轮齿数;工程传动比;分析:由上式可知传动中心别具匠心与模数、蜗杆直径系数和蜗杆头数有关。此三个参数可作为独立设计变量,即,与此相对应,目标函数可写为:在进行蜗杆传动设计时,各参数应满足强度和刚度方面的要求,应用网格法可求解这一问题。网格法是约束直接优化方法中较为简单的一种方法,它的基本思想是将可行域分为许多网格,求出满足设计约束的网格点上的目标函数值,比较它们的大小,从中选择函数值最小的网格点。依次循环,直到网格之间的距离达到控制精度,即可得满足精度要求的近似最优解。网格法的算法步骤为:(1)给定目标函数初值(一个足够大的正数)、对应各设计变量的等分数和计算精度。(2)将区间进行等分,间距为,各分点坐标为,式中:共有T个分点: (3)对T个分点按顺序逐一进行可行性检查,放弃那些不满足设计约束的网格点,计算满足设计约束的网格点所对应的目标函数值,并与目标函数初值比较,若,则。否则,判别下一个网格点。(4)如果则停止计算,即为所求的最优点和最优值。否则取转向步骤(2)继续计算。二.流程图i0m0i1+Double fun(double x20)int yesorno(int ng, double x20)i=0hi=(bi-ai)/mii+ini2=0x2=a2+i2*h2i1=0x1=a1+i1*h1i0=0x0=a0+i0*h0NYNYNYf=fun(x)x0i=xi,xmini=xifo=fcontinueNYcontinueNYi2m2i=0NYi1=fo yesorno=0rno=0i0+三 .源程序#include#include#includemain()double fun(double x20);int yesorno(int ng,double x20) ;double x20;double a20=2.0,7.0,2.0;double b20=8.0,25,0,3,0;int n=3;int m20=3,6,5;double eps=0.1;double x020=0.2,0.3;double xmin20,fmin;double f0=10.0e5, f;double h20;double hmax;int i;int i0,i1,i2;int ng=10;labl:for(i=0;in;i+)hi=(bi-ai)/mi;for(i2=0;i2=m2;i2+)x2=a2+i2*h2;for(i1=0;i1=m1;i1+)x1=a1+i1*h1;for(i0=0;i0=f0) goto lab3;for(i=0;in;i+)x0i=xi; xmini=xi;f0=f;fmin=f;lab3:;lab2:;hmax=0.0;for(i=0;ihmax)hmax=hi;if(hmaxeps)for(i=0;in;i+)ai=xmini-hi;bi=xmini+hi;f0=10.0e4;goto labl;printf(nthe results:n);for(i=0;in;i+)printf(x%d=%10.5en,i,xmini);printf(f0=%10.5en,fmin);printf(hmax=%10.5en,hmax);return(0);int yesorno(int ng,double x20)int i;double Zp,Z1,Z2,Z3,Z4,Z5;int yesorno=1;double gx20;gx0=-x0+2.0;gx1=-8.0+x0;gx2=-25.0+x1;gx3=-x1+7.0;gx4=-x2+2.0;gx5=-3.0+x2;gx6=-atan(x2/x1)+10.0/180.0;gx7=-20.0/180.0+atan(x2/x1);Z1=-0.8881*2.0*x1/(x1+18.0*x2);Zp=4.02*exp(Z1);Z2=x0*(x1+18.0*x2);Z3=pow(Z2,3.0);Z4=0.125*Z3;gx8=252.0-170100.0*Zp/sqrt(Z4);Z5=x1+1.0;gx9=146.0-745000.0/(pow(x0,3.0)*x2*(0.5+sqrt(Z5);for(i=0;i0.0)yesorno=0;goto lab1;lab1:;printf(yesorno=%d,yesorno);return (yesorno);double fun (double x20)double f;f=.5*x0*(x1+18*x2);return(f);四.运行结果 五、结果分析程序运行结果是:模数m=2.00396蜗杆直径系数q=18.1674蜗杆头数=2.00024中心距a=54.2789=7.80369mm六心得体会在考试结束后的一周,我们就进入了计算机强化阶段,两周时间,两个任务,第一个任务是C语言强化,要求我们设计一个蜗杆传动的优化程序,可以说这个任务,既巩固了我们以前的C语言课程所学的知识,又让我们更多的了解到专业的特点,让我们真正了解到所学知识的重要性,以及所学课程之间的相关性。理论知识知识一个基础,真正运用才是王道,这次C语言的强化是真正将理论转化为运用的过程,是我们训练综合能力的一个必不可少的一个过程,对于我们来说显得尤为重要。设计过程既充满了心酸,又充满了喜悦,最初感觉好难,看都看不懂,也不知道如何下手,改错似乎越改越多,感觉很痛苦,尤其是在花了大心思纠错,最后还是没有突破的情况下。后来决定静心将所有知识弄懂,便又重新翻看了一遍C语言书,对以前的知识有了大致的回想和新的感悟,再回过头来看这个程序就觉得简单多了,终于将所有错误都改正过来了。后面就是纠正逻辑错误这一个问题,然后就可以收工了,这个时候是兴奋的,我清楚的记得。后面的逻辑问题的解决,就需要我们运用专业头脑了,必须要有专业知识作为铺垫,还要了解所运用的方法才行,这也是对我们思维方法的训练。最后,C语言的程序设计终于圆满成功,对自己的表现还是挺满意的,自己亲力亲为的感觉就是爽,通过自己的努力获得的成功才是值得珍惜的,这也是我们人生道路上的一大领悟,在以后的道路上,我们会以更坚定的步伐昂首阔步向前。
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号