陳 凱,宋效凱,劉亞飛,王思琪
(長安大學工程機械學院,陜西西安710064)
基于MATLAB優化工具箱車床主軸優化設計
陳凱,宋效凱,劉亞飛,王思琪
(長安大學工程機械學院,陜西西安710064)
為了解決復雜的優化問題,提出了使用MATLAB優化工具箱處理優化問題的方法。主要介紹了基于優化工具箱求解非線性問題的步驟和方法,最后給出車床主軸優化實例,驗證MATLAB優化工具箱在求解復雜優化約束中的方便、簡單、有效性,對使用優化工具箱解決復雜優化問題具有重要的參考價值。
優化工具箱;非線性;有效性
優化設計在解決復雜優化問題時需要編制大量程序,M語言是一種高效率的MATLAB語言,其語法簡單,符合人的思維方式,易學易懂,并且MATLAB軟件包含豐富算法,可供各專業人員使用。但是對于目標函數復雜,高度非線性約束問題[1],編寫MATLAB程序就顯得很費時,困難。本文通過介紹優化工具箱以及使用優化工具箱的步驟,結合車床主軸的優化實例[2],說明了優化工具箱強大功能,是學習優化設計的好工具。其用法比較靈活,對其有關模塊作適當修改,可解決許多實際問題。
為了使用優化工具箱,首先應該編寫一個M文件,并且這個M文件必須接受一個行向量,同時返回一個標量。根據實際問題,行向量的長度就是目標函數中獨立變量的個數。下面以求函數f(x1,x2)=x21-2x1x2+6x1+x22的最小值為例。
(1)新建一個菜單項,然后選擇“File”,在編輯器中建立一個新的M文件,在M文件中錄入代碼:
function z=fun1(x)
Z=x(1)^2-2*x(1)*(2)+6*x(1)+x(2))^2;
最后在MATLAB路徑指定的目錄中保存該M文件。
(2)根據約束條件,設置變量的取值范圍,線性等式約束條件矩陣,線性不等式約束條件矩陣。
(3)運行優化程序。優化工具箱兩種使用方式包括通過命令行調用函數或通過圖形用戶界面GUI.使用命令行調用函數時,其基本語法格式為[x fval]=fun(@fitfun,nvars,options),其中@fitfun是適應度函數句柄,nvars是獨立變量的個數,options是包含算法選項參數。
在使用圖形用戶界面GUI時,可以使用算法而不用工作在命令行,打開算法工具,可鍵入命令gatool.
已知普通車床主軸為空心軸,軸外伸長度a=90 mm,內徑d=40 mm.作用在主軸外伸端處的載荷F=15 000 N,許用切應力為[τ]=200 MPa,許用擾度[y]=0.125 mm,允許扭轉角[θ]=0.02 rad.主軸材料的彈性模量E=210 GPa,剪切模量G=80 GPa,主軸材料的密度為ρ=7 800 kg/m3.主軸轉速n=80 r/min,主軸最大輸入功率P=7.5 kW.優化的目的是使主軸質量最小,約束條件是滿足剛度要求。
2.1理論分析
首先根據設計要求,確定設計變量為:

其中D和L分別表示主軸的外徑和軸長。
然后確定目標函數,由主軸質量計算公式可知

其中D,d,L,ρ分別表示軸的內徑、外徑、軸長和軸材料的密度。
最后確定約束條件,包括剛度約束、強度約束、邊界約束。
(1)剛度約束
由于軸外伸端擾度約束為

所以

由于軸外端扭轉角約束為

所以

(2)強度約束條件
由于主軸切應力約束為

所以

(3)邊界約束
邊界約束條件為設計變量的取值范圍[0kg 14kg],即:
50=Dmin≤D≤Dmax=150
300=Lmin≤L≤Lmax=750
這個是已知的,根據實際設計需要優化結果在這個范圍內,所以:

2.2目標函數及約束條件分析
2.2.1目標函數曲面
根據目標函數(2)用MATLAB軟件繪制目標函數曲面如圖1所示,由圖1可知,主軸質量取值范圍為0 kg~14 kg.

圖1 目標函數曲面
2.2.2約束條件特性
根據軸優化設計約束條件(3)(4)(5)(6),用MATLAB軟件繪制扭轉角約束曲線、擾度約束曲線和可行域,如圖2所示,由圖可知軸外徑取值范圍是48 mm~78mm,軸長度取值范圍是270mm~750mm.

圖2 約束條件曲線及可行區域
2.3軸的優化設計程序
軸的優化設計程序主要內容包括調用優化工具箱函數和編寫目標函數M文件。
首先,在命令行調用MATLAB優化工具箱中fmincon函數和ga函數來實現,其主要格式為:
[x,fval]=fmincon(@fun3,x0,[],[],[],[],x1,[],@fun2,options);
[x,fval]=ga(@fun3,2,[],[],[],[],x1,[],@fun2,options);
然后,編寫待優化目標函數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=[];
程序運行結果為:
x=0.0630 0.3000
fval=3.5701
exitflag=4
由此可知,優化后軸的外徑63 mm,軸長度為300 mm,由圖(2)和圖(3)可知其優化結果在可行域內。優化前軸的質量為9.4 kg,優化后軸的質量為
3.57kg,優化后軸的質量大約是優化前軸質量38%,可見優化設計可獲得滿意結果。
基于MATLAB的優化工具箱提供了一個標準的、可擴展、簡單算法,利用matlab的強大的矩陣運算能力,使用者可以節省大量編程的時間和精力,將精力集中在優化算法的改進和具體問題中去。
[1]陳廣洲,解華明,魯祥友.Matlab遺傳算法工具箱在非線性優化中的應用[J].計算機技術與發展,2008,(03):246-248.
[2]雷英杰,張善文.遺傳算法工具箱及其應用[M].西安:西安電子科技大學出版社,2005.
[3]周琛琛.基于Matlab遺傳算法工具箱的函數優化問題求解[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-),男,湖北仙桃人,在讀碩士研究生,主要研究方向:計算機輔助設計和制造。