劉志剛 黃剛鵬 張 旭 劉清建
(1.天津理工大學(xué)天津市先進(jìn)機(jī)電系統(tǒng)設(shè)計(jì)與智能控制重點(diǎn)實(shí)驗(yàn)室,天津 300384;2.天津理工大學(xué)機(jī)電工程國(guó)家級(jí)實(shí)驗(yàn)教學(xué)示范中心,天津 300384)
在復(fù)雜的曲面加工過(guò)程中,通常會(huì)根據(jù)各種約束條件將曲線段離散為微小線段,然后按照直線段進(jìn)行速度規(guī)劃,但如果要求擬合精度高,離散后的小線段往往存在計(jì)算量增多、加速度頻繁變化等問(wèn)題,從而影響加工效率[1-2]。
數(shù)控系統(tǒng)中速度規(guī)劃的核心是加減速控制算法。國(guó)內(nèi)學(xué)者針對(duì)速度控制算法進(jìn)行了大量研究,但是這些算法并沒(méi)有從本質(zhì)上解決計(jì)算量大等問(wèn)題。曲線擬合算法可以根據(jù)實(shí)際需求選擇不同的曲線模型進(jìn)行擬合。張等[3]提出了一種基于二次B 樣條曲線的擬合及插補(bǔ)方法,該算法通過(guò)自適應(yīng)的方法選取特征點(diǎn),然后通過(guò)曲線擬合加工路徑,避免了高次方程的求解。常見(jiàn)的曲線擬合算法在利用多項(xiàng)式進(jìn)行擬合的過(guò)程中會(huì)產(chǎn)生大量方程,很難做到實(shí)時(shí)處理。
基于此,該文提出了一種基于T 型加減速的曲線擬合算法。該算法在一定程度上改善了上述缺陷,并且將擬合點(diǎn)的坐標(biāo)計(jì)算為簡(jiǎn)單的二次方程,在保證加工精度的前提下,減少了計(jì)算量,可滿足高速、高精的加工需求。
該節(jié)中介紹了傳統(tǒng)的T 型加減速算法,然后根據(jù)其核心公式的變形求解出擬合坐標(biāo)所需的速度規(guī)劃參數(shù)。
T 型加減速的基本原理是在指定的時(shí)間內(nèi),先以最大加速度加速到達(dá)目標(biāo)速度,然后以最大減速度減速停止。該算法可以確保設(shè)備在規(guī)定時(shí)間內(nèi)平滑地從靜止?fàn)顟B(tài)加速到目標(biāo)速度,到達(dá)目標(biāo)位置時(shí)平滑地停止。在T 型加減速中,速度的突變往往來(lái)源于加工路徑的變化,加速度的突變體現(xiàn)在加速度的從無(wú)到有[4-5]。T 型加減速曲線分為加速階段、勻速階段和減速階段,基本公式如公式(1)所示。
式中:vs(mm/s)是運(yùn)動(dòng)的初始速度;v(mm/s)是經(jīng)過(guò)一段加速或減速階段后的速度;a(mm/s2)是加速度;S(mm)是位移;t是任意時(shí)刻的運(yùn)行時(shí)間。
先對(duì)要加工的線段的距離進(jìn)行求解,根據(jù)幾何學(xué)中平面內(nèi)任意2 個(gè)點(diǎn)間距離公式(2),可計(jì)算AB段和BC段的長(zhǎng)度,如公式(2)所示。
式中:lAB為AB段的長(zhǎng)度;lBC為BC段的長(zhǎng)度;A(xA,yA)為首點(diǎn)坐標(biāo);C(xC,yC)為尾點(diǎn)坐標(biāo);B(xB,yB)為待擬合曲線在點(diǎn)A處的切線矢量和在點(diǎn)C處的切線矢量的交點(diǎn)坐標(biāo)。其中,x、y為空間直角坐標(biāo)系的2 個(gè)坐標(biāo)軸,(xA,yA)為第一個(gè)分段點(diǎn)的坐標(biāo),(xC,yC)為第二個(gè)分段點(diǎn)的坐標(biāo)。
AB段、BC段運(yùn)動(dòng)圖示如圖1、圖2 所示。
圖1 AB 段運(yùn)動(dòng)圖示
圖2 BC 段運(yùn)動(dòng)圖示
圖1 中,在直線段AB上,從點(diǎn)A開(kāi)始進(jìn)行減速,直到點(diǎn)B時(shí)速度減為0,且A點(diǎn)的速度不能為0;圖2 中,在直線段BC上,從點(diǎn)B開(kāi)始進(jìn)行加速,直到點(diǎn)C時(shí)速度最大,同樣這里C點(diǎn)的速度也不能為0。在運(yùn)行時(shí)間t時(shí)刻內(nèi),直線段AB與直線段BC上的運(yùn)動(dòng)是同時(shí)開(kāi)始、同時(shí)結(jié)束的,即當(dāng)在直線段AB上運(yùn)動(dòng)到點(diǎn)B時(shí),在直線段BC上運(yùn)動(dòng)到點(diǎn)C(在T 型加減速中,加速階段和減速度階段的加速度大小相同,方向相反,即AB段的加速度aAB、BC段的加速度aBC大小相同,方向相反)。
根據(jù)勻變速直線運(yùn)動(dòng)規(guī)律公式(3)、公式(4),可以求得A點(diǎn)的速度、B點(diǎn)對(duì)應(yīng)的速度,然后根據(jù)加速度的求解公式對(duì)AB段、BC段的加速度進(jìn)行求解。這樣就得到了T 型加減速的基礎(chǔ)參數(shù)。
式中:SAB為t時(shí)刻運(yùn)行的距離;lAB為AB段的長(zhǎng)度,設(shè)定運(yùn)行的距離為整段AB 段的長(zhǎng)度;vA為A點(diǎn)的速度;aAB為直aAB線段AB的加速度。
式中:SBC為t時(shí)刻運(yùn)行的距離;lBC為BC段的長(zhǎng)度,設(shè)定運(yùn)行的距離為整段BC段的長(zhǎng)度;vC為C點(diǎn)的速度;aBC為直線段BC的加速度。
在上一節(jié)已經(jīng)計(jì)算出SAB、vA、aAB、SBC、vC、aBC等參數(shù),該節(jié)討論擬合點(diǎn)坐標(biāo)的求解。
根據(jù)平面內(nèi)矢量的減法原則,可以計(jì)算直線段AB的矢量方向,如公式(5)所示。
式中:vf_AB為直線段AB的矢量方向;xA、yA分別為A點(diǎn)的橫、縱坐標(biāo)值;xB、yB分別為B點(diǎn)的橫、縱坐標(biāo)值;SAB為t時(shí)刻運(yùn)行的距離;vf_AB_x為vf_AB在x軸方向的分量;vf_AB_y為vf_AB在y軸方向的分量。
矢量同時(shí)具有大小和方向,即矢量=矢量大小×矢量方向。根據(jù)公式(5)已經(jīng)得到直線段AB的矢量方向,再根據(jù)公式(1)可求得t時(shí)刻的速度大小,即vt_AB=vA-aAB×t,最后根據(jù)已求出的直線段AB的矢量方向和速度大小,可以求解速度矢量,具體如公式(6)所示。
式中:為直線段AB上t時(shí)刻的速度矢量;vt_AB為直線段AB上t時(shí)刻的速度大小;vf_AB_x為已求出的直線段AB的矢量方向在x軸方向的分量;vf_AB_y為已求出的直線段AB的矢量方向在y軸方向的分量。
同理可求得直線段BC的速度矢量方向及大小,此時(shí)BC段t時(shí)刻的速度大小計(jì)算公式為vt_BC=vB+aBC×t。直線段BC的矢量方向求解公式如公式(7)所示,速度矢量求解公式如公式(8)所示。
式中:vf_Bc為直線段BC的矢量方向;xB、yB分別為B點(diǎn)的橫、縱坐標(biāo)值;xc、yc分別為C點(diǎn)的橫、縱坐標(biāo)值;SBC為t時(shí)刻運(yùn)行的距離;vf_AB_x為vf_AB在x軸方向的分量;vf_AB_y為vf_AB在y軸方向的分量。
式中:為直線段BC上任意時(shí)刻t的速度矢量;vt_BC為直線段BC 上任意時(shí)刻t的速度;vf_BC_x為已求出的直線段BC的矢量方向在x軸方向的分量;vf_BC_y為已求出的直線段BC的矢量方向在y軸方向的分量。
速度矢量關(guān)系圖如圖3 所示。
圖3 速度矢量關(guān)系圖
如圖3 所示,四邊形DEBF是平行四邊形,根據(jù)幾何關(guān)系可推得在矢量三角形ABC中,切線矢量即為合成速度矢量。根據(jù)圖3 中的矢量三角形矢量的合成關(guān)系,可以推出速度矢量的求解公式,如公式(10)所示。
式中:是直線段AB上t時(shí)刻的速度矢量,是直線段BC 上t時(shí)刻的速度矢量;是合成速度矢量。
首先利用公式(1)的變形對(duì)t時(shí)刻AB、BC這2 段距離矢量的大小進(jìn)行求解,再結(jié)合2.1 節(jié)中求解出的速度矢量方向?qū)嚯x矢量進(jìn)行求解,距離矢量的求解方式和速度矢量的求解方式相似,如公式(10)、公式(11)所示。
式中:為經(jīng)過(guò)t時(shí)刻在直線段AB上的距離矢量;vA為A點(diǎn)的速度;aAB為AB減速段的加速度;st_AB為AB直線段的距離矢量大??;vf_AB_x為已求出的直線段AB的矢量方向在x軸方向的分量;vf_AB_y為已求出的直線段AB的矢量方向在y軸方向的分量。
式中:為經(jīng)過(guò)任意時(shí)刻t在直線段BC上的距離矢量;aAB為BC加速段的加速度;st_BC為BC直線段的距離矢量大小;vf_BC_x為已求出的直線段BC的矢量方向在x軸方向的分量;vf_BC_y為已求出的直線段BC的矢量方向在y軸方向的分量。
先求解合成的距離矢量。在2.2 節(jié)中已經(jīng)求出直線段AB上的距離矢量和直線段BC上的距離矢量,根據(jù)公式(12)對(duì)距離矢量進(jìn)行求解,Pt為擬合點(diǎn),距離矢量即擬合點(diǎn)的坐標(biāo),由此可得擬合點(diǎn)坐標(biāo)Pt=[xt,yt]。合成的距離矢量如公式(12)所示。
式中:是合成的距離矢量;是經(jīng)過(guò)t時(shí)刻在直線段AB上的距離矢量;是經(jīng)過(guò)t時(shí)刻在直線段BC上的距離矢量。
式中:xt為擬合點(diǎn)的橫坐標(biāo);yt為擬合點(diǎn)的縱坐標(biāo);vf_AB_x為vf_AB在x軸方向分量;vf_AB_y為vf_AB在y軸方向分量;vf_BC_x為已求出的直線段BC的矢量方向在x軸方向的分量;vf_BC_y為已求出的直線段BC的矢量方向在y軸方向的分量。
將公式(13)展開(kāi)可得公式(14)、公式(15)。
公式(14)、公式(15)中的各變量已經(jīng)在之前計(jì)算中進(jìn)行推導(dǎo),均為已知變量。
根據(jù)公式(14)、公式(15)可知,該算法并沒(méi)有出現(xiàn)高次方程,只是簡(jiǎn)單的二次方程計(jì)算,和其他曲線擬合方法相比,該算法更易于在數(shù)控系統(tǒng)上實(shí)現(xiàn),能夠減少數(shù)控系統(tǒng)的處理量并減輕計(jì)算負(fù)擔(dān)。該算法也可以在加減速過(guò)程中實(shí)現(xiàn)更靈活和平滑的速度控制,提高數(shù)控系統(tǒng)的運(yùn)動(dòng)精度和平穩(wěn)性,只需要通過(guò)調(diào)整擬合參數(shù)就可以提高加工的精度。
設(shè)點(diǎn)A與點(diǎn)C的中點(diǎn)為點(diǎn)M,M點(diǎn)坐標(biāo)為設(shè)首點(diǎn)與尾點(diǎn)之間的擬合曲線上時(shí)刻t/2 對(duì)應(yīng)的坐標(biāo)點(diǎn)為P2,將P2與中點(diǎn)M的距離作為擬合誤差ε進(jìn)行誤差相關(guān)計(jì)算,計(jì)算過(guò)程不再展開(kāi),具體誤差在第3 節(jié)仿真分析的結(jié)果中有所體現(xiàn)。
在數(shù)控系統(tǒng)中,通過(guò)輸入待擬合曲線的參數(shù),并根據(jù)設(shè)定的離散段數(shù)量N對(duì)待擬合曲線進(jìn)行分段,可以得到各分段點(diǎn)的坐標(biāo)及各分段點(diǎn)處的切線矢量,并在該基礎(chǔ)上進(jìn)行相關(guān)速度規(guī)劃。為驗(yàn)證算法的正確性,對(duì)數(shù)控加工中常見(jiàn)的二次曲線橢圓弧和圓弧進(jìn)行相關(guān)驗(yàn)證。
設(shè)定圓弧方程為x2+y2=r2,設(shè)初始3 個(gè)點(diǎn)的坐標(biāo)為A2(0,0)、B2(1,1)、C2(0,1),運(yùn)行時(shí)間t=10s。
采用MATLAB 軟件進(jìn)行驗(yàn)證,結(jié)果如圖4、圖5 所示。
圖4 橢圓擬合曲線圖
圖5 橢圓擬合誤差圖
圖4 和圖5 是采用T 型加減速曲線擬合算法處理的橢圓弧擬合曲線圖和圓弧擬合曲線圖。由圖4、圖5 可知,生成的擬合曲線滿足平滑度要求,并且接近加工路徑,滿足G1 連續(xù)的要求,比離散成小線段的路徑更光滑,加工質(zhì)量也更高,該算法后續(xù)也可以與實(shí)際的速度規(guī)劃和插補(bǔ)結(jié)合,簡(jiǎn)化后續(xù)計(jì)算強(qiáng)度。
圖6 和圖7 是采用T 型加減速曲線擬合算法處理的誤差圖。由圖5 可知,在橢圓擬合中,原始橢圓的弧長(zhǎng)約為51.4mm,該算法很好地將擬合誤差值控制在了0.4mm,誤差百分比約為0.07%。由圖6 可知,在圓弧擬合中,原始圓弧的弧長(zhǎng)約為1.57mm,該算法很好地將擬合誤差值控制在了0.06mm 內(nèi),誤差百分比約為0.38%。并且2 種曲線的加工誤差最大的地方基本也在T 型曲線的中點(diǎn)位置與被擬合曲線中點(diǎn)的距離,滿足加工要求的同時(shí)降低了誤差。
圖6 圓弧擬合曲線圖
圖7 圓弧擬合誤差圖
該文針對(duì)傳統(tǒng)的、基于多項(xiàng)式等的曲線擬合算法存在的計(jì)算冗長(zhǎng)、復(fù)雜等問(wèn)題,提出了一種基于T 型加減速的曲線擬合算法。該算法通過(guò)T 型加減速控制得到的相關(guān)參數(shù)對(duì)擬合點(diǎn)進(jìn)行精準(zhǔn)計(jì)算。該算法將擬合點(diǎn)坐標(biāo)計(jì)算為簡(jiǎn)單的二次方程,滿足了G1 連續(xù)的特性。通過(guò)試驗(yàn)驗(yàn)證,該算法能夠在滿足約束條件的情況下,較好地控制誤差且整體運(yùn)行簡(jiǎn)單。