优化设计有约束优化无约束优化.docx
《优化设计有约束优化无约束优化.docx》由会员分享,可在线阅读,更多相关《优化设计有约束优化无约束优化.docx(13页珍藏版)》请在冰豆网上搜索。
优化设计有约束优化无约束优化
1.多维有约束优化
题目
对一对单级圆柱齿轮减速器,以体积最小为目标进行多维有约束优化设计。
已知条件
已知数输入功p=58kw,输入转速n1=1000r/min,齿数比u=5,齿轮的许用应力[
]H=550Mpa,许用弯曲应力[
]F=400Mpa。
建立优化模型
1.3.1问题分析及设计变量的确定
由已知条件得求在满足零件刚度和强度条件下,使减速器体积最小的各项设计参数。
由于齿轮和轴的尺寸(即壳体内的零件)是决定减速器体积的依据,故可按它们的体积之和最小的原则建立目标函数。
单机圆柱齿轮减速器的齿轮和轴的体积可近似的表示为:
式中符号意义由结构图给出,其计算公式为
由上式知,齿数比给定之后,体积取决于b、z1、m、l、dz1和dz2六个参数,则设计变量可取为
1.3.2目标函数的确定
根据以上分析,可知,该齿轮减速器以体积最小的目标函数为:
1.3.3约束条件的建立
(1)为避免发生根切,应有
,得
(2)齿宽应满足
,
和
为齿宽系数
的最大值和最小值,一般取
=,
=,得:
(3)动力传递的齿轮模数应大于2mm,得
(4)为了限制大齿轮的直径不至过大,小齿轮的直径不能大于
,得
(5)齿轮轴直径的范围:
得
(6)轴的支撑距离
按结构关系,应满足条件:
(可取
=20),得
(7)齿轮的接触应力和弯曲应力应不大于许用值,得
(8)齿轮轴的最大挠度
不大于许用值
,得
(9)齿轮轴的弯曲应力
不大于许用值
,得
优化方法的选择
由于该问题有6个设计变量,16个约束条件的优化设计问题,采用传统的优化设计方法比较繁琐,比较复杂,所以选用Matlab优化工具箱中的fmincon函数来求解此非线性优化问题,避免了较为繁重的计算过程。
数学模型的求解
1.5.1确定数学优化模型
将已知及数据代入上式,该优化设计的数学优化模型表示为:
(1)求变量:
(2)目标函数:
(3)约束条件:
1.5.2运用Matlab优化工具箱对数学模型求解
(1)首先在Matlab优化工具箱中编写目标函数的M文件,返回x处的函数值f:
functionf=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)
(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)-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^12);(1/(x(6)^3))*sqrt((2850000*x(4)/(x
(2)*x(3)))^2+6*10^13)];
ceq=[];
(3)最后求解,调用目标函数和约束条件,用matlab软件中工具箱里的fmincon函数,求解有约束的优化,在commandwindow里输入:
x0=[230;21;8;420;120;160];%给定初始值
[x,fval,exitflag,output]=fmincon(@myfun,x0,[],[],[],[],[],[],@myobj,output)%调用优化过程
1.5.3最优解以及结果分析
运行结果如下图所示:
x=
fval=
+007
exitflag=
-2
output=
iterations:
43
funcCount:
563
lssteplength:
1
stepsize:
algorithm:
'medium-scale:
SQP,Quasi-Newton,line-search'
firstorderopt:
+007
constrviolation:
message:
[1x750char]
故优化后的最终结果为
x=[]
f(x)=*107
由于齿轮模数应为标准值,齿数必须为整数,其它参数也要进行圆整,所以最优解不能直接采用,按设计规范,经标准化和圆整后:
x=[1241002148150130]
f(x)=*107
结果对比分析:
若按初始值减速器的体积V大约为×107mm3,而优化后的体积V则为×107mm3,优化结果比初始值体积减少为:
ΔV=1-×107/×107)×100%=%
所以优化后的体积比未优化前减少了%,说明优化结果相对比较成功。
2.多维无约束优化
在机械设计问题中,难以避免生产,加工,装配,经济性等问题,故少有无约束优化设计问题。
在本次试验中,针对一个管道流量问题的二维函数,设计了一个非线性无约束优化设计问题,并加以求解。
题目
已知梯形截面管道的参数:
底边长c,高度h,斜边与底边的夹角θ,横截面积A=64516mm2,如图1所示。
管道内液体的流速与管道截面的周长s的倒数成比例关系。
试按照使液体流速最大的条件,确定管道的参数。
图1梯形截面管道参数
确定优化设计模型
(1)管道截面周长:
(2)管道截面面积:
由此可得底边长度的关系式:
(与h和θ有关)
将c代入管道横截面周长的计算式中,得到管道截面周长关系式:
因此,取与管道界面周长有关的独立参数h和θ作为设计变量,有:
为使液体流速最大,取管道截面周长最小作为目标函数,即:
Min
故该函数的数学模型:
(1)变量:
(2)目标函数:
Min
运用Matlab优化工具箱对数学模型求解
2.3.1编写目标函数
首先在Matlab优化工具箱中编写目标函数的M文件,返回x处的函数值f:
%1----二维无约束优化目标函数文件
functionf=sc_wysyh(x)
a=64516;hd=pi/180;
f=a/x
(1)-x
(1)/tan(x
(2)*hd)+2*x
(1)/sin(x
(2)*hd);
2.3.2绘制该函数的平面和空间等值线
%2----绘制水槽截面周长等高线和曲面图的程序
%按(初值,终值,等分数)产生等间隔向量xx1,xx2
xx1=linspace(100,300,25);
xx2=linspace(30,120,25);
%产生两个[5x10]的网格矩阵x1,x2
[x1,x2]=meshgrid(xx1,xx2);
%定义目标函数
a=64516;hd=pi/180;
f=a./x1-x1./tan(x2*hd)+2*x1./sin(x2*hd);
%将整个图形窗口分隔成2个子窗口,取左边窗口
figure
(1);
%绘制等值线并标注函数值
h=contour(x1,x2,f);
clabel(h);
%定义左边窗口坐标轴刻度范围
axis([10030030120])
%标注左边窗口和坐标轴
xlabel('高度h(mm)')
ylabel('倾斜角theta(度)')
title('目标函数(截面周长)等值线')
%将整个图形窗口分隔成2个子窗口,取右边窗口
figure
(2);
%绘制曲面图
surfc(x1,x2,f);
%定义右边窗口坐标轴刻度范围a
axis([100300301206001200])
%标注右边窗口
xlabel('高度\bfh(mm)');
ylabel('斜边夹角\bftheta(度)');
zlabel('目标函数值\bff(mm)');
title('目标函数(截面周长)曲面图')
运行结果,目标函数的曲面如图2,目标函数等值曲线如图3。
图2截面周长曲面图
图3截面周长等值线
2.3.3利用matlab工具箱fminunc函数对该模型进行求解
%初始点
x0=[25;45];
%调用梯度法搜索
[x,Fmin,exitflag,output]=fminunc('sc_wysyh',x0);
disp'********输出最优解********'
fprintf(1,'截面高度hx
(1)*=%mm\n',x
(1))
fprintf(1,'斜边夹角thetax
(2)*=%度\n',x
(2))
fprintf(1,'截面周长sf*=%mm\n',Fmin)
2.3.3求解结果
运行上述程序,可以解得如下参数:
exitflag=
1
output=
iterations:
18
funcCount:
60
stepsize:
1
firstorderopt:
algorithm:
'medium-scale:
Quasi-Newtonlinesearch'
message:
[1x85char]
********输出最优解********
截面高度hx
(1)*=mm
斜边夹角thetax
(2)*=度
截面周长sf*=mm
最终圆整高度h=193mm,斜边夹角θ=60°。
求解周长s=,偏差几乎可以忽略。