曾懷靈,賀建國
(長沙礦山研究院有限責任公司, 湖南長沙 410012)
MATLAB在機械優化設計中的應用
曾懷靈,賀建國
(長沙礦山研究院有限責任公司, 湖南長沙 410012)
介紹了MATLAB優化工具箱中各種優化模型及其在機械優化設計中的應用,并給出了優化實例和結果。采用MATLAB優化工具箱來求解機械優化設計中的問題,不僅提高了設計效率,而且編程簡單、結果可靠。
機械優化設計;MATLAB;優化模型;夾具設計
機械產品的設計,一般需要經過調查分析、方案擬定、技術設計、零件工作圖繪制等環節[1]。傳統的設計方法基本上是采取人工試湊和定性分析比較等粗略方法。而機械優化設計是以數學規劃為理論基礎,以計算機為工具,尋求最佳機械設計方案的現代設計方法,取代了傳統的可行性設計[2]。目前,優化設計已有很多成熟的優化方法,都有各自的特點和適用范圍。在MATLAB優化工具箱中就有很多實用的優化函數,利用這些優化函數去解決機械優化設計中的問題不僅方便實用,而且編程簡單易懂。
MATLAB(Matrix Laboratory)是由美國Mathworks公司開發的集數值計算功能、符號運算功能和圖形處理功能于一身的超級科學計算語言。MATLAB有多個工具箱,其中優化工具箱(Optimization Toolbox)可以為線性、非線性最小化、非線性最小二乘、二次規劃、方程求解、多目標優化等問題提供可靠的求解方法。
線性規劃在機械設計中應用非常少,主要是因其要求目標函數、約束條件都是線性的,而機械設計問題一般都是非線性的。目前,線性規劃在一維下料問題中應用比較多,如文獻[3]~[5]。求解線性規劃問題常用的方法有單純形法、大M法等。在MATLAB中由linprog函數來求解線性規劃問題。線性規劃模型如下:

式中,f、b、beq、lb、ub、x為向量,A、Aeq為矩陣。
linprog函數調用格式為:

其中,x為線性規劃的最優解;
fval為目標函數在最優解處的函數值(可省略);
exitflag為迭代終止條件(可省略),為正數時,表示目標函數收斂于解x處;為負數時,表示目標函數不收斂;為零,則表示已經達到函數評價或迭代的最大次數;
output為優化詳細信息輸出(可省略);
lambda為求得最優解的拉格朗日乘子(可省略),反應了各個約束條件在求解最優值的有效性;
f為目標函數;
x0為迭代初值(可省略);
options設置優化項目參數(可省略)。
通常把約束條件全為線性的而目標函數是二次函數的最優化問題稱為二次規劃[6]。二次規劃在機械設計中的應用比較少,在文獻[7]~[8]中利用二次規劃法求解接觸、有限元問題。在MATLAB中求解二次規劃問題可用quadprog函數。二次規劃模型如下:

式中,H為對稱矩陣,其余參數意義同式(1)。
quadprog函數調用格式為:


其中參數意義同式(2)。
無約束優化有很多種算法,如最速下降法、Newton法、擬Newton法、共軛梯度法、信賴域法等。其中,擬Newton法利用了Newton法的二次收斂性使得可靠性更高,同時這種算法收斂速度也很快,所以在目前應用得相當廣泛。而擬Newton法中應用比較多的主要有BFGS算法和DFP變尺度法。在MATLAB優化工具箱中求解無約束優化問題采用fminbnd函數、fminunc函數和fminsearch函數,其中默認的算法就是BFGS算法。fminunc函數和fminbnd函數要求目標函數必須連續,而函數fminsearch常用來處理不連續的函數。fminbnd函數可以求解區間[x1,x2]內單變量非線性函數的最小值。
無約束優化模型如下:
minf(x)
fminbnd函數調用格式為:

其中,x1、x2為求解區間上下界,其余參數意義同式(2)。
fminunc函數調用格式為:

其中,grad為目標函數在最優解處的梯度值,hessian為目標函數在最優解處的hessian矩陣值,其余參數意義同式(2)。
fminsearch函數調用格式為:

其中參數意義同式(2)。
在機械優化設計中大多數問題是有約束優化問題。為了保證設計的機械零件安全可靠,設計時必須確定相應的設計準則,而這些設計準則就成了目標函數的約束條件[9]。這些設計準則包括強度準則、剛度準則、壽命準則、振動穩定性準則和可靠性準則,大多數是非線性的。對于非線性約束優化問題有很多解法,早期都是通過構造懲罰函數將有約束優化轉換為無約束優化問題求解,而現在已經被更為有效的基于K-T方程解的方法所取代。在MATLAB優化工具箱中采用序列二次規劃法(SQP)求解約束優化問題,采用的函數為fmincon函數。
有約束優化模型如下:

