matlab在優(yōu)化設計中的應用_第1頁
matlab在優(yōu)化設計中的應用_第2頁
matlab在優(yōu)化設計中的應用_第3頁
matlab在優(yōu)化設計中的應用_第4頁
matlab在優(yōu)化設計中的應用_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、Matlab在優(yōu)化設計中的應用摘 要常見的優(yōu)化問題包括線性規(guī)劃、無約束優(yōu)化、約束優(yōu)化、最下二乘優(yōu)化、多目標規(guī)劃等。本文研究了matlab在這些常見優(yōu)化問題中的應用及求解。在進行研究本課題之前,我們先通過網絡、電子書刊等各種有效渠道獲取我們所需信息,在充分了解與熟練掌握了各種優(yōu)化問題的具體特點及性質后,我們給出了關于如何用matlab進行多類優(yōu)化問題的求解基本方法,在此前提下,為了表達該軟件在這些優(yōu)化領域的實際應用效果,我們結合假設干個優(yōu)化問題的實例進行分析、建模、以及運用matlab編程求解,在求解過程中,通過得到的精確數據和反應結果的圖例,我們了解到matlab工具箱的功能強大,是處理優(yōu)化問

2、題的非常方便的編程工具。關鍵詞:matlab 優(yōu)化問題 二、基本概念.1 線性規(guī)劃線性規(guī)劃是優(yōu)化的一個重要分支。它在理論和算法上都比較成熟,在實際中有廣泛的應用。例如數學表達形式:在MTLAB提供的優(yōu)化工具箱中,解決規(guī)劃的命令是,它的調用格式如下,求解以下形式的線性規(guī)劃:求解下面形式的線性規(guī)劃:假設沒有不等式約束,則只需命令。求解下面形式的線性規(guī)劃:假設沒有不等式約束,則只需令;假設只有下界約束,則可以不用輸入。2.1.2 無約束優(yōu)化算法對于無約束優(yōu)化問題,已經有許多有效的算法。這些算法基本都是迭代法,它們都遵循下面的步驟: 選取初始點x0 ,一般來說初始點越靠近最優(yōu)解越好; 如果當前迭代點x

3、k不是原問題的最優(yōu)解,那么就需要找一個搜索方向pk,使得目標函數fx從xk出發(fā),沿方向pk有所下降; 用適當的方法選擇步長ak0,得到下一個迭代點xk+1=xk+akpk; 檢驗新的迭代點xk+1是否為原問題的最優(yōu)解,或者是否與最優(yōu)解的近似誤差滿足預先給定的容忍度。單變量約束優(yōu)化問題單變量約束優(yōu)化問題的標準形式為即為求目標函數在區(qū)間a,b上的極小點。2.1.4 最小二乘法優(yōu)化最小二乘優(yōu)化時一類非常特殊的優(yōu)化問題,它在實際中,尤其是在處理一些曲線擬合問題、線性方程組無解時的近似解等問題,用的非常多。最小二乘優(yōu)化問題的目標函數一般為假設干個函數的平方和,即:2.1.5多目標規(guī)劃問題 在大多數的優(yōu)化

