鄔再新,李華兵
(蘭州理工大學(xué) 機(jī)電工程學(xué)院,蘭州 730000)
自由曲線是指無法用數(shù)學(xué)公式表達(dá),而是由一些型值點(diǎn)用平滑曲線連接而成的曲線[1]。目前對(duì)于這類曲線一般是采用NURBS曲線建模的方法,得到曲線的數(shù)學(xué)表達(dá)式,再根據(jù)該數(shù)學(xué)表達(dá)式進(jìn)行插補(bǔ)[2-4]。趙平等[5]提出基于NURBS曲線插補(bǔ)方法對(duì)數(shù)控程序進(jìn)行后處理,用過合理選擇基函數(shù)、控制點(diǎn)、權(quán)因子等參數(shù)來實(shí)現(xiàn)擬合精度及進(jìn)給速度的優(yōu)化。王允森等[6]以拋物線插值結(jié)合牛頓迭代法,提出一種新的RURBS曲線插補(bǔ)算法。梁盈富等[7]運(yùn)用3階NURBS曲線實(shí)現(xiàn)對(duì)自由曲線的插補(bǔ)運(yùn)算,通過改進(jìn)的4階阿當(dāng)姆斯微分方程預(yù)估插補(bǔ)中插補(bǔ)參數(shù),實(shí)現(xiàn)數(shù)據(jù)點(diǎn)的密化。但NURBS曲線建模法涉及的計(jì)算量大、求導(dǎo)誤差大、且比較復(fù)雜,對(duì)相關(guān)數(shù)學(xué)知識(shí)的掌握要求較高,這就在一定程度上造成了插補(bǔ)的困難。
神經(jīng)網(wǎng)絡(luò)是一門活躍的邊緣性交叉學(xué)科,它所具有的并行運(yùn)算能力可大幅度縮短插補(bǔ)運(yùn)算時(shí)間,良好的非線性逼近能力和自學(xué)習(xí)能力使之能對(duì)任意曲線及空間離散點(diǎn)進(jìn)行直接插補(bǔ)。現(xiàn)有的神經(jīng)網(wǎng)絡(luò)插補(bǔ)算法[8]大多是針對(duì)特殊的曲線形式,如拋物線、雙曲線等,且都是以一個(gè)恒定的進(jìn)給速度來進(jìn)行研究,沒有考慮插補(bǔ)時(shí)進(jìn)給速度的波動(dòng)對(duì)最終插補(bǔ)結(jié)果造成的影響。本文以RBF(徑向基)網(wǎng)絡(luò)為基礎(chǔ),在對(duì)插補(bǔ)精度分析時(shí)充分考慮弓高誤差的影響,并結(jié)合5段S型加減速策略,提出一種新的神經(jīng)網(wǎng)絡(luò)數(shù)控插補(bǔ)模型。
RBF網(wǎng)絡(luò)屬于三層前饋網(wǎng)絡(luò),由三部分組成:一組感知單元組成的輸入層、計(jì)算節(jié)點(diǎn)的隱含層和計(jì)算節(jié)點(diǎn)的輸出層。輸入層選xi-1、yi-1、ΔL三個(gè)節(jié)點(diǎn),分別為前一個(gè)插補(bǔ)點(diǎn)的坐標(biāo)值和進(jìn)給步長(zhǎng)。傳遞函數(shù)為高斯函數(shù)。輸出層為兩個(gè)節(jié)點(diǎn),即下一個(gè)插補(bǔ)點(diǎn)的坐標(biāo)值xi、yi。而RBF網(wǎng)絡(luò)不需要人為確定隱含層神經(jīng)元的個(gè)數(shù),這就最大限度的避免了人為主觀假定對(duì)網(wǎng)絡(luò)預(yù)測(cè)結(jié)果造成的影響。神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 RBF神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
確定了網(wǎng)絡(luò)的結(jié)構(gòu)之后,需要獲取一組樣本數(shù)據(jù)對(duì)該神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練。對(duì)于自由曲線,可用已知的一些型值點(diǎn)作為神經(jīng)網(wǎng)絡(luò)的輸入樣本。
RBF網(wǎng)絡(luò)的學(xué)習(xí)要求解3個(gè)參數(shù):徑向基函數(shù)的中心ci、寬度σi、隱含層到輸出層的權(quán)值。網(wǎng)絡(luò)的學(xué)習(xí)算法一般包括確定徑向基函數(shù)的中心和徑向基函數(shù)權(quán)值學(xué)習(xí)調(diào)整兩個(gè)階段。
本文以自組織選取中心算法和最小二乘法來求解這3個(gè)參數(shù)。具體步驟如下:
(1) 網(wǎng)絡(luò)初始化。隨機(jī)的選擇h個(gè)訓(xùn)練樣本作為聚類中心ci(k)(i=1,2,...,h;k為迭代次數(shù))。
(4) 重新調(diào)整聚類中心。
(1)
式中,i=1,2,...,h;ni為第i個(gè)聚類域θi(k)當(dāng)中所包含的樣本個(gè)數(shù)。
(5) 如果ci(k+1)≠ci(k),轉(zhuǎn)到步驟(2);否則聚類結(jié)束。
(6) 求解方差σi。因?yàn)镽BF神經(jīng)網(wǎng)絡(luò)的徑向基函數(shù)為高斯函數(shù),所以方差σi可由下式求解:
(2)
式中,i=1,2,...,h;cmax為所選取中心之間的最大距離。
(7)計(jì)算隱含層和輸出層之間的權(quán)值ω。當(dāng)確定了徑向基函數(shù)的中心ci和寬度σi之后,隱含層至輸出層之間的輸出權(quán)值就可以采用最小二乘法直接計(jì)算得到。計(jì)算公式為:
(3)
式中,j=1,2,...,n;i=1,2,...,h。
根據(jù)編程提供的進(jìn)給速度F0,將給定輪廓曲線細(xì)分成許多微小直線段,即輪廓步長(zhǎng),且每個(gè)插補(bǔ)運(yùn)算周期只計(jì)算一次。因此,由進(jìn)給速度F0和插補(bǔ)周期T確定的輪廓步長(zhǎng)為:
Ln=F0T
(4)
用神經(jīng)網(wǎng)絡(luò)建立的插補(bǔ)模型進(jìn)行插補(bǔ)時(shí),不存在弦長(zhǎng)誤差,只存在用直線逼近曲線時(shí)產(chǎn)生的弓高誤差,即輪廓誤差。圖2中,Ei為弓高誤差,ρi為曲率半徑,Li為進(jìn)給步長(zhǎng)。
圖2 圓弧近似弓高誤差分析圖
根據(jù)其幾何關(guān)系有:
(5)
假設(shè)機(jī)床加工所允許的最大弓高誤差為Emax,由式(4)可得在該誤差約束條件下的進(jìn)給步長(zhǎng)為:
(6)
對(duì)弓高誤差進(jìn)行分析,并將分析結(jié)果引入到插補(bǔ)步長(zhǎng)變化控制當(dāng)中,使插補(bǔ)步長(zhǎng)能夠根據(jù)曲率的變化進(jìn)行自適應(yīng)的調(diào)整,但同時(shí)也不可避免的造成進(jìn)了給速度的頻繁波動(dòng)。隨著曲線曲率的增大,當(dāng)速度以F0插補(bǔ)出的點(diǎn)無法滿足精度要求時(shí),速度就會(huì)由F0下降為由最大弓高誤差約束下的進(jìn)給速度F1。F0與F1之間的數(shù)值差距會(huì)引起速度的突變,引起過大的進(jìn)給加速度。而過大的加速度將給機(jī)床帶來巨大沖擊,甚至產(chǎn)生破壞,因此必須在插補(bǔ)中考慮加減速的問題。
根據(jù)以上對(duì)自適應(yīng)區(qū)域的分析,文章采用簡(jiǎn)化后的五段S曲線加減速控制算法,將自適應(yīng)區(qū)域的速度規(guī)劃為加減速段、減減速段、勻速段、加加速段和減加速段[9],如圖3所示。
以進(jìn)入自適應(yīng)區(qū)域之后的減速階段為例進(jìn)行分析,如圖3所示,其速度曲線為二次拋物線,加速度曲線為線性直線,加加速度曲線為常數(shù)直線。從圖3可以看出,整個(gè)減速過程可以分為兩部分:加減速段和減減速段。以加減速過程為例,設(shè)該過程的速度方程為:
V1(t)=a0+a1t+a2t2
(7)
對(duì)速度方程分別求一階、二階導(dǎo)數(shù),可得到加速度、加加速度方程:
A1(t)=a1+2a2t
(8)
J1(t)=2a2
(9)
設(shè)減速過程的開始時(shí)刻為0,起始速度為Vs,終止速度為Ve,最大加速度為A,最大加加速度為J。加減速階段的時(shí)間為0~t1,減減速階段的時(shí)間為t1~t2,其中t1既是加減速階段的終止時(shí)刻,也是減減速階段的開始時(shí)刻。
圖3 5段S型加減速
結(jié)合圖3對(duì)減速過程進(jìn)行分析可得,當(dāng)t=0時(shí),速度為Vs,加速度為0,加加速度為-J,即:
(10)
因此,加減速段的速度方程為:
(11)
當(dāng)t=t1時(shí),減速過程可達(dá)到最大加速度值,A1(t1)=-Jt1=-A,得:
(12)
同理,可推導(dǎo)出減減速段的速度方程為:
(13)
因?yàn)檎麄€(gè)減速段的速度曲線是連續(xù)的,所以有:
V1(t1)=V2(t1)
(14)
將式(11)~式(13)代入式(14)得:
(15)
(16)
(17)
前瞻控制的目的是為了在到達(dá)速率敏感點(diǎn)之前將速度降到由弓高誤差約束下的速度值[10]。首先對(duì)整條軌跡進(jìn)行快速預(yù)插補(bǔ),并在此過程中完成曲線曲率的計(jì)算、速率敏感點(diǎn)的識(shí)別。對(duì)于五段S型加減速階段,其前瞻距離的計(jì)算包括加減速階段和減減速階段的位移距離。對(duì)式(11)積分可得加減速段的位移曲線方程:
(18)
因此,加減速段的位移距離為:
L1=S(t1)-S(0)
(19)
同理可得減減速段的位移距離L2,故減速段的位移量為:
Ld=L1+L2
(20)
得到減速距離Ld后,以速率敏感點(diǎn)為起點(diǎn)向前尋找插補(bǔ)點(diǎn)m,其對(duì)應(yīng)的路徑Lm應(yīng)滿足Lm≥Ld,則插補(bǔ)點(diǎn)m即為減速起始點(diǎn)。
為了驗(yàn)證上述神經(jīng)網(wǎng)絡(luò)插補(bǔ)模型的有效性,在MATLAB平臺(tái)上進(jìn)行仿真測(cè)試。為了使結(jié)果直觀,好做比較,本文選擇正弦曲線為例進(jìn)行仿真計(jì)算。預(yù)設(shè)參數(shù)為:插補(bǔ)周期和采樣周期為T=2ms,仿真時(shí)的編程速度為F0=70mm/s,允許的最大加速度為Amax=50mm/s2,允許的最大加加速度為Jmax=250mm/s3;最大弓高誤差設(shè)定為εmax=2μm。采用簡(jiǎn)化后的5段S型加減速控制算法,選取曲線上的一組型值點(diǎn)作為訓(xùn)練樣本,對(duì)模型進(jìn)行訓(xùn)練;以訓(xùn)練后的模型輸出作為刀具軌跡點(diǎn)。
當(dāng)只考慮由進(jìn)給速度和插補(bǔ)周期約束下的進(jìn)給步長(zhǎng),而不考慮輪廓誤差控制時(shí),應(yīng)用RBF神經(jīng)網(wǎng)絡(luò)算法對(duì)上述參數(shù)設(shè)置的曲線進(jìn)行仿真插補(bǔ),得到的弓高誤差曲線如圖4所示。從圖4可以看出,當(dāng)以恒定的進(jìn)給速度對(duì)曲線進(jìn)行插補(bǔ)時(shí),由于進(jìn)給速度和插補(bǔ)周期不變,導(dǎo)致插補(bǔ)步長(zhǎng)為定值;而當(dāng)曲線曲率增大時(shí),插補(bǔ)步長(zhǎng)無法進(jìn)行自動(dòng)調(diào)節(jié),弓高誤差也會(huì)隨之增大。圖中的兩個(gè)波峰相對(duì)應(yīng)于sin函數(shù)曲線兩個(gè)曲率較大的位置。圖4中的最大弓高誤差為2.4μm,已超過預(yù)先設(shè)定的最大弓高誤差允許值。
采用本文提出的神經(jīng)網(wǎng)絡(luò)插補(bǔ)算法對(duì)上述參數(shù)設(shè)置的曲線進(jìn)行仿真測(cè)試,得到弓高誤差曲線,如圖5所示。從圖5可以看出,由于充分考慮了輪廓誤差控制,最大弓高誤差被很好的控制在2μm以內(nèi)。在曲線曲率發(fā)生較大波動(dòng)時(shí)時(shí),模型能夠根據(jù)曲率的變化對(duì)插補(bǔ)步長(zhǎng)進(jìn)行相應(yīng)的調(diào)整,從而保證弓高誤差始終小于設(shè)定的最大弓高誤差。
圖4 弓高誤差曲線
圖5 弓高誤差曲線
仿真得到的速度、加速度曲線如圖6、圖7所示。從圖6、圖7可以看出,在整個(gè)插補(bǔ)過程中,速度、加速度保持平穩(wěn),保證了零件的表面質(zhì)量和加工效率。圖8為局部速度曲線,從圖中可以看出,在插補(bǔ)過程中,速度曲線變化平滑,實(shí)現(xiàn)了平滑無沖擊的進(jìn)給過程。
圖6 速度曲線
圖7 加速度曲線
圖8 局部速度曲線
文章對(duì)神經(jīng)網(wǎng)絡(luò)技術(shù)在自由曲線插補(bǔ)當(dāng)中的應(yīng)用進(jìn)行了研究,得到如下結(jié)論:
(1)利用本文構(gòu)建的神經(jīng)網(wǎng)絡(luò)模型對(duì)自由曲線進(jìn)行插補(bǔ)時(shí),只需知道待加工曲線上的一部分型值點(diǎn),并且不涉及求導(dǎo)等復(fù)雜的數(shù)學(xué)推導(dǎo),具有原理簡(jiǎn)單、計(jì)算量小、插補(bǔ)精度高和插補(bǔ)速度快等優(yōu)點(diǎn)。
(2)通過對(duì)弓高誤差進(jìn)行分析,推導(dǎo)出在最大弓高誤差約束條件下的插補(bǔ)步長(zhǎng);并結(jié)合5段S型加減速控制策略,使整個(gè)插補(bǔ)過程中的速度和加速度保持平穩(wěn),實(shí)現(xiàn)了數(shù)控機(jī)床平滑、無沖擊的進(jìn)給過程,最大限度的平衡了進(jìn)給速度和加工精度之間的矛盾。