秦 楨,唐秋華,魏國(guó)前,孫 偉
(武漢科技大學(xué)a.冶金裝備及其控制教育部重點(diǎn)實(shí)驗(yàn)室;b.機(jī)械傳動(dòng)與制造工程湖北省重點(diǎn)實(shí)驗(yàn)室,武漢 430081)
在裝配時(shí)裝配體末端的功能要求,須由各個(gè)裝配特征參數(shù)聯(lián)合保證[1]。各參數(shù)的組合形式不同,最終裝配體性能差異可能會(huì)很大。對(duì)于精度要求較高的機(jī)構(gòu),在設(shè)計(jì)初期亟需對(duì)裝配特征參數(shù)進(jìn)行優(yōu)化,通過(guò)合理的公差分配,既降低產(chǎn)品制造成本,又保證裝配體的精度。
針對(duì)裝配公差設(shè)計(jì),王輝等[2]構(gòu)建了雅克比旋量模型,進(jìn)行了基于公差原則的裝配公差統(tǒng)計(jì)分析,考慮了不同公差原則下裝配體末端公差的范圍;PENG等[3]基于雅可比旋量模型,提出以統(tǒng)計(jì)學(xué)原理來(lái)解決機(jī)械裝配體的三維公差重新設(shè)計(jì)的新方法。高瑞等[4]在滿足整體裝配質(zhì)量的前提下,利用中間計(jì)算法優(yōu)化零件尺寸公差,從而提高了零件合格率。趙帥帥等[5]構(gòu)建了成本公差函數(shù),提出了基于群智能算法的中間軸公差優(yōu)化設(shè)計(jì)方法。周釗等[6]提出了一種基于布谷鳥(niǎo)算法的多目標(biāo)公差設(shè)計(jì)方法。
上述三維公差分析方法,大多基于蒙特卡洛仿真,對(duì)某種裝配特征參數(shù)進(jìn)行公差分析,而對(duì)多種裝配特征參數(shù)組合優(yōu)化的考慮較少;其次,他們只獲得裝配誤差的概率分布曲線,未計(jì)算公差上下區(qū)間的最大邊界值,導(dǎo)致優(yōu)化計(jì)算時(shí)工作量較大,計(jì)算結(jié)果的魯棒性較差。為此,提出一種雅克比矩陣旋量最值模型,以此獲得裝配體末端的公差最大分布區(qū)間;再利用各個(gè)裝配特征參數(shù)的聯(lián)合優(yōu)化,得到給定條件下的最優(yōu)公差參數(shù)組合。
本問(wèn)題可描述為在不考慮其它因素對(duì)裝配體末端誤差影響的前提下,對(duì)各個(gè)裝配特征參數(shù)進(jìn)行聯(lián)合優(yōu)化,以提高末端裝配精度。下面以手術(shù)時(shí)用于安全分離腫瘤和腦組織的腦神經(jīng)外科手術(shù)機(jī)器人為例,描述裝配公差優(yōu)化問(wèn)題。該機(jī)器人結(jié)構(gòu)簡(jiǎn)圖如圖1所示,共有6個(gè)自由度。
(a) 主視圖 (b) 俯視圖
在圖1中O0是全局坐標(biāo)系,Oi是裝配特征的參考坐標(biāo)系;Li為各個(gè)坐標(biāo)系的相對(duì)位置,L1~L14分別為{600、90、300、300、400、200、400、300、200、100、60、100、10、90},單位是mm。軸1連接機(jī)座,整個(gè)機(jī)構(gòu)主要通過(guò)軸1→機(jī)身→軸2→大臂→軸3→小臂→軸4傳遞力和力矩,連桿和平衡臂起輔助作用。故而,所建立的裝配公差優(yōu)化模型著重考慮上述傳遞路徑上的裝配特征,包括軸1的圓柱度、軸2的圓柱度、O3處大臂孔軸線以大臂外表面為基準(zhǔn)的平行度、O4處小臂孔軸線以小臂外表面為基準(zhǔn)的平行度、O5處大臂孔的中心線基于大臂端面的垂直度、O6處小臂孔的中心線基于小臂端面的垂直度。
對(duì)該問(wèn)題的主要求解思路是,建立各裝配特征的雅可比旋量模型;通過(guò)對(duì)該模型改進(jìn),得到雅克比旋量最值模型,推導(dǎo)出裝配體末端公差最大分布區(qū)間的計(jì)算公式。在此基礎(chǔ)上,優(yōu)化裝配特征參數(shù),找到使末端公差分布最大區(qū)間最小化的參數(shù)組合,亦即裝配體末端裝配精度最高。
在公差計(jì)算時(shí),若能知道公差變動(dòng)區(qū)間的邊界,并以此為約束,即可簡(jiǎn)化問(wèn)題求解。為此,本節(jié)提出基于雅克比旋量最值模型的裝配體末端誤差分布區(qū)間求解方法。該方法首先建立裝配特征的小位移旋量模型,確定每個(gè)裝配特征平動(dòng)矢量的上下限;其次通過(guò)對(duì)旋量表達(dá)式進(jìn)行分析,獲得誤差極限;最后,構(gòu)建雅克比旋量最值模型,計(jì)算裝配體的末端誤差分布區(qū)間,找到使末端誤差最小的裝配參數(shù)組合。
雅克比旋量模型以機(jī)器人運(yùn)動(dòng)學(xué)、計(jì)算機(jī)圖形學(xué)和旋量理論為基礎(chǔ),通過(guò)空間尺寸鏈的誤差傳遞,建立最終功能要求與各裝配特征之間的數(shù)學(xué)關(guān)系,從而為裝配體公差分析提供數(shù)學(xué)依據(jù)。具體模型如下:
(1)
式中,F(xiàn)R表示功能要求;JFEi表示第i個(gè)裝配特征的雅克比矩陣;τFEi表示第i個(gè)裝配特征的小位移旋量;n表示對(duì)末端誤差有影響的裝配特征數(shù)量。
(2)
(3)
(4)
裝配體中包含多種裝配特征,這里以軸1圓柱度為例,建立其公差數(shù)學(xué)模型[9]:
(5)
式中,l是圓柱的長(zhǎng)度;TL是圓柱直徑尺寸的下偏差的絕對(duì)值;TU是圓柱直徑尺寸的上偏差的絕對(duì)值;Tcyl是圓柱度的公差值;x、y、z是圓柱度公差帶的邊界坐標(biāo);θ和d表示對(duì)應(yīng)的平動(dòng)矢量和轉(zhuǎn)動(dòng)矢量。
雅克比旋量模型結(jié)合了雅克比矩陣和小位移旋量,可用于表征誤差的傳遞與累積[7-8]。但是,小位移旋量為公差域范圍,需通過(guò)蒙特卡洛仿真進(jìn)行大規(guī)模實(shí)驗(yàn),再利用統(tǒng)計(jì)分析獲得末端誤差的分布區(qū)間。若仿真次數(shù)不夠,無(wú)法獲得功能要求方向變動(dòng)的最大區(qū)間;如果仿真次數(shù)過(guò)多,增加了模型的計(jì)算量,且求解時(shí)間過(guò)長(zhǎng)。若能直接推算出末端誤差的最大分布區(qū)間,則不僅能減少計(jì)算時(shí)間,還能提高計(jì)算精度。
由式(1)可得x軸方向的誤差:
(6)
(7)
在x軸方向上誤差區(qū)間的右邊界為:
(8)
式中,當(dāng)τi(N,1)指數(shù)(-1)k和(-1)j的值大于0時(shí),τi(N,1)取右邊界,反之取左邊界。所以,x軸方向上的最大誤差為:
式(7)和式(8)指出了x軸方向末端誤差的最大分布范圍,可通過(guò)平動(dòng)矢量和轉(zhuǎn)動(dòng)量的邊界約束求解,無(wú)需再次使用蒙特卡洛仿真。同理可得y軸和z軸方向末端誤差最大分布范圍。則裝配體的雅克比旋量最值模型可表示如下:
(9)
(10)
式中,
式中,N表示矩陣τi的第N行,N={1,2…6};H表示雅克比矩陣的第H行,H={1,2…6}。
公差優(yōu)化是在給定的裝配體內(nèi)和相對(duì)經(jīng)濟(jì)的前提下,尋找最優(yōu)的特征參數(shù)組合,以獲得最小的末端誤差。針對(duì)給定的裝配體,尋找最優(yōu)裝配特征參數(shù)組合的優(yōu)化模型如下:
xi∈{CBDi,Di,Li,Ti}
(11)
式中,X表示各種裝配特征參數(shù)的組合;xi表示第i個(gè)裝配特征參數(shù)等級(jí),它可能是CBDi、Di、Li、Ti,CBD代表孔和軸基本偏差代號(hào);D和L是形位公差主要參數(shù);T表示公差等級(jí);Errorx、Errory、Errorz分別代表裝配體x、y、z軸方向累積的末端誤差;error是裝配體的末端誤差。
粒子群優(yōu)化算法(PSO)是一種群智能優(yōu)化算法[10],源于對(duì)鳥(niǎo)群捕食行為的研究,其基本思想是:通過(guò)群體中個(gè)體之間的協(xié)作和信息共享來(lái)尋找最優(yōu)解[11]。粒子群算法本質(zhì)上是一種連續(xù)優(yōu)化算法,但通過(guò)一定轉(zhuǎn)換,也已成功用于求解組合優(yōu)化問(wèn)題。針對(duì)裝配公差優(yōu)化問(wèn)題,提出一種改進(jìn)的粒子群算法(GRLPSO),用于求解最優(yōu)的裝配特征參數(shù)組合。
在裝配公差優(yōu)化模型(11)中,優(yōu)化對(duì)象為基本偏差代號(hào)、形位公差主參數(shù)和公差等級(jí)等離散變量。因此,將不同裝配特征參數(shù)劃分為不同的等級(jí),各參數(shù)的每一等級(jí)對(duì)應(yīng)不同的參數(shù)值。
以軸1圓柱度為例進(jìn)行簡(jiǎn)單編碼。通過(guò)分析式(5),可以發(fā)現(xiàn)圓柱度公差的旋量參數(shù)取值區(qū)間受TU、TL、Tcyl和l四個(gè)常量的影響,鑒于加工難度和成本,通過(guò)變換配合類別來(lái)改變TU的取值,從而改變圓柱度公差的旋量參數(shù)取值區(qū)間,是比較合理的手段。若與軸1配合的孔為標(biāo)準(zhǔn)件,其公差等級(jí)為IT6,通過(guò)查詢基孔制優(yōu)先常用配合表[12],可得到軸基本偏差代號(hào)為f~t。將其劃分為不同的等級(jí),得到如表1所示的簡(jiǎn)單編碼,即可表示各特征參數(shù)的對(duì)應(yīng)范圍。
表1 裝配特征等級(jí)
故而,各裝配參數(shù)的編碼設(shè)計(jì)可如圖2所示。將各裝配特征參數(shù)FE1~FE6依照序號(hào)順次排列,得到編碼{2,3,2,1,5,4},如其中特征FE1表示軸1的圓柱度。第一個(gè)參數(shù)的特征等級(jí)為2,查詢表1,可得到其基本偏差代號(hào)為g。同理,可得到其余裝配特征參數(shù)的參數(shù)值。
圖2 案例的一個(gè)編碼
在上述編碼基礎(chǔ)上,利用式(5),獲得小位移旋量參數(shù);同理,建立其余特征的小位移旋量模型。再利用雅克比旋量最值模型如式(9)和式(10)所示,計(jì)算出末端誤差的最大分布區(qū)間;最后,利用式(11),求得裝配體末端的誤差值。
PSO算法的粒子速度和位置迭代更新表達(dá)為:
(12)
Xk+1=Xk+Vk+1
(13)
式中,Gbest為整個(gè)種群中令末端誤差最小的最優(yōu)裝配特征參數(shù)等級(jí)組合;Pbest為在局部范圍內(nèi)令末端誤差最小的最優(yōu)裝配特征參數(shù)等級(jí)組合;慣性權(quán)重ω采用自適應(yīng)慣性權(quán)重[13],其最大值和最小值分別為{0.9、0.4}。
通過(guò)式(12)和式(13),粒子位置Xk+1變成了實(shí)數(shù)。為此,采用Sigmoid方程進(jìn)行離散化處理,使得粒子位置能表征裝配特征參數(shù)等級(jí)。
為防止算法陷入局部最優(yōu),在PSO基礎(chǔ)上引入遺傳算法的交叉操作來(lái)實(shí)現(xiàn)不同粒子之間的信息共享,變異操作實(shí)現(xiàn)粒子內(nèi)部信息共享。同時(shí),各個(gè)裝配特征參數(shù)之間相互關(guān)聯(lián),可能需要變化多個(gè)參數(shù)才能獲得更小的末端誤差。為提升算法性能,引入反向?qū)W習(xí)策略,讓部分編碼片段的元素值發(fā)生變化,剩余位置保持不變,位置發(fā)生變化的數(shù)量通過(guò)下面公式進(jìn)行計(jì)算。
式中,N為需要反向?qū)W習(xí)的位置個(gè)數(shù);n為裝配特征的總個(gè)數(shù),k={1,2,3,…,n}。在粒子上隨機(jī)產(chǎn)生N個(gè)位置,并標(biāo)記為1,位置標(biāo)記為1的元素值進(jìn)行反向?qū)W習(xí)。
Bi=1+Di-Bi
表2 蒙特卡洛仿真取值與末端誤差
式中,Bi為當(dāng)前位置第i個(gè)裝配特征的參數(shù)等級(jí),i={1,2,3,…,N};Di為第i個(gè)裝配特征的最大等級(jí)。
為了讓算法在迭代次數(shù)增加后,更容易跳出局部最優(yōu),需要引入懲罰函數(shù)機(jī)制。該機(jī)制能夠讓交叉概率Rc和變異概率Rm隨著優(yōu)化進(jìn)程的進(jìn)行,逐步達(dá)到最大值。懲罰函數(shù)可以表示如下:
Rc=Rc,min+(Rc,max-Rc,min)·progpen
Rm=Rm,min+(Rm,max-Rm,min)·progpen
式中,Rc,min和Rm,min分別是Rc和Rm的最小值;Rc,max和Rm,max分別是Rc和Rm的最大值。
根據(jù)前文中GRLPSO方法的模型構(gòu)建和求解過(guò)程,GRLPSO的偽代碼如下:
過(guò)程:GRLPSO方法Input:種群規(guī)模NP,裝配特征參數(shù),迭代次數(shù)G,特征維度DBegin:x←randi(NP,D);v←rand(NP,D);Pbesti←x;Gbest←min(fit_Pbest);For k=1 to G doωi=F(ωi-1) //權(quán)重更新Ric=F(Ri-1c) //交叉概率更新Rim=F(Ri-1m) //變異概率更新For i=1 to NP dox'i←x'i-1+vi;xi=S(x'i) //基于Sigmoid的離散If ?x?xlim then //超出左右邊界限制x←xlim;End Ifx'i←交叉(xi,Ric); //交叉操作x'i←變異(xi,Rim); //變異操作x'i←反向?qū)W習(xí)(xi); //反向?qū)W習(xí)策略If fit_xi 圖3 蒙特卡洛參數(shù)校驗(yàn)圖 從表2和圖3中可以發(fā)現(xiàn):隨著N的增加,計(jì)算時(shí)間變長(zhǎng),各個(gè)方向的誤差不斷變大,但方差不斷減小。當(dāng)N較小時(shí),雖然模型求解時(shí)間短,但是誤差值卻遠(yuǎn)小于N較大時(shí)的誤差值,且數(shù)據(jù)的穩(wěn)定性也不夠,無(wú)法獲得裝配體末端誤差的真實(shí)值;當(dāng)N=4時(shí),末端誤差為0.36 mm,更接近裝配體末端誤差的真實(shí)值,方差也更趨近于0,但是,單次求解的時(shí)間需要57 s左右。而最值模型數(shù)據(jù)穩(wěn)定,求解時(shí)間短,單次求解時(shí)間僅需0.034 s。圖4為N=4時(shí)其中一次求解的末端誤差分布情況,從中可以發(fā)現(xiàn):通過(guò)最值模型求解的誤差值大于蒙特卡洛仿真獲得的誤差值,說(shuō)明雅克比旋量最值模型求解的末端誤差更接近真實(shí)值,模型具有效性。 (a) x軸誤差概率分布圖 (b) y軸誤差概率分布圖 (c) z軸誤差概率分布圖 結(jié)合遺傳操作和反向?qū)W習(xí)策略對(duì)PSO算法進(jìn)行改進(jìn),與標(biāo)準(zhǔn)的PSO算法、常用的改進(jìn)方法(改進(jìn)慣性權(quán)重取值IWPSO、改進(jìn)種群多樣性PDPSO)、遺傳算法和模擬退火算法進(jìn)行比較。30次求解結(jié)果如表3所示。 表3 算法性能比較 續(xù)表 從實(shí)驗(yàn)結(jié)果可以發(fā)現(xiàn):GA算法的求解時(shí)間雖然較短,但是最優(yōu)解較差,只有3.33%的概率能找到最優(yōu)解;SA算法獲得最優(yōu)解的概率能達(dá)到96%左右,但是相對(duì)其它算法求解時(shí)間較長(zhǎng),約為4 s;標(biāo)準(zhǔn)PSO算法獲得最優(yōu)解的概率只有26.67%,其它兩種改進(jìn)算法性能有所提升,但也不能保證100%獲得最優(yōu)解。GRLPSO算法除了求解時(shí)間在1 s以內(nèi)之外,還能夠保證每次都找到最優(yōu)解。這是因?yàn)樵O(shè)計(jì)的交叉和變異算子能夠增加粒子間的信息交流,反向?qū)W習(xí)策略符合裝配特征參數(shù)之間相互關(guān)聯(lián)的實(shí)際情況。綜上可知本文提出的GRLPSO算法在求解此問(wèn)題時(shí),能夠優(yōu)于標(biāo)準(zhǔn)的PSO算法、其它改進(jìn)的PSO算法、遺傳算法和模擬退火算法,具有良好的性能。 本文基于雅克比旋量模型,分析平動(dòng)和轉(zhuǎn)動(dòng)矢量的約束關(guān)系,提出了雅克比旋量最值模型,并基于此建立裝配末端誤差優(yōu)化模型。用該模型計(jì)算裝配體末端累積誤差,能夠快速獲得誤差的最大分布區(qū)間,大幅縮短了通過(guò)蒙特卡洛方法求解誤差區(qū)間的時(shí)間,并保證了每次計(jì)算誤差的精度。 在傳統(tǒng)粒子群算法PSO基礎(chǔ)上,通過(guò)Sigmoid方程對(duì)粒子的位置進(jìn)行離散化處理,引入交叉變異算子、反向?qū)W習(xí)策略,對(duì)算法進(jìn)行改進(jìn),實(shí)現(xiàn)特征參數(shù)的組合優(yōu)化。實(shí)驗(yàn)表明,GRLPSO算法相對(duì)于其它算法,能夠有效地提升求解質(zhì)量,提高求解速度,蒙特卡洛仿真驗(yàn)證了模型的可靠性。4 案例分析
4.1 最值模型有效性
4.2 算法性能分析
5 結(jié)論