趙轉(zhuǎn)哲,劉永明,張 振,魯月林,何慧娟
(安徽工程大學(xué) 機械工程學(xué)院,安徽 蕪湖 241000)
“機械優(yōu)化設(shè)計”課程是安徽工程大學(xué)機械設(shè)計制造及其自動化、機械電子工程、車輛工程、機器人工程、測控技術(shù)及儀器等多個機械類專業(yè)的學(xué)科基礎(chǔ)課,課程目標(biāo)主要是將最優(yōu)化原理和計算技術(shù)應(yīng)用于復(fù)雜機械設(shè)計領(lǐng)域,為工程設(shè)計提供一種重要的科學(xué)設(shè)計方法,培養(yǎng)學(xué)生的創(chuàng)新意識和解決工程實際問題的能力。然而,在長期的教學(xué)過程中一直存在著教師封閉式教學(xué)、理論脫離實際、學(xué)生學(xué)習(xí)理解困難、積極性不高、教學(xué)效果差、創(chuàng)新能力不足等[1]局限性,非常不利于該課程的課程目標(biāo)達(dá)成,難以滿足工程教育認(rèn)證的要求。
人工智能優(yōu)化算法在各個工程領(lǐng)域中的應(yīng)用越來越深入,如尚洪彬等[2]將混合蛙跳算法(shuffled frog leaping algorithm, SFLA)應(yīng)用于自壓微灌管網(wǎng)系統(tǒng)優(yōu)化布置與管徑選擇設(shè)計,大大節(jié)省了工程投資造價;李達(dá)等[3]將粒子群算法用于二次再熱機組主蒸汽溫度控制,實現(xiàn)了對串級控制系統(tǒng)主回路PID控制器參數(shù)的快速優(yōu)化;楊昆等[4]將遺傳算法應(yīng)用于凸輪軸生產(chǎn)線設(shè)備布局優(yōu)化;劉穎明等[5]將蟻獅算法應(yīng)用于風(fēng)電集群儲能容量配置的優(yōu)化過程。這些應(yīng)用均取得不錯的效果,這充分說明智能優(yōu)化算法的應(yīng)用前景廣闊,與各行業(yè)結(jié)合后必將賦能產(chǎn)業(yè)發(fā)展。能否將群智能優(yōu)化算法深度融合到“機械優(yōu)化設(shè)計”課程的教學(xué)之中,對于開闊學(xué)生視野、增加課堂教學(xué)的互動性以及培養(yǎng)學(xué)生創(chuàng)新能力、提高課程目標(biāo)的達(dá)成度至關(guān)重要。
基于此,本研究提出在本課程中的大作業(yè)環(huán)節(jié),通過引入群智能算法,使之智能優(yōu)化二級齒輪減速器的設(shè)計過程,全程計算機化,然后進(jìn)行傳統(tǒng)優(yōu)化理論與現(xiàn)代人工智能算法的對比,分析算法不足,引導(dǎo)學(xué)生提出改進(jìn)方案,從而培養(yǎng)學(xué)生的創(chuàng)新意識和思維方式,擴充學(xué)生的知識結(jié)構(gòu),為后續(xù)課程的學(xué)習(xí)以及進(jìn)一步解決機械領(lǐng)域復(fù)雜工程問題奠定堅實基礎(chǔ)。
課程大作業(yè)是機械類專業(yè)基礎(chǔ)課必須完成的內(nèi)容之一,一般是在學(xué)完課程時布置一個工程類題目,讓學(xué)生自行查閱資料,綜合運用所學(xué)知識去解決。機械優(yōu)化設(shè)計課程的大作業(yè)題目及要求如下:
斜齒圓柱齒輪減速器(二級)的結(jié)構(gòu)如圖1所示。已知條件:高速軸輸入功率P=6.2 kW,高速軸轉(zhuǎn)速n=1 450 r/min,總傳動比i=31.5,齒輪的齒寬系數(shù)φd=0.4;大齒輪45#鋼,正火處理,硬度為(187~207)HBS,小齒輪45#鋼,調(diào)質(zhì)處理,硬度為(228~255)HBS??偣ぷ鲿r間不少于10年(每年4 000 h)[6-7]。
圖1 二級圓柱齒輪減速器簡圖
優(yōu)化目標(biāo):設(shè)計1個二級斜齒圓柱齒輪減速器,要求在保證強度、剛度、壽命等條件下體積最小(質(zhì)量最小或結(jié)構(gòu)最緊湊)。
雖然學(xué)生對工程具體問題感興趣,但是以前缺乏將具體工程問題抽象簡化的訓(xùn)練機會和過程,因此需要引導(dǎo)學(xué)生將上述內(nèi)容轉(zhuǎn)換成可以求解的數(shù)學(xué)理論模型:
二級斜齒圓柱齒輪減速器由2對齒輪組成,其齒數(shù)分別為Z1、Z2、Z3和Z4,其傳動比分別為i1=Z2/Z1和i2=Z4/Z3,2組傳動齒輪的法向模數(shù)分別為m1和m2;齒輪的螺旋角為β。由于設(shè)計前已經(jīng)給定總傳動比i,且有i=i1·i2,所以有i2=i/i1,而4個齒輪的齒數(shù)只要能確定2個即可,因此這個優(yōu)化設(shè)計問題的獨立設(shè)計變量為Z1、Z3、m1、m2、i1、β,共6個,作如下替換:X=[x1,x2,x3,x4,x5,x6]=[m1Z1m2Z3i1β]。
將減速器的體積最小作為優(yōu)化目標(biāo),經(jīng)分析可知,當(dāng)其他參數(shù)相同時,只要減速器的總中心距a最小,即可認(rèn)為體積(質(zhì)量)達(dá)到最小,結(jié)構(gòu)最緊湊,因此中心距可以作為本設(shè)計的目標(biāo)函數(shù),如下表示:
(1)
對于工程實際問題,存在著諸多約束條件,導(dǎo)致其求解過程不能完全照搬高等數(shù)學(xué)求極值的方法去做,這需要和學(xué)生講明白。因此,本例中的二級齒輪減速器設(shè)計的約束條件有:齒面接觸強度與齒根彎曲強度要求、高速級大齒輪與低速軸不發(fā)生干涉約束條件等,如下表示:
s.t.g1(X)=(cosx6)3-3.079×10(-6)x13x23x5≤0
g2(X)=x52(cosx6)3-1.701×10(-4)x32x42≤0
g3(X)=(cosx6)3-9.939×10(-5)(1+x5)x32x22≤0
g4(X)=x52(cosx6)2-1.706×10(-4)(31.5+x5)x32x42≤0
g5(X)=x5[2(x1+50)cosx6+x1x3x5]-x3x4(31.5+x5≤0
(2)
各參數(shù)的取值范圍如下:
01≤x1≤50,14≤x2≤22,0.1≤x3≤50,16≤x4≤22,5≤x5≤7,1≤x6≤20
群智能是一類分散自組織系統(tǒng)的集體智能行為的總稱[8],主要模擬自然界低能生物群體(鳥群、魚群等)在覓食過程或者生存時通過個體之間的協(xié)作(或競爭)的現(xiàn)象,或個體與環(huán)境之間存在交互作用,最終表征出智能行為??茖W(xué)家根據(jù)此而形成的群智能優(yōu)化算法,在求解工程問題時具有特別的優(yōu)勢,如不要求待求解問題的連續(xù)性、可導(dǎo)以及不依賴于梯度信息等優(yōu)勢,已成為目前解決最優(yōu)化問題的有利工具,其典型代表有粒子群算法[3]、遺傳算法[4]、混合蛙跳算法[2,9]等。
減速器設(shè)計也是一個具體的工程實際問題,傳統(tǒng)的設(shè)計方法采用人工手動試湊的方法,或者采用教材中的優(yōu)化理論——單純形或復(fù)合型法,不僅費時費力,得到的結(jié)果也可能不是最優(yōu)設(shè)計方案。所以,如何將群智能優(yōu)化算法應(yīng)用到本例中是實際教學(xué)中面臨的第2個問題。
一般而言,經(jīng)典的群智能算法的程序不需要非計算機專業(yè)的教師和學(xué)生在教學(xué)中自行編制,可以在MATLAB軟件中直接調(diào)用,只要根據(jù)工程實際問題,設(shè)計好適應(yīng)度函數(shù)即可,而適應(yīng)度函數(shù)是群智能算法能夠進(jìn)行優(yōu)化的基礎(chǔ),主要用來判斷個體性能優(yōu)劣,從而作為引導(dǎo)群體進(jìn)化的主要依據(jù)。通常是將目標(biāo)函數(shù)通過某種轉(zhuǎn)換而得到對應(yīng)的適應(yīng)度函數(shù)。
本例中,目標(biāo)函數(shù)雖然相對簡單,但是約束條件比較多,屬于非線性約束的優(yōu)化問題求解,所以采用課程教材中關(guān)于懲罰函數(shù)的構(gòu)造方法[7]進(jìn)行設(shè)計。本例中采用外點法,與約束條件一起構(gòu)成懲罰函數(shù)。用max(·,·)表示選取括號內(nèi)2個元素中較大的1個,則懲罰函數(shù)可寫成:
(3)
式中,gj(X)為式(2)中的不等式約束。
融合了懲罰函數(shù)和目標(biāo)函數(shù)的適應(yīng)度函數(shù)可寫成:
(4)
式中,γ為懲罰因子,與若選取足夠大(本例中γ=10000),無約束問題F(X,γF(x,γ)的解會接近于原問題f(X)的解,復(fù)雜的非線性約束優(yōu)化問題轉(zhuǎn)化為相對簡單的無約束問題。
本研究選取遺傳算法、粒子群算法和混合蛙跳算法作為群智能算法的代表進(jìn)行智能求解。遺傳算法和粒子群算法的原理不再贅述,在MATLAB軟件中直接調(diào)用對應(yīng)函數(shù)即可,以遺傳算法為例進(jìn)行說明,在命令行窗口輸入以下命令即可:
lb=[0.1 14 0.1 16 5 1];
ub=[50 22 50 22 8 30];
[X f_val]=ga(@myreducer,6,[],[],[],[],lb,ub)
注:lb和ub是減速器結(jié)構(gòu)中6個變量的下界和上界,X為求出的6個參數(shù)組成的向量,f_val為求出的減速器的中心距,ga為調(diào)用的遺傳算法函數(shù),括號中的第1個參數(shù)為調(diào)用的按照式(2)和式(4)所編寫的適用度函數(shù),第2個參數(shù)為變量的個數(shù),第3~6個參數(shù)在本例中無特殊定義,采用空的方括號代替,其他參數(shù)按照默認(rèn)值即可。
粒子群算法在MATLAB中調(diào)用particleswarm函數(shù)即可實現(xiàn),具體命令如下:
[X f_val]= particleswarm(@myreducer,6,lb,ub)。
混合蛙跳算法是模擬青蛙群體覓食特性而形成的群智能算法,同時了結(jié)合粒子群算法和遺傳算法的優(yōu)點而形成的一種仿生算法,具體原理請參考文獻(xiàn)[9]。本課題組據(jù)此采用MATLAB軟件自行編寫的應(yīng)用小程序,在講課時免費提供給學(xué)生使用,調(diào)用格式和粒子群算法類似,在此不再贅述。
為了對比群智能算法的求解精度,將常規(guī)手工計算和采用最優(yōu)化理論的復(fù)合型算法[10]的計算結(jié)果與其進(jìn)行對比,結(jié)果見表1。
由表1可以明顯看出,采用群智能算法的計算結(jié)果,其中心距a比常規(guī)手工計算和復(fù)合型算法的計算結(jié)果要小很多,其中粒子群算法的求解結(jié)果要比常規(guī)算法的結(jié)果減少26.49%,與題目要求更加符合,其根本原因是適應(yīng)度函數(shù)(目標(biāo)函數(shù))存在著多個局部最優(yōu)解,手工計算或者傳統(tǒng)優(yōu)化算法很難找到其全局最優(yōu)解,而群智能算法具有解決齒輪減速器優(yōu)化設(shè)計等工程實際問題的優(yōu)異特性。
表1 不同求解算法的結(jié)果對比
在實際設(shè)計中,齒輪齒數(shù)均為整數(shù),齒輪模數(shù)為非等間隔的有限離散值,傳動比為有限的整數(shù)比值,同時螺旋角精度過高會導(dǎo)致加工成本急劇上升,而上述的復(fù)合型算法和群智能算法,因其算法本身是針對連續(xù)性變量而提出的求解方法,因此求解結(jié)果需要進(jìn)行對應(yīng)的工程處理,才能供實際使用,其處理結(jié)果見表2。
表2 不同求解算法的結(jié)果對比
對比表1和表2發(fā)現(xiàn),即使是同一種算法,工程化處理后的計算結(jié)果與處理前相比,差別也比較大,如遺傳算法和粒子群算法,其工程化的結(jié)果比理論計算值都偏大,說明基于連續(xù)型變量的群智能求解算法,在解決工程實際問題時還存在著變量不適用的問題,需要進(jìn)一步的改進(jìn),其計算結(jié)果才能真正的實用,得到大家的認(rèn)可。
本質(zhì)上,二級齒輪減速器優(yōu)化設(shè)計問題屬于混合變量的優(yōu)化問題。因此,本研究針對此問題,以混合蛙跳算法為對象,提出如下2個方面的改進(jìn)[11]。
離散型變量以表格的形式進(jìn)行映射,以在表格中的位置來表示該變量的大小,同時根據(jù)其變量變化范圍,自動設(shè)置其表格大小,具體如下:
1)齒數(shù):對于齒數(shù)這類整數(shù)型變量,因為其間距固定為1,在進(jìn)行映射時,表格的第一個數(shù)即為變量的最小值,然后逐步加1,依此類推,直至變量的最大值。設(shè)第i個離散變量Xi取值范圍為Xi=[Xmin,Xmax],其工程處理方法用 MATLAB語言表示為
Xi=Xmin:1:Xmax
即此時的映射關(guān)系為Xi[n]=Xmin+(n-1)。
例如,Xi[3]表示表格中的第3個數(shù),其大小為Xmin+2。
2)模數(shù):對于模數(shù)這類非等間距的離散非整數(shù)變量,在進(jìn)行映射時,轉(zhuǎn)換成等間距的整數(shù)來表示,即將所有模數(shù)(28個)按照從小到大的順序、一個不漏地列成1個表格,模數(shù)的大小映射到表格的位置大小。設(shè)模數(shù)為Y,則此映射方式用MATLAB語言表示為
Y=[0.10 0.12 0.15 0.2 0.25 …25 32 40 50]
此時的映射關(guān)系為Y[n]=表中第n個數(shù)。
例如,Y[3]表示表中的第3個數(shù),即模數(shù)的大小為0.15;Y[10]表示表中的第10個數(shù),即模數(shù)的大小為0.8;
由混合蛙跳算法的原理[9]可知,最差青蛙Xw位置更新的本質(zhì)是:青蛙Xw所代表的解向量在連續(xù)解空間跟蹤其局部極值或全局極值的向量運算。其中,rand代表青蛙Xw從局部極值最優(yōu)青蛙Xb的信息繼承度,反映了對Xb信息的置信指標(biāo)。換句話說,表示Xw向Xb學(xué)習(xí)逼近的過程,其中rand表示學(xué)習(xí)的程度,將青蛙更新的公式可以用下式表示:
Xwnew=Xw+rand×(Xb-Xw)
(4)
當(dāng)rand=1rand()=1時,Xwnew=Xb,表示青蛙Xw移動至性能最優(yōu)的青蛙Xb位置;當(dāng)rand=0時,Xw=Xw,表示青蛙Xw在當(dāng)前位置并未移動。該過程可以通過如下的交叉操作實現(xiàn):
1)在Xb中隨機選擇一個交叉區(qū)域,其中rand決定著交叉區(qū)域的大小。
2)將Xb的交叉區(qū)域加到Xw的前面或后面,并刪除Xw中已在Xb的交叉區(qū)中出現(xiàn)過的數(shù)字。例如:
當(dāng)前位置Xw=3 7 1 8 9 2 4 6 5 10
局部極值Xb=9 5 10 4 3 2 6 7 8
rand=0.3.
假設(shè)隨機選擇的交叉區(qū)域為 4 3 2
交叉后為
4 3 2 7 1 8 9 6 5 10或7 1 8 9 6 5 10 4 3 2
可見,采用這種更新策略,實施方便,操作簡單,并且子串能夠繼承父串的有效模式,從而實現(xiàn)了從局部極值Xb獲得更新信息的目的。
將上述改進(jìn)策略與基本混合蛙跳算法結(jié)合,本課題組相關(guān)教師編制了對應(yīng)的應(yīng)用程序,見圖2。
圖2 改進(jìn)混合蛙跳算法的程序界面
該程序界面由三大部分組成,分別是設(shè)置、運行控制和顯示部分。其中,設(shè)置部分又包括優(yōu)化初始條件的設(shè)置、變量的取值范圍設(shè)置和算法的參數(shù)設(shè)置,運行控制由6個控制按鈕組成,分別完成程序的運行、運行結(jié)果的數(shù)據(jù)另存、幫助等主要功能,最后是顯示部分,能夠顯示算法的運行時間、進(jìn)化迭代曲線圖、優(yōu)化的結(jié)構(gòu)參數(shù)等必須提供的求解結(jié)果。
改進(jìn)SFLA算法的參數(shù)設(shè)置為青蛙群規(guī)模F=300,子群數(shù)mp=20,子群進(jìn)化代數(shù)Lmax=30,全局進(jìn)化代數(shù)Gmax=50,其他參數(shù)采用默認(rèn)值即可。采用上述程序?qū)Ρ纠龁栴}進(jìn)行求解。為了克服群智能算法結(jié)果的偶然性,本程序獨立運行20次,結(jié)果見表3。
表3 改進(jìn)混合蛙跳算法的求解結(jié)果統(tǒng)計
由表3可以看出,第一,采用改進(jìn)后的混合蛙跳算法在二級齒輪減速器結(jié)構(gòu)優(yōu)化設(shè)計的過程中,不需要人工干預(yù)進(jìn)行圓整處理,程序直接輸出符合工程應(yīng)用標(biāo)準(zhǔn)的求解結(jié)果,實用性強;第二,混合蛙跳算法作為群智能算法的一種典型代表,由于算法本質(zhì)上屬于隨機搜索算法(個體屬性隨機生成,每次運行不完全相同),在有限的迭代次數(shù)下,其結(jié)果有可能不完全一致,增大全局迭代次數(shù)能較好地減少不同結(jié)果的數(shù)量,但會增加程序的運行時間。所以,一個合適的迭代次數(shù)需要結(jié)合實際需求來綜合考慮,在實際應(yīng)用過程中通過重復(fù)多次計算進(jìn)行克服;第三:從表中的統(tǒng)計情況來看,算法求出的結(jié)果有4種,其中結(jié)果2最符合結(jié)構(gòu)緊湊、體積最小和中心距最小的要求,但是其出現(xiàn)的次數(shù)只有3次(15%),而結(jié)果1有13次(65%),結(jié)果3和結(jié)果4各有2次(均為10%),所以,可以選擇結(jié)果1作為改進(jìn)混合蛙跳算法對此二級齒輪減速器的智能優(yōu)化求解結(jié)果。
(1)群智能算法作為人工智能計算的一種典型算法,可以應(yīng)用在傳統(tǒng)的 “機械優(yōu)化設(shè)計”課程的教學(xué)過程中,與傳統(tǒng)的優(yōu)化理論相結(jié)合,可以開闊學(xué)生的視野,進(jìn)行思維創(chuàng)新訓(xùn)練,為培養(yǎng)學(xué)生解決復(fù)雜機械工程問題提供技術(shù)支持;
(2)在懲罰函數(shù)的設(shè)計過程中,為了教學(xué)方便,選了最為簡單的外點法構(gòu)造,在后續(xù)的教學(xué)過程中,可以根據(jù)學(xué)生水平不同,分別采用內(nèi)點法和混合法構(gòu)造懲罰函數(shù)作為群智能算法的適應(yīng)度函數(shù)的重要組成部分;
(3)本研究針對混合蛙跳算法的改進(jìn)措施,可以推廣到其他群智能優(yōu)化算法中,也可以為其他混合變量型的工程實際問題提供解題思路。