機械優(yōu)化設計研究生大作業(yè)_第1頁
機械優(yōu)化設計研究生大作業(yè)_第2頁
機械優(yōu)化設計研究生大作業(yè)_第3頁
機械優(yōu)化設計研究生大作業(yè)_第4頁
機械優(yōu)化設計研究生大作業(yè)_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第一題1.1 題目求函數f(X)=x14-2x12x2-2x1x2+3x12+4x22+4.5x1-4x2+5的極小值,初始點為X(0)=-2,2T,誤差不大于0.001。注:此問題為無約束非線性規(guī)劃問題的求解。1.2 建立數學模型 Find x1 , x2 min f(X)=x14-2x12x2-2x1x2+3x12+4x22+4.5x1-4x2+5 初始點 X(0)=-2,2T, 0.0011.3 運行結果迭代值 迭代次數x1x2f1-0.50000000000000-0.583333333333338.333333333333332-0.566062176165800.370682210

2、708123.004578340922933-0.652874320923100.398982834197582.978571588054454-0.650848939158932.978497143755115-0.650839107315692.97849714338108 通過牛頓法迭代5次可得出結果,當x1=-0.65083910731569,x2=時,目標函數最優(yōu)值fmin=2.97849714338108,且滿足。1.4 迭代曲線1.5 檢驗結果 用Matlab自帶優(yōu)化程序檢驗 程序為:>> x0=-2,2;x,fval=fminsearch('x(1)4-5*

3、x(1)2*x(2)-2*x(1)*x(2)+4*x(1)2+6*x(2)2+4.5*x(1)-4*x(2)+5',x0)fval =2.97849714628600 經檢驗用牛頓法進行迭代優(yōu)化結果是正確的,優(yōu)化結果達到精度要求,0.001。1.6 討論(1)由以上迭代曲線可知,牛頓法迭代收斂速度很快,本優(yōu)化經過迭代3次后目標函數值趨于平穩(wěn)。也可采用黃金分割法,變尺度法等其他方法優(yōu)化。由于本題比較簡單,不必采用變尺度法來優(yōu)化。(2)采用Matlab編程解決了求導和計算海森陣比較復雜的難題,編程簡單方便。1.7 Matlab源程序 function ZY32 format long sy

4、ms x1 x2 %定義符號變量x1,x2 f=x14-2*x12*x2-5*x1*x2+6*x12+7*x22+4.5*x1-4*x2+5 %定義函數f df=diff(f,x1);diff(f,x2) %diff(f,x1)用于對函數f中變量x1求偏導 %diff(f,x2)用于對函數f中變量x2求偏導 f1=diff(f,x1,2); %diff(f,x1,2)用于對函數f中變量x1求而二次偏導 f2=diff(diff(f,x1),x2); %diff(diff(f,x1),x2)用于對函數f中變量下x1,x2求偏導 f3=diff(diff(f,x2),x1); f4=diff(f,

5、x2,2); %diff(f,x2,2)用于對函數f中變量x2求而二次偏導 ddf=f1,f2;f3,f4; %求函數f的海森陣 x1=-2;x2=2; td=eval(df); %計算梯度初值 hs=eval(ddf); %計算海森陣初值 %eval命令用于將符號變量轉化為數值變量 i=0; eps=0.1 while eps>0.01; i=i+1; eps=sqrt(td(1).2+td(2).2); %求梯度的模 x=x1;x2-inv(hs)*td; %記錄自變量迭代值 x1=x(1); x2=x(2); xx(i,:)=x' %記錄迭代過程中間值 td=eval(df

6、); hs=eval(ddf); last(i)=eval(f); %記錄迭代過程中間值 end disp('迭代次數'); i xx=xx fmin=last figure(1) plot(fmin); % 畫目標函數變化圖 grid on; hold on; xlabel('迭代次數'); ylabel('f(x)'); title('f(x)函數迭代值'); figure(2) plot(xx(:,1); grid on; xlabel('迭代次數'); ylabel('x1迭代值'); ti

7、tle('x1變化圖'); figure(3) plot(xx(:,2); grid on; xlabel('迭代次數'); ylabel('x2迭代值');title('x2變化圖');第二題2.1 數學模型 Find x1 , x2 min f (X)=2x12+2x22-4x1-6x2 s.t. g1(X)=x1+5x2-50g2(X)=2x12-x20g3(X)=-x10g4(X)=-x20 初始點X(0)=0,0.75T, =0.0012.2 優(yōu)化方法 此問題可規(guī)結為強約束問題,此題用罰函數法對在求解強約束非線性優(yōu)化問題

8、求解。用功能函數constr可以解決此類問題,本題中目標函數是非線性的,約束是線性的。2.3 優(yōu)化結果最小目標函數值f=-5.5039,自變量取值:X =0.6589, 0.8682T 驗證優(yōu)化結果正確。2.4 Matlab 源程序 在command window 輸入question2,然后回車即行; Function questions2.m funf='f=x(1)2+4*x(2)2-7*x(1)-5*x(2) ; 定義目標函數 fung='g=x(1)+5*x(2)-5; 2*x(1)2-x(2); 定義約束條件 funi=funf fung; 組合矩陣 x0=0,0;

9、 %初值; options=1; 顯示過程 vlb=0 0; 下邊界x; vub= ; %無上邊界;x,options=constr(funi,x0,options,vlb,vub)2.5 計算結果 迭代次數目標值f自變量x1自變量x1約束g1約束g2約束g3約束g411010-10-12-1.0000-0.00001.0000-1.0000e-008-1.00001.0000e-008-13-1.000001.0000-5.0000e-008-1.00000-1.00004-1050050-505-12.75002.50000.5000012-2.5000-0.50006-8.68751.2

10、5000.750002.3750-1.2500-0.75007-8.68751.25000.7500-1.0000e-0082.3750-1.2500-0.75008-8.68751.25000.7500-5.0000e-0082.3750-1.2500-0.75009-5.93650.71520.4511-2.02930.5720-0.7152-0.451110-5.51640.66090.867800.0059-0.6609-0.867811-5.51640.66090.86781.0000e-0080.0059-0.6609-0.867812-5.51640.66090.86785.00

11、00e-0080.0059-0.6609-0.867813-5.50390.6589 0.868208.5830e-006-0.6589-0.868214-5.50390.6589 0.86821.0000e-0088.6094e-006-0.6589-0.868215-5.50390.6589 0.8682-5.0000e-0088.5930e-006-0.6589-0.868216-5.50390.6589 0.868201.8429e-011-0.6589-0.868217-5.50390.6589 0.86828.2958e-0072.1864e-006-0.6589-0.868218

12、-5.50390.65890.86824.7634e-005-9.5269e-006-0.6589-0.868219-5.50390.65890.8682-8.8818e-016-1.1102e-016-0.6589-0.868220-5.49050.65650.8682-0.0024-0.0062-0.6565-0.868221-5.50440.65890.8680-0.00132.6130e-004-0.6589-0.868022-5.50390.65890.8682-1.0000e-0040.0000-0.6589-0.86822.6 迭代曲線2.7 討論 (1)利用Matlab優(yōu)化工具

13、箱里邊的功能函數condtr來優(yōu)化求解目標函數f,能很快實現優(yōu)化,達到目標,方便快捷。(2)由圖可見迭代五次達到最低端,10次后趨于平穩(wěn)。(3)優(yōu)化結果滿足精度要求0.001。(4)可見Matlab很容易對目標實現優(yōu)化,對編程人員要求不高。只要知道如何使用命令。第三題3.1 題目平面鉸鏈四連桿機構,各桿長度為,。已知;主動桿輸入角為,從動桿的輸出角為;搖桿在右極位時,桿1、桿2伸直,主動桿在初始位置,從動桿在初始位置。試設計四連桿機構的各桿長度,使其輸出角在曲柄從轉到時,最佳再現給定函數:,且要求最小傳動角不小于45,即45。3.2 數學模型3.2.1 確定設計變量機構位置決定于4個桿長與主動

14、桿轉角,再現角位移的機構與桿件的絕對長度無關,只決定于相對長度;轉角連續(xù)變化,故非設計變量。因此計算時取曲柄長度為單位長度,即=1;而其他的桿長按比例取為的倍數,機架長,而初始角可以按下列幾何關系求得:故僅有、為獨立變量,是二維最優(yōu)化設計問題,設其設計變量為:3.2.2 確定目標函數 此再現運動的機械運動優(yōu)化中,目標函數為機構實際運動軌跡與預定運動軌跡均方根最小,位置取若干離散點,即 本題則取目標函數為: P取30,則,式中期望輸出角的離散值為: 實際輸出角的計算公式為: 由三角關系式得: 3.2.3 確定約束條件 根據對傳動角的約束要求及曲柄與機架處于共線位置時和機構的尺寸的關系:以及;,得

15、約束條件: 滿足曲柄存在條件,得約束條件: 取,進一步分析可行域可知(兩橢圓方程)起約束作用,其他約束均在其外不起作用。3.2.4 數學模型 find 3.3 優(yōu)化方法 用Matlab自帶函數fmincon來優(yōu)化求解, 3.4 優(yōu)化結果 最小目標函數值f=0.0133 自變量X* =4.4846 , 1.9224T 約束條件值g=0.0000, -4.3848T 優(yōu)化結果達到要求.3.5 Matlab程序由于某些符號在Matlab中無法表示,符號有如下變動,其中in0設為,in設為, out0設為,out設為,a設為,b設為,r設為,f設為所求函數。3.5.1 目標函數 將程序命名為cpp3.

16、mfunction f=cpp3(x)L1=1;L4=5; %定義桿1,4長度L2=x(1);L3=x(2); %定義桿2,3為變量format long;%初始輸入角inp=acos(L1+L2).2+(L4.2-L3.2)/(2*(L1+L2)*L4); %初始輸出角outp=acos(L1+L2).2-(L4.2+L3.2)/(2*L3*L4); pianc=0; %給定初值。for i=1:30 ini=sym(inp+i*pi/60); %在不同位置的輸入角outi=sym(outp+2*(ini-inp).2/(3*pi); %輸出角ri=sym(sqrt(26-10*cos(ev

17、al(ini); %符號值ai=sym(acos(eval(ri).2+x(2).2-x(1).2)/(2*eval(ri)*x(2);bi=sym(acos(eval(ri).2+24)/(10*(eval(ri);Ai=eval(ai); %將符號轉換成為數值Bi=eval(bi);NIi=eval(ini);TUOi=eval(outi);if 0<NIi<=pireali=pi-Ai-Bi;elseif pi<NIi<=2*pirli=pi-Ai+Bi;else disp('超出范圍')endpianchai=(rli-TUOi).2; %計算偏

18、差pinc=pianchai+pinc;endpinc %用于顯示優(yōu)化過程中的目標函數值 %定義約束條件g1,g2;3.5.2 約束函數值 function g,z=yueshu3(x)g=36-x(1).2-x(2).2-1.4142*x(1)*x(2); x(1).2+x(2).2-16-1.4142*x(1)*x(2) z=;x %輸出自變量值;3.5.3 求解目標函數 命名文件CPP33.m. x=5 3 ; % x為初始值 options = optimset ('LargeScale' , 'off'); x ,f =fmincon ( cpp3, x , , , , , , yueshu3, options) 在command window中輸入cpp33.m, 回車即可。3.6 計算結果迭代次數目標值自變量x

溫馨提示

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

評論

0/150

提交評論