楊 洋, 李 明, 顧京君, 王 宸, 韋慶玥
(上海大學(xué) 機(jī)電工程與自動化學(xué)院 智能制造及機(jī)器人重點實驗室, 上海 200072)
根據(jù)相關(guān)幾何誤差評定標(biāo)準(zhǔn)[1,2],空間直線度的評定方法主要有兩端點連線法,最小二乘法(least square method,LSM)和最小區(qū)域法,其中,前兩種方法主要多應(yīng)用于工程領(lǐng)域和三坐標(biāo)測量機(jī)中,雖然算法相對簡單易懂,但其評定結(jié)果并不精確,當(dāng)所需精度較高時需要由最小區(qū)域法進(jìn)行仲裁檢驗。而對于最小區(qū)域法,在相關(guān)標(biāo)準(zhǔn)中并沒有規(guī)定具體的判定方法,只是給出了幾何定義,因此,學(xué)者們對最小區(qū)域評定算法進(jìn)行了深入的研究。
在最小區(qū)域算法的研究過程中,最小六面體包絡(luò)法[3]、線性搜索算法[4]、線性規(guī)劃[5]、計算幾何[6]、凸殼理論[7]、半定規(guī)劃[8,9]、網(wǎng)格搜索算法[10]和數(shù)據(jù)包絡(luò)[11]等方法應(yīng)用到空間直線度評定中。以上方法雖然都在一定程度上提高了空間直線度的評定精度,但存在求解過程復(fù)雜且容易陷入局部最優(yōu)的問題,仍然難以滿足最小區(qū)域原則。智能優(yōu)化算法的不斷發(fā)展,為解決此類高維復(fù)雜非線性問題的求解提供了很好的方法。其中,遺傳算法(genetic algorithm,GA)[12]、粒子群算法(particle swarm optimization,PSO)[13]、人工免疫算法[14]和改進(jìn)人工魚群算法(least squares and artificial fish swarm algorithm,LA-AFSA)[15]等被應(yīng)用到直線度誤差評定過程,但是這些算法的計算結(jié)果與算法參數(shù)選擇關(guān)系很大,算法的精度和魯棒性仍可以繼續(xù)提高。
本文將教與學(xué)優(yōu)化算法[16](teaching learning based optimization,TLBO)應(yīng)用到空間直線度誤差評定中,該算法是一種新型的不依賴于參數(shù)選擇的群體智能優(yōu)化算法,其算法流程相對簡單,控制參數(shù)少,而且收斂速度快,精度較高,已被廣泛應(yīng)用于工程優(yōu)化領(lǐng)域[17,18]。同其他群智能優(yōu)化算法的缺點一樣,教與學(xué)算法在迭代后期收斂速度慢,容易陷入局部最優(yōu),因此為了進(jìn)一步提高TLBO的后期求解能力,提出將混合蛙跳算法(shuffled frog leaping algorithm,SFLA)與教與學(xué)算法進(jìn)行融合,設(shè)計了一種混合教與學(xué)算法(hybrid teaching-learning-based optimization,HTLBO),用以進(jìn)一步提高空間直線度的求解精度。
TLBO算法是Rao R V在2012年提出的一種群體性智能優(yōu)化算法,該算法控制參數(shù)很少,僅需設(shè)置種群規(guī)模、迭代次數(shù)、變量維度和控制變量上下限,通過模擬教師的教學(xué)與學(xué)生間的相互學(xué)習(xí)兩個階段從而達(dá)到尋優(yōu)的目的,基本TLBO算法流程如文獻(xiàn)[16]所述。對于基本TLBO算法,在教學(xué)過程中,班級中的所有學(xué)生向教師學(xué)習(xí),學(xué)生成績快速向教師靠攏,當(dāng)?shù)嬎氵M(jìn)行到后期時,導(dǎo)致種群多樣性較低,使算法陷入局部最優(yōu)[19],因此,借鑒SFLA的洗牌分組策略和局部更新策略[20,21],將其引入TLBO算法中,設(shè)計了一種HTLBO算法用以進(jìn)一步提高教與學(xué)算法全局和局部搜索能力。
采用種群分組和洗牌策略的目的是增強(qiáng)學(xué)生間的信息交流能力,通過建立新的小組和各組的老師,從而增加算法的全局搜索能力,避免算法早熟。首先定義種群分組策略:確定班級里小組數(shù)目m,每組的學(xué)生人數(shù)n,從而確定產(chǎn)生初始學(xué)生數(shù)目為F(F=m×n),計算每個學(xué)生的適應(yīng)度,將學(xué)生根據(jù)適應(yīng)度按優(yōu)劣進(jìn)行排序,并記錄下整個種群的適應(yīng)度值最優(yōu)的學(xué)生xt。按小組數(shù)目m將學(xué)生進(jìn)行分組,劃分準(zhǔn)則是將排名第1的學(xué)生放入第1個小組,排名第2的學(xué)生放入第2個小組,第m的學(xué)生放入第m個小組,然后再將第m+1的學(xué)生放入第1個小組,以此類推,第2m的學(xué)生放入第m個小組,其中,第q個小組的學(xué)生Yq表達(dá)式為:Yq=x(q+m(p-1)),p=1,…,n;q=1,…,m)。同時記錄全局最優(yōu)學(xué)生xt和組內(nèi)最優(yōu)學(xué)生xt,m。
洗牌策略則是當(dāng)每次迭代之后,將所有學(xué)生個體進(jìn)行重新混合,按照上述方式進(jìn)行重新排序、分組,進(jìn)一步迭代計算,直到滿足最大迭代次數(shù)或者達(dá)到計算精度為止。
(1)
(2)
(3)
HTLBO流程如下:
(1)參數(shù)初始化。設(shè)置初始化班級小組數(shù)目為m,小組學(xué)生數(shù)目為n,因此得到學(xué)生數(shù)量為F(F=m×n),問題的維度D,迭代次數(shù)W,變量上下限u、l,同時根據(jù)問題的不同建立目標(biāo)函數(shù)的數(shù)學(xué)模型,輸入實驗數(shù)據(jù),進(jìn)入步驟(2)。
(2)教學(xué)階段。按照2.1節(jié)所述的分組規(guī)則進(jìn)行分組,通過教學(xué)公式進(jìn)行教學(xué)更新,其中,教師為各組成績最優(yōu)者xt,m,并同時記錄班級最優(yōu)學(xué)員xt,組內(nèi)成績最差學(xué)員xw,進(jìn)入步驟(3)。
(3)局部更新階段。按照2.2節(jié)所述局部更新策略將最差學(xué)員xw再次進(jìn)行更新,進(jìn)入步驟(4)。
(4)學(xué)習(xí)階段。按TLBO算法學(xué)習(xí)階段進(jìn)行計算,并更新每個學(xué)生的成績,從而更新班級最優(yōu)生xt的成績和位置,進(jìn)入步驟(5)。
(5)判斷迭代過程或者計算精度是否滿足要求,如果滿足要求,則完成計算,此時,老師成績的適應(yīng)度值為所測數(shù)據(jù)點的空間直線度誤差;如果沒有,則通過洗牌策略重新進(jìn)行分組,返回步驟(2)。
圖1 空間直線度示意圖
空間直線度誤差本質(zhì)上是實際直線相對理想直線的偏差量,體現(xiàn)的是包容所有測點的最小理想圓柱,如圖1所示。因此,為了能夠準(zhǔn)確地計算出被測直線的空間直線度,首先通過空間直線的點向參數(shù)方程確立理想直線模型L,然后根據(jù)空間點到直線的距離公式,得到包容測點圓柱面里的最小圓柱半徑,該半徑的2倍(即圓柱直徑)就是所求空間直線度誤差,表達(dá)式如公式(4)所示[13]:
(4)
式中:(x0,y0,z0)為直線L上的某一定點;a,b,c分別為直線L在空間中X,Y,Z上的方向向量參數(shù);i,j,k分別為三個坐標(biāo)軸方向的單位向量;(xi,yi,zi)為測點集合;d為被測直線的空間直線度誤差。
由直線度誤差定義結(jié)合優(yōu)化算法相關(guān)概念可知,實質(zhì)上是求解未知參數(shù)(x0,y0,z0,a,b,c) 的問題,并且要滿足最小區(qū)域條件(f最小),因此目標(biāo)函數(shù)可以定義為公式(5)所示,即轉(zhuǎn)化為極大值極小化問題。
f=F(x0,y0,z0,a,b,c)=min(maxd)
(5)
為了驗證HTLBO算法的計算優(yōu)越性,本次實驗使用電腦操作系統(tǒng)為win7,處理器為I5- 4200ucpu@1.60 GHz 2.30 GHz,安裝內(nèi)存為4.00 GB,系統(tǒng)類型為64位,采用蔡司三坐標(biāo)測量機(jī)UMC550S進(jìn)行數(shù)據(jù)的獲取,每6 mm選擇一個截面,每個截面選取6個測點,采集試驗零件的空間點坐標(biāo),進(jìn)行空間直線度的分析,表1為被測要素圓心擬合坐標(biāo)。
表1 被測要素圓心擬合坐標(biāo) mm
在程序參數(shù)上,設(shè)置小組數(shù)目為5,每組學(xué)生為10個,種群數(shù)目為50,維度為6,算法迭代次數(shù)為500次,運(yùn)行次數(shù)為50次,求得平均誤差。表2為不同的評定方法對應(yīng)的直線度誤差計算結(jié)果,對比計算結(jié)果可知, LSM計算的直線度誤差為0.084 mm,其數(shù)值明顯偏大,評定結(jié)果精度最低。在智能優(yōu)化算法的評定結(jié)果中,HTLBO的計算結(jié)果與GA、PSO和TLBO算法相比,HTLBO算法求得的直線度誤差最小,僅為0.063 2 mm。式(5)中各個參數(shù)的計算結(jié)果從表3可以得到,HTLBO求得的最小包容圓柱參數(shù)的中心軸線參數(shù)方程為F(x0,y0,z0,a,b,c)=F(5.730 6,15.498 2,-19.216 4,0.310 4,0.017 6,30.001 0) ,能夠滿足最小區(qū)域法對空間直線度的誤差評定。圖2為HTLBO、TLBO、GA、PSO等算法對表1數(shù)據(jù)進(jìn)行直線度誤差計算的迭代曲線,由于數(shù)據(jù)跨度較大且分布不均,因此采用對數(shù)刻度進(jìn)行顯示。從圖2可以看到,在迭代計算過程中,HTLBO算法在迭代到96代時收斂,相對于其他3種智能優(yōu)化算法收斂更快,收斂精度更高,體現(xiàn)了HTLBO算法在空間直線度的計算性能上的優(yōu)勢。
表2 直線度誤差計算結(jié)果 mm
表3 4種算法參數(shù)的計算結(jié)果 mm
圖2 直線度誤差曲線
為了進(jìn)一步驗證HTLBO算法對于評定空間直線度誤差的有效性,選取文獻(xiàn)[12]中算例的數(shù)據(jù)和文獻(xiàn)[13,15]計算結(jié)果對算法進(jìn)行實驗驗證。HTLBO程序參數(shù)設(shè)置與算例1相同,測點數(shù)據(jù)如表4所示,數(shù)據(jù)來源于文獻(xiàn)[12]。
表4數(shù)據(jù)的HTLBO算法和文獻(xiàn)[13,15]的PSO、LA-AFSA計算結(jié)果如表5所示。
表4 算例2測點數(shù)據(jù)[12] mm
表5 3種算法參數(shù)的計算結(jié)果 mm
文獻(xiàn)[15]中詳細(xì)列出了其他相關(guān)文獻(xiàn)的計算結(jié)果,結(jié)合起來可以看到,相對于傳統(tǒng)的非線性求解方法,智能優(yōu)化算法不僅能夠得到測點數(shù)據(jù)的空間直線度誤差值,還可以獲得測點最小包容圓柱的方程參數(shù),計算結(jié)果更加全面。在智能優(yōu)化算法的計算結(jié)果中,HTLBO算法的計算精度更高,求得的空間直線度誤差為0.009 152 mm,最小包容圓柱參數(shù)的中心軸線參數(shù)方程為F(x0,y0,z0,a,b,c)=F(-12.565 0,0.110 0,12.404 6,28.322 1,18.694 5,9.534 2)。圖3為HTLBO算法的迭代曲線,當(dāng)?shù)?02次時,算法達(dá)到收斂狀態(tài),相對于PSO的344次,收斂速度得到了提高。
圖3 HTLBO迭代曲線
應(yīng)用TLBO對空間直線度誤差進(jìn)行誤差評定,通過引入SFLA的算法優(yōu)點,設(shè)計了一種HTLBO算法,從而進(jìn)一步增強(qiáng)了算法的全局和局部搜索能力。通過兩組算例,得到以下結(jié)論:
(1)在滿足最小區(qū)域準(zhǔn)則的條件下,將空間直線度的數(shù)學(xué)模型和獲取的測量數(shù)據(jù)代入智能優(yōu)化算法求解,不僅可以得到比最小二乘法等傳統(tǒng)非線性求解方法精度更高的空間直線度誤差結(jié)果,而且同樣可以獲得包容所有測點的最小圓柱軸線的方程參數(shù),計算結(jié)果全面、準(zhǔn)確。
(2)從智能優(yōu)化算法的計算結(jié)果可以看出,相對于GA、PSO、TLBO等算法,HTLBO算法搜索能力更強(qiáng),收斂速度更快,計算精度較高,同樣適用于空間直線度的高精度評定領(lǐng)域。
[參考文獻(xiàn)]
[1] ANSI/ASME Y14.5 National standard on dimensioning and tolerancing[S]. 2009.
[2] ISO/TS 12780-1:2012 Geometrical product specifications(GPS)-Straightness—Part 1:Vocabulary and parameters of straightness[S], 2012.
[3] Huang S T, Fan K C, Wu J H. A new minimum zone method for evaluating straightness errors[J].PrecisionEngineering, 1993, 15(3):158-165.
[4] Kanada T, Suzuki S. Application of several computing techniques for minimum zone straightness[J].PrecisionEngineering, 1993, 15(4):274-280.
[5] Carr K, Ferreira P. Verification of form tolerances part I: Basic issues, flatness, and straightness[J].PrecisionEngineering, 1995, 17(2):131-143.
[6] Samuel G L, Shunmugam M S. Evaluation of straightness and flatness error using computational geometric techniques[J].Computer-AidedDesign, 1999, 31(13):829-843.
[7] Huang J. An exact minimum zone solution for three-dimensional straightness evaluation problems[J].PrecisionEngineering, 1999, 23(3):204-208.
[8] Ding Y, Zhu L M, Ding H. A unified approach for circularity and spatial straightness evaluation using semi-definite programming[J].InternationalJournalofMachineTools&Manufacture, 2007, 47(10):1646-1650.
[9] Ding Y, Zhu L M, Ding H. Semidefinite programming for Chebyshev fitting of spatial straight line with applications to cutter location planning and tolerance evaluation[J].PrecisionEngineering, 2007, 31(4):364-368.
[10] 雷賢卿, 薛玉君, 李濟(jì)順,等. 基于網(wǎng)格搜索算法的空間直線度誤差評定方法[J]. 計量學(xué)報, 2009, 30(2):115-119.
[11] Cho S, Kim J Y. Straightness and flatness evaluation using data envelopment analysis[J].TheInternationalJournalofAdvancedManufacturingTechnology, 2012, 63(5):731-740.
[12] 廖平, 喻壽益. 基于遺傳算法的空間直線度誤差的求解[J]. 中南大學(xué)學(xué)報(自然科學(xué)版), 1998, 29(6):586-588.
[13] 茅健, 曹衍龍. 基于粒子群算法的空間直線度誤差評定[J]. 工程設(shè)計學(xué)報, 2006, 13(5):291-294.
[14] 張玉梅, 左春檉, 劉巖,等. 基于人工免疫算法的軸線直線度誤差評定[J]. 計量學(xué)報, 2010, 31(6):490-493.
[15] 葉明, 唐敦兵. 最小二乘與魚群混合優(yōu)化方法評定直線度誤差的研究[J]. 機(jī)械科學(xué)與技術(shù), 2014, 33(7):1013-1017.
[16] Rao R V, Savsani V J, Vakharia D P. Teaching-learning-based optimization: A novel method for constrained mechanical design optimization problems[J].Computer-AidedDesign, 2011, 43(3):303-315.
[17] Rao R V, Savsani V J, Balic.J. Teaching-learning-based optimization algorithm for unconstrained and constrained real-parameter optimization problems[J].EngineeringOptimization, 2012, 44(12):1-16.
[18] Rao R V, Savsani V J, Vakharia D P. Teaching-Learning-Based Optimization: An optimization method for continuous non-linear large scale problems[J].InformationSciences, 2012, 183(1):1-15.
[19] 拓守恒, 雍龍泉, 鄧方安. “教與學(xué)”優(yōu)化算法研究綜述[J]. 計算機(jī)應(yīng)用研究, 2013, 30(7):1933-1938.
[20] Eusuff M M, Lansey K E. Optimization of water distribution network design using the shuffled frog leaping algorithm[J].JournalofWaterResourcesPlanning&Management, 2003, 129(3):210-225.
[21] Rahimi-Vahed A, Mirzaei A H. Solving a bi-criteria permutation flow-shop problem using shuffled frog-leaping algorithm[J].SoftComputing, 2008, 12(5):435-452.