劉 肖,趙慶志,于光偉,張 健
(山東理工大學(xué)機(jī)械工程學(xué)院,山東淄博255049)
在數(shù)控機(jī)床控制系統(tǒng)的設(shè)計(jì)中,輸入的包含工件信息的ISO代碼是根據(jù)不同的插補(bǔ)原理,通過(guò)編程翻譯成的相應(yīng)代碼.對(duì)數(shù)控系統(tǒng)來(lái)說(shuō),插補(bǔ)是最重要的計(jì)算任務(wù).目前普遍采用的插補(bǔ)算法有兩大類(lèi):一類(lèi)是脈沖增量插補(bǔ),如逐點(diǎn)比較法[1]、數(shù)字積分法、比較積分法[2]、矢量判斷法等;另一類(lèi)是數(shù)據(jù)采樣插補(bǔ)[3].本文采用的差分插補(bǔ)原理[4]基于多項(xiàng)式函數(shù)插值擬合的理論,具有很多的優(yōu)點(diǎn),可計(jì)算曲線的某點(diǎn)函數(shù)值、一階、二階導(dǎo)數(shù)、曲率半徑、判斷曲線的凸凹性,適合于任意圓錐曲線(包括直線,圓弧,橢圓,拋物線,雙曲線等)的插補(bǔ),尤其是非圓曲線的插補(bǔ).用差分插補(bǔ)原理可編制通用化模塊程序[5],本文著重論述雙曲線ISO代碼譯成差分插補(bǔ)代碼的方法.
設(shè)X軸始終水平向右、Y軸始終垂直向上、坐標(biāo)原點(diǎn)不定的坐標(biāo)系為絕對(duì)坐標(biāo)系,象限定義為L(zhǎng)41、L42、L43、L44.以加工曲線起點(diǎn)為坐標(biāo)原點(diǎn),起點(diǎn)的切線方向在第一象限建立的坐標(biāo)系為相對(duì)坐標(biāo)系.將絕對(duì)坐標(biāo)系中的曲線表達(dá)式轉(zhuǎn)化為相對(duì)坐標(biāo)系中正二次曲線表達(dá)式[2]得到
則差分插補(bǔ)代碼定義為
其中
j x1,jy1,j x2,jy2分別叫X的一階差分,Y的一階差分,X的二階差分,Y的二階差分;j j是計(jì)數(shù)長(zhǎng)度,在相對(duì)坐標(biāo)系下,設(shè)曲線終點(diǎn)的導(dǎo)數(shù)絕對(duì)值為K,當(dāng)K>1時(shí),計(jì)數(shù)方向Gxy=79,此時(shí)j j為曲線在Y軸按計(jì)數(shù)方向的投影長(zhǎng)度.當(dāng)K≤1時(shí),計(jì)數(shù)方向Gxy=78,jj為曲線在X軸按計(jì)數(shù)方向的投影長(zhǎng)度;lxy表示在以曲線起點(diǎn)為原點(diǎn)的絕對(duì)坐標(biāo)系中,曲線起點(diǎn)的切線方向所在的象限號(hào).在曲線插補(bǔ)過(guò)程中,要始終保證j x1>0且j y1>0,以使曲線加工沿著曲線的走向.
順時(shí)針雙曲線ISO代碼的定義為
其中:(x,y)為雙曲線終點(diǎn)相對(duì)起點(diǎn)的坐標(biāo);(i,j)為雙曲線的頂點(diǎn)相對(duì)起點(diǎn)的坐標(biāo);a為實(shí)半軸長(zhǎng)度;k=0表示雙曲線以X軸為實(shí)軸,k=1表示雙曲線以Y軸為實(shí)軸,雙曲線的標(biāo)準(zhǔn)方程為
則(-i,-j)滿足式(3),即
1)k=0&&y<0,即以X軸為實(shí)軸,左邊的那條雙曲線,如圖1所示.
(1)當(dāng)i>0&&j<0時(shí),曲線起點(diǎn)在第二象限,此時(shí)雙曲線在相對(duì)坐標(biāo)下的方程為
整理為式(1)形式的表達(dá)式得
則差分插補(bǔ)代碼為
對(duì)式(4)求導(dǎo)數(shù)確定計(jì)數(shù)方向和計(jì)數(shù)長(zhǎng)度:(i)當(dāng)|j2(x-i-a)|>i|(j+y)(i+2a)時(shí),Gxy=79,j j=|y|;
(ii)當(dāng)|j2(x-i-a)|≤i|(j+y)(i+2a)|時(shí),Gxy=78;當(dāng)|y|≤|j|時(shí),j j=x;當(dāng)|y|>|j|時(shí),jj=2i-x.
(2)當(dāng)i=0&&y<0時(shí),曲線起點(diǎn)在X軸上,此時(shí)雙曲線在相對(duì)坐標(biāo)下的方程為
整理為式(1)形式的表達(dá)式得
圖1 k=0&&y<0時(shí)雙曲線
則差分插補(bǔ)代碼為
對(duì)式(5)求導(dǎo)數(shù)確定計(jì)數(shù)方向和計(jì)數(shù)長(zhǎng)度:
(i)當(dāng)|y(x+a)|>|x(x-2a)|時(shí),Gxy=79,jj=|y|;
(ii)當(dāng)|y(x+a)|≤|x(x-2a)時(shí),Gxy=78,j j=|x|.
(3)當(dāng)i>0&&j>0時(shí),曲線起點(diǎn)在第三象限,此時(shí)雙曲線在相對(duì)坐標(biāo)下曲線方程為
整理為式(1)形式的表達(dá)式得
則差分插補(bǔ)代碼為
對(duì)式(6)求導(dǎo)數(shù)確定計(jì)數(shù)方向和計(jì)數(shù)長(zhǎng)度:
(i)當(dāng)|j2(x+i+a)|>i|(j+y)(i+2a)時(shí),Gxy=79,jj=|y|;
(ii)當(dāng)|j2(x+i+a)≤i|(j+y)(i+2a)|時(shí),Gxy=78,jj=|x|.
2)k=0&&y>0,即以X軸為實(shí)軸,右邊的那條雙曲線,如圖2所示.
(1)當(dāng)i<0&&j>0時(shí),曲線起點(diǎn)在第四象限,此時(shí)雙曲線在相對(duì)坐標(biāo)下曲線方程為
整理為式(1)形式的表達(dá)式得
則差分插補(bǔ)代碼為
圖2 k=0&&y>0時(shí)雙曲線
對(duì)式(7)求導(dǎo)數(shù)確定計(jì)數(shù)方向和計(jì)數(shù)長(zhǎng)度:
(i)當(dāng)|j2(x-i-a)|>i|(j-y)(i-2a)時(shí),Gxy=79,j j=y;
(ii)當(dāng)|j2(x-i-a)|≤i|(j-y)(i-2a)|時(shí),Gxy=78;當(dāng)y≤j時(shí),jj=x;當(dāng)y>j時(shí),j j=2|i|+x.
(2)當(dāng)i=0&&y>0時(shí),曲線起點(diǎn)在X軸上,此時(shí)雙曲線在相對(duì)坐標(biāo)下曲線方程為
整理為式(1)形式的表達(dá)式得
則差分插補(bǔ)代碼為
對(duì)式(8)求導(dǎo)數(shù)確定計(jì)數(shù)方向和計(jì)數(shù)長(zhǎng)度:
(i)當(dāng)|y(x+a)|>|x(x+2a)|時(shí),Gxy=79,j j=y;
(ii)當(dāng)|y(x+a)|≤|x(x+2a)|時(shí),Gxy=78,j j=x.
(3)當(dāng)i<0&&j<0時(shí),曲線起點(diǎn)在第一象限,此時(shí)雙曲線在相對(duì)坐標(biāo)下曲線方程為
整理為式(1)形式的表達(dá)式得
則差分插補(bǔ)代碼為
對(duì)式(9)求導(dǎo)數(shù)確定計(jì)數(shù)方向和計(jì)數(shù)長(zhǎng)度:
(i)當(dāng)|j2(x+a-j)|>i|(y-j)(i-2a)|時(shí),Gxy=79,j j=|y|;
(ii)當(dāng)|j2(x+a-j)|≤i|(y-j)(i-2a)|時(shí),Gxy=78,jj=|x|.
3)k=1&&x<0,即以Y軸為實(shí)軸,上邊的那條雙曲線,如圖3所示.
圖3 k=1&&x<0時(shí)雙曲線
(1)當(dāng)i<0&&j<0時(shí),曲線起點(diǎn)在第一象限,此時(shí)雙曲線在相對(duì)坐標(biāo)下曲線方程為
整理為式(1)形式的表達(dá)式得
則差分插補(bǔ)代碼為
對(duì)式(10)求導(dǎo)數(shù)確定計(jì)數(shù)方向和計(jì)數(shù)長(zhǎng)度:
(i)當(dāng)|(2aj-j2)(x+i)|>i2|(a-j-y)|時(shí),Gxy=79,當(dāng)|x|≤|i|時(shí),j j=|y|;當(dāng)|x|>|i|時(shí),jj=2|j|+y;
(ii)當(dāng)|(2aj-j2)(x+i)|≤i2|(a-j-y)|時(shí),Gxy=78,jj=|y|.
(2)當(dāng)x<0&&j=0時(shí),曲線起點(diǎn)在Y軸上,此時(shí)雙曲線在相對(duì)坐標(biāo)下曲線方程為
整理為式(1)形式的表達(dá)式得
則差分插補(bǔ)代碼為
對(duì)式(11)求導(dǎo)數(shù)確定計(jì)數(shù)方向和計(jì)數(shù)長(zhǎng)度:
(i)當(dāng)|(2a+y)y|>|x(a+y)|時(shí),Gxy=79,jj=|y|;
(ii)當(dāng)|(2a+y)y|≤x(a+y)|時(shí),Gxy=78,jj=|x|.
(3)當(dāng)i>0&&j<0時(shí),曲線起點(diǎn)在第二象限,此時(shí)雙曲線在相對(duì)坐標(biāo)下曲線方程為
整理為式(1)形式的表達(dá)式得
則差分插補(bǔ)代碼為
對(duì)式(12)求導(dǎo)數(shù)確定計(jì)數(shù)方向和計(jì)數(shù)長(zhǎng)度:
(i)當(dāng)|(2aj-j2)(x+i)|>i2|(a-j+y)|時(shí),Gxy=79,j j=|y|;
(ii)當(dāng)|(2aj-j2)(x+i)|≤i2|(a-j+y)|時(shí),Gxy=78,j j=|x|.
4)k=1&&x>0,即以Y軸為實(shí)軸,下邊的那條雙曲線,如圖4所示.
圖4 k=1&&x>0時(shí)雙曲線
(1)當(dāng)i>0&&j>0時(shí),曲線起點(diǎn)在第三象限,此時(shí)雙曲線在相對(duì)坐標(biāo)下曲線方程為
整理為式(1)形式的表達(dá)式得
則差分插補(bǔ)代碼為
對(duì)式(13)求導(dǎo)數(shù)確定計(jì)數(shù)方向和計(jì)數(shù)長(zhǎng)度:
(i)當(dāng)|(2aj+j2)(x-i)|>i2|(a+j-y)|時(shí),Gxy=79,當(dāng)|x|≤|i|時(shí),j j=|y|;當(dāng)|x|>|i|時(shí),jj=2|j|-y;
(ii)當(dāng)|(2aj+j2)(x-i)|≤i2|(a+j-y)|時(shí),Gxy=78,jj=|x|.
(2)當(dāng)x>0&&j=0時(shí),曲線起點(diǎn)在Y軸上,此時(shí)雙曲線在相對(duì)坐標(biāo)下曲線方程為
整理為式(1)形式的表達(dá)式得
則差分插補(bǔ)代碼為:
對(duì)式(14)求導(dǎo)數(shù)確定計(jì)數(shù)方向和計(jì)數(shù)長(zhǎng)度:
(i)當(dāng)|y(y-2a)|>|(y+a)x|時(shí),Gxy=79,jj=|y|;
(ii)當(dāng)|y(y-2a)|≤|(y+a)x|時(shí),Gxy=78,jj=|x|.
(3)當(dāng)i<0&&j>0時(shí),曲線起點(diǎn)在第四象限,此時(shí)雙曲線在相對(duì)坐標(biāo)下曲線方程為
整理為式(1)形式的表達(dá)式得
則差分插補(bǔ)代碼為
對(duì)式(15)求導(dǎo)數(shù)確定計(jì)數(shù)方向和計(jì)數(shù)長(zhǎng)度:
(i)當(dāng)|(j2+2aj)(x-i)|>i2|(y+a+j)|時(shí),Gxy=79,j j=|y|;
(ii)當(dāng)|(j2+2aj)(x-i)|≤i2|(y+a+j)|時(shí),Gxy=78,j j=|x|.
在順時(shí)針雙曲線ISO代碼前加上一條語(yǔ)句:G90X0Y0,用i=i-x0,j=j-y0,x=x-x0,y=yy0計(jì)算后代入相對(duì)坐標(biāo)程序,即可轉(zhuǎn)化為5B代碼
逆時(shí)針雙曲線ISO代碼的定義為
其轉(zhuǎn)化的方法與順時(shí)針雙曲線ISO代碼轉(zhuǎn)化一樣,不再贅述.
譯碼過(guò)程一般通過(guò)數(shù)組或鏈表加上文件類(lèi)的操作來(lái)完成,分為詞法、語(yǔ)法檢查和數(shù)值處理過(guò)程,通過(guò)刀補(bǔ)處理,將結(jié)果放入譯碼結(jié)果緩沖區(qū)中,再進(jìn)行插補(bǔ)、位控等后續(xù)操作.本實(shí)例在Window XP系統(tǒng)下用C++Builder6.0進(jìn)行了程序編制,定義了數(shù)組鏈表,結(jié)構(gòu)如下:
把存儲(chǔ)雙曲線信息的文件shuangquxian.dat翻譯成相應(yīng)的5b.dat,結(jié)果正確.
N010G10X0 Y-60 I-8J-30A20
K0//逆時(shí)針雙曲線加工代碼
圖5 差分插補(bǔ)代碼
形成的差分插補(bǔ)代碼如圖5所示.演示結(jié)果如圖6所示,表明驗(yàn)證結(jié)果正確.
圖6 演示結(jié)果
對(duì)于非圓曲線的加工,一般數(shù)控系統(tǒng)都是采用直線和圓弧來(lái)進(jìn)行擬合,本文采用的差分插補(bǔ)算法可以直接加工非圓曲線,例如一些特殊曲線由橢圓,雙曲線,拋物線等組合成的零件曲線,這樣就避免產(chǎn)生擬合誤差,在提高加工精度的基礎(chǔ)上也提高了加工效率,在實(shí)際生產(chǎn)中已經(jīng)得到了驗(yàn)證.
[1] 劉萬(wàn)菊,趙長(zhǎng)明.逐步比較法漸開(kāi)線插補(bǔ)的研究[J] .汽車(chē)工藝與材料,1999(2):17-19.
[2] 王琨琦,王潤(rùn)孝,孫林麗.橢圓曲線的比較積分插補(bǔ)方法研究[J] .西安工業(yè)學(xué)院學(xué)報(bào),2005,25(1):1-2,7.
[3] 趙玉剛.宋現(xiàn)春.數(shù)控技術(shù)[M] .北京:機(jī)械工業(yè)出版社,2003.
[4] 王敏.差分插補(bǔ)方法及其在數(shù)控線切割機(jī)中的應(yīng)用(一)[J] .電加工,1981(4):16-22.
[5] 趙慶志.基于可重構(gòu)理論的慢走絲線切割機(jī)床控制系統(tǒng)研究與設(shè)計(jì)[D] .南京:南京航空航天大學(xué),2004.