夏軍勇 劉科進(jìn) 鐘 飛 孫 穎
湖北工業(yè)大學(xué)機(jī)械工程學(xué)院,武漢,430068
關(guān)節(jié)臂式三坐標(biāo)測(cè)量機(jī)[1-3]具有質(zhì)量小、使用方便、測(cè)量范圍廣等優(yōu)點(diǎn)[2-4],它一般由一個(gè)底座、兩個(gè)關(guān)節(jié)臂、三組旋轉(zhuǎn)關(guān)節(jié)及相應(yīng)的零部件組成[5]。但是,不同于傳統(tǒng)的三坐標(biāo)測(cè)量機(jī),由于關(guān)節(jié)臂式三坐標(biāo)測(cè)量機(jī)的測(cè)頭末端的坐標(biāo)與其結(jié)構(gòu)參數(shù)之間存在高非線性[2-3]的關(guān)系,所以其結(jié)構(gòu)參數(shù)的較小變化就會(huì)引起測(cè)頭末端坐標(biāo)較大的變化[6],坐標(biāo)誤差受結(jié)構(gòu)參數(shù)的影響極大[4,7]。顯然,由于一系列因素的影響,使用一段時(shí)間后,其實(shí)際結(jié)構(gòu)參數(shù)和標(biāo)稱結(jié)構(gòu)參數(shù)通常并不相等[6],從而導(dǎo)致測(cè)頭末端的實(shí)際坐標(biāo)并不等于用標(biāo)稱結(jié)構(gòu)參數(shù)計(jì)算出來(lái)的坐標(biāo)。因此,當(dāng)關(guān)節(jié)臂式三坐標(biāo)測(cè)量機(jī)使用一段時(shí)間后,找到實(shí)際結(jié)構(gòu)參數(shù)并將其重新植入控制設(shè)備中,從而準(zhǔn)確地獲得測(cè)頭末端的實(shí)際坐標(biāo)是迫切需要解決的問(wèn)題。目前主要有兩種方法來(lái)減小關(guān)節(jié)臂式三坐標(biāo)測(cè)量機(jī)測(cè)頭末端的坐標(biāo)誤差并提高定位精度和降低運(yùn)動(dòng)不確定度[8-10]:①使用更高精度的零部件;②用合適的方法來(lái)辨識(shí)結(jié)構(gòu)參數(shù)從而對(duì)其進(jìn)行補(bǔ)償。但由于高精度零部件的制造成本很高,故使用高精度的零部件會(huì)大大增加制造成本,不利于它的推廣和廣泛應(yīng)用。
基于以上分析,僅使用一個(gè)或幾個(gè)更高精度的零部件,既不經(jīng)濟(jì),也很難大幅度減小關(guān)節(jié)臂式三坐標(biāo)測(cè)量機(jī)的測(cè)頭末端的坐標(biāo)誤差[10-11],因此,很有必要用合適的方法來(lái)辨識(shí)其結(jié)構(gòu)參數(shù)。目前,主要的辨識(shí)方法是使用簡(jiǎn)單的輔助工具結(jié)合合適的優(yōu)化算法來(lái)進(jìn)行。例如,F(xiàn)ANG 等[12]使用基于量子行為的粒子群算法來(lái)辨識(shí)關(guān)節(jié)臂式三坐標(biāo)測(cè)量機(jī)的結(jié)構(gòu)參數(shù);SANTOLARIA 等[13]用激光跟蹤儀建立多點(diǎn)定位系統(tǒng)并從激光跟蹤儀中獲取數(shù)據(jù),從而辨識(shí)關(guān)節(jié)臂式三坐標(biāo)測(cè)量機(jī)的結(jié)構(gòu)參數(shù);劉志等[14]將幾何搜索和結(jié)構(gòu)參數(shù)辨識(shí)相結(jié)合,建立了兩邊辨識(shí)法;HAMANA 等[15]以球狀中心坐標(biāo)測(cè)量系統(tǒng)作為測(cè)量工具來(lái)辨識(shí)關(guān)節(jié)臂式三坐標(biāo)測(cè)量機(jī)的結(jié)構(gòu)參數(shù);KOVA等[16]用激光干涉儀和線性量規(guī)建立高精密測(cè)量系統(tǒng)來(lái)辨識(shí)并補(bǔ)償關(guān)節(jié)臂式三坐標(biāo)測(cè)量機(jī)的結(jié)構(gòu)參數(shù);SANTOLARIA 等[13]在傅里葉多項(xiàng)式的基礎(chǔ)上,用標(biāo)稱值和單點(diǎn)重復(fù)率誤差模型來(lái)辨識(shí)和補(bǔ)償關(guān)節(jié)臂式三坐標(biāo)測(cè)量機(jī)的結(jié)構(gòu)參數(shù);王斌[17]建立了復(fù)合球坐標(biāo)系并在此坐標(biāo)系下通過(guò)點(diǎn)圓法和反轉(zhuǎn)法來(lái)辨識(shí)關(guān)節(jié)臂式三坐標(biāo)測(cè)量機(jī)的結(jié)構(gòu)參數(shù),并用混合優(yōu)化算法來(lái)辨識(shí)測(cè)頭的結(jié)構(gòu)參數(shù)。
盡管有很多方法可辨識(shí)和補(bǔ)償關(guān)節(jié)臂式三坐標(biāo)測(cè)量機(jī)的結(jié)構(gòu)參數(shù),但這些方法依賴于使用高精密的元器件,這些元器件極大地增加了設(shè)備的制造成本且受外部環(huán)境影響很大,會(huì)引起很大的測(cè)量不確定性。另外,使用高精密的元器件使得辨識(shí)程序復(fù)雜、不便操作,很大程度上增加了其復(fù)雜性。本文在單點(diǎn)重復(fù)率誤差的基礎(chǔ)上,將改進(jìn)的教學(xué)算法和模擬退火算法進(jìn)行融合,提出一種混合算法來(lái)對(duì)關(guān)節(jié)臂式三坐標(biāo)測(cè)量機(jī)的結(jié)構(gòu)參數(shù)進(jìn)行辨識(shí)。首先,將錐型孔固定在基座上并將關(guān)節(jié)臂式三坐標(biāo)測(cè)量機(jī)的測(cè)頭末端伸進(jìn)錐型孔里面使其與錐型孔配合;其次,搖動(dòng)關(guān)節(jié)臂式三坐標(biāo)測(cè)量機(jī)到不同的位姿和構(gòu)型以得到多組不同的關(guān)節(jié)轉(zhuǎn)角組合;再次,將得到的數(shù)據(jù)分別與教學(xué)算法、模擬退火算法和改進(jìn)的教學(xué)-模擬退火算法結(jié)合來(lái)對(duì)關(guān)節(jié)臂式三坐標(biāo)測(cè)量機(jī)的結(jié)構(gòu)參數(shù)進(jìn)行辨識(shí)以得到相應(yīng)不同的辨識(shí)結(jié)果;然后,用辨識(shí)前后的關(guān)節(jié)臂式三坐標(biāo)測(cè)量機(jī)再次進(jìn)行單點(diǎn)重復(fù)率誤差實(shí)驗(yàn),得到相應(yīng)的結(jié)果;最后,對(duì)相應(yīng)的結(jié)果進(jìn)行比較、分析和歸納從而得出結(jié)論。
圖1是關(guān)節(jié)臂式三坐標(biāo)測(cè)量機(jī)的物理結(jié)構(gòu)圖和坐標(biāo)系圖。
(a)結(jié)構(gòu)圖 (b)坐標(biāo)圖
在運(yùn)動(dòng)學(xué)中,關(guān)節(jié)臂式三坐標(biāo)測(cè)量機(jī)的測(cè)頭末端的坐標(biāo)可以通過(guò)一系列的矩陣變換得到。運(yùn)動(dòng)學(xué)建模的目的就是構(gòu)建各關(guān)節(jié)轉(zhuǎn)角和測(cè)頭末端的坐標(biāo)之間的傳遞函數(shù)。設(shè)i-1Ti表示第i個(gè)坐標(biāo)系到第i-1個(gè)坐標(biāo)系的變換矩陣,根據(jù)MDH模型[18],第i個(gè)坐標(biāo)系到第i-1個(gè)坐標(biāo)系之間的傳遞函數(shù)為
(1)
其中,θi、di、ai-1、αi-1、l分別是關(guān)節(jié)轉(zhuǎn)角、連桿長(zhǎng)度、關(guān)節(jié)偏距、關(guān)節(jié)扭角和測(cè)頭長(zhǎng)度;s表示sin,c表示cos。給出以上矩陣以后,關(guān)節(jié)臂式三坐標(biāo)測(cè)量機(jī)的測(cè)頭末端在基坐標(biāo)系中的坐標(biāo)可表示為
(2)
其中,x、y、z分別是測(cè)頭末端在基坐標(biāo)系中x軸、y軸和z軸三個(gè)方向的坐標(biāo)。關(guān)節(jié)臂式三坐標(biāo)測(cè)量機(jī)的標(biāo)稱參數(shù)見(jiàn)表1。
表1 關(guān)節(jié)臂式三坐標(biāo)測(cè)量機(jī)的標(biāo)稱參數(shù)
盡管關(guān)節(jié)臂式三坐標(biāo)測(cè)量機(jī)有5組參數(shù),但是只有關(guān)節(jié)轉(zhuǎn)角θi是動(dòng)態(tài)變化的,其余4組參數(shù)均為常數(shù),也被稱作結(jié)構(gòu)參數(shù)。通常,這四組結(jié)構(gòu)參數(shù)在出廠前由供應(yīng)商辨識(shí)好并將其作為標(biāo)稱結(jié)構(gòu)參數(shù)。然而,由于一些因素的影響,當(dāng)關(guān)節(jié)臂式三坐標(biāo)測(cè)量機(jī)使用一段時(shí)間之后,其標(biāo)稱參數(shù)發(fā)生了改變,這也會(huì)引起測(cè)頭末端坐標(biāo)的誤差,故很有必要對(duì)關(guān)節(jié)臂式三坐標(biāo)測(cè)量機(jī)的結(jié)構(gòu)參數(shù)進(jìn)行重新辨識(shí)。
測(cè)頭末端的坐標(biāo)可以用式(2)計(jì)算。經(jīng)過(guò)高精密儀器測(cè)量N種姿態(tài)下測(cè)頭末端的坐標(biāo)Pk(kx,ky,kz)(k=1,2,…,N)及相應(yīng)的關(guān)節(jié)轉(zhuǎn)角kθi(k=1,2,…,N;i=1,2,…,6),則由式(2)可得
(3)
通過(guò)解這3N組方程,關(guān)節(jié)臂式三坐標(biāo)測(cè)量機(jī)的實(shí)際結(jié)構(gòu)參數(shù)就能被解出并被用作新的標(biāo)稱結(jié)構(gòu)參數(shù)。此方法理論上講是正確且可行的,但實(shí)際上,一方面式(3)是隱式方程,很難甚至幾乎不可能解出其解析解;另一方面,測(cè)頭末端的坐標(biāo)是要通過(guò)高精密的儀器測(cè)量得到的,這就使得操作繁瑣并且很難實(shí)現(xiàn)。因此,本文采用單點(diǎn)重復(fù)率誤差的方法對(duì)其進(jìn)行辨識(shí)。簡(jiǎn)單來(lái)講,就是用關(guān)節(jié)臂式三坐標(biāo)測(cè)量機(jī)在N種不同姿態(tài)下測(cè)量同一點(diǎn)的坐標(biāo)得到N組關(guān)節(jié)轉(zhuǎn)角,再將這N組關(guān)節(jié)轉(zhuǎn)角和相關(guān)算法結(jié)合來(lái)對(duì)關(guān)節(jié)臂式三坐標(biāo)測(cè)量機(jī)的結(jié)構(gòu)參數(shù)進(jìn)行辨識(shí)。
將關(guān)節(jié)臂式三坐標(biāo)測(cè)量機(jī)的測(cè)頭末端插入錐型孔里面使其與錐型孔配合,然后搖動(dòng)關(guān)節(jié)臂到N種不同姿態(tài)下,就可以得到N組不同的關(guān)節(jié)轉(zhuǎn)角kθi。設(shè)任意一組已知的結(jié)構(gòu)參數(shù)為(di,ai-1,αi-1,l),記為X=(di,ai-1,αi-1,l),將X及kθi代入式(3),得到測(cè)頭末端坐標(biāo)的實(shí)際值與標(biāo)稱值的差:
(4)
因在實(shí)際情況中,實(shí)際坐標(biāo)(x,y,z)很難測(cè)量出來(lái),所以用坐標(biāo)的平均值來(lái)代替其實(shí)際值:
(5)
求出kE后,其平均值為
(6)
因kE的平均值不能反映這些數(shù)據(jù)的分布規(guī)律,所以引入其相應(yīng)的標(biāo)準(zhǔn)差:
(7)
對(duì)于任意一組給定的結(jié)構(gòu)參數(shù)X=(di,ai-1,αi-1,l),根據(jù)“3σ原則”,其目標(biāo)函數(shù)定義為
(8)
(9)
本文將式(8)定義為目標(biāo)函數(shù),并結(jié)合優(yōu)化算法來(lái)尋找其最優(yōu)解或可接受的解,將此最優(yōu)解或可接受的解作為關(guān)節(jié)臂式三坐標(biāo)測(cè)量機(jī)的實(shí)際結(jié)構(gòu)參數(shù)。顯然,當(dāng)X越接近X*時(shí),F(X)越小。因此,后續(xù)算法的目的就是找到使F(X)為0或小于給定閾值的X0,此解就是需要找到的解。
教學(xué)算法[19-21]是一種模擬教學(xué)行為機(jī)制的仿生群智能優(yōu)化算法,其核心思想是模擬課堂中老師對(duì)學(xué)生的教學(xué)以及學(xué)生之間互相學(xué)習(xí)的行為機(jī)制,其運(yùn)算機(jī)制主要分為兩個(gè)階段:教學(xué)階段和學(xué)習(xí)階段。
(1)教學(xué)階段。在教學(xué)階段,“教師”的位置保持不變,“學(xué)生”逐個(gè)地向“教師”學(xué)習(xí)并通過(guò)下式更新自己的位置:
Difference_Meant=rt(Mnew-TFMt)
(10)
Xnew,i=Xold,i+Difference_Meant
(11)
其中,t指整個(gè)群體進(jìn)化到了第t代;rt是(0,1)之間的一個(gè)隨機(jī)數(shù);Mnew是進(jìn)化到當(dāng)前代的“老師”;TF是群體平均值的改變因子;Mt是所有變量的均值,通過(guò)下式來(lái)計(jì)算:
(12)
式中,D為變量的維度。
(2)學(xué)習(xí)階段。在學(xué)習(xí)階段,第i個(gè)個(gè)體通過(guò)下式更新位置:
(13)
式中,fitness(·)是相應(yīng)個(gè)體的適應(yīng)度值;Xold,i、Xnew,i分別為第i個(gè)個(gè)體更新前和更新后的位置;r為(0,1)之間的隨機(jī)數(shù)。
盡管教學(xué)算法沒(méi)有參數(shù)需要設(shè)定,運(yùn)算機(jī)制比較簡(jiǎn)單,但是它的尋優(yōu)速度不快,并且尋優(yōu)精度不高。特別是對(duì)于像本文中這種多變量高維高非線性的問(wèn)題,算法對(duì)其進(jìn)行尋優(yōu)的時(shí)候會(huì)急劇增加算法的運(yùn)算量和運(yùn)算時(shí)間,大幅降低其效率。為避免此弊端,本文對(duì)教學(xué)算法進(jìn)行改進(jìn)從而得到改進(jìn)的教學(xué)算法來(lái)加快其尋優(yōu)速度。
鑒于教學(xué)算法的這種特點(diǎn),本文對(duì)其“教學(xué)階段”和“學(xué)習(xí)階段”都有所改進(jìn),以加快其收斂速度。在教學(xué)階段,分別做如下改進(jìn)。
(1)動(dòng)態(tài)更新“教師”角色。即當(dāng)每個(gè) “學(xué)生” 向 “老師” 學(xué)習(xí)完后,就比較該學(xué)習(xí)完的 “學(xué)生” 和當(dāng)前 “老師” 的適應(yīng)度值,選擇兩者中適應(yīng)度值較好的個(gè)體作為新的 “老師”。更新機(jī)制如下:若fitness(Xnew,i)≥fitness(Mnew),則Mnew=Xnew,i。其中,Xnew,i是第i個(gè)個(gè)體更新后的位置,Mnew是當(dāng)前代的 “老師”。
(2)改變教學(xué)更新公式。在 “教學(xué)階段” ,“學(xué)生” 向 “老師” 學(xué)習(xí)的公式為
Xnew,i=Xold,i+Difference_Meani+cr(gbesti-Xold,i)
(14)
式中,c為(0,1)之間的隨機(jī)數(shù);gbest為歷史最優(yōu)個(gè)體。
在學(xué)習(xí)階段,做如下改進(jìn):“學(xué)生”之間通過(guò)互相學(xué)習(xí),第i個(gè)個(gè)體的位置更新公式為
(15)
式中,r1、r2為學(xué)習(xí)因子,本文均取2。
雖然改進(jìn)的教學(xué)算法具有較快的收斂速度,但是在增加收斂速度的同時(shí)會(huì)降低收斂精度,使算法陷入局部最優(yōu)區(qū)域。模擬退火算法[22]是一種對(duì)固體的退火過(guò)程進(jìn)行模擬的仿生智能優(yōu)化算法,由于它采用Metropolis接受準(zhǔn)則,所以當(dāng)群體陷入局部最優(yōu)區(qū)域以后,它能通過(guò)Metropolis接受準(zhǔn)則的特殊機(jī)制將陷入局部最優(yōu)區(qū)域的群體“拽出來(lái)”,從而讓群體在更廣闊的新區(qū)域重新尋優(yōu),進(jìn)而達(dá)到找出全局最優(yōu)個(gè)體的目的?;谀M退火算法的這種特殊的尋優(yōu)機(jī)制,本文就利用這種特殊機(jī)制來(lái)擴(kuò)充在改進(jìn)的教學(xué)算法階段陷入局部最優(yōu)區(qū)域的解;利用此特性將這個(gè)不能接受的最優(yōu)解“拽出來(lái)”,接著到更廣闊的空間來(lái)繼續(xù)尋優(yōu),從而以更大的概率來(lái)找到問(wèn)題的全局最優(yōu)解。兩種算法的轉(zhuǎn)換靠收斂精度轉(zhuǎn)換準(zhǔn)則來(lái)連接。
在本文各算法中(教學(xué)算法、改進(jìn)的教學(xué)算法、模擬退火算法和改進(jìn)的教學(xué)-模擬退火算法),個(gè)體的適應(yīng)能力由其適應(yīng)度值來(lái)度量,即具有較大適應(yīng)度值的個(gè)體有更大的幾率來(lái)執(zhí)行后續(xù)操作并產(chǎn)生下一代。就目標(biāo)函數(shù)而言,使目標(biāo)函數(shù)值越小的個(gè)體越優(yōu)良,所以適應(yīng)度函數(shù)定義成以下形式:
(16)
式中,rlim是一個(gè)極小的正數(shù),以保證分母不為0。
改進(jìn)的教學(xué)-模擬退火算法的基本原理如下。
(1)轉(zhuǎn)換準(zhǔn)則的設(shè)計(jì)。設(shè)t、Xbest(t)和fitness(Xbest(t))分別是當(dāng)前進(jìn)化代數(shù)、到目前為止的最優(yōu)個(gè)體和最優(yōu)個(gè)體的適應(yīng)度值,那么轉(zhuǎn)換準(zhǔn)則設(shè)計(jì)為下式的關(guān)系:
(17)
其中,K是一個(gè)正整數(shù),ε和δ是轉(zhuǎn)換閾值,并且,K、ε和δ都是提前給定的常數(shù)。以上條件說(shuō)明,如果在改進(jìn)的教學(xué)算法階段得到的最優(yōu)解Xbest(t)滿足式(17),則改進(jìn)的教學(xué)算法終止,算法進(jìn)入模擬退火階段,在模擬退火階段進(jìn)一步擾動(dòng)在改進(jìn)的教學(xué)算法階段得到的最優(yōu)解 。這兩種算法通過(guò)這種機(jī)制連接起來(lái)以后得到的新算法在本文中稱為改進(jìn)的教學(xué)-模擬退火算法。
(2)終止條件的設(shè)定。對(duì)于某個(gè)智能優(yōu)化算法,如果到目前為止所找到的最優(yōu)解Xbest(t)不是設(shè)備的實(shí)際結(jié)構(gòu)參數(shù)(或不能作為可接受的解),或者混合智能優(yōu)化算法進(jìn)化了很多代以后隨著迭代次數(shù)的增加其最優(yōu)解基本不再變化,那么可以認(rèn)為此算法尋優(yōu)失敗,應(yīng)當(dāng)終止此算法的運(yùn)算,從而避免不必要的冗余計(jì)算,減少運(yùn)算量和時(shí)間。在本文中,終止條件設(shè)定為
F(Xbest(t))≤η
(18)
或
fitness(Xbest(t))≥τ
(19)
或
t≥G
(20)
其中,G是最大迭代次數(shù);η和τ都是結(jié)束算法運(yùn)算的閾值。本文中,相關(guān)參數(shù)設(shè)定如下:種群數(shù)量M=100;G=40000;K=30;ε=0.1;δ=0.2;T0=104;Markov鏈的鏈長(zhǎng)J=30;終止溫度Te=10-3;溫度衰減函數(shù)μ=0.9。
當(dāng)獲取一系列關(guān)節(jié)轉(zhuǎn)角以后,將其分別與教學(xué)算法、模擬退火算法和改進(jìn)的教學(xué)-模擬退火算法相結(jié)合而進(jìn)行尋優(yōu)操作來(lái)優(yōu)化關(guān)節(jié)臂式三坐標(biāo)測(cè)量機(jī)的結(jié)構(gòu)參數(shù)。用教學(xué)算法、模擬退火算法和改進(jìn)的教學(xué)-模擬退火算法辨識(shí)關(guān)節(jié)臂式三坐標(biāo)測(cè)量機(jī)的結(jié)構(gòu)參數(shù)的流程框圖分別見(jiàn)圖2~圖4。
圖2 用教學(xué)算法辨識(shí)關(guān)節(jié)臂式三坐標(biāo)測(cè)量機(jī)的結(jié)構(gòu)參數(shù)流程圖
圖3 用模擬退火算法辨識(shí)關(guān)節(jié)臂式三坐標(biāo)測(cè)量機(jī)的結(jié)構(gòu)參數(shù)流程圖
圖4 用改進(jìn)的教學(xué)-模擬退火算法辨識(shí)關(guān)節(jié)臂式三坐標(biāo)測(cè)量機(jī)的結(jié)構(gòu)參數(shù)流程圖
如果某個(gè)最優(yōu)解Xbest(t)滿足式(18)或式(19),就認(rèn)為算法尋優(yōu)成功,即認(rèn)為此時(shí)算法找到了關(guān)節(jié)臂式三坐標(biāo)測(cè)量機(jī)的結(jié)構(gòu)參數(shù)的實(shí)際值,并且將此個(gè)體Xbest(t)記為Xopt。需要注意的是,由于一些誤差原因,由算法和測(cè)得的基本數(shù)據(jù)所導(dǎo)出的全局最優(yōu)個(gè)體Xopt一般不等于但無(wú)限接近實(shí)際值。
由于在算法執(zhí)行的過(guò)程中,相關(guān)變量會(huì)經(jīng)過(guò)一系列的運(yùn)算操作,這可能會(huì)導(dǎo)致其越過(guò)對(duì)應(yīng)的邊界值。本文中,由于長(zhǎng)度結(jié)構(gòu)參數(shù)是非負(fù)數(shù)并且ai-1(i=1,2,5,6)、d6和αi-1(i=1,3,4)為0,所以ai-1(i=1,2,5,6)和d6的搜索變化范圍設(shè)定為(0,10);ai-1(i=3,4)和di(i=1,2,…,6)設(shè)定為(0,±10);αi-1(i=1,2,…,6)設(shè)定為(0,±10°);l設(shè)定為(0,10)。當(dāng)結(jié)構(gòu)參數(shù)的某個(gè)變量y越過(guò)其對(duì)應(yīng)的邊界值時(shí),則由隨機(jī)函數(shù)發(fā)生器rand生成新變量,具體生成機(jī)制如下:
若y越過(guò)相應(yīng)的邊界,則
y=(ulim-llim).*rand+y
式中,ulim、llim分別為相應(yīng)變量的上界和下界。
為便于比較,繪制了最優(yōu)個(gè)體Xbest(t)的適應(yīng)度F(Xbest(t))的進(jìn)化曲線。用教學(xué)算法、模擬退火算法和改進(jìn)的教學(xué)-模擬退火算法辨識(shí)關(guān)節(jié)臂式三坐標(biāo)測(cè)量機(jī)時(shí),將最優(yōu)個(gè)體Xbest(t)的適應(yīng)度F(Xbest(t))的進(jìn)化曲線都畫(huà)在一個(gè)坐標(biāo)系中,其進(jìn)化曲線如圖5所示。用三種算法辨識(shí)關(guān)節(jié)臂式三坐標(biāo)測(cè)量機(jī)后所得的關(guān)節(jié)臂式三坐標(biāo)測(cè)量機(jī)的結(jié)構(gòu)參數(shù)分別見(jiàn)表2~表4。
表4 用改進(jìn)的教學(xué)-模擬退火算法辨識(shí)關(guān)節(jié)臂式三坐標(biāo)測(cè)量機(jī)后得到的結(jié)構(gòu)參數(shù)
圖5 用不同的算法辨識(shí)關(guān)節(jié)臂式三坐標(biāo)測(cè)量機(jī)的結(jié)構(gòu)參數(shù)時(shí)目標(biāo)函數(shù)的進(jìn)化曲線
表2 用教學(xué)算法辨識(shí)關(guān)節(jié)臂式三坐標(biāo)測(cè)量機(jī)后得到的結(jié)構(gòu)參數(shù)
用三種算法分別尋優(yōu)得到關(guān)節(jié)臂式三坐標(biāo)測(cè)量機(jī)優(yōu)化的結(jié)構(gòu)參數(shù)以后,將三組優(yōu)化后的結(jié)構(gòu)參數(shù)分別植入關(guān)節(jié)臂式三坐標(biāo)測(cè)量機(jī)的控制器中作為其新的標(biāo)稱結(jié)構(gòu)參數(shù)。為便于分析和比較,分別用辨識(shí)前和辨識(shí)后的關(guān)節(jié)臂式三坐標(biāo)測(cè)量機(jī)進(jìn)行新的單點(diǎn)重復(fù)率誤差實(shí)驗(yàn)。如圖6所示,單點(diǎn)被重復(fù)測(cè)量多次,其單點(diǎn)重復(fù)率誤差曲線如圖7所示。
表3 用模擬退火算法辨識(shí)關(guān)節(jié)臂式三坐標(biāo)測(cè)量機(jī)后得到的結(jié)構(gòu)參數(shù)
(a)全局圖
(a)辨識(shí)前
(1)觀察圖5可知,隨著迭代次數(shù)的增加,目標(biāo)函數(shù)值逐漸趨向于0。
(2)觀察圖7可以得到以下兩組指標(biāo)并分別以表格的形式列出結(jié)果:① 辨識(shí)前后單點(diǎn)重復(fù)率誤差值的最大值、最小值、平均值和標(biāo)準(zhǔn)差及其在三個(gè)方向上的對(duì)應(yīng)分量;② 經(jīng)過(guò)TLBO、SA和mTLBO-SA辨識(shí)后單點(diǎn)重復(fù)率誤差值的最大值、最小值、平均值和標(biāo)準(zhǔn)差及其在三個(gè)方向上減少的百分比對(duì)應(yīng)分量的下降率。
其中,辨識(shí)前后的單點(diǎn)重復(fù)率的誤差值見(jiàn)表5;辨識(shí)前后的單點(diǎn)重復(fù)率誤差值分別在x、y和z方向的分量見(jiàn)表6~表8;經(jīng)過(guò)TLBO、SA和mTLBO-SA辨識(shí)后單點(diǎn)重復(fù)率誤差值的下降率見(jiàn)表9;經(jīng)過(guò)TLBO、SA和mTLBO-SA辨識(shí)后單點(diǎn)重復(fù)率誤差值的下降率在x、y和z方向的分量分別見(jiàn)表10~表12。
表5 辨識(shí)前后的單點(diǎn)重復(fù)率誤差
表6 辨識(shí)前后單點(diǎn)重復(fù)率誤差在x方向的分量
表7 辨識(shí)前后單點(diǎn)重復(fù)率誤差在y方向的分量
表8 辨識(shí)前后單點(diǎn)重復(fù)率誤差在z方向的分量
表9 辨識(shí)后單點(diǎn)重復(fù)率誤差下降率
表10 辨識(shí)后單點(diǎn)重復(fù)率誤差下降率在x方向的分量
表11 辨識(shí)后單點(diǎn)重復(fù)率誤差下降率在y方向的分量
表12 辨識(shí)后的單點(diǎn)重復(fù)率誤差下降率在z方向的分量
(1)通過(guò)教學(xué)算法、模擬退火算法及改進(jìn)的教學(xué)-模擬退火算法辨識(shí)后,關(guān)節(jié)臂式三坐標(biāo)測(cè)量機(jī)的單點(diǎn)重復(fù)率誤差值及其在三個(gè)相應(yīng)坐標(biāo)軸方向上的對(duì)應(yīng)分量均有不同幅度的減少。
(2)經(jīng)過(guò)教學(xué)算法辨識(shí)后,單點(diǎn)重復(fù)率誤差值及其在三個(gè)相應(yīng)坐標(biāo)軸方向上對(duì)應(yīng)分量的減幅從89%到98%不等;經(jīng)過(guò)模擬退火算法辨識(shí)后,單點(diǎn)重復(fù)率誤差值及其在三個(gè)相應(yīng)坐標(biāo)軸方向上對(duì)應(yīng)分量的減幅從62%到98%不等;經(jīng)過(guò)改進(jìn)的教學(xué)-模擬退火算法辨識(shí)后,單點(diǎn)重復(fù)率誤差值及其在三個(gè)相應(yīng)坐標(biāo)軸方向上對(duì)應(yīng)分量的減幅從95%到99%不等。
(3)除極個(gè)別情況以外,經(jīng)過(guò)mTLBO-SA辨識(shí)后單點(diǎn)重復(fù)率誤差值的各減少幅度都超過(guò)96%,并且各減幅比經(jīng)過(guò)TLBO和SA辨識(shí)后對(duì)應(yīng)的減幅最少多1%,最大多33%,一般情況下也會(huì)多3%~15%。
(1)實(shí)際情況中,很難測(cè)量到關(guān)節(jié)臂式三坐標(biāo)測(cè)量機(jī)的實(shí)際結(jié)構(gòu)參數(shù),僅僅使用一些單一的傳統(tǒng)算法很容易使算法陷入局部最優(yōu)區(qū)域從而尋優(yōu)失敗。
(2)無(wú)論是用教學(xué)算法還是模擬退火算法對(duì)關(guān)節(jié)臂式三坐標(biāo)測(cè)量機(jī)的結(jié)構(gòu)參數(shù)進(jìn)行辨識(shí),算法都可能會(huì)陷入局部最優(yōu)區(qū)域或者早熟,使得優(yōu)化后的單點(diǎn)重復(fù)率誤差值不能很好地大幅減小。
(3)通過(guò)SA對(duì)mTLBO擾動(dòng)后,算法能在新的區(qū)域進(jìn)行新的尋優(yōu)操作,這不僅使算法跳出局部最優(yōu)區(qū)域,還能增加群體的多樣性,使得群體以更大的概率找到或更接近全局最優(yōu)解。
(4)通過(guò)對(duì)比各結(jié)果不難發(fā)現(xiàn):mTLBO-SA更適合關(guān)節(jié)臂式三坐標(biāo)測(cè)量機(jī)的結(jié)構(gòu)參數(shù)辨識(shí),能更有效且高效地提高關(guān)節(jié)臂式三坐標(biāo)測(cè)量機(jī)的精度和降低其運(yùn)動(dòng)不確定度。