趙轉哲,劉永明,張 振,魯月林,何慧娟
(安徽工程大學 機械工程學院,安徽 蕪湖 241000)
“機械優化設計”課程是安徽工程大學機械設計制造及其自動化、機械電子工程、車輛工程、機器人工程、測控技術及儀器等多個機械類專業的學科基礎課,課程目標主要是將最優化原理和計算技術應用于復雜機械設計領域,為工程設計提供一種重要的科學設計方法,培養學生的創新意識和解決工程實際問題的能力。然而,在長期的教學過程中一直存在著教師封閉式教學、理論脫離實際、學生學習理解困難、積極性不高、教學效果差、創新能力不足等[1]局限性,非常不利于該課程的課程目標達成,難以滿足工程教育認證的要求。
人工智能優化算法在各個工程領域中的應用越來越深入,如尚洪彬等[2]將混合蛙跳算法(shuffled frog leaping algorithm, SFLA)應用于自壓微灌管網系統優化布置與管徑選擇設計,大大節省了工程投資造價;李達等[3]將粒子群算法用于二次再熱機組主蒸汽溫度控制,實現了對串級控制系統主回路PID控制器參數的快速優化;楊昆等[4]將遺傳算法應用于凸輪軸生產線設備布局優化;劉穎明等[5]將蟻獅算法應用于風電集群儲能容量配置的優化過程。這些應用均取得不錯的效果,這充分說明智能優化算法的應用前景廣闊,與各行業結合后必將賦能產業發展。能否將群智能優化算法深度融合到“機械優化設計”課程的教學之中,對于開闊學生視野、增加課堂教學的互動性以及培養學生創新能力、提高課程目標的達成度至關重要。
基于此,本研究提出在本課程中的大作業環節,通過引入群智能算法,使之智能優化二級齒輪減速器的設計過程,全程計算機化,然后進行傳統優化理論與現代人工智能算法的對比,分析算法不足,引導學生提出改進方案,從而培養學生的創新意識和思維方式,擴充學生的知識結構,為后續課程的學習以及進一步解決機械領域復雜工程問題奠定堅實基礎。
課程大作業是機械類專業基礎課必須完成的內容之一,一般是在學完課程時布置一個工程類題目,讓學生自行查閱資料,綜合運用所學知識去解決。機械優化設計課程的大作業題目及要求如下:
斜齒圓柱齒輪減速器(二級)的結構如圖1所示。已知條件:高速軸輸入功率P=6.2 kW,高速軸轉速n=1 450 r/min,總傳動比i=31.5,齒輪的齒寬系數φd=0.4;大齒輪45#鋼,正火處理,硬度為(187~207)HBS,小齒輪45#鋼,調質處理,硬度為(228~255)HBS。總工作時間不少于10年(每年4 000 h)[6-7]。

