matlab(四連桿優(yōu)化設(shè)計).doc
《matlab(四連桿優(yōu)化設(shè)計).doc》由會員分享,可在線閱讀,更多相關(guān)《matlab(四連桿優(yōu)化設(shè)計).doc(9頁珍藏版)》請在裝配圖網(wǎng)上搜索。
機械優(yōu)化設(shè)計在matlab中的應(yīng)用 東南大學(xué)機械工程學(xué)院** 一 優(yōu)化設(shè)計目的: 在生活和工作中,人們對于同一個問題往往會提出多個解決方案,并通過各方面的論證從中提取最佳方案。最優(yōu)化方法就是專門研究如何從多個方案中科學(xué)合理地提取出最佳方案的科學(xué)。由于優(yōu)化問題無所不在,目前最優(yōu)化方法的應(yīng)用和研究已經(jīng)深入到了生產(chǎn)和科研的各個領(lǐng)域,如土木工程、機械工程、化學(xué)工程、運輸調(diào)度、生產(chǎn)控制、經(jīng)濟規(guī)劃、經(jīng)濟管理等,并取得了顯著的經(jīng)濟效益和社會效益。 二 優(yōu)化設(shè)計步驟: 1.機械優(yōu)化設(shè)計的全過程一般可以分為如下幾個步驟: 1)建立優(yōu)化設(shè)計的數(shù)學(xué)模型; 2)選擇適當(dāng)?shù)膬?yōu)化方法; 3)編寫計算機程序; 4)準(zhǔn)備必要的初始數(shù)據(jù)并傷及計算; 5)對計算機求得的結(jié)果進行必要的分析。 其中建立優(yōu)化設(shè)計數(shù)學(xué)模型是首要的和關(guān)鍵的一步,它是取得正確結(jié)果的前提。優(yōu)化方法的選取取決于數(shù)學(xué)模型的特點,例如優(yōu)化問題規(guī)模的大小,目標(biāo)函數(shù)和約束函數(shù)的性態(tài)以及計算精度等。在比較各種可供選用的優(yōu)化方法時,需要考慮的一個重要因素是計算機執(zhí)行這些程序所花費的時間和費用,也即計算效率。 2.建立數(shù)學(xué)模型的基本原則與步驟 ① 設(shè)計變量的確定; 設(shè)計變量是指在優(yōu)化設(shè)計的過程中,不斷進行修改,調(diào)整,一直處于變化的參數(shù)稱為設(shè)計變量。設(shè)計變量的全體實際上是一組變量,可用一個列向量表示: x=。 ② 目標(biāo)函數(shù)的建立; 選擇目標(biāo)函數(shù)是整個優(yōu)化設(shè)計過程中最重要的決策之一。當(dāng)對某以設(shè)計性能有特定的要求,而這個要求有很難滿足時,則針對這一性能進行優(yōu)化會得到滿意的效果。目標(biāo)函數(shù)是設(shè)計變量的函數(shù),是一項設(shè)計所追求的指標(biāo)的數(shù)學(xué)反映,因此它能夠用來評價設(shè)計的優(yōu)劣。 目標(biāo)函數(shù)的一般表達式為: f(x)=,要根據(jù)實際的設(shè)計要求來設(shè)計目標(biāo)函數(shù)。 ③ 約束條件的確定。 一個可行性設(shè)計必須滿足某些設(shè)計限制條件,這些限制條件稱為約束條件,簡稱約束。 由若干個約束條件構(gòu)成目標(biāo)函數(shù)的可行域,而可行域內(nèi)的所有設(shè)計點都是滿足設(shè)計要求的,一般情況下,其設(shè)計可行域可表示為 在可行域中,任意設(shè)計點滿足全部約束條件,稱為可行解,但不是最優(yōu)解,而優(yōu)化設(shè) 計就是要求出目標(biāo)函數(shù)在可行域的最優(yōu)解。 三 實例分析 (機械優(yōu)化設(shè)計P241頁例8-5) 設(shè)計一曲柄搖桿機構(gòu)如圖,要求: 曲柄從 且已知范圍內(nèi)變化。 分析: 1) 設(shè)計變量的確定 決定機構(gòu)尺寸的各桿長度,以及當(dāng)搖桿按已知運動規(guī)律開始運行時,曲柄所載的位置角應(yīng)列為設(shè)計變量,即: X== 考慮到機構(gòu)的桿長按比例變化時,不會改變其運動規(guī)律,因此在計算時常取 ,而其他桿長則按比例取為的倍數(shù)。若取曲柄的初始位置角為極位角,則及相應(yīng)搖桿位置角均為桿長的函數(shù),幾何圖形關(guān)系如右圖,其關(guān)系式為: =arcos[] (1) =arcos[] (2) 將的長度代入上式(1),(2)得到: =arcos[] =arcos[] 因此,只有為獨立變量,設(shè)計變量減少,故最后的設(shè)計變量為: X== 2) 目標(biāo)函數(shù)的建立 目標(biāo)函數(shù)可根據(jù)已知的運動規(guī)律與機構(gòu)實際運動規(guī)律之間的偏差最小為指標(biāo)來建立,即 f(x)= → min 式中 —期望輸出角,; m — 輸入角等分數(shù); —實際輸出角,由下圖得: a) 0≤< b) (3) 式中 將輸入角分成30等分,并用近似公式計算,可得目標(biāo)函數(shù)的表達式: f(x)= 由題意知,傳動角的變化范圍是,則上式中變量的最后形式可以寫成: 將帶入(4) (5)得: 為當(dāng)時的理想輸出角,其值在題目中已經(jīng)給出: 3)約束條件的確定 ① 曲柄搖桿機構(gòu)應(yīng)滿足曲柄存在條件,可得 ②曲柄搖桿機構(gòu)的傳動角可得 把約束條件簡化( =5 == ,) 其中滿足條件,故最后一共有兩個設(shè)計變量(),7個約束條件。 4)優(yōu)化計算 ① 此問題的圖解見上圖,有7個約束條件構(gòu)成了改優(yōu)化模型的可行域,而最優(yōu)解在可行域內(nèi)。 ②優(yōu)化方法選擇: 該問題屬于一般的約束非線性最優(yōu)化類型,可以使用matlab優(yōu)化工具箱里面的‘fmincon’函數(shù)進行求解。 ⑴ fmincon里面算法的選擇:fmincon里面一共提供了‘largescale’,‘ medium-scale’兩種算法,由于此問題只有兩個設(shè)計變量,維數(shù)較低,故采用‘medium-scale’算法?!甿edium-scale’算法是采用SQP,算法中Hessian陣可以通過BFGS迭代,初始Hessian陣任給。注意BFGS公式中q項是需要計算目標(biāo)函數(shù)梯度得到的。所以Hessian矩陣的近似計算是需要用到有限差分法。在采用‘medium-scale’算法時,需提供其設(shè)計變量的初始點 的信息,而初始點的選擇也將影響計算得收斂性和收斂速度,如果初始點選擇得不恰當(dāng),可能最后函數(shù)不能收斂,得不到計算結(jié)果。 ⑵精度的控制:為了得到更加精確地解,需要設(shè)置優(yōu)化函數(shù)的控制精度,函數(shù)本身默認精度為1e-4,精度比較低,通過options的設(shè)置將精度提高到 1e-9,這樣得到的結(jié)果更精確。 以上兩點通過設(shè)置options參數(shù)即可: options=optimset(largescale,off,display,off,Algorithm,active-set,TolFun,1e-9); 所有的程序編好以后,在命令窗口輸入:youhua 得到的matlab的運行結(jié)果如下: >> youhua x = 4.1574 2.2909 %最優(yōu)解 fval = 5.1899e-004 %目標(biāo)函數(shù)最優(yōu)點的值 exitflag = 5 %標(biāo)志值,’5’表示重要方向?qū)?shù)小于規(guī)定的容許范圍并且約束違背小于options.ToLCon output = iterations: 12 %迭代次數(shù) funcCount: 40 %函數(shù)的評價次數(shù) lssteplength: 1 stepsize: 7.6955e-005 algorithm: medium-scale: SQP, Quasi-Newton, line-search %采用的中型算法 firstorderopt: 1.0832e-006 %一階最優(yōu)性條件 constrviolation: -1.0852e-006 message: [1x780 char] %跳出信息 lambda = lower: [2x1 double] upper: [2x1 double] eqlin: [0x1 double] eqnonlin: [0x1 double] ineqlin: [5x1 double] ineqnonlin: [2x1 double] grad = %函數(shù)在最優(yōu)點處梯度信息 1.0e-003 * 0.4888 0.4445 hessian = %函數(shù)在最優(yōu)點處海塞矩陣 0.0016 0.0075 0.0075 0.0468 >> 5)結(jié)果分析 ① 采用fmincon求解的最優(yōu)值: =[4.1574; 2.2909]; ; 采用算法:中型算法(mediun-scale)。 這與課本給出的最優(yōu)解:=[4.1286;2.3325],=0.0156相比,計算精度更高,最優(yōu)解的數(shù)值更精確,故計算準(zhǔn)確度高。 ② 用matlab繪制輸入——輸出曲線關(guān)系圖 上圖中(單位為“度”)藍色的線代表曲柄搖桿機構(gòu)的實際輸出角與輸入角的關(guān)系,紅色的線代表理想輸出角與輸入角的關(guān)系。 可以看出: 實際輸出和理論輸出曲線之間存在線性誤差,其最大線性誤差為,誤差在允許的范圍之內(nèi),故結(jié)果的可信度也較大,運用matlab優(yōu)化工具箱計算所得結(jié)果正確。 小結(jié) 通過結(jié)合實際問題的分析,計算,求解,更加深入地了解和掌握機械優(yōu)化設(shè)計的過程和步驟,比較重要的步驟是數(shù)學(xué)模型的建立,以及設(shè)計變量的選取,以及數(shù)學(xué)模型的尺度變換,根據(jù)機構(gòu)實際工作需要,建立目標(biāo)函數(shù)的約束條件等等,當(dāng)數(shù)學(xué)模型建好以后,剩下的工作可以再matlab里面完成,而matlab里面的優(yōu)化工具箱,給用戶提供了多種優(yōu)化函數(shù),使用者只需要將數(shù)學(xué)模型按要求編寫成子程序嵌入已有的優(yōu)化程序即可。 在設(shè)計過程中也遇到一些困難,比如說在在用matlab計算時,計算機已知處于busy狀態(tài),得不到函數(shù)的最優(yōu)解,最后反復(fù)的檢查,終于找的了其原因,是由于初始點選擇不恰當(dāng)引起的,如果初始點選擇得好,可以節(jié)省計算時間和計算空間,故初始點的選取比較重要。 附錄 1. 編寫目標(biāo)函數(shù)M文件myfun.m: function f=myfun(x) f=0; %函數(shù)f賦初值 a0=acos(((1+x(1))^2-x(2)^2+25)/(10*(1+x(1)))); %初始計算點曲柄和搖桿的角度 b0=acos(((1+x(1))^2-x(2)^2-25)/(10*x(2))); i=2; while(i<=31) %設(shè)置迭代次數(shù)為30次 a(i)=a0+(pi/2)*(i/30); % 計算曲柄各分度的角度值 b(i)=b0+2*(a(i)-a0)^2/(3*pi); % 計算搖桿各分度的角度值 r=sqrt(26-10*cos(a(i))); c(i)=acos((r^2+x(2)^2-x(1)^2)/(2*x(2)*r)); d(i)=acos((r^2+24)/(10*r)); if a(i)<=pi e(i)=pi-c(i)-d(i); %計算搖桿輸出的實際值 else if a(i)<=2*pi e(i)=pi-c(i)+d(i); end end a(1)=a0; f=f+((b(i)-e(i))^2)*(a(i)-a(i-1)); %目標(biāo)函數(shù)的計算 i=i+1; end 2. 編寫非線性不等式約束M文件constrain.m: function[c ceq]=constrain(x) c=[36-x(1)^2-x(2)^2-1.414*x(1)*x(2); x(1)^2+x(2)^2-1.414*x(1)*x(2)-16]; %非線性不等式約束 ceq=[]; 3. 調(diào)用fmincon優(yōu)化函數(shù),建立youhua.m文件: lb=[1;1]; %設(shè)計變量的下界 x0=[4;2]; %迭代初始點 A=[-1,0;0,-1;-1,-1;1,-1;-1,1]; %線性不等式約束 b=[-1;-1;-6;4;4]; options=optimset(largescale,off,display,off,Algohm,active-set,TolFun,1e-9); %采用中型算法,設(shè)計精度為1e-9 [x,fval,exitflag,output]=fmincon(@myfun,x0,A,b,[],[],lb,[],@constrain,options) %調(diào)用fmincon函數(shù)- 1.請仔細閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點此認領(lǐng)!既往收益都歸您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該PPT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計者僅對作品中獨創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- matlab 連桿 優(yōu)化 設(shè)計
鏈接地址:http://m.kudomayuko.com/p-6649448.html