资源描述
目 录
1.多维有约束优化 - 3 -
1.1 题目 - 3 -
1.2 已知条件 - 3 -
1.3 建立优化模型 - 3 -
1.3.1问题分析及设计变量的拟定 - 3 -
1.3.2目的函数的拟定 - 4 -
1.3.3 约束条件的建立 - 4 -
1.4 优化方法的选择 - 5 -
1.5 数学模型的求解 - 5 -
1.5.1 拟定数学优化模型 - 5 -
1.5.2运用Matlab优化工具箱对数学模型求解 - 6 -
1. 5.3最优解以及结果分析 - 7 -
2.多维无约束优化 - 8 -
2.1 题目 - 8 -
2.2 拟定优化设计模型 - 8 -
2.3运用Matlab优化工具箱对数学模型求解 - 9 -
2.3.1 编写目的函数 - 9 -
2.3.2 绘制该函数的平面和空间等值线 - 9 -
2.3.3运用matlab工具箱fminunc函数对该模型进行求解 - 11 -
2.3.3求解结果 - 11 -
1.多维有约束优化
1.1 题目
对一对单级圆柱齿轮减速器,以体积最小为目的进行多维有约束优化设计。
1.2 已知条件
已知数输入功p=58kw,输入转速n1=1000r/min,齿数比u=5,齿轮的许用应力[]H=550Mpa,许用弯曲应力[]F=400Mpa。
1.3 建立优化模型
1.3.1问题分析及设计变量的拟定
由已知条件得求在满足零件刚度和强度条件下,使减速器体积最小的各项设计参数。由于齿轮和轴的尺寸(即壳体内的零件)是决定减速器体积的依据,故可按它们的体积之和最小的原则建立目的函数。
单机圆柱齿轮减速器的齿轮和轴的体积可近似的表达为:
式中符号意义由结构图给出,其计算公式为
由上式知,齿数比给定之后,体积取决于b、z1 、m、l、dz1 和dz2 六个参数,则设计变量可取为
1.3.2目的函数的拟定
根据以上分析,可知,该齿轮减速器以体积最小的目的函数为:
1.3.3 约束条件的建立
(1)为避免发生根切,应有,得
(2)齿宽应满足,和为齿宽系数的最大值和最小值,一般取=0.9,=1.4,得:
(3)动力传递的齿轮模数应大于2mm,得
(4)为了限制大齿轮的直径不至过大,小齿轮的直径不能大于,得
(5)齿轮轴直径的范围:得
(6)轴的支撑距离按结构关系,应满足条件:(可取=20),得
(7)齿轮的接触应力和弯曲应力应不大于许用值,得
(8)齿轮轴的最大挠度不大于许用值,得
(9)齿轮轴的弯曲应力不大于许用值,得
1.4 优化方法的选择
由于该问题有6个设计变量,16个约束条件的优化设计问题,采用传统的优化设计方法比较繁琐,比较复杂,所以选用Matlab优化工具箱中的fmincon函数来求解此非线性优化问题,避免了较为繁重的计算过程。
1.5 数学模型的求解
1.5.1 拟定数学优化模型
将已知及数据代入上式,该优化设计的数学优化模型表达为:
(1)求变量:
(2)目的函数:
(3)约束条件:
1.5.2运用Matlab优化工具箱对数学模型求解
(1)一方面在Matlab优化工具箱中编写目的函数的M文献 myfun.m,返回x处的函数值f:
function f = myfun(x)
f=0.785398*(4.75*x(1)*x(2)^2*x(3)^2+85*x(1)*x(2)*x(3)^2-85*x(1)*x(3)^2+0.92*x(1)*x(6)^2-x(1)*x(5)^2+0.8*x(1)*x(2)*x(3)*x(6)-1.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文献mycon.m:
function[c,ceq]=myobj(x)
c=[17-x(2);0.9-x(1)/(x(2)*x(3));x(1)/(x(2)*x(3))-1.4;2-x(3);x(2)*x(3)-300;100-x(5);x(5)-150;130-x(6);x(6)-200;x(1)+0.5*x(6)-x(4)-40;1486250/(x(2)*x(3)*sqrt(x(1)))-550; 7098/(x(1)*x(2)*x(3)^2*(0.169+0.006666*x(2)-0.0000854*x(2)^2))-400;7098/(x(1)*x(2)*x(3)^2*(0.2824+0.00177*x(2)-0.0000394*x(2)^2))-400;117.04*x(4)^4/(x(2)*x(3)*x(5)^4)-0.003*x(4);(1/(x(5)^3))*sqrt((2850000*x(4)/(x(2)*x(3)))^2+2.4*10^12)-5.5;(1/(x(6)^3))*sqrt((2850000*x(4)/(x(2)*x(3)))^2+6*10^13)-5.5];
ceq=[];
(3)最后求解,调用目的函数和约束条件,用matlab软件中工具箱里的fmincon函数,求解有约束的优化,在command window里输入:
x0=[230;21;8;420;120;160];%给定初始值
[x,fval,exitflag,output]=fmincon(@myfun,x0,[],[],[],[],[],[],@myobj,output) %调用优化过程
1. 5.3最优解以及结果分析
运营结果如下图所示:
x =
123.3565
99.8518
1.7561
147.3757
150.4904
129.5096
fval =
2.3168e+007
exitflag =
-2
output =
iterations: 43
funcCount: 563
lssteplength: 1
stepsize: 2.0356e-006
algorithm: 'medium-scale: SQP, Quasi-Newton, line-search'
firstorderopt: 1.9956e+007
constrviolation: 213.1511
message: [1x750 char]
故优化后的最终结果为
x=[123.3565 99.8517 1.7561 147.3157 150.4904 129.5096]
f(x)=2.36e*107
由于齿轮模数应为标准值,齿数必须为整数,其它参数也要进行圆整,所以最优解不能直接采用,按设计规范,经标准化和圆整后:
x=[124 100 2 148 150 130]
f(x)=6.16 *107
结果对比分析:
若按初始值减速器的体积V大约为6.32×107mm3,而优化后的体积V则为6.16×107mm3,优化结果比初始值体积减少为:
ΔV=1-(6.16×107/6.32×107)×100%=2.5%
所以优化后的体积比未优化前减少了2.5%,说明优化结果相对比较成功。
2.多维无约束优化
在机械设计问题中,难以避免生产,加工,装配,经济性等问题,故少有无约束优化设计问题。在本次实验中,针对一个管道流量问题的二维函数,设计了一个非线性无约束优化设计问题,并加以求解。
2.1 题目
已知梯形截面管道的参数:底边长c,高度h,斜边与底边的夹角θ,横截面积A=64516mm2,如图1所示。管道内液体的流速与管道截面的周长s的倒数成比例关系。试按照使液体流速最大的条件,拟定管道的参数。
图1 梯形截面管道参数
2.2 拟定优化设计模型
(1)管道截面周长:
(2)管道截面面积:
由此可得底边长度的关系式:(与h和θ有关)
将c代入管道横截面周长的计算式中,得到管道截面周长关系式:
因此,取与管道界面周长有关的独立参数h和θ作为设计变量,有:
为使液体流速最大,取管道截面周长最小作为目的函数,即:
Min
故该函数的数学模型:
(1)变量:
(2)目的函数:
Min
2.3运用Matlab优化工具箱对数学模型求解
2.3.1 编写目的函数
一方面在Matlab优化工具箱中编写目的函数的M文献 sc_wysyh.m,返回x处的函数值f:
% 1----二维无约束优化目的函数文献(sc_wysyh.m)
function f=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([100 300 30 120])
% 标注左边窗口和坐标轴
xlabel('高度 h (mm)')
ylabel('倾斜角 theta (度)')
title('目的函数(截面周长)等值线')
% 将整个图形窗口分隔成2个子窗口,取右边窗口
figure(2);
% 绘制曲面图
surfc(x1,x2,f);
% 定义右边窗口坐标轴刻度范围a
axis([100 300 30 120 600 1200])
% 标注右边窗口
xlabel('高度 \bf h (mm)');
ylabel('斜边夹角 \bf theta(度)');
zlabel('目的函数值\bf f (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,' 截面高度h x(1)* = %3.4f mm \n',x(1))
fprintf (1,' 斜边夹角theta x(2)* = %3.4f 度 \n',x(2))
fprintf (1,' 截面周长s f* = %3.4f mm \n',Fmin)
2.3.3求解结果
运营上述程序,可以解得如下参数:
exitflag =
1
output =
iterations: 18
funcCount: 60
stepsize: 1
firstorderopt: 6.2179e-005
algorithm: 'medium-scale: Quasi-Newton line search'
message: [1x85 char]
******** 输出最优解 ********
截面高度h x(1)* = 192.9958 mm
斜边夹角theta x(2)* = 60.0005 度
截面周长s f* = 668.5656 mm
最终圆整高度h = 193 mm,斜边夹角θ=60°。求解周长s= 668.5656mm,偏差几乎可以忽略。
展开阅读全文