《優(yōu)化設計 有約束優(yōu)化 無約束優(yōu)化》由會員分享,可在線閱讀,更多相關《優(yōu)化設計 有約束優(yōu)化 無約束優(yōu)化(10頁珍藏版)》請在裝配圖網上搜索。
1、word
目錄
1.多維有約束優(yōu)化- 3 -
1.1 題目- 3 -
1.2 條件- 3 -
1.3 建立優(yōu)化模型- 3 -
問題分析與設計變量確實定- 3 -
目標函數確實定- 4 -
1.3.3 約束條件的建立- 4 -
1.4 優(yōu)化方法的選擇- 5 -
1.5 數學模型的求解- 5 -
1.5.1 確定數學優(yōu)化模型- 5 -
運用Matlab優(yōu)化工具箱對數學模型求解- 6 -
最優(yōu)解以與結果分析- 7 -
2.多維無約束優(yōu)化- 8 -
2.1 題目- 8 -
2.2 確定優(yōu)化設計模型- 8 -
運用Matlab優(yōu)化工具箱對數學模型求解- 9 -
2
2、.3.1 編寫目標函數- 9 -
2.3.2 繪制該函數的平面和空間等值線- 9 -
利用matlab工具箱fminunc函數對該模型進展求解- 11 -
求解結果- 11 -
1.1 題目
對一對單級圓柱齒輪減速器,以體積最小為目標進展多維有約束優(yōu)化設計。
1.2 條件
數輸入功p=58kw,輸入轉速n1=1000r/min,齒數比u=5,齒輪的許用應力[]H=550Mpa,許用彎曲應力[]F=400Mpa。
1.3 建立優(yōu)化模型
問題分析與設計變量確實定
由條件得求在滿足零件剛度和強度條件下,使減速器體積最小的各項設計參數。由于齒輪和軸的尺寸〔即殼體
3、的零件〕是決定減速器體積的依據,故可按它們的體積之和最小的原如此建立目標函數。
單機圓柱齒輪減速器的齒輪和軸的體積可近似的表示為:
式中符號意義由結構圖給出,其計算公式為
由上式知,齒數比給定之后,體積取決于b、z1 、m、l、dz1 和dz2 六個參數,如此設計變量可取為
目標函數確實定
根據以上分析,可知,該齒輪減速器以體積最小的目標函數為:
約束條件的建立
(1)為防止發(fā)生根切,應有,得
(2)齒寬應滿足,和為齒寬系數的最大值和最小值,一般取=0.9,=1.4,得:
(3)動力傳遞的齒輪模數應大于2mm,得
(4)為了限制大齒輪的直徑不至
4、過大,小齒輪的直徑不能大于,得
(5)齒輪軸直徑的圍:得
(6)軸的支撐距離按結構關系,應滿足條件:〔可取=20〕,得
(7)齒輪的接觸應力和彎曲應力應不大于許用值,得
(8)齒輪軸的最大撓度不大于許用值,得
(9)齒輪軸的彎曲應力不大于許用值,得
1.4 優(yōu)化方法的選擇
由于該問題有6個設計變量,16個約束條件的優(yōu)化設計問題,采用傳統的優(yōu)化設計方法比擬繁瑣,比擬復雜,所以選用Matlab優(yōu)化工具箱中的fmincon函數來求解此非線性優(yōu)化問題,防止了較為繁重的計算過程。
1.5 數學模型的求解
確定數學優(yōu)化模型
將與數據代入上式,該優(yōu)化設計的數學優(yōu)
5、化模型表示為:
〔1〕求變量:
〔2〕目標函數:
〔3〕約束條件:
運用Matlab優(yōu)化工具箱對數學模型求解
〔1〕首先在Matlab優(yōu)化工具箱中編寫目標函數的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
6、)*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.16
7、9+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〕最后求解,調用目標函數和約
8、束條件,用matlab軟件中工具箱里的fmincon函數,求解有約束的優(yōu)化,在mand window里輸入:
x0=[230;21;8;420;120;160];%給定初始值
[x,fval,exitflag,output]=fmincon(myfun,x0,[],[],[],[],[],[],myobj,output) %調用優(yōu)化過程
最優(yōu)解以與結果分析
運行結果如如下圖所示:
x =
fval =
2.3168e+007
exitflag =
-2
output =
iterations
9、: 43
funcCount: 563
lssteplength: 1
algorithm: 'medium-scale: SQP, Quasi-Newton, line-search'
firstorderopt: 1.9956e+007
message: [1x750 char]
故優(yōu)化后的最終結果為
x=[123.3565 99.8517 1.7561 147.3157 150.4904 129.5096]
f(x)=2.36e*107
由于齒輪模數應為標準值
10、,齒數必須為整數,其它參數也要進展圓整,所以最優(yōu)解不能直接采用,按設計規(guī),經標準化和圓整后:
x=[124 100 2 148 150 130]
f(x)=6.16 *107
結果比照分析:
×107mm3×107mm3,優(yōu)化結果比初始值體積減少為:
Δ×107/×107)×100%=2.5%
所以優(yōu)化后的體積比未優(yōu)化前減少了2.5%,說明優(yōu)化結果相比照擬成功。
在機械設計問題中,難以防止生產,加工,裝配,經濟性等問題,故少有無約束優(yōu)化設計問題。在本次試驗中,針對一個管道流量問題的二維函數,設計了一個非線性無約束優(yōu)化設計問題,并加以求解。
2.
11、1 題目
梯形截面管道的參數:底邊長c,高度h,斜邊與底邊的夾角θ,橫截面積A=64516mm2,如圖1所示。管道液體的流速與管道截面的周長s的倒數成比例關系。試按照使液體流速最大的條件,確定管道的參數。
圖1 梯形截面管道參數
2.2 確定優(yōu)化設計模型
〔1〕管道截面周長:
〔2〕管道截面面積:
由此可得底邊長度的關系式:〔與h和θ有關〕
將c代入管道橫截面周長的計算式中,得到管道截面周長關系式:
因此,取與管道界面周長有關的獨立參數h和θ作為設計變量,有:
為使液體流速最大,取管道截面周長最小作為目標函數,即:
Min
故該函數的數學
12、模型:
〔1〕變量:
〔2〕目標函數:
Min
編寫目標函數
首先在Matlab優(yōu)化工具箱中編寫目標函數的M文件 ,返回x處的函數值f:
% 1----二維無約束優(yōu)化目標函數文件(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----繪制水槽截面周長等高線和曲面圖的程序
% 按(初值,終值,等分數)產生等間隔向量xx1,xx2
xx1=linspace(100
13、,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])
% 標注左邊窗口和坐標軸
14、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('目標函數(截面周長)曲面圖')
15、
運行結果,目標函數的曲面如圖2,目標函數等值曲線如圖3。
圖2 截面周長曲面圖
圖3 截面周長等值線
利用matlab工具箱fminunc函數對該模型進展求解
% 初始點
x0=[25;45];
% 調用梯度法搜索
[x,Fmin,exitflag,output]=fminunc('sc_wysyh',x0);
disp ' ******** 輸出最優(yōu)解 ********'
fprintf (1,' 截面高度h x(1)* = %3.4f mm \n',x(1))
fprintf (1,'
16、 斜邊夾角theta x(2)* = %3.4f 度 \n',x(2))
fprintf (1,' 截面周長s f* = %3.4f mm \n',Fmin)
求解結果
運行上述程序,可以解得如下參數:
exitflag =
1
output =
iterations: 18
funcCount: 60
stepsize: 1
algorithm: 'medium-scale: Quasi-Newton line search'
message: [1x85 char]
******** 輸出最優(yōu)解 ********
截面高度h x(1)* = 192.9958 mm
斜邊夾角theta x(2)* = 60.0005 度
截面周長s f* = 668.5656 mm
最終圓整高度h = 193 mm,斜邊夾角θ=60°。求解周長s=mm,偏差幾乎可以忽略。
- 10 - / 10