曾懷靈,賀建國
(長沙礦山研究院有限責任公司, 湖南長沙 410012)
MATLAB在機械優(yōu)化設計中的應用
曾懷靈,賀建國
(長沙礦山研究院有限責任公司, 湖南長沙 410012)
介紹了MATLAB優(yōu)化工具箱中各種優(yōu)化模型及其在機械優(yōu)化設計中的應用,并給出了優(yōu)化實例和結果。采用MATLAB優(yōu)化工具箱來求解機械優(yōu)化設計中的問題,不僅提高了設計效率,而且編程簡單、結果可靠。
機械優(yōu)化設計;MATLAB;優(yōu)化模型;夾具設計
機械產品的設計,一般需要經過調查分析、方案擬定、技術設計、零件工作圖繪制等環(huán)節(jié)[1]。傳統(tǒng)的設計方法基本上是采取人工試湊和定性分析比較等粗略方法。而機械優(yōu)化設計是以數(shù)學規(guī)劃為理論基礎,以計算機為工具,尋求最佳機械設計方案的現(xiàn)代設計方法,取代了傳統(tǒng)的可行性設計[2]。目前,優(yōu)化設計已有很多成熟的優(yōu)化方法,都有各自的特點和適用范圍。在MATLAB優(yōu)化工具箱中就有很多實用的優(yōu)化函數(shù),利用這些優(yōu)化函數(shù)去解決機械優(yōu)化設計中的問題不僅方便實用,而且編程簡單易懂。
MATLAB(Matrix Laboratory)是由美國Mathworks公司開發(fā)的集數(shù)值計算功能、符號運算功能和圖形處理功能于一身的超級科學計算語言。MATLAB有多個工具箱,其中優(yōu)化工具箱(Optimization Toolbox)可以為線性、非線性最小化、非線性最小二乘、二次規(guī)劃、方程求解、多目標優(yōu)化等問題提供可靠的求解方法。
線性規(guī)劃在機械設計中應用非常少,主要是因其要求目標函數(shù)、約束條件都是線性的,而機械設計問題一般都是非線性的。目前,線性規(guī)劃在一維下料問題中應用比較多,如文獻[3]~[5]。求解線性規(guī)劃問題常用的方法有單純形法、大M法等。在MATLAB中由linprog函數(shù)來求解線性規(guī)劃問題。線性規(guī)劃模型如下:
式中,f、b、beq、lb、ub、x為向量,A、Aeq為矩陣。
linprog函數(shù)調用格式為:
其中,x為線性規(guī)劃的最優(yōu)解;
fval為目標函數(shù)在最優(yōu)解處的函數(shù)值(可省略);
exitflag為迭代終止條件(可省略),為正數(shù)時,表示目標函數(shù)收斂于解x處;為負數(shù)時,表示目標函數(shù)不收斂;為零,則表示已經達到函數(shù)評價或迭代的最大次數(shù);
output為優(yōu)化詳細信息輸出(可省略);
lambda為求得最優(yōu)解的拉格朗日乘子(可省略),反應了各個約束條件在求解最優(yōu)值的有效性;
f為目標函數(shù);
x0為迭代初值(可省略);
options設置優(yōu)化項目參數(shù)(可省略)。
通常把約束條件全為線性的而目標函數(shù)是二次函數(shù)的最優(yōu)化問題稱為二次規(guī)劃[6]。二次規(guī)劃在機械設計中的應用比較少,在文獻[7]~[8]中利用二次規(guī)劃法求解接觸、有限元問題。在MATLAB中求解二次規(guī)劃問題可用quadprog函數(shù)。二次規(guī)劃模型如下:
式中,H為對稱矩陣,其余參數(shù)意義同式(1)。
quadprog函數(shù)調用格式為:
其中參數(shù)意義同式(2)。
無約束優(yōu)化有很多種算法,如最速下降法、Newton法、擬Newton法、共軛梯度法、信賴域法等。其中,擬Newton法利用了Newton法的二次收斂性使得可靠性更高,同時這種算法收斂速度也很快,所以在目前應用得相當廣泛。而擬Newton法中應用比較多的主要有BFGS算法和DFP變尺度法。在MATLAB優(yōu)化工具箱中求解無約束優(yōu)化問題采用fminbnd函數(shù)、fminunc函數(shù)和fminsearch函數(shù),其中默認的算法就是BFGS算法。fminunc函數(shù)和fminbnd函數(shù)要求目標函數(shù)必須連續(xù),而函數(shù)fminsearch常用來處理不連續(xù)的函數(shù)。fminbnd函數(shù)可以求解區(qū)間[x1,x2]內單變量非線性函數(shù)的最小值。
無約束優(yōu)化模型如下:
minf(x)
fminbnd函數(shù)調用格式為:
其中,x1、x2為求解區(qū)間上下界,其余參數(shù)意義同式(2)。
fminunc函數(shù)調用格式為:
其中,grad為目標函數(shù)在最優(yōu)解處的梯度值,hessian為目標函數(shù)在最優(yōu)解處的hessian矩陣值,其余參數(shù)意義同式(2)。
fminsearch函數(shù)調用格式為:
其中參數(shù)意義同式(2)。
在機械優(yōu)化設計中大多數(shù)問題是有約束優(yōu)化問題。為了保證設計的機械零件安全可靠,設計時必須確定相應的設計準則,而這些設計準則就成了目標函數(shù)的約束條件[9]。這些設計準則包括強度準則、剛度準則、壽命準則、振動穩(wěn)定性準則和可靠性準則,大多數(shù)是非線性的。對于非線性約束優(yōu)化問題有很多解法,早期都是通過構造懲罰函數(shù)將有約束優(yōu)化轉換為無約束優(yōu)化問題求解,而現(xiàn)在已經被更為有效的基于K-T方程解的方法所取代。在MATLAB優(yōu)化工具箱中采用序列二次規(guī)劃法(SQP)求解約束優(yōu)化問題,采用的函數(shù)為fmincon函數(shù)。
有約束優(yōu)化模型如下:
式中,C(x)、Ceq(x)分別為非線性函數(shù),其余參數(shù)意義同式(1)。
fmincon函數(shù)的調用格式為:
其中,nonlcon為非線性約束條件包括C(x)和Ceq(x),其余參數(shù)意義同式(6)。
對于大量的工程設計方案要評價其優(yōu)劣,往往需要同時考慮多個目標。如在機械加工中,往往要求機械加工成本最低、生產率最高和刀具壽命最長。顯然,這樣的問題就屬于多目標優(yōu)化問題。多目標優(yōu)化問題的求解方法很多,其中一種常用的方法就是將多目標優(yōu)化問題重新構造一個函數(shù),即評價函數(shù),從而將多目標優(yōu)化問題轉化為求評價函數(shù)的單目標優(yōu)化問題。這類方法主要有:主要目標法、線性加權和法、理想點法和極大極小法等。另一種是將多目標優(yōu)化問題轉化為一系列單目標優(yōu)化問題來求解,這一類主要有分層序列法。在MATLAB中常用fminimax函數(shù)求解最大最小化問題,用fgoalattain函數(shù)求解多目標達到問題。
最大最小化問題模型如下:
式中,參數(shù)意義同式(8)。
fminimax函數(shù)的調用格式為:
其中,maxfval為在最優(yōu)解處目標函數(shù)中最大目標函數(shù)的函數(shù)值,其余參數(shù)意義同式(9)。
多目標達到問題模型如下:
式中,goal變量為目標函數(shù)的目標值,weight變量為權重用于控制低于或超過fgoalattain函數(shù)指定目標的相對程度,其余參數(shù)意義同式(8)。
fgoalattain函數(shù)的調用格式為:
其中,attainfactor是目標達到情況,當attainfactor≥0時,目標達到值沒有溢出;當attainfactor<0時,目標達到值有溢出,其余參數(shù)意義同式(9)。
在礦用高強度圓環(huán)鏈材料力學性能的安標檢驗檢測工作中,需要設計一對能承受350t(約3500 kN)拉力的實驗夾具來連接拉力機和礦用高強度圓環(huán)鏈夾具。已知夾具的材料為45鋼板材,屈服強度σs為355MPa,取安全系數(shù)s為1.2,要求設計的夾具質量最?。ɑ蝮w積最?。?。根據(jù)設計要求,夾具上表面的尺寸及受力情況如圖1所示。
圖1 夾具表面尺寸及受力示意
通過分析,設夾具的設計變量為L、R(Δr=R-r)以及板材的厚度h,設計目標為minV(L,R,h):
根據(jù)設計準則得如下約束條件:
(1)對于V形槽面,夾具受力面在受力時不能被壓潰:
(2)對于圓孔面,夾具受力面在受力時不能被壓潰:
(3)如圖1所示,Δr處截面積最小,最易拉裂,為此需滿足:
(4)由圖1可知在V形槽面的L截面處存在最大彎曲應力,按照設計要求夾具計算彎曲應力應低于屈服強度(忽略應力集中影響):
綜合上述,約束條件化簡后優(yōu)化數(shù)學模型為:
(1)編寫目標函數(shù)M文件myfun.m,其中L=x(1),R=x(3),h=x(3)
(2)編寫約束函數(shù)M文件mycon.m
(3)編寫運行程序M文件my.m
運行my.m文件,結果如下:
在機械設計中引入優(yōu)化設計方法不僅能使設計的機械零件滿足性能要求,還能使其在某些特定方面達到最優(yōu)。利用MATLAB優(yōu)化工具箱求解機械優(yōu)化設計問題不僅避免了傳統(tǒng)的設計方法中人工試湊、分析比較過程中的繁雜與重復,而且編程簡單、結果可靠。在上述實例中,利用MATLAB軟件中fmincon函數(shù)求解夾具設計問題,最終設計的夾具要比采用傳統(tǒng)設計方法設計的質量輕、成本低,并且設計效率高。
[1]孫靖民.機械優(yōu)化設計[M].北京:機械工業(yè)出版社,2003.
[2]劉鶴松,姜 晶.基于MATLAB算法的機械優(yōu)化設計[J].煤礦機械,2004(11):11-12.
[3]唐 健,劉 浩.從線性規(guī)劃談一維下料[J].南京工程學院學報(自然科學版),2005,3(3):1-5.
[4]王連杰.基于線性規(guī)劃的一維優(yōu)化下料系統(tǒng)研究與開發(fā)[D].大連:大連理工大學,2003.
[5]張春玲,崔耀東.一維優(yōu)化下料問題[J].桂林工學院學報,2004,24(1):103-106.
[6]曹衛(wèi)華,郭 正.最優(yōu)化方法及MATLAB的實現(xiàn)[M].北京:化學工業(yè)出版社,2005.
[7]黃敬賢,張 杰.解彈性接觸問題的二次規(guī)劃法[J].機械設計,1988(1):1-6.
[8]孫惠學.二次規(guī)劃法求解軸對稱組合模具接觸強度[J].太原重型機械學院學報,1993,14(1):79-84.
[9]濮良貴,紀名剛.機械設計[M].北京:高等教育出版社,2001.
2012-02-24)
曾懷靈(1987-),男,湖南永州人,碩士研究生,主要從事機電液方向的研究與設計工作。