圖1 二級圓柱齒輪減速器簡圖
優化目標:設計1個二級斜齒圓柱齒輪減速器,要求在保證強度、剛度、壽命等條件下體積最小(質量最小或結構最緊湊)。
雖然學生對工程具體問題感興趣,但是以前缺乏將具體工程問題抽象簡化的訓練機會和過程,因此需要引導學生將上述內容轉換成可以求解的數學理論模型:
二級斜齒圓柱齒輪減速器由2對齒輪組成,其齒數分別為Z1、Z2、Z3和Z4,其傳動比分別為i1=Z2/Z1和i2=Z4/Z3,2組傳動齒輪的法向模數分別為m1和m2;齒輪的螺旋角為β。由于設計前已經給定總傳動比i,且有i=i1·i2,所以有i2=i/i1,而4個齒輪的齒數只要能確定2個即可,因此這個優化設計問題的獨立設計變量為Z1、Z3、m1、m2、i1、β,共6個,作如下替換:X=[x1,x2,x3,x4,x5,x6]=[m1Z1m2Z3i1β]。
將減速器的體積最小作為優化目標,經分析可知,當其他參數相同時,只要減速器的總中心距a最小,即可認為體積(質量)達到最小,結構最緊湊,因此中心距可以作為本設計的目標函數,如下表示:
(1)
對于工程實際問題,存在著諸多約束條件,導致其求解過程不能完全照搬高等數學求極值的方法去做,這需要和學生講明白。因此,本例中的二級齒輪減速器設計的約束條件有:齒面接觸強度與齒根彎曲強度要求、高速級大齒輪與低速軸不發生干涉約束條件等,如下表示:
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)
各參數的取值范圍如下:
01≤x1≤50,14≤x2≤22,0.1≤x3≤50,16≤x4≤22,5≤x5≤7,1≤x6≤20
群智能是一類分散自組織系統的集體智能行為的總稱[8],主要模擬自然界低能生物群體(鳥群、魚群等)在覓食過程或者生存時通過個體之間的協作(或競爭)的現象,或個體與環境之間存在交互作用,最終表征出智能行為。科學家根據此而形成的群智能優化算法,在求解工程問題時具有特別的優勢,如不要求待求解問題的連續性、可導以及不依賴于梯度信息等優勢,已成為目前解決最優化問題的有利工具,其典型代表有粒子群算法[3]、遺傳算法[4]、混合蛙跳算法[2,9]等。
減速器設計也是一個具體的工程實際問題,傳統的設計方法采用人工手動試湊的方法,或者采用教材中的優化理論——單純形或復合型法,不僅費時費力,得到的結果也可能不是最優設計方案。所以,如何將群智能優化算法應用到本例中是實際教學中面臨的第2個問題。
一般而言,經典的群智能算法的程序不需要非計算機專業的教師和學生在教學中自行編制,可以在MATLAB軟件中直接調用,只要根據工程實際問題,設計好適應度函數即可,而適應度函數是群智能算法能夠進行優化的基礎,主要用來判斷個體性能優劣,從而作為引導群體進化的主要依據。通常是將目標函數通過某種轉換而得到對應的適應度函數。
本例中,目標函數雖然相對簡單,但是約束條件比較多,屬于非線性約束的優化問題求解,所以采用課程教材中關于懲罰函數的構造方法[7]進行設計。本例中采用外點法,與約束條件一起構成懲罰函數。用max(·,·)表示選取括號內2個元素中較大的1個,則懲罰函數可寫成:
(3)
式中,gj(X)為式(2)中的不等式約束。
融合了懲罰函數和目標函數的適應度函數可寫成:
(4)
式中,γ為懲罰因子,與若選取足夠大(本例中γ=10000),無約束問題F(X,γF(x,γ)的解會接近于原問題f(X)的解,復雜的非線性約束優化問題轉化為相對簡單的無約束問題。
本研究選取遺傳算法、粒子群算法和混合蛙跳算法作為群智能算法的代表進行智能求解。遺傳算法和粒子群算法的原理不再贅述,在MATLAB軟件中直接調用對應函數即可,以遺傳算法為例進行說明,在命令行窗口輸入以下命令即可:
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是減速器結構中6個變量的下界和上界,X為求出的6個參數組成的向量,f_val為求出的減速器的中心距,ga為調用的遺傳算法函數,括號中的第1個參數為調用的按照式(2)和式(4)所編寫的適用度函數,第2個參數為變量的個數,第3~6個參數在本例中無特殊定義,采用空的方括號代替,其他參數按照默認值即可。
粒子群算法在MATLAB中調用particleswarm函數即可實現,具體命令如下:
[X f_val]= particleswarm(@myreducer,6,lb,ub)。
混合蛙跳算法是模擬青蛙群體覓食特性而形成的群智能算法,同時了結合粒子群算法和遺傳算法的優點而形成的一種仿生算法,具體原理請參考文獻[9]。本課題組據此采用MATLAB軟件自行編寫的應用小程序,在講課時免費提供給學生使用,調用格式和粒子群算法類似,在此不再贅述。
為了對比群智能算法的求解精度,將常規手工計算和采用最優化理論的復合型算法[10]的計算結果與其進行對比,結果見表1。
由表1可以明顯看出,采用群智能算法的計算結果,其中心距a比常規手工計算和復合型算法的計算結果要小很多,其中粒子群算法的求解結果要比常規算法的結果減少26.49%,與題目要求更加符合,其根本原因是適應度函數(目標函數)存在著多個局部最優解,手工計算或者傳統優化算法很難找到其全局最優解,而群智能算法具有解決齒輪減速器優化設計等工程實際問題的優異特性。

表1 不同求解算法的結果對比
在實際設計中,齒輪齒數均為整數,齒輪模數為非等間隔的有限離散值,傳動比為有限的整數比值,同時螺旋角精度過高會導致加工成本急劇上升,而上述的復合型算法和群智能算法,因其算法本身是針對連續性變量而提出的求解方法,因此求解結果需要進行對應的工程處理,才能供實際使用,其處理結果見表2。

表2 不同求解算法的結果對比
對比表1和表2發現,即使是同一種算法,工程化處理后的計算結果與處理前相比,差別也比較大,如遺傳算法和粒子群算法,其工程化的結果比理論計算值都偏大,說明基于連續型變量的群智能求解算法,在解決工程實際問題時還存在著變量不適用的問題,需要進一步的改進,其計算結果才能真正的實用,得到大家的認可。
本質上,二級齒輪減速器優化設計問題屬于混合變量的優化問題。因此,本研究針對此問題,以混合蛙跳算法為對象,提出如下2個方面的改進[11]。
離散型變量以表格的形式進行映射,以在表格中的位置來表示該變量的大小,同時根據其變量變化范圍,自動設置其表格大小,具體如下:
1)齒數:對于齒數這類整數型變量,因為其間距固定為1,在進行映射時,表格的第一個數即為變量的最小值,然后逐步加1,依此類推,直至變量的最大值。設第i個離散變量Xi取值范圍為Xi=[Xmin,Xmax],其工程處理方法用 MATLAB語言表示為
Xi=Xmin:1:Xmax
即此時的映射關系為Xi[n]=Xmin+(n-1)。
例如,Xi[3]表示表格中的第3個數,其大小為Xmin+2。
2)模數:對于模數這類非等間距的離散非整數變量,在進行映射時,轉換成等間距的整數來表示,即將所有模數(28個)按照從小到大的順序、一個不漏地列成1個表格,模數的大小映射到表格的位置大小。設模數為Y,則此映射方式用MATLAB語言表示為
Y=[0.10 0.12 0.15 0.2 0.25 …25 32 40 50]
此時的映射關系為Y[n]=表中第n個數。
例如,Y[3]表示表中的第3個數,即模數的大小為0.15;Y[10]表示表中的第10個數,即模數的大小為0.8;
由混合蛙跳算法的原理[9]可知,最差青蛙Xw位置更新的本質是:青蛙Xw所代表的解向量在連續解空間跟蹤其局部極值或全局極值的向量運算。其中,rand代表青蛙Xw從局部極值最優青蛙Xb的信息繼承度,反映了對Xb信息的置信指標。換句話說,表示Xw向Xb學習逼近的過程,其中rand表示學習的程度,將青蛙更新的公式可以用下式表示:
Xwnew=Xw+rand×(Xb-Xw)
(4)
當rand=1rand()=1時,Xwnew=Xb,表示青蛙Xw移動至性能最優的青蛙Xb位置;當rand=0時,Xw=Xw,表示青蛙Xw在當前位置并未移動。該過程可以通過如下的交叉操作實現:
1)在Xb中隨機選擇一個交叉區域,其中rand決定著交叉區域的大小。
2)將Xb的交叉區域加到Xw的前面或后面,并刪除Xw中已在Xb的交叉區中出現過的數字。例如:
當前位置Xw=3 7 1 8 9 2 4 6 5 10
局部極值Xb=9 5 10 4 3 2 6 7 8
rand=0.3.
假設隨機選擇的交叉區域為 4 3 2
交叉后為
4 3 2 7 1 8 9 6 5 10或7 1 8 9 6 5 10 4 3 2
可見,采用這種更新策略,實施方便,操作簡單,并且子串能夠繼承父串的有效模式,從而實現了從局部極值Xb獲得更新信息的目的。
將上述改進策略與基本混合蛙跳算法結合,本課題組相關教師編制了對應的應用程序,見圖2。

