欢迎来到天天文库
浏览记录
ID:52536970
大小:231.50 KB
页数:12页
时间:2020-03-28
《基于网格法地蜗杆传动优化设计.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、C语言实训报告学院专业姓名学号一、设计题目:基于网格法的蜗杆传动优化设计。蜗杆与涡轮可用来传递空间两交错轴间的运动和动力。由于其具有传动比大且结构紧凑等优点,在各类机械设备的传动系统中应用广泛。设计一普通圆柱蜗杆,已知参数:输入功率;蜗杆转速;传动比;由电动机驱动,载荷平衡。蜗杆材料,表面硬度,蜗轮材料为,离心铸造,蜗杆减速器每日8h,全年按300个工作日计,要示工作寿命不低于10年。根据以上条件进行优化设计,通常在满足使用要求的前提下,以结构尺寸是否紧凑、传动效率是否较高作为评判设计优劣的指标,在此以传动中心别具匠心为目标函数:式
2、中:——传动中心距;——蜗杆轴向和蜗轮端面模数;——蜗杆直径系数; ——蜗杆头数; ——蜗轮齿数; ——工程传动比;分析:由上式可知传动中心别具匠心与模数、蜗杆直径系数和蜗杆头数有关。此三个参数可作为独立设计变量,即,与此相对应,目标函数可写为:在进行蜗杆传动设计时,各参数应满足强度和刚度方面的要求,应用网格法可求解这一问题。网格法是约束直接优化方法中较为简单的一种方法,它的基本思想是将可行域分为许多网格,求出满足设计约束的网格点上的目标函数值,比较它们的大小,从中选择函数值最小的网格点。依次循环,直到网格之间的距离达到
3、控制精度,即可得满足精度要求的近似最优解。网格法的算法步骤为:(1)给定目标函数初值(一个足够大的正数)、对应各设计变量的等分数和计算精度。(2)将区间进行等分,间距为,各分点坐标为,式中:共有T个分点:(3)对T个分点按顺序逐一进行可行性检查,放弃那些不满足设计约束的网格点,计算满足设计约束的网格点所对应的目标函数值,并与目标函数初值比较,若,则。否则,判别下一个网格点。(4)如果则停止计算,即为所求的最优点和最优值。否则取 转向步骤(2)继续计算。二.流程图i04、ntyesorno(intng,doublex[20])i=0h[i]=(b[i]-a[i])/m[i]i++i=foyesorno=0rno=0i0++三.源程序#include"st5、dio.h"/*预处理命令*/#include"stdlib.h"#include"math.h"包含头函数main()*主函数*/{doublefun(doublex[20]);intyesorno(intng,doublex[20]);doublex[20];定义数组x[20],其中包括m,q,z1doublea[20]={2.0,7.0,2.0};/*定义网格区间上限*/doubleb[20]={8.0,25.0,3.0};/*定义网格区间下限*/intn=3;intm[20]={3,6,5};/*定义网格区间的等分值*/do6、ubleeps=0.1;doublex0[20]={0.2,0.3};doublexmin[20],fmin;;//定义数组xmin[20](m、q、z1最小值),最小传动中心距fmindoublef0=10.0e5,f;给出基本的传动中心距的数值doubleh[20];//定义数组h[20],h[20]表示的是利用网格法做出的间距doublehmax;;//定义最大间距inti;inti0,i1,i2;intng=10;/*参数约束条件个数*/do{for(i=0;i7、[i];/*将区间[ai,bi]进行mi等分*/for(i2=0;i2<=m[2];i2++)/*网格法划分区间*/{x[2]=a[2]+i2*h[2];确定三维网格坐标x[2]=z1蜗杆头数for(i1=0;i1<=m[1];i1++){x[1]=a[1]+i1*h[1];x[1]=q直径系数for(i0=0;i0<=m[0];i0++){x[0]=a[0]+i0*h[0];if(yesorno(ng,x)==0)/*判断刚度与强度约束判断*/continue;f=fun(x);if(f>=f0)continue;for(i=0;8、i
4、ntyesorno(intng,doublex[20])i=0h[i]=(b[i]-a[i])/m[i]i++i=foyesorno=0rno=0i0++三.源程序#include"st
5、dio.h"/*预处理命令*/#include"stdlib.h"#include"math.h"包含头函数main()*主函数*/{doublefun(doublex[20]);intyesorno(intng,doublex[20]);doublex[20];定义数组x[20],其中包括m,q,z1doublea[20]={2.0,7.0,2.0};/*定义网格区间上限*/doubleb[20]={8.0,25.0,3.0};/*定义网格区间下限*/intn=3;intm[20]={3,6,5};/*定义网格区间的等分值*/do
6、ubleeps=0.1;doublex0[20]={0.2,0.3};doublexmin[20],fmin;;//定义数组xmin[20](m、q、z1最小值),最小传动中心距fmindoublef0=10.0e5,f;给出基本的传动中心距的数值doubleh[20];//定义数组h[20],h[20]表示的是利用网格法做出的间距doublehmax;;//定义最大间距inti;inti0,i1,i2;intng=10;/*参数约束条件个数*/do{for(i=0;i7、[i];/*将区间[ai,bi]进行mi等分*/for(i2=0;i2<=m[2];i2++)/*网格法划分区间*/{x[2]=a[2]+i2*h[2];确定三维网格坐标x[2]=z1蜗杆头数for(i1=0;i1<=m[1];i1++){x[1]=a[1]+i1*h[1];x[1]=q直径系数for(i0=0;i0<=m[0];i0++){x[0]=a[0]+i0*h[0];if(yesorno(ng,x)==0)/*判断刚度与强度约束判断*/continue;f=fun(x);if(f>=f0)continue;for(i=0;8、i
7、[i];/*将区间[ai,bi]进行mi等分*/for(i2=0;i2<=m[2];i2++)/*网格法划分区间*/{x[2]=a[2]+i2*h[2];确定三维网格坐标x[2]=z1蜗杆头数for(i1=0;i1<=m[1];i1++){x[1]=a[1]+i1*h[1];x[1]=q直径系数for(i0=0;i0<=m[0];i0++){x[0]=a[0]+i0*h[0];if(yesorno(ng,x)==0)/*判断刚度与强度约束判断*/continue;f=fun(x);if(f>=f0)continue;for(i=0;
8、i
此文档下载收益归作者所有