徐建明,李 想
(浙江工業(yè)大學(xué) 信息工程學(xué)院,浙江 杭州 310023)
手機(jī)邊框點(diǎn)膠加工需要對(duì)點(diǎn)膠機(jī)的進(jìn)給速度和姿態(tài)進(jìn)行控制,而實(shí)現(xiàn)這些功能的關(guān)鍵在于插補(bǔ)算法。傳統(tǒng)直線插補(bǔ)、圓弧插補(bǔ)通過小線段逼近曲線軌跡,插補(bǔ)精度較低,且無法控制點(diǎn)膠姿態(tài),因此有必要研究一種適用于五軸點(diǎn)膠機(jī)的參數(shù)曲線插補(bǔ)算法。國(guó)內(nèi)外已有很多學(xué)者針對(duì)參數(shù)曲線插補(bǔ)技術(shù)進(jìn)行研究。王娟[1]將PVT(位置-速度-時(shí)間路徑插值)插補(bǔ)算法應(yīng)用于點(diǎn)膠機(jī),克服了傳統(tǒng)直線圓弧插補(bǔ)在線段連接處速度方向不連續(xù)的問題,得到了較為光滑的插補(bǔ)軌跡。黨志廣等[2]使用三次樣條曲線對(duì)加工軌跡進(jìn)行逼近,也得到了較為光滑的加工曲線。朱寧[3]對(duì)三次樣條曲線的插補(bǔ)算法進(jìn)行改進(jìn),通過控制進(jìn)給步長(zhǎng)恒定實(shí)現(xiàn)了恒進(jìn)給速度插補(bǔ)。胡自化等[4]和王云凱[5]分別對(duì)B樣條插補(bǔ)算法和非均勻有理B樣條(Non-uniform rational B-splines,簡(jiǎn)稱NURBS)插補(bǔ)算法進(jìn)行研究,兩者均采用泰勒展開法來計(jì)算插補(bǔ)參數(shù)。吳玉香等[6]使用三步四階隱式Adams方法計(jì)算預(yù)估插補(bǔ)參數(shù),并用二分迭代法進(jìn)行校正。劉恒俊[7]提出一種基于Gear預(yù)估校正法的插補(bǔ)參數(shù)計(jì)算方法,相較于泰勒展開法計(jì)算精度得到明顯提升。Xu等[8]提出使用兩條B樣條曲線直接規(guī)劃旋轉(zhuǎn)軸運(yùn)動(dòng)軌跡,保證了旋轉(zhuǎn)軸運(yùn)行平穩(wěn)。Sun等[9]提出了一種用于短線段加工的B樣條過渡方法和實(shí)時(shí)預(yù)插補(bǔ)方法,在高加工速度條件下提高了加工質(zhì)量。Li等[10]對(duì)雙NURBS曲線插補(bǔ)進(jìn)行了研究,使用雙NURBS曲線同時(shí)規(guī)劃加工刀尖點(diǎn)軌跡和刀軸點(diǎn)軌跡,實(shí)現(xiàn)了五軸聯(lián)動(dòng)插補(bǔ)。
目前,雖然國(guó)內(nèi)外有很多針對(duì)數(shù)控機(jī)床插補(bǔ)算法的研究,但缺少針對(duì)點(diǎn)膠機(jī)插補(bǔ)算法的研究。零件切削加工與點(diǎn)膠加工對(duì)插補(bǔ)算法有著不同的要求,作為常用插補(bǔ)方法的PVT插補(bǔ)算法存在速度波動(dòng)大、無法有效控制點(diǎn)膠方向的缺點(diǎn)。對(duì)此,筆者提出了一種面向五軸點(diǎn)膠加工的雙B樣條插補(bǔ)算法,主要研究?jī)?nèi)容是:1) 采用兩條B樣條曲線分別描述點(diǎn)膠針尖點(diǎn)(簡(jiǎn)稱針尖點(diǎn))軌跡和點(diǎn)膠針軸點(diǎn)(簡(jiǎn)稱針軸點(diǎn))軌跡;2) 使用預(yù)估校正法計(jì)算針尖點(diǎn)軌跡的插補(bǔ)參數(shù),其中預(yù)估部分采用泰勒一階展開法,校正部分采用牛頓迭代法,然后根據(jù)兩條軌跡插補(bǔ)參數(shù)的同步關(guān)系計(jì)算針軸點(diǎn)軌跡的插補(bǔ)參數(shù),進(jìn)而計(jì)算兩條插補(bǔ)軌跡;3) 根據(jù)兩條插補(bǔ)軌跡計(jì)算非過渡區(qū)間的兩個(gè)旋轉(zhuǎn)軸轉(zhuǎn)角,使用五次多項(xiàng)式曲線規(guī)劃過渡區(qū)間內(nèi)的旋轉(zhuǎn)軸轉(zhuǎn)角,根據(jù)旋轉(zhuǎn)軸轉(zhuǎn)角和針尖點(diǎn)軌跡計(jì)算平動(dòng)軸位移量;4) 在CODESYS軟件平臺(tái)上使用ST語(yǔ)言編寫算法程序并進(jìn)行仿真,在雙轉(zhuǎn)臺(tái)五軸點(diǎn)膠機(jī)平臺(tái)上進(jìn)行實(shí)驗(yàn),以驗(yàn)證筆者設(shè)計(jì)算法的有效性。
圖1 手機(jī)邊框點(diǎn)膠示意圖Fig.1 Schematic diagram of mobile phone frame dispensing
手機(jī)邊框點(diǎn)膠加工需要解決的問題如下:
1) 點(diǎn)膠所用膠黏劑通常比較黏稠,受重力影響的膠體噴出后容易偏離目標(biāo)點(diǎn),使用雙轉(zhuǎn)臺(tái)五軸結(jié)構(gòu)的點(diǎn)膠機(jī)會(huì)有更好的效果。點(diǎn)膠加工時(shí)雙轉(zhuǎn)臺(tái)上的點(diǎn)膠工件開始轉(zhuǎn)動(dòng),而點(diǎn)膠機(jī)的出膠方向始終向下,與重力方向一致,這將有效減小重力對(duì)點(diǎn)膠的影響。因此,保證點(diǎn)膠針軸矢量與工件表面法線方向重合十分重要。
2) 按點(diǎn)膠機(jī)行業(yè)標(biāo)準(zhǔn)定義,點(diǎn)膠速度為每分鐘的點(diǎn)膠數(shù)量。同時(shí),要求每次點(diǎn)膠的出膠量偏差較小[11]。常規(guī)點(diǎn)膠閥在單位時(shí)間內(nèi)的出膠量保持恒定,進(jìn)給速度波動(dòng)大會(huì)導(dǎo)致堆膠、斷膠等問題。因此,實(shí)現(xiàn)點(diǎn)膠均勻的關(guān)鍵在于控制點(diǎn)膠機(jī)的進(jìn)給速度。
3) 在恒進(jìn)給速度點(diǎn)膠的條件下,當(dāng)使用運(yùn)動(dòng)學(xué)公式計(jì)算兩個(gè)轉(zhuǎn)臺(tái)旋轉(zhuǎn)軸轉(zhuǎn)角時(shí)會(huì)遇到軸速度突變的問題。由于直線部分軌跡曲率為0,姿態(tài)保持不變,而弧線段曲率突然改變會(huì)造成剛性沖擊。因此,需要規(guī)劃旋轉(zhuǎn)軸在直線段與弧線段處的過渡軌跡。
插補(bǔ)算法需基于運(yùn)動(dòng)學(xué)模型設(shè)計(jì),首先,筆者將對(duì)雙轉(zhuǎn)臺(tái)五軸點(diǎn)膠機(jī)進(jìn)行運(yùn)動(dòng)學(xué)分析。建立的雙轉(zhuǎn)臺(tái)五軸點(diǎn)膠機(jī)連桿坐標(biāo)系如圖2所示。
圖2 五軸點(diǎn)膠機(jī)連桿坐標(biāo)系Fig.2 Connecting rod coordinate system of five-axis dispenser
五軸點(diǎn)膠機(jī)的五軸包括A軸、C軸2個(gè)旋轉(zhuǎn)軸和X軸、Y軸、Z軸3個(gè)平動(dòng)軸。圖2中坐標(biāo)系O0x0y0z0,O1x1y1z1,O2x2y2z2,O3x3y3z3,O4x4y4z4,O5x5y5z5和O6x6y6z6分別為工件坐標(biāo)系、轉(zhuǎn)臺(tái)C軸坐標(biāo)系、轉(zhuǎn)臺(tái)A軸坐標(biāo)系、X軸滾珠絲桿坐標(biāo)系、Y軸滾珠絲桿坐標(biāo)系、Z軸滾珠絲桿坐標(biāo)系和工具坐標(biāo)系,工具坐標(biāo)系原點(diǎn)O6與針尖點(diǎn)為同一點(diǎn)。工件坐標(biāo)系原點(diǎn)設(shè)置在工件夾具中心,O1(O2)為參考旋轉(zhuǎn)中心,也是A軸與C軸的垂直交點(diǎn)。L1為工件坐標(biāo)系原點(diǎn)O0到旋轉(zhuǎn)中心O1(O2)的距離,L2為旋轉(zhuǎn)中心O1(O2)到X軸的距離,L3為X軸到Y(jié)軸的距離,L4為Y軸到Z軸的距離,L5為針尖點(diǎn)到Z軸的距離,L6為針尖點(diǎn)到x5坐標(biāo)軸的距離,這6個(gè)參數(shù)均是由機(jī)械結(jié)構(gòu)確定的定值。θC為C軸旋轉(zhuǎn)角度,θA為A軸旋轉(zhuǎn)角度,當(dāng)針尖點(diǎn)O6(P1)與夾具中心O0重合且兩個(gè)旋轉(zhuǎn)軸角度均為0時(shí)的O0位置定義為編程零點(diǎn),此時(shí)5個(gè)軸的位置定義為各軸零點(diǎn)。
然后,根據(jù)雙轉(zhuǎn)臺(tái)五軸點(diǎn)膠實(shí)驗(yàn)平臺(tái)的結(jié)構(gòu),運(yùn)用Denavit-Hartenberg參數(shù)法推導(dǎo)出雙轉(zhuǎn)臺(tái)五軸點(diǎn)膠機(jī)的運(yùn)動(dòng)學(xué)計(jì)算公式,即
P1x=(L5-L4)cosθCcosθA+(L2+L3+L6)cosθCsinθA-
xcosθCcosθA-ysinθC-zcosθCsinθA
P1y=xcosθAsinθC-ycosθC+zsinθCsinθA-
(L2+L3+L6)sinθCsinθA+(L4-L5)cosθ2sinθA
P1z=(L5-L4)sinθA-(L2+L3+L6)cosθA-
xsinθA+zcosθA-L1
(1)
式中:x,y,z為轉(zhuǎn)臺(tái)沿X,Y,Z軸相對(duì)于零點(diǎn)的位移量;θA,θC為轉(zhuǎn)臺(tái)繞A軸和C軸的轉(zhuǎn)角。根據(jù)相對(duì)運(yùn)動(dòng)關(guān)系,將除Z軸滾珠絲桿電機(jī)外的所有電機(jī)設(shè)置為反轉(zhuǎn)模式。根據(jù)式(1)和5個(gè)軸的位移和轉(zhuǎn)角,計(jì)算出當(dāng)前針尖點(diǎn)在工件坐標(biāo)系下的坐標(biāo)值P1x,P1y,P1z。
最后,進(jìn)行逆運(yùn)動(dòng)學(xué)求解。在工件坐標(biāo)系下定義針軸點(diǎn)P2的坐標(biāo)值為P2x,P2y,P2z。關(guān)于針尖點(diǎn)軌跡和針軸點(diǎn)軌跡的計(jì)算將在下一章詳述。假設(shè)已知針尖點(diǎn)和針軸點(diǎn)的坐標(biāo),則逆運(yùn)動(dòng)學(xué)中θA和θC的角度值可通過公式計(jì)算,即
(2)
已知θA和θC,令
n1=(L5-L4)cosθCcosθA+(L2+L3+
L6)cosθCsinθA-P1x
n2=-(L2+L3+L6)sinθCsinθA+
(L4-L5)cosθAsinθC-P1y
n3=(L5-L4)sinθA-(L2+L3+
L6)cosθA-L1-P1z
(3)
式(3)等式右邊均為已知量,將式(1)代入式(3)可列出非齊次方程組,即
(4)
由行程限制可知:cosθA不為0;sinθC和cosθC不同時(shí)為0;方程組式(4)的系數(shù)矩陣秩為3。方程組式(4)有唯一解,即
(5)
式(2,5)共同組成雙轉(zhuǎn)臺(tái)五軸點(diǎn)膠機(jī)的逆運(yùn)動(dòng)學(xué)計(jì)算式。至此,得到了雙轉(zhuǎn)臺(tái)五軸點(diǎn)膠機(jī)的運(yùn)動(dòng)學(xué)模型,下面進(jìn)行插補(bǔ)算法的方案設(shè)計(jì)。
針對(duì)問題1),筆者使用兩條三次B樣條曲線規(guī)劃針尖點(diǎn)和針軸點(diǎn)的軌跡。針尖點(diǎn)與其對(duì)應(yīng)的針軸點(diǎn)共同確定了點(diǎn)膠針軸矢量。B樣條曲線具有幾何不變性、凸包性、局部支撐性和變差減縮性等諸多優(yōu)良特性[12]。根據(jù)B樣條曲線的幾何不變性與仿射不變性可知:只要用于插補(bǔ)的原始數(shù)據(jù)點(diǎn)所確定的點(diǎn)膠針軸矢量垂直于點(diǎn)膠曲面,使用這些數(shù)據(jù)點(diǎn)插補(bǔ)計(jì)算得到的中間軌跡所對(duì)應(yīng)的點(diǎn)膠針軸矢量也將垂直于點(diǎn)膠曲面。給定n個(gè)原始路徑點(diǎn),則控制頂點(diǎn)數(shù)量為n+2,總共需要n+k+3個(gè)節(jié)點(diǎn)[13]。B樣條曲線的表達(dá)式為
(6)
式中:Ni,k(u)為B樣條基函數(shù);k為曲線次數(shù),k=3即為3次B樣條曲線;di為B樣條曲線的第i個(gè)控制頂點(diǎn);u為插補(bǔ)參數(shù),u∈[0,1]。插補(bǔ)軌跡起始點(diǎn)對(duì)應(yīng)的插補(bǔ)參數(shù)為0,終點(diǎn)對(duì)應(yīng)插補(bǔ)參數(shù)為1。端點(diǎn)處的節(jié)點(diǎn)矢量重復(fù)度為k+1,即首端4個(gè)節(jié)點(diǎn)矢量相同,末端4個(gè)節(jié)點(diǎn)矢量相同。待插補(bǔ)的路徑點(diǎn)有n個(gè),總共需要n+k+3個(gè)節(jié)點(diǎn)。定義針尖點(diǎn)軌跡的節(jié)點(diǎn)矢量為U=[u1,u2,…,un+k+3],針軸點(diǎn)軌跡的節(jié)點(diǎn)矢量為W=[w1,w2,…,wn+k+3],節(jié)點(diǎn)矢量中的各節(jié)點(diǎn)值可由積累弦長(zhǎng)法確定[13]。
針對(duì)問題2),首先采用預(yù)估校正法計(jì)算針尖點(diǎn)軌跡的插補(bǔ)參數(shù),使用泰勒一階展開法計(jì)算預(yù)估插補(bǔ)參數(shù);進(jìn)而使用牛頓迭代法對(duì)預(yù)估插補(bǔ)參數(shù)進(jìn)行迭代處理,重復(fù)迭代直至得到符合要求的針尖點(diǎn)插補(bǔ)參數(shù);然后根據(jù)兩條B樣條軌跡的同步關(guān)系計(jì)算針軸點(diǎn)軌跡的插補(bǔ)參數(shù);最后通過德布爾算法計(jì)算出兩條插補(bǔ)軌跡。
針對(duì)問題3),將直線段與弧線段接點(diǎn)處的節(jié)點(diǎn)區(qū)間作為過渡區(qū)間,使用五次多項(xiàng)式對(duì)過渡區(qū)間內(nèi)的旋轉(zhuǎn)軸轉(zhuǎn)角進(jìn)行軌跡規(guī)劃[14],非過渡區(qū)間的旋轉(zhuǎn)軸轉(zhuǎn)角則由兩條插補(bǔ)軌跡通過逆運(yùn)動(dòng)學(xué)計(jì)算式得到。
圖3為過渡區(qū)間示意圖,加工方向?yàn)槟鏁r(shí)針方向。p(un1),p(un2),p(un3),p(un4),p(un5),p(un6),p(un7),p(un8)分別為8個(gè)直線段與弧線段連接處的路徑點(diǎn),對(duì)應(yīng)8個(gè)過渡區(qū)間。使用CAM軟件生成的G代碼包含這些路徑點(diǎn)的信息,根據(jù)這些路徑點(diǎn)的序號(hào)可以確定對(duì)應(yīng)節(jié)點(diǎn)的下標(biāo)n1~n8。8個(gè)過渡區(qū)間分別為[un1,un1+1],[un2-1,un2],[un3,un3+1],[un4-1,un4],[un5,un5+1],[un6-1,un6],[un7,un7+1],[un8-1,un8]。8個(gè)過渡區(qū)間的并集R為總的過渡區(qū)間。
圖3 過渡區(qū)間示意圖Fig.3 Schematic diagram of the transition zone
根據(jù)上述方案設(shè)計(jì)雙B樣條插補(bǔ)算法,算法流程圖如圖4所示。
圖4 雙B樣條插補(bǔ)算法流程圖Fig.4 Flow chart of double B-spline interpolation algorithm
首先進(jìn)行雙B樣條軌跡規(guī)劃,得到插補(bǔ)軌跡關(guān)于插補(bǔ)參數(shù)u的計(jì)算式。然后每個(gè)插補(bǔ)周期都使用預(yù)估校正法計(jì)算插補(bǔ)參數(shù)u,將u代入針尖點(diǎn)軌跡計(jì)算式得到針尖點(diǎn)軌跡。接著根據(jù)插補(bǔ)參數(shù)是否在過渡區(qū)間范圍內(nèi),確定旋轉(zhuǎn)軸轉(zhuǎn)角的計(jì)算方式。若不在過渡區(qū)間內(nèi),則根據(jù)同步關(guān)系計(jì)算針軸點(diǎn)插補(bǔ)參數(shù),進(jìn)而計(jì)算針軸點(diǎn)插補(bǔ)軌跡;若在過渡區(qū)間內(nèi),則使用五次多項(xiàng)式計(jì)算旋轉(zhuǎn)軸轉(zhuǎn)角。最后根據(jù)旋轉(zhuǎn)軸轉(zhuǎn)角和針尖點(diǎn)軌跡反算出平動(dòng)軸位移量。重復(fù)此流程,直至插補(bǔ)參數(shù)大于等于1,插補(bǔ)完成。
由式(6)所定義的針尖點(diǎn)B樣條曲線軌跡為
(7)
式中:d1x,i,d1y,i,d1z,i為針尖點(diǎn)軌跡第i個(gè)控制頂點(diǎn)的坐標(biāo)值。針軸點(diǎn)軌跡表達(dá)式為
(8)
式中:d2x,i,d2y,i為針軸點(diǎn)軌跡第i個(gè)控制頂點(diǎn)的坐標(biāo)值。
G代碼包含的待插補(bǔ)原始數(shù)據(jù)點(diǎn)的X,Y,Z坐標(biāo)值即為針尖點(diǎn)坐標(biāo)。針軸點(diǎn)的原始數(shù)據(jù)點(diǎn)可由針尖點(diǎn)坐標(biāo)及其對(duì)應(yīng)的A軸和C軸角度值計(jì)算得出。針尖點(diǎn)和針軸點(diǎn)軌跡的控制頂點(diǎn)可根據(jù)待插補(bǔ)軌跡點(diǎn)及其對(duì)應(yīng)節(jié)點(diǎn)矢量通過追趕法反算[13]得出。
定義式法求插補(bǔ)軌跡點(diǎn)需要計(jì)算B樣條基函數(shù),計(jì)算量較大,使用德布爾算法可以更加高效地計(jì)算B樣條曲線上的點(diǎn)和導(dǎo)矢[15]。給定u∈[ui,ui+1],使用德布爾算法計(jì)算針尖點(diǎn)X坐標(biāo)值P1x的公式為
(9)
矢曲線上的點(diǎn)。一階導(dǎo)矢曲線的控制頂點(diǎn)可由每?jī)蓚€(gè)相鄰的針尖點(diǎn)軌跡控制頂點(diǎn)求得,計(jì)算方法為
(10)
由式(10)可計(jì)算得到對(duì)應(yīng)參數(shù)u的3個(gè)導(dǎo)矢曲線控制頂點(diǎn),而P′1x可由一階導(dǎo)矢曲線的3個(gè)控制頂點(diǎn)經(jīng)2級(jí)遞推得到,其計(jì)算方法為
(11)
P′1y和P′1z的求解同理。至此可得到針尖點(diǎn)軌跡、針軸點(diǎn)軌跡以及針軸點(diǎn)軌跡一階導(dǎo)矢的計(jì)算式,此外還需要計(jì)算符合恒進(jìn)給速度要求的針尖點(diǎn)軌跡插補(bǔ)參數(shù)u和針軸點(diǎn)軌跡插補(bǔ)參數(shù)w。
點(diǎn)膠機(jī)進(jìn)給速度定義為
(12)
式中:T為插補(bǔ)周期;L為每個(gè)插補(bǔ)周期內(nèi)的進(jìn)給步長(zhǎng)。雙轉(zhuǎn)臺(tái)五軸實(shí)驗(yàn)平臺(tái)的插補(bǔ)周期即是CODESYS控制系統(tǒng)的總線掃描周期,因?yàn)椴荒軐?shí)時(shí)更改,所以要保持進(jìn)給速度恒定就需要保證每個(gè)插補(bǔ)周期內(nèi)的進(jìn)給步長(zhǎng)恒定。而B樣條曲線插補(bǔ)中,目標(biāo)坐標(biāo)點(diǎn)由插補(bǔ)參數(shù)u確定,因此保證進(jìn)給速度恒定的關(guān)鍵在于插補(bǔ)參數(shù)u的計(jì)算。
插補(bǔ)參數(shù)的傳統(tǒng)計(jì)算方法為王云凱[5]和吳玉香等[6]所使用的泰勒展開法。泰勒一階展開法的插補(bǔ)參數(shù)計(jì)算表達(dá)式為
(13)
式中:un為已知的第n個(gè)插補(bǔ)周期的插補(bǔ)參數(shù);un+1為第n+1個(gè)插補(bǔ)周期的預(yù)估插補(bǔ)參數(shù)。泰勒二階展開法的插補(bǔ)參數(shù)計(jì)算表達(dá)式為
(14)
式中:P″1x,P″1y,P″1z為B樣條曲線的二階導(dǎo)矢??梢钥闯鎏├照归_法實(shí)際上是針對(duì)曲線曲率變化進(jìn)行一定的補(bǔ)償,其本質(zhì)為開環(huán)算法,計(jì)算結(jié)果不收斂。根據(jù)式(13,14)可知泰勒一階展開法所計(jì)算出的預(yù)估參數(shù)是單調(diào)遞增的。而泰勒二階展開法計(jì)算的參數(shù)可能在曲率較大時(shí)計(jì)算出反向插補(bǔ)參數(shù),且需額外計(jì)算二階導(dǎo)矢信息。綜上所述,筆者將采用泰勒一階展開法計(jì)算預(yù)估插補(bǔ)參數(shù)。對(duì)于預(yù)估參數(shù),進(jìn)一步使用牛頓迭代法進(jìn)行校正。
(15)
設(shè)目標(biāo)插補(bǔ)步長(zhǎng)為L(zhǎng)=VT,令預(yù)估插補(bǔ)步長(zhǎng)與目標(biāo)插補(bǔ)步長(zhǎng)相等,得到非線性方程為
(16)
方程兩邊均為距離標(biāo)量,為方便計(jì)算對(duì)兩邊同時(shí)進(jìn)行平方,即
(17)
預(yù)估插補(bǔ)參數(shù)un+1的計(jì)算可轉(zhuǎn)換為對(duì)非線性方程(17)的求解。而此非線性方程的求解使用牛頓迭代法可實(shí)現(xiàn)。牛頓迭代法可實(shí)現(xiàn)至少二階收斂,牛頓迭代法原理及收斂性證明詳見文獻(xiàn)[16]。泰勒一階展開法和牛頓迭代法所需要的一階導(dǎo)矢信息可由德布爾算法快速求出。計(jì)算出的一階導(dǎo)矢信息可被下一插補(bǔ)周期的泰勒展開法用于計(jì)算預(yù)估插補(bǔ)參數(shù),以提高預(yù)估插補(bǔ)參數(shù)的計(jì)算精度。
整理式(17)可得
(18)
對(duì)f(un+1)求導(dǎo)可得
f′(un+1)=2P′1xΔP1x(un+1)+2P′1yΔP1y(un+1)+
2P′1zΔP1z(un+1)
(19)
牛頓迭代法的定義式為
(20)
將式(18,19)代入式(20)即可得到計(jì)算插補(bǔ)參數(shù)的牛頓迭代式。在計(jì)算插補(bǔ)參數(shù)時(shí),每個(gè)插補(bǔ)周期都先使用泰勒一階展開法計(jì)算初步預(yù)估的插補(bǔ)參數(shù),然后再使用牛頓迭代法對(duì)其進(jìn)行迭代,直到預(yù)估插補(bǔ)步長(zhǎng)符合要求。
使用預(yù)估校正法的插補(bǔ)參數(shù)計(jì)算流程圖如圖5所示。
圖5 預(yù)估校正法流程圖Fig.5 Flow chart of predictive correction method
得到符合條件的參數(shù)后,就可使用德布爾算法求出針尖點(diǎn)軌跡,再根據(jù)兩條軌跡的插補(bǔ)參數(shù)同步關(guān)系確定針軸點(diǎn)軌跡的插補(bǔ)參數(shù),插補(bǔ)參數(shù)u和w的同步關(guān)系[17]為
(21)
根據(jù)式(21)可得到針軸點(diǎn)軌跡的插補(bǔ)參數(shù),進(jìn)而計(jì)算出針軸點(diǎn)軌跡。
設(shè)第i個(gè)節(jié)點(diǎn)為姿態(tài)突變點(diǎn),下標(biāo)j表示A軸或C軸;θj,i為第i個(gè)節(jié)點(diǎn)的旋轉(zhuǎn)軸角度,θj,i+1為第i+1個(gè)節(jié)點(diǎn)的旋轉(zhuǎn)軸角度;Ts為由節(jié)點(diǎn)i運(yùn)動(dòng)到節(jié)點(diǎn)i+1所需時(shí)間,Vj,i為軸運(yùn)動(dòng)到第i個(gè)節(jié)點(diǎn)處的速度,Vj,i+1為第i+1個(gè)節(jié)點(diǎn)處的速度,首末加速度為0。根據(jù)約束條件可得到五次多項(xiàng)式曲線的系數(shù),即
(22)
五次多項(xiàng)式曲線的表達(dá)式為
θj(t)=a0+a1t+a2t2+a3t3+a4t4+a5t5
(23)
將式(22)代入式(23)即可得到A軸和C軸的五次多項(xiàng)式曲線軌跡的表達(dá)式。過渡區(qū)間處C軸電機(jī)位置記錄曲線如圖6所示,速度曲線如圖7所示。
圖6 C軸位置曲線Fig.6 C-axis position curve
圖7 C軸速度曲線Fig.7 C-axis speed curve
仿真平臺(tái)為CODESYS軟件,控制器CPU為ARM Cortex-A8 600 MHz/1 GHz。實(shí)驗(yàn)對(duì)象為如圖8所示的手機(jī)模型。圖8中深色部分為點(diǎn)膠軌跡所在曲面,其中心線為點(diǎn)膠軌跡。使用MasterCAM軟件提取特征點(diǎn)得到G代碼格式的型值點(diǎn)信息。
圖8 手機(jī)模型圖Fig.8 Mobile phone model diagram
分別運(yùn)用PVT插補(bǔ)法和雙B樣條插補(bǔ)算法進(jìn)行仿真驗(yàn)證。針對(duì)雙B樣條插補(bǔ)算法,再使用不同插補(bǔ)參數(shù)的計(jì)算方法進(jìn)行仿真對(duì)比。使用速度波動(dòng)率(速度誤差占設(shè)定速度的百分比)作為衡量進(jìn)給速度波動(dòng)的指標(biāo)。設(shè)置二分迭代和牛頓迭代法的迭代結(jié)束條件為速度波動(dòng)率小于1×10-4%,插補(bǔ)周期設(shè)置為1 ms。使用CODESYS軟件中的數(shù)據(jù)跟蹤功能記錄仿真數(shù)據(jù)。
PVT插補(bǔ)仿真實(shí)驗(yàn)結(jié)果如圖9所示,由圖9可以看出除直線段外進(jìn)給速度不能被有效控制。泰勒一階展開法的仿真結(jié)果如圖10所示。單獨(dú)使用泰勒一階展開法在插補(bǔ)開始時(shí)速度波動(dòng)率最大,這是由于泰勒一階展開法計(jì)算需要有上一個(gè)點(diǎn)的一階導(dǎo)矢信息,而第一個(gè)點(diǎn)之前沒有導(dǎo)矢信息,只能按給定初值計(jì)算。
圖9 PVT插補(bǔ)法的仿真進(jìn)給速度曲線Fig.9 The simulation feed rate curve of PVTinterpolation method
圖10 泰勒一階展開法的仿真進(jìn)給速度曲線Fig.10 The simulation feed rate curve of Taylor’sfirst-order expansion method
當(dāng)使用迭代法控制進(jìn)給步長(zhǎng)進(jìn)行插補(bǔ)時(shí),整體進(jìn)給速度都是恒定的,對(duì)比效果不明顯,因此此處不再給出二分迭代法及牛頓迭代法的進(jìn)給速度仿真圖,主要對(duì)比使用不同插補(bǔ)方法時(shí)的速度波動(dòng)率及迭代次數(shù)。表1為不同插補(bǔ)方法的仿真結(jié)果對(duì)比數(shù)據(jù)。使用二分迭代法無法在設(shè)定的速度誤差和插補(bǔ)周期條件下完成插補(bǔ),數(shù)據(jù)跟蹤出現(xiàn)高丟包率,當(dāng)插補(bǔ)周期增加到4 ms時(shí)不再丟包。有效控制了進(jìn)給速度,但迭代次數(shù)太多,影響實(shí)時(shí)性。牛頓迭代法平均迭代次數(shù)較少,且速度波動(dòng)率更小,實(shí)現(xiàn)了恒進(jìn)給速度約束條件下插補(bǔ)參數(shù)的快速計(jì)算。
表1 不同插補(bǔ)方法的仿真結(jié)果對(duì)比表Table 1 Comparison table of simulation results of differentinterpolation methods
選取對(duì)應(yīng)速度波動(dòng)率96%時(shí)的插補(bǔ)參數(shù)作為迭代初值,迭代終止條件設(shè)置為速度波動(dòng)率小于1×10-4%,實(shí)驗(yàn)結(jié)果如圖11所示。在高初值誤差條件下,二分迭代法需要迭代28次,迭代后速度波動(dòng)率為4.6×10-7%,牛頓迭代法需要迭代4次,迭代后速度波動(dòng)率為3×10-6%。選取對(duì)應(yīng)速度波動(dòng)率2%時(shí)的插補(bǔ)參數(shù)作為迭代初值,迭代終止條件不變,實(shí)驗(yàn)結(jié)果如圖12所示。在低初值誤差條件下,二分迭代法所需迭代數(shù)為34次,迭代后速度波動(dòng)率為1.18×10-5%。牛頓迭代法所需迭代數(shù)為2次,迭代后速度波動(dòng)率為3.14×10-6%。可見二分迭代法在插補(bǔ)參數(shù)的迭代計(jì)算中效果不好。此外,牛頓迭代法每次迭代完成時(shí)計(jì)算出的一階導(dǎo)矢數(shù)據(jù)可以直接被下一插補(bǔ)周期的泰勒一階展開法用于計(jì)算預(yù)估參數(shù),從而提升下一次泰勒預(yù)估展開法的預(yù)估精度。仿真實(shí)驗(yàn)驗(yàn)證了大部分情況下牛頓迭代法只需要迭代1次即可滿足設(shè)定誤差要求。對(duì)算法的仿真驗(yàn)證了使用泰勒一階法預(yù)估參數(shù)結(jié)合牛頓迭代法校正參數(shù)的預(yù)估校正算法可以有效減小計(jì)算量,提高實(shí)時(shí)性。
圖11 高初值誤差條件下迭代次數(shù)對(duì)比圖Fig.11 Comparison chart of iteration timesunder high initial error conditions
圖12 低初值誤差條件下迭代次數(shù)對(duì)比圖Fig.12 Comparison chart of iteration timesunder low initial error conditions
實(shí)驗(yàn)平臺(tái)為雙轉(zhuǎn)臺(tái)五軸點(diǎn)膠機(jī),控制器與仿真實(shí)驗(yàn)相同。3個(gè)平動(dòng)軸使用歐姆龍R88D_KN02H_ECT驅(qū)動(dòng)器及配套的R88M-K200030H-BOS2-Z電機(jī),額定功率為200 W。旋轉(zhuǎn)軸使用禾川SV-X3EB010A-A2伺服驅(qū)動(dòng)器及配套的禾川SV-X2MH010A-N2LA電機(jī),額定功率為100 W。旋轉(zhuǎn)軸搭配減速比為40的減速器。分別使用PVT插補(bǔ)和B樣條插補(bǔ)進(jìn)行實(shí)驗(yàn),進(jìn)給速度均設(shè)置為10 mm/s,并利用CODESYS內(nèi)置參數(shù)跟蹤功能記錄實(shí)驗(yàn)數(shù)據(jù)。
圖13為使用PVT插補(bǔ)時(shí)的進(jìn)給速度跟蹤記錄。使用PVT插補(bǔ)時(shí)進(jìn)給速度的波動(dòng)率比較大,最大速度波動(dòng)率為79%,平均速度波動(dòng)率為4.9%。圖14為使用雙B樣條插補(bǔ)時(shí)的進(jìn)給速度跟蹤記錄。最大速度波動(dòng)率為29.1%,平均速度波動(dòng)率為1.9%,較PVT插補(bǔ)有明顯改善。實(shí)驗(yàn)記錄的速度波動(dòng)率數(shù)據(jù)相較于仿真結(jié)果有較大偏差,原因在于實(shí)驗(yàn)平臺(tái)的伺服系統(tǒng)性能不足,帶負(fù)載時(shí)旋轉(zhuǎn)軸速度誤差較大,旋轉(zhuǎn)軸速度對(duì)合成速度有很大影響,因而實(shí)驗(yàn)效果不太理想。
圖13 PVT插補(bǔ)的實(shí)際進(jìn)給速度曲線Fig.13 Actual feed rate curve of PVT interpolation
圖14 雙B樣條插補(bǔ)的實(shí)際進(jìn)給速度曲線Fig.14 Actual feed rate curve of double B-spline interpolation
在雙B樣條插補(bǔ)算法的應(yīng)用中,點(diǎn)膠針軸矢量通常為單位矢量長(zhǎng)度。為使軌跡更易被觀察,實(shí)驗(yàn)中將雙B樣條之間的間距設(shè)為10 mm,間距的大小對(duì)插補(bǔ)并無影響。五軸點(diǎn)膠機(jī)的實(shí)驗(yàn)點(diǎn)膠軌跡結(jié)果如圖15所示,兩條B樣條曲線軌跡共同確定了點(diǎn)膠軌跡和點(diǎn)膠針軸矢量。為了便于對(duì)比,將弧線段處軌跡放大并調(diào)整為俯視圖。圖16為雙B樣條插補(bǔ)弧線段處軌跡的俯視圖。使用雙B樣條插補(bǔ)算法時(shí)點(diǎn)膠針軸矢量基本與軌跡法向量方向一致。圖17為PVT插補(bǔ)弧線段處軌跡的俯視圖,可以看出使用PVT插補(bǔ)算法時(shí)點(diǎn)膠針軸矢量的偏差較大。圖18為目標(biāo)軌跡、B樣條插補(bǔ)軌跡和PVT插補(bǔ)軌跡的局部對(duì)比圖,選取了直線與圓弧接點(diǎn)處軌跡進(jìn)行對(duì)比。雙B樣條插補(bǔ)最大誤差為0.2 mm,PVT插補(bǔ)最大誤差為0.85 mm。實(shí)驗(yàn)結(jié)果表明雙B樣條插補(bǔ)相較于PVT插補(bǔ)可以顯著提高點(diǎn)膠精度。
圖15 雙B樣條的插補(bǔ)軌跡圖Fig.15 Interpolation trajectory diagram ofdouble B-spline
圖16 雙B樣條插補(bǔ)的軌跡俯視圖Fig.16 Top view of trajectory of double B-splineinterpolation
圖17 PVT插補(bǔ)的軌跡俯視圖Fig.17 Top view of the trajectory of PVTinterpolation
圖18 點(diǎn)膠軌跡對(duì)比圖Fig.18 Dispensing track comparison chart
筆者基于五軸點(diǎn)膠機(jī)研究了雙B樣條插補(bǔ)算法;采用雙B樣條曲線規(guī)劃了點(diǎn)膠軌跡和非過渡區(qū)間的點(diǎn)膠針軸矢量;使用預(yù)估校正法計(jì)算插補(bǔ)參數(shù),有效控制了進(jìn)給速度,且迭代次數(shù)較少;使用五次多項(xiàng)式曲線規(guī)劃過渡區(qū)間內(nèi)的旋轉(zhuǎn)軸轉(zhuǎn)角,實(shí)現(xiàn)了直線段與弧線段處點(diǎn)膠姿態(tài)的平穩(wěn)過渡。在CODESYS軟件和雙轉(zhuǎn)臺(tái)五軸點(diǎn)膠機(jī)平臺(tái)上進(jìn)行了仿真與實(shí)驗(yàn),仿真與實(shí)驗(yàn)結(jié)果顯示:相較于PVT插補(bǔ)算法,筆者所提雙B樣條插補(bǔ)算法在相同條件下對(duì)進(jìn)給速度的控制效果更好,點(diǎn)膠軌跡和點(diǎn)膠針軸矢量的誤差更小。綜上所述,筆者所提雙B樣條插補(bǔ)算法在工程實(shí)踐中具有實(shí)用價(jià)值。
本文得到了浙江工業(yè)大學(xué)教學(xué)改革項(xiàng)目(JG201918)的資助。