實(shí)時(shí)自適應(yīng)輪廓誤差估計(jì)方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及數(shù)控系統(tǒng)領(lǐng)域,尤其涉及一種用于輪廓控制的在線實(shí)時(shí)誤差估計(jì)方 法。
【背景技術(shù)】
[0002] 在機(jī)器人與數(shù)控機(jī)床中,一個(gè)關(guān)鍵的目標(biāo)就是使機(jī)器人或者刀具沿著理想的軌跡 運(yùn)動(dòng),并且使實(shí)際運(yùn)動(dòng)軌跡和理想軌跡間的輪廓誤差盡量的小。由于摩擦等非線性因素、測(cè) 量信號(hào)中的噪聲、各個(gè)軸的動(dòng)態(tài)特性不匹配等原因引起的輪廓誤差不可避免,如果只是獨(dú) 立的控制各個(gè)軸的運(yùn)動(dòng),并不能很好的實(shí)現(xiàn)輪廓誤差盡量小的目的。因此,考慮多軸耦合因 素,綜合設(shè)計(jì)輪廓控制器是現(xiàn)代數(shù)控系統(tǒng)的主流做法。而在各種輪廓控制器中,其中關(guān)鍵的 一步就是實(shí)時(shí)的估計(jì)輪廓誤差。
[0003]目前國(guó)內(nèi)外廠家生產(chǎn)的數(shù)控系統(tǒng)中采用的輪廓誤差估計(jì)方法主要有以下三類:
[0004] 第一,基于泰勒展開(kāi)的方法。定義實(shí)際刀具位置點(diǎn)到輪廓的距離函數(shù),并使用其泰 勒級(jí)數(shù)展開(kāi)式作為其輪廓誤差的估計(jì)。當(dāng)用一階泰勒展開(kāi)時(shí),就相當(dāng)于用當(dāng)前參考指令點(diǎn) 處的切線代替理想軌跡,用實(shí)際刀具位置到這條切線的距離作為輪廓誤差估計(jì)。當(dāng)用二階 泰勒展開(kāi)時(shí),相當(dāng)于用參考指令點(diǎn)處的二階函數(shù)代替理想軌跡。這類方法的優(yōu)點(diǎn)是方法簡(jiǎn) 單直觀,計(jì)算結(jié)果可以直接應(yīng)用到典型的輪廓控制器--交叉親合控制器(crosscoupled control,CCC)中。但是,由于泰勒級(jí)數(shù)展開(kāi)的截?cái)嗾`差。其在高速運(yùn)動(dòng)和理想軌跡曲率較 大時(shí),都會(huì)有很大的估計(jì)誤差。而通過(guò)增加泰勒展開(kāi)階數(shù)的方法,雖然可以提高估計(jì)精度, 但是隨著階數(shù)的提高,計(jì)算量也急劇增加,因此不適合實(shí)時(shí)計(jì)算。
[0005] 第二,基于小線段估計(jì)的方法。這種方法是依次連接各個(gè)插補(bǔ)點(diǎn),以此形成一系列 的小線段,用這一系列的小線段來(lái)代替原有的理想曲線。然后,就可以方便地用實(shí)際刀具點(diǎn) 到這一系列小線段的最短距離作為輪廓誤差的估計(jì)。這種方法,由于用小線段來(lái)代替理想 曲線,因此不可避免的帶來(lái)了弓高誤差(chorderror)。和第一類方法一樣,在高速運(yùn)動(dòng)和 理想軌跡曲率較大時(shí),估計(jì)誤差都會(huì)急劇變大。
[0006] 第三,基于速度向量的方法。這種方法是利用任意時(shí)刻實(shí)際刀具位置處的速度向 量和理想刀具位置處的速度向量來(lái)做估計(jì)。這種方法基于速度變化平緩的假設(shè),否則估計(jì) 效果不佳。
[0007] 在本技術(shù)領(lǐng)域,包括以上各種方法多是由國(guó)外人員首創(chuàng),國(guó)內(nèi)并沒(méi)有相關(guān)專利。但 是,如上所述,這些方法都存在各種不足,尤其在高速運(yùn)動(dòng)和理想軌跡曲率較大時(shí),各種方 法都不能在保持較好的估計(jì)精度同時(shí)保證較小的計(jì)算量,以滿足實(shí)時(shí)計(jì)算的要求。
【發(fā)明內(nèi)容】
[0008] 針對(duì)現(xiàn)有技術(shù)的上述缺陷,本發(fā)明基于插補(bǔ)點(diǎn)不一定必須作為運(yùn)動(dòng)控制器的參考 位置指令的思想,提出一種實(shí)時(shí)自適應(yīng)輪廓誤差估計(jì)方法,在高速和大曲率時(shí),通過(guò)適當(dāng)?shù)?多計(jì)算插補(bǔ)點(diǎn)來(lái)獲得更精確的輪廓誤差估計(jì),從而為運(yùn)動(dòng)控制器提供更加精確的輸入值, 最終獲得更加良好的運(yùn)動(dòng)控制精度。
[0009] 為實(shí)現(xiàn)上述目的,本發(fā)明的技術(shù)解決方案如下:
[0010] -種實(shí)時(shí)自適應(yīng)輪廓誤差估計(jì)方法,其特點(diǎn)征在于,包括如下步驟:
[0011] 步驟一、根據(jù)參數(shù)曲線插補(bǔ)方法,在原有插補(bǔ)點(diǎn)sk,ski,sk2,...之間產(chǎn)生額外的 插補(bǔ)名
其中,k表示第k個(gè)插補(bǔ)周期,i表示由第i個(gè) 原始插補(bǔ)點(diǎn)衍生出的額外插補(bǔ)點(diǎn),h表示對(duì)應(yīng)于第i個(gè)原始插補(bǔ)點(diǎn)衍生出的額外插補(bǔ)點(diǎn)最 大個(gè)數(shù)是h個(gè),其具體數(shù)值由以下步驟確定;
[0012] 步驟二、搜索原有插補(bǔ)點(diǎn)Sk,Sk ^Sk2,...,找出離實(shí)際刀具位置?1<最近的原有插補(bǔ) '存SkΠ1,
[0013] 步驟三、如果m= 0,直接轉(zhuǎn)到步驟四,否則,連接點(diǎn)Sk "與鄰近點(diǎn)Sk "i其連線記為 線段1,連接點(diǎn)Sk "與鄰近點(diǎn)Sk "+1其連線記為線段2,比較實(shí)際刀具位置P,到這兩條線段的 距離,并且認(rèn)為足點(diǎn)在近的那條線段所在曲線上;
[0014] 步驟四、采用二分法,在步驟三選定的線段中繼續(xù)搜索到與實(shí)際刀具位置Pk最近 的原有插補(bǔ)點(diǎn);
[0015] 步驟五、反復(fù)步驟四,直到搜索區(qū)間中沒(méi)有插補(bǔ)點(diǎn),即不可繼續(xù)二分,此時(shí)實(shí)際刀 具位置匕到這個(gè)區(qū)間起點(diǎn)和終點(diǎn)的連線的距離就是估計(jì)的輪廓誤差,而到這條連線的垂足 就是足點(diǎn)。
[0016] 優(yōu)選的,還包括步驟六,把估計(jì)的輪廓誤差從無(wú)符號(hào)標(biāo)量轉(zhuǎn)化為有符號(hào)標(biāo)量,公式 如下:
[0017] sgn(N·ε)
[0018] 其中,Ν為足點(diǎn)P#處曲線的法向量,ε是以PkS起點(diǎn),Ρ*為終點(diǎn)的軌跡誤差向量。
[0019] 步驟一所述的根據(jù)參數(shù)曲線插補(bǔ)的方法產(chǎn)生額外插補(bǔ)點(diǎn)的具體方法是:
[0020] 采用下式
[0021]
[0022] 其中,Vj是第j時(shí)刻的理想速度值,κ表示此時(shí)理想曲線的曲率,Q為一個(gè)由具體 應(yīng)用場(chǎng)景確定的可調(diào)整參數(shù)。
[0023] 步驟二所述找出離實(shí)際刀具位置Pk最近的原有插補(bǔ)點(diǎn)Skni,具體是:逐點(diǎn)計(jì)算從Sk 到SkN各原有插補(bǔ)點(diǎn)到實(shí)際刀具位置Pk的距離,找出其中距離最近的點(diǎn)原有插補(bǔ)點(diǎn)Sk "。
[0024] 與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是:
[0025] 1)傳統(tǒng)方法隨著路徑曲率的變大,估計(jì)誤差都會(huì)急劇增大,而本發(fā)明提出的方法 則會(huì)一直保持較好的估計(jì)誤差效果。
[0026] 2)不管是在較低的速度還是較高的速度下,都具有更為精確的估計(jì)精度,更高魯 棒性。
[0027] 3)如果用相同的運(yùn)動(dòng)控制器,更加精確的輸入無(wú)疑會(huì)帶來(lái)更加精確的運(yùn)動(dòng)控制效 果,也就意味著機(jī)床中更加精確的輪廓軌跡。
【附圖說(shuō)明】
[0028] 圖1是本發(fā)明步驟二的示意圖
[0029] 圖2是本發(fā)明步驟三、四、五的示意圖
[0030] 圖3是本發(fā)明實(shí)施平臺(tái)的示意圖
[0031] 圖4(a)是實(shí)施例1中軌跡跟蹤的理想拋物線(b)為此拋物線沿X軸變化時(shí)的曲 率
[0032] 圖5(a)是實(shí)例例1中三類方法的估計(jì)誤差(b)是第二類方法和本發(fā)明的方法的 估計(jì)誤差
【具體實(shí)施方式】
[0033] 以下所有實(shí)施實(shí)例均在一個(gè)X-Y平臺(tái)上實(shí)現(xiàn)。所用電機(jī)為安川的SGMJV-04ADE6S 交流伺服電機(jī),驅(qū)動(dòng)器設(shè)置為速度模式。位置反饋通過(guò)電機(jī)自帶的編碼器實(shí)現(xiàn)。編碼器精度 為每轉(zhuǎn)8096個(gè)脈沖。絲杠的螺距為4毫米,因此位置反饋的精度為每個(gè)脈沖0. 977微米。
[0034] 控制系統(tǒng)采用一臺(tái)IntelCorei5處理器,主頻為3. 1GHz的普通PC機(jī),并且用NI 公司的6221擴(kuò)展卡通過(guò)PCI總線控制電機(jī)驅(qū)動(dòng)器。位置環(huán)的采樣頻率為1kHz. (1.7)式中 的Q設(shè)為1。精確的輪廓誤差用離線非實(shí)時(shí)的方法算得。圖3為此實(shí)施平臺(tái)的示意圖。
[0035] -種實(shí)時(shí)自適應(yīng)輪廓誤差估計(jì)方法,包括如下步驟:
[0036] -、修改一般參數(shù)曲線插補(bǔ)算法,產(chǎn)生更多的插補(bǔ)點(diǎn)。
[0037] 設(shè)參數(shù)曲線可以表示為
[0038] r(u) =(x(u),y(u),z(u)),a^u^b (1. 1)
[0039] 其中u即為參數(shù)。同時(shí)把u表示成弧長(zhǎng)s的函數(shù)u(s)。一般參數(shù)曲線插補(bǔ)算法的 基本思路是通過(guò)對(duì)u(s]+1)進(jìn)行泰勒展開(kāi)來(lái)獲得j+Ι時(shí)刻的參數(shù)u的值。通常展開(kāi)到二階:
[0040]
[0041] 其中
.可以通過(guò)下式計(jì)算:
[0042]
[0043]
[0044] 把式(1. 3)和(1. 4)代入式(1. 2)可得
[0045]
(丄.:5):
[0046] 其中AS]代表一個(gè)伺服周期內(nèi)的弧長(zhǎng)增量,它可以由下式計(jì)算得到
[0047] ΔSj=vjTs (1. 6)
[0048] 其中Ts為一個(gè)伺服周期的時(shí)間,v,為j時(shí)刻的理想速度。為了得到額外的插補(bǔ)點(diǎn) 可以修改Vj為
[0049]
ctη
[0050] 其中I中用到的為向下取整運(yùn)算。并且注意,此時(shí)的速度ν',只是用來(lái)產(chǎn)生更 多的插補(bǔ)點(diǎn),而不是真實(shí)的運(yùn)動(dòng)速度。由式(1.1)(1.5)(1.6)(1.7)組成修改后的插補(bǔ)算 法。設(shè)由修改前的插補(bǔ)算法得到的插補(bǔ)點(diǎn)為Sk,SkuSk2,...,由修改后得到的額外的插補(bǔ) 點(diǎn))
[0051] 以下各步將通過(guò)搜索曲線