机械优化设计案例 1
1. 题目
对一对单级圆柱齿轮减速器,以体积最小为目标进行优化设 计。
2.已知条件
已知数输入功 p=58kw,输入转速 n1=1000r/min,齿数比 u=5,齿轮的许用应力[ ]H=550Mpa,许用弯曲应力[ ] F=400Mpa。 3.建立优化模型
问题分析及设计变量的确定
由已知条件得求在满足零件刚度和强度条件下,使减速器体 积最小的各项设计参数。由于齿轮和轴的尺寸(即壳体内的零件) 是决定减速器体积的依据,故可按它们的体积之和最小的原则建 立目标函数。
单机圆柱齿轮减速器的齿轮和轴的体积可近似的表示为:
v
b(d
d) b(d cd l(d d ) 7
d ) ( b c)(D
d 8d 28d
32d ]
d )
[m z b db m z ub db (mzu 10m) (mzu 10m ) dl d
式中符号意义由结构图给出,其计算公式为
mz, d mz D umz 10m
d , d (umz 10m )
c
由上式知,齿数比给定之后,体积取决于 b、z1 、m、l、dz1 和 dz2 六个参数,则设计变量可取为
x
目标函数为
f (x) xx
[x x x
x x x x ] [b z
m l d
d ]
85xx x x x
85xx
xx
x x
) 28x 32x
min
约束条件的建立
1
1)为避免发生根切,应有 z z
17 ,得
g(x)
17 x 0
2 )齿宽应满足
b d =,
, 和 为齿宽系数 的最大值
和最小值,一般取
=,得
g (x) x (x x ) 0 g (x) x (x x ) 0
3)动力传递的齿轮模数应大于 2mm,得
g (x) 2 x
0
4)为了限制大齿轮的直径不至过大,小齿轮的直径不能大于 d ,得
g (x)
x x 300 0
d
d 得
5)齿轮轴直径的范围: d
g (x) 100 x 0 g (x) x 150 0 g (x) 130 x 0
200 0
6)轴的支撑距离 l 按结构关系,应满足条件: l
b 2
g (x) x
(可取 =20),得
g (x)
x
x 40 0
7)齿轮的接触应力和弯曲应力应不大于许用值,得
2
g(x) 1468250 (x x x ) 550 0
g (x) 7098 xx x 10 x 10 x )
g (x) 7098 xx x 10 x 10 x ) 8)齿轮轴的最大挠度
400 0 400 0
] ,得
不大于许用值[
0
g (x)
x (x xx )
9)齿轮轴的弯曲应力
不大于许用值
)
[] ,得 0 0
10 x
g (x) 1 ( x x x
6 10 10 10 x 1
g (x) ( x x x
)
4.优化方法的选择
由于该问题有 6 个设计变量,16 个约束条件的优化设计问题, 采用传统的优化设计方法比较繁琐,比较复杂,所以选用 Matlab 优化工具箱中的 fmincon 函数来求解此非线性优化问题,避免了 较为繁重的计算过程。
5.数学模型的求解
将已知及数据代入上式,该优化设计的数学优化模型表示为:
min f (x) x x
x 85xx x x x
32x )
85xx
xx xx
28x
Subject to:
3
g(x) 17 x 0 g (x) x (x x ) 0 g (x) x (x x ) 0 g (x) 2 x 0 g (x) x x 300 0 g (x) 100 x 0 g (x) x 150 0 g (x) 130 x 0
g (x) x 200 0
g (x) x x 40 0
g(x) 1468250 (x x x ) 550 0
g (x) 7098 xx x 10 x 10 x )
g (x) 7098 xx x 10 x 10 x ) g (x) x (x xx )
0
400 0 400 0
10 x
g (x) 1 ( x x x
)
6 10 10 0 0
10 x 1
g (x) ( x x x
) 运用 Matlab 优化工具箱对数学模型进行程序求解 首先在 Matlab 优化工具箱中编写目标函数的 M 文件 ,返回 x 处的函数值 f:
function f = myfun(x)
f=**x(1)*x(2)^2*x(3)^2+85*x(1)*x(2)*x(3)^2- 85*x(1)*x(3)^2+*x(1)*x(6)^2-
x(1)*x(5)^2+*x(1)*x(2)*x(3)*x(6)-
*x(1)*x(3)*x(6)+x(4)*x(5)^2+x(4)*x(6)^2+28*x(5)^2+32*x(6)^2)
由于约束条件中有非线性约束,故需要编写一个描述非线性 约束条件的 M 文件 :
function[c,ceq]=myobj(x)
c=[17-x(2);(1)/(x(2)*x(3));x(1)/(x(2)*x(3));2-
x(3);x(2)*x(3)-300;100-x(5);x(5)-150;130-x(6);x(6)-200;x(1)+*x(6)-
4
x(4)-40;1486250/(x(2)*x(3)*sqrt(x(1)))-550; 7098/(x(1)*x(2)*x(3)^2*+*x(2)*x(2)^2))- 400;7098/(x(1)*x(2)*x(3)^2*+*x(2)-
*x(2)^2))-400;*x(4)^4/(x(2)*x(3)*x(5)^4)-
*x(4);(1/(x(5)^3))*sqrt((2850000*x(4)/(x(2)*x(3)))^2+*10^1 2);(1/(x(6)^3))*sqrt((2850000*x(4)/(x(2)*x(3)))^2+6*10^13)];
ceq=[];
最后在 command window 里输入:
x0=[230;21;8;420;120;160];%给定初始值
[x,fval,exitflag,output]=fmincon(@myfun,x0,[],[],[],[],[],[],@my obj,output) %调用优化过程
最优解以及结果分析
运行结果如下图所示:
5