陳 凱,宋效凱,劉亞飛,王思琪
(長(zhǎng)安大學(xué)工程機(jī)械學(xué)院,陜西西安710064)
基于MATLAB優(yōu)化工具箱車床主軸優(yōu)化設(shè)計(jì)
陳凱,宋效凱,劉亞飛,王思琪
(長(zhǎng)安大學(xué)工程機(jī)械學(xué)院,陜西西安710064)
為了解決復(fù)雜的優(yōu)化問(wèn)題,提出了使用MATLAB優(yōu)化工具箱處理優(yōu)化問(wèn)題的方法。主要介紹了基于優(yōu)化工具箱求解非線性問(wèn)題的步驟和方法,最后給出車床主軸優(yōu)化實(shí)例,驗(yàn)證MATLAB優(yōu)化工具箱在求解復(fù)雜優(yōu)化約束中的方便、簡(jiǎn)單、有效性,對(duì)使用優(yōu)化工具箱解決復(fù)雜優(yōu)化問(wèn)題具有重要的參考價(jià)值。
優(yōu)化工具箱;非線性;有效性
優(yōu)化設(shè)計(jì)在解決復(fù)雜優(yōu)化問(wèn)題時(shí)需要編制大量程序,M語(yǔ)言是一種高效率的MATLAB語(yǔ)言,其語(yǔ)法簡(jiǎn)單,符合人的思維方式,易學(xué)易懂,并且MATLAB軟件包含豐富算法,可供各專業(yè)人員使用。但是對(duì)于目標(biāo)函數(shù)復(fù)雜,高度非線性約束問(wèn)題[1],編寫MATLAB程序就顯得很費(fèi)時(shí),困難。本文通過(guò)介紹優(yōu)化工具箱以及使用優(yōu)化工具箱的步驟,結(jié)合車床主軸的優(yōu)化實(shí)例[2],說(shuō)明了優(yōu)化工具箱強(qiáng)大功能,是學(xué)習(xí)優(yōu)化設(shè)計(jì)的好工具。其用法比較靈活,對(duì)其有關(guān)模塊作適當(dāng)修改,可解決許多實(shí)際問(wèn)題。
為了使用優(yōu)化工具箱,首先應(yīng)該編寫一個(gè)M文件,并且這個(gè)M文件必須接受一個(gè)行向量,同時(shí)返回一個(gè)標(biāo)量。根據(jù)實(shí)際問(wèn)題,行向量的長(zhǎng)度就是目標(biāo)函數(shù)中獨(dú)立變量的個(gè)數(shù)。下面以求函數(shù)f(x1,x2)=x21-2x1x2+6x1+x22的最小值為例。
(1)新建一個(gè)菜單項(xiàng),然后選擇“File”,在編輯器中建立一個(gè)新的M文件,在M文件中錄入代碼:
function z=fun1(x)
Z=x(1)^2-2*x(1)*(2)+6*x(1)+x(2))^2;
最后在MATLAB路徑指定的目錄中保存該M文件。
(2)根據(jù)約束條件,設(shè)置變量的取值范圍,線性等式約束條件矩陣,線性不等式約束條件矩陣。
(3)運(yùn)行優(yōu)化程序。優(yōu)化工具箱兩種使用方式包括通過(guò)命令行調(diào)用函數(shù)或通過(guò)圖形用戶界面GUI.使用命令行調(diào)用函數(shù)時(shí),其基本語(yǔ)法格式為[x fval]=fun(@fitfun,nvars,options),其中@fitfun是適應(yīng)度函數(shù)句柄,nvars是獨(dú)立變量的個(gè)數(shù),options是包含算法選項(xiàng)參數(shù)。
在使用圖形用戶界面GUI時(shí),可以使用算法而不用工作在命令行,打開(kāi)算法工具,可鍵入命令gatool.
已知普通車床主軸為空心軸,軸外伸長(zhǎng)度a=90 mm,內(nèi)徑d=40 mm.作用在主軸外伸端處的載荷F=15 000 N,許用切應(yīng)力為[τ]=200 MPa,許用擾度[y]=0.125 mm,允許扭轉(zhuǎn)角[θ]=0.02 rad.主軸材料的彈性模量E=210 GPa,剪切模量G=80 GPa,主軸材料的密度為ρ=7 800 kg/m3.主軸轉(zhuǎn)速n=80 r/min,主軸最大輸入功率P=7.5 kW.優(yōu)化的目的是使主軸質(zhì)量最小,約束條件是滿足剛度要求。
2.1理論分析
首先根據(jù)設(shè)計(jì)要求,確定設(shè)計(jì)變量為:
其中D和L分別表示主軸的外徑和軸長(zhǎng)。
然后確定目標(biāo)函數(shù),由主軸質(zhì)量計(jì)算公式可知
其中D,d,L,ρ分別表示軸的內(nèi)徑、外徑、軸長(zhǎng)和軸材料的密度。
最后確定約束條件,包括剛度約束、強(qiáng)度約束、邊界約束。
(1)剛度約束
由于軸外伸端擾度約束為
所以
由于軸外端扭轉(zhuǎn)角約束為
所以
(2)強(qiáng)度約束條件
由于主軸切應(yīng)力約束為
所以
(3)邊界約束
邊界約束條件為設(shè)計(jì)變量的取值范圍[0kg 14kg],即:
50=Dmin≤D≤Dmax=150
300=Lmin≤L≤Lmax=750
這個(gè)是已知的,根據(jù)實(shí)際設(shè)計(jì)需要優(yōu)化結(jié)果在這個(gè)范圍內(nèi),所以:
2.2目標(biāo)函數(shù)及約束條件分析
2.2.1目標(biāo)函數(shù)曲面
根據(jù)目標(biāo)函數(shù)(2)用MATLAB軟件繪制目標(biāo)函數(shù)曲面如圖1所示,由圖1可知,主軸質(zhì)量取值范圍為0 kg~14 kg.
圖1 目標(biāo)函數(shù)曲面
2.2.2約束條件特性
根據(jù)軸優(yōu)化設(shè)計(jì)約束條件(3)(4)(5)(6),用MATLAB軟件繪制扭轉(zhuǎn)角約束曲線、擾度約束曲線和可行域,如圖2所示,由圖可知軸外徑取值范圍是48 mm~78mm,軸長(zhǎng)度取值范圍是270mm~750mm.
圖2 約束條件曲線及可行區(qū)域
2.3軸的優(yōu)化設(shè)計(jì)程序
軸的優(yōu)化設(shè)計(jì)程序主要內(nèi)容包括調(diào)用優(yōu)化工具箱函數(shù)和編寫目標(biāo)函數(shù)M文件。
首先,在命令行調(diào)用MATLAB優(yōu)化工具箱中fmincon函數(shù)和ga函數(shù)來(lái)實(shí)現(xiàn),其主要格式為:
[x,fval]=fmincon(@fun3,x0,[],[],[],[],x1,[],@fun2,options);
[x,fval]=ga(@fun3,2,[],[],[],[],x1,[],@fun2,options);
然后,編寫待優(yōu)化目標(biāo)函數(shù)M文件
function f=fun3(x)
f=1/4*pi*rou*(x(1)^2-d^2)*x(2);
function[c ceq]=fun2(x)
y0=pi*(x(1)^4-d^4)/64;
y1=pi*(x(1)^4-d^4)/32;
y2=pi*(x(1)^4-d^4)/(16*x(1));
P(1)=W*a^2*x(2)/(3*P*y0)-ymax;
P(2)=Z*x(2)/(G*y1)-thit;
P(3)=Z/y2-tao;
P(4)=Dmin-x(1);
P(5)=x(1)-Dmax;
P(6)=Lmin-x(2);
P(7)=x(2)-Lmax;
ceq=[];
程序運(yùn)行結(jié)果為:
x=0.0630 0.3000
fval=3.5701
exitflag=4
由此可知,優(yōu)化后軸的外徑63 mm,軸長(zhǎng)度為300 mm,由圖(2)和圖(3)可知其優(yōu)化結(jié)果在可行域內(nèi)。優(yōu)化前軸的質(zhì)量為9.4 kg,優(yōu)化后軸的質(zhì)量為
3.57kg,優(yōu)化后軸的質(zhì)量大約是優(yōu)化前軸質(zhì)量38%,可見(jiàn)優(yōu)化設(shè)計(jì)可獲得滿意結(jié)果。
基于MATLAB的優(yōu)化工具箱提供了一個(gè)標(biāo)準(zhǔn)的、可擴(kuò)展、簡(jiǎn)單算法,利用matlab的強(qiáng)大的矩陣運(yùn)算能力,使用者可以節(jié)省大量編程的時(shí)間和精力,將精力集中在優(yōu)化算法的改進(jìn)和具體問(wèn)題中去。
[1]陳廣洲,解華明,魯祥友.Matlab遺傳算法工具箱在非線性優(yōu)化中的應(yīng)用[J].計(jì)算機(jī)技術(shù)與發(fā)展,2008,(03):246-248.
[2]雷英杰,張善文.遺傳算法工具箱及其應(yīng)用[M].西安:西安電子科技大學(xué)出版社,2005.
[3]周琛琛.基于Matlab遺傳算法工具箱的函數(shù)優(yōu)化問(wèn)題求解[J].現(xiàn)代計(jì)算機(jī),2006,(12):84-86.
Optim ization Design of Lathe Spindle based on MATLAB Optim ization Toolbox
CHEN Kai,SONG Xiao-kai,LIU Ya-fei
(School of Engineering Machinery,Chang'an University,Xi'an Shaanxi 710064,China)
In order to solve the complex optimization problem,this paper proposes a method to solve the optimization problem by using the MATLAB optimization toolbox.It introduces the steps and methods for solving nonlinear optimization problem based on genetic toolbox,finally give example and verifies MATLAB optimization toolbox in solving nonlinear constrained in convenient and simple,effective.It has important reference value in using genetic toolbox to solve complex nonlinear problems.
optimization toolbox;nonlinear;effectiveness
TH122
A
1672-545X(2016)05-0222-02
2016-02-03
陳凱(1990-),男,湖北仙桃人,在讀碩士研究生,主要研究方向:計(jì)算機(jī)輔助設(shè)計(jì)和制造。