圖2 改進混合蛙跳算法的程序界面
該程序界面由三大部分組成,分別是設置、運行控制和顯示部分。其中,設置部分又包括優化初始條件的設置、變量的取值范圍設置和算法的參數設置,運行控制由6個控制按鈕組成,分別完成程序的運行、運行結果的數據另存、幫助等主要功能,最后是顯示部分,能夠顯示算法的運行時間、進化迭代曲線圖、優化的結構參數等必須提供的求解結果。
改進SFLA算法的參數設置為青蛙群規模F=300,子群數mp=20,子群進化代數Lmax=30,全局進化代數Gmax=50,其他參數采用默認值即可。采用上述程序對本例問題進行求解。為了克服群智能算法結果的偶然性,本程序獨立運行20次,結果見表3。

表3 改進混合蛙跳算法的求解結果統計
由表3可以看出,第一,采用改進后的混合蛙跳算法在二級齒輪減速器結構優化設計的過程中,不需要人工干預進行圓整處理,程序直接輸出符合工程應用標準的求解結果,實用性強;第二,混合蛙跳算法作為群智能算法的一種典型代表,由于算法本質上屬于隨機搜索算法(個體屬性隨機生成,每次運行不完全相同),在有限的迭代次數下,其結果有可能不完全一致,增大全局迭代次數能較好地減少不同結果的數量,但會增加程序的運行時間。所以,一個合適的迭代次數需要結合實際需求來綜合考慮,在實際應用過程中通過重復多次計算進行克服;第三:從表中的統計情況來看,算法求出的結果有4種,其中結果2最符合結構緊湊、體積最小和中心距最小的要求,但是其出現的次數只有3次(15%),而結果1有13次(65%),結果3和結果4各有2次(均為10%),所以,可以選擇結果1作為改進混合蛙跳算法對此二級齒輪減速器的智能優化求解結果。
(1)群智能算法作為人工智能計算的一種典型算法,可以應用在傳統的 “機械優化設計”課程的教學過程中,與傳統的優化理論相結合,可以開闊學生的視野,進行思維創新訓練,為培養學生解決復雜機械工程問題提供技術支持;
(2)在懲罰函數的設計過程中,為了教學方便,選了最為簡單的外點法構造,在后續的教學過程中,可以根據學生水平不同,分別采用內點法和混合法構造懲罰函數作為群智能算法的適應度函數的重要組成部分;
(3)本研究針對混合蛙跳算法的改進措施,可以推廣到其他群智能優化算法中,也可以為其他混合變量型的工程實際問題提供解題思路。