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