机械优化设计大作业
- 格式:doc
- 大小:59.61 KB
- 文档页数:7
一、问题描述
1.1结构特点
(1)体积小、重量轻、结构紧凑、传递功率大、承载能力高; (2)传动效率高,工作高;(3)传动比大。
1.2用途和使用条件
某行星齿轮减速器主要用于石油钻采设备的减速,其高速轴转速为1300r/min;工作环境温度为-20℃~60℃,可正、反两向运转。按该减速器最小体积准则,确定行星减速器的主要参数。
二、分析
传动比u=4.64,输入扭矩T=1175.4N.m,齿轮材料均选用38SiMnMo钢,表面淬火硬度HRC 45~55,行星轮个数为3。要求传动比相对误差02
∆u。
≤
.0
弹性影响系数Z E=189.8MPa1/2;载荷系数k=1.05;齿轮接触疲劳强度极限[σ]H=1250MPa;齿轮弯曲疲劳强度极限[σ]F=1000MPa;齿轮的齿形系数Y Fa =2.97;应力校正系数Y Sa=1.52;小齿轮齿数z取
值范围17--25;模数m取值范围2—6。
注:优化目标为太阳轮齿数、齿宽和模数,初始点[24,52,5]T
三、数学建模
建立数学模型见图1,即用数学语言来描述最优化问题,模型中的数学关系式反映了最优化问题所要达到的目标和各种约束条件。
3.1设计变量的确定
影响行星齿轮减速器体积的独立参数为中心轮齿数、齿宽、模数及行星齿轮的个数,将他们列为设计变量,即:
x=[x
1 x
2
x
3
x
4
]T=[z
1
b m c]T [1]
式中:z1
¯ ̄
太阳轮齿数;b―齿宽(mm);m—模数(mm);行星轮的个数。通常情况下,行星轮个数根据机构类型以事先选定,由已知条件c=3。这样,设计变量为:
x=[x
1 x
2
x
3
]T=[z
1
b m]T [1]
3.2目标函数的确定
为了方便,行星齿轮减速器的重量可取太阳轮和3个行星轮体积之和来代替,即:
V=π/4(d
12+Cd
2
2)b
式中:d1--太阳轮1的分度圆直径,mm;d2--行星轮2的分度圆直径,mm。
将d
1=mz
1,
d
2
=mz
2
,z
2
=z
1
(u-2)/2代入(3)式整理,目标函
数则为:
F(x)=0.19635m2z
1
2b[4+(u-2)2c][1]式中u--减速器传动比;c--行星轮个数
由已知条件c=3,u=4.64,因此目标函数可简化为:
F(x)=4.891x
32x
1
2x
2
3.3约束条件的建立
3.3.1限制齿宽系数b/m的范围5≤b/m≤17,得:
g
1
(x)=5x3-x2≤0[1]
g
2
(x)=x2-17≤0[1]
3.3.2保证太阳轮z1不发生跟切,得:
g
3
(x)=17-x1≤0[1]
3.3.3限制齿宽最小值,得:
g
4
(x)=10-x2≤0[1]
3.3.4限制模数最小值,得:
g
5
(x)=2-x3≤0[1]
3.3.5按齿面接触疲劳强度条件,有:
g
6
(x)=750937.3/﹙x1x2x31/2)-[σ]H≤0[1]式中:[σ]H--齿轮接触疲劳强度极限。
3.3.6按齿根弯曲疲劳强度条件,有:
g
7
(x)=1482000Y Fa Y Sa/﹙x1x2x32)-[σ]F≤0[1]
式中:[σ]
F --齿轮弯曲疲劳强度极限;Y
Fa
--齿轮的齿形系数;
Y
Sa
--应力校正系数。
四、优化方法、编程及结果分析
4.1优化方法
综合上述分析可得优化数学模型为:()T
x x X 21,=;)(min x f ;()0..≤x g t s i 。考察该模型,它是一个具有2个设计变量,6个约束条件的有约束非线性的单目标最优化问题,属于小型优化设计,故采用SUMT 惩罚函数内点法求解。
4.2方法原理
内点惩罚函数法简称内点法,这种方法将新目标函数定义于可行域内,序列迭代点在可行域内逐步逼近约束边界上的最优点。内点法只能用来求解具有不等式约束的优化问题。
对于只具有不等式约束的优化问题
)(min x f
),,2,1(0)(..m j x j
g t s =≤ 转化后的惩罚函数形式为
⎰∑=-=m j j x g r x f r x 1)
(1)(),(φ 或[]
∑=--=m j j x g r x f r x 1)(ln )(),(φ
式中r ——惩罚因子,它是由大到小且趋近于0的数列,即0210→>>> r r r 。
[]
∑∑==-m j m j j j x g x g 11)(ln )(1—障碍项—或。 由于内点法的迭代过程在可行域内进行,障碍项的作用是阻止迭代点越出可行域。由障碍项的函数形式可知,当迭代靠近某一约束边界时,其值趋近于0,而障碍项的值陡然增加,并趋近于无穷大,好像在可行域的边界上筑起了一道“围墙”,使迭代点始终不能越出可行域。显然,只有当惩罚因子0→r 时,才能求得在约束边界上的最优解。
4.3编程
首先编制两个函数文件,分别保存为目标函数和约束函数。 function f=objfun(x)
B=1520;T=2.5;P=7.8e-3;
f=2*pi*P*x(1)*T*sqrt((B/2)^2+x(2)^2);
再编写非线性约束函数文件M 文件confun.m;
function [c,ceq]=confun(x)
B=1520;T=2.5;P=300000;E =2.1e5;F1=420;
Q=0.5*P*sqrt((B/2)^2+x(2)^2)/x(2);
st=Q/(pi*T*x(1));
g(1)=st-F1;
F2=0.125*pi^2*E*(x(1)^2+T^2)/((B/2)^2+x(2)^2);
g(2)=st-F2;
ceq=[];
在MATLAB 命令窗口给出搜索值和线性约束,调用优化程序: x0=[100;700];
a=[-1,0 ;1,0 ;0 ,-1;0,1];