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