4、、中,都將多目標規(guī)劃的一般形式表述為:其中,、既可以為線性函數,也可以為非線性函數。三、基本方法對于解決那些常見優(yōu)化問題,基本思路將在解題的過程中得到表達。我們給出具體一些建模實例來表達基本算法:就以下命令求下面分段函數的極小值點。解:首先編寫目標函數的M文件如下: 然后為了分析直觀,利用MTLAB畫出目標函數的圖像,步驟如下:>> x=-5:0.01:5;>> n=length(x)n = 1001>> for i=1:1001y(i)=example8_7(x(i);end3.2 對于下面的線性規(guī)劃問題:min x1-3x2s.t. 先利用圖解法求其最優(yōu)

5、解,然后利用優(yōu)化工具箱中的linprog命令求解。解 圖解法 先利用MATLAB 畫出該線性規(guī)劃的可行集及目標函數等值線:>>clear>>syms x1 x2>>f=-x1-3*x2;>>c1=x1+x2-6;>>c2=-x1+2*x2-8;>>ezcontourf(f)>>axis(0 6 0 6)>>hold on>>ezplot(c1)>>ezplot(c2)>>legend('f等值線','x1+x2-6=0','

6、-x1+2*x2-8=0')>>title('利用圖解法求線性規(guī)劃問題'>>gtext('x')運行結果如以下圖:從上圖中可以看出可行集的頂點x4/3,14/3即為線性規(guī)劃的最優(yōu)解,它也是兩個線性約束的交點。求解下面的最小二乘優(yōu)化問題:其中程序輸入及結果>> clearA=1 2 1;-2 1 3;b=1 1'C=0 -1 2;1 0 -1;-3 2 0;d=1 0 1'lb=-5 -5 -2'ub=5 5 2'Aeq=;beq=;x,resnorm,residual,exitflag,

7、output,lambda=lsqlin(C,d,A,b,Aeq,beq,lb,ub)Warning:Large-scale method can handle bound constraints only;switching to medium-scale method.Warning: Large-scale method can handle bound constraints only; using medium-scale method instead.> In lsqlin at 249Optimization terminated.x = %最優(yōu)解resnorm = %殘差

8、向量2-范數的平方,即reanorm=normresidual2residual = %殘差向量exitflag = 1 %函數收斂到最優(yōu)解output = iterations: 4 %迭代4次 algorithm: 'medium-scale: active-set' %調用的積極集算法 firstorderopt: cgiterations: message: 'Optimization terminated.'lambda = %Lagrange 乘子 lower: 3x1 double upper: 3x1 double eqlin: 0x1 doub

9、le ineqlin: 2x1 double ineqlin:2xl double 3.4求下面優(yōu)化問題的最優(yōu)解,并求出相應的梯度、Hessian矩陣以及Lagrang乘子。 解 現將該優(yōu)化問題轉化為下面的標準形式:編寫目標函數的M文件如下:function y=example8_9(x)y=(x(1)-2)2+(x(2)-1)2;function c1,c2=nonlin(x)c1=x(1)2-x(2);c2=;clearA=1 1;b=2;Aeq=;beq=;lb=;ub=;x0=0 0'x,fval,exitflag,output,lambda,g,H=fmincon(examp

10、le8_9,x0,Aeq,beq,lb,ub,nonlin)Warning£ºLarge-scale£¨trust region£©method does not currently solve this type of problem£¬switching to medium-scale£¨line search£©¡£四、實際應用4.1 V帶輪優(yōu)化設計提出問題:設計帶式輸送機傳動裝置上的普通V帶傳動,已知電動機額定功率P=4Kw,轉速n1=1440r/

11、min,傳動比i=3,采用A型V帶,每天工作不超過10小時,設計帶根數盡量少,帶輪直徑和中心距盡量小的方案。 數學模型建立1設計變量:V帶傳動的獨立設計變量是小帶輪直徑和帶的基準長度 即X=,= , 2目標函數包括三個分目標: a小帶輪直徑 minX= b中心距 minX=a=+ 其中,=/4-i+1/8,=i-1/8 c帶的根數 minX=z=P/(+)3約束條件小帶輪直徑不小于推薦的A型帶輪最小直徑 即 0帶速不超過最大帶速即小帶輪包角大于即 中心距大于, 即小帶輪基準直徑在80100mm之間,中心距在320400mm之間,帶的根數為14。編制MATLAB優(yōu)化設計% V帶傳動多目標優(yōu)化設計

12、P=4;i=3;n1=1440;KA=1.1; %已知條件 x0=100;1250; %初始點小帶輪直徑,V帶基準長度lb=80;630; %最小帶輪直徑和A型V帶基準長度 ub=100;4000; %最大帶輪直徑和A型V帶基準長度goal=75,280,2; %分目標w=10-2,40-2,1.5-2; %分目標加權系數 xopt,fopt=fgoalattain(VDCD_3mb_MB,x0,goal,w,lb,ub,VDCD_3mb_YS)function f=VDCD_3mb_MB(x)P=4;i=3;KA=1.1;f(1)=x(1); %f1小帶輪基準直徑a1=x(2)/4-pi*x

13、(1)*(i+1)/8;a2=x(1)2*(i-1)2/8;a=a1+sqrt(a12-a2);f(2)=a; %f2中心距P0=0.02424*x(1)-1.112879; %單根帶額定功率 DP0=0.17; %功率增量 alpha=180-180*x(1)*(i-1)/pi/a; %小帶輪包角Kalp=alpha/(0.549636*alpha+80.396114); %包角系數KL=0.20639*x(2)0.211806; %長度系數f(3)=KA*P/(P0+DP0)/Kalp/KL; %V帶根數functiong,ceq=VDCD_3mb_YS(x)i=3;n1=1440;g(1

14、)=100-x(1);g(2)=pi*x(1)*n1/6e4-25;a1=x(2)/4-pi*x(1)*(i+1)/8;a2=x(1)2*(i-1)2/8;a=a1+sqrt(a12-a2);g(3)=120-180*(1-x(1)*(i-1)/a/pi);g(4)=0.7*x(1)*(i+1)-a;ceq=;運行結果:Optimization terminated successfully: Search direction less than 2*options.TolX andActive Constraints: 5 9xopt = 1.0e+003 *fopt =外表最優(yōu)方案為設計帶

15、根數為5或9,帶輪直徑和中心分別為1.0e+003,、的方4.2 MATLAB優(yōu)化設計在機件模型中的應用提出問題:有一圓形等截面的銷軸一端固定在機架上另一端作用著集中載荷P;50kN和扭矩M=400Nm,其簡化模型如圖l所示由于結構的需要,軸的長度l不得小于10cm,已知錆軸的材料的彎曲應力=120MPa;扭剪應力=80MPa;允許撓度f=o01cm;密度p=7800kgm3:彈性模量E=21×105MPa現要求設計這根銷軸,在滿足使用要求下使其質量為最輕建立數學模型:通過分析,我們得知性能約束條件為:1、彎曲強度要求懸臂粱的最大彎曲應力不得超過允許值,即代人數據并整理;2、扭轉強度

16、要求懸梁的最大彎曲應力不得超過允許值,即,代人數據并整理;3、剛度要求最大撓度不得超過允許值,代人數據并整理得邊界約束條件: 這樣就可建立數學模型:二、調用MATLAB函數進行優(yōu)化采用MATLAB可以簡化編程NATLAB程序語言簡單,也可采用交互式界面本例要MATLAB命令窗口輸入如下命令即可:funf=f=00061 3x(1)x(2);目標函數funf=g=4167x(2)x(1)“3一l;I62+x(2)3x(1)41;25x(1)31;約束函數fun=funf furig;x0=8,10;給出d、I的初始值options=;參數向量取缺省值vlb=0,10;設計變量d,1的下限值vub=;設計變量無上限值X,option-constr(fun,x0,options,vcb,vub);調用有約束優(yōu)化函數這時,就會輸出優(yōu)化結果如下:x

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論