式中,C(x)、Ceq(x)分別為非線性函數,其余參數意義同式(1)。
fmincon函數的調用格式為:

其中,nonlcon為非線性約束條件包括C(x)和Ceq(x),其余參數意義同式(6)。
對于大量的工程設計方案要評價其優劣,往往需要同時考慮多個目標。如在機械加工中,往往要求機械加工成本最低、生產率最高和刀具壽命最長。顯然,這樣的問題就屬于多目標優化問題。多目標優化問題的求解方法很多,其中一種常用的方法就是將多目標優化問題重新構造一個函數,即評價函數,從而將多目標優化問題轉化為求評價函數的單目標優化問題。這類方法主要有:主要目標法、線性加權和法、理想點法和極大極小法等。另一種是將多目標優化問題轉化為一系列單目標優化問題來求解,這一類主要有分層序列法。在MATLAB中常用fminimax函數求解最大最小化問題,用fgoalattain函數求解多目標達到問題。
最大最小化問題模型如下:

式中,參數意義同式(8)。
fminimax函數的調用格式為:

其中,maxfval為在最優解處目標函數中最大目標函數的函數值,其余參數意義同式(9)。
多目標達到問題模型如下:

式中,goal變量為目標函數的目標值,weight變量為權重用于控制低于或超過fgoalattain函數指定目標的相對程度,其余參數意義同式(8)。
fgoalattain函數的調用格式為:

其中,attainfactor是目標達到情況,當attainfactor≥0時,目標達到值沒有溢出;當attainfactor<0時,目標達到值有溢出,其余參數意義同式(9)。
在礦用高強度圓環鏈材料力學性能的安標檢驗檢測工作中,需要設計一對能承受350t(約3500 kN)拉力的實驗夾具來連接拉力機和礦用高強度圓環鏈夾具。已知夾具的材料為45鋼板材,屈服強度σs為355MPa,取安全系數s為1.2,要求設計的夾具質量最小(或體積最小)。根據設計要求,夾具上表面的尺寸及受力情況如圖1所示。

圖1 夾具表面尺寸及受力示意
通過分析,設夾具的設計變量為L、R(Δr=R-r)以及板材的厚度h,設計目標為minV(L,R,h):

根據設計準則得如下約束條件:
(1)對于V形槽面,夾具受力面在受力時不能被壓潰:

(2)對于圓孔面,夾具受力面在受力時不能被壓潰:
(3)如圖1所示,Δr處截面積最小,最易拉裂,為此需滿足:

(4)由圖1可知在V形槽面的L截面處存在最大彎曲應力,按照設計要求夾具計算彎曲應力應低于屈服強度(忽略應力集中影響):

綜合上述,約束條件化簡后優化數學模型為:

(1)編寫目標函數M文件myfun.m,其中L=x(1),R=x(3),h=x(3)


(2)編寫約束函數M文件mycon.m

(3)編寫運行程序M文件my.m

運行my.m文件,結果如下:

在機械設計中引入優化設計方法不僅能使設計的機械零件滿足性能要求,還能使其在某些特定方面達到最優。利用MATLAB優化工具箱求解機械優化設計問題不僅避免了傳統的設計方法中人工試湊、分析比較過程中的繁雜與重復,而且編程簡單、結果可靠。在上述實例中,利用MATLAB軟件中fmincon函數求解夾具設計問題,最終設計的夾具要比采用傳統設計方法設計的質量輕、成本低,并且設計效率高。
[1]孫靖民.機械優化設計[M].北京:機械工業出版社,2003.
[2]劉鶴松,姜 晶.基于MATLAB算法的機械優化設計[J].煤礦機械,2004(11):11-12.
[3]唐 健,劉 浩.從線性規劃談一維下料[J].南京工程學院學報(自然科學版),2005,3(3):1-5.
[4]王連杰.基于線性規劃的一維優化下料系統研究與開發[D].大連:大連理工大學,2003.
[5]張春玲,崔耀東.一維優化下料問題[J].桂林工學院學報,2004,24(1):103-106.
[6]曹衛華,郭 正.最優化方法及MATLAB的實現[M].北京:化學工業出版社,2005.
[7]黃敬賢,張 杰.解彈性接觸問題的二次規劃法[J].機械設計,1988(1):1-6.
[8]孫惠學.二次規劃法求解軸對稱組合模具接觸強度[J].太原重型機械學院學報,1993,14(1):79-84.
[9]濮良貴,紀名剛.機械設計[M].北京:高等教育出版社,2001.
2012-02-24)
曾懷靈(1987-),男,湖南永州人,碩士研究生,主要從事機電液方向的研究與設計工作。