999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

數控系統脈沖增量逐點法插補及坐標變換新算法實現

2018-11-15 13:14:36尚德波
現代制造技術與裝備 2018年10期

尚德波

(濰坊職業學院,濰坊 261041)

對數控系統的技術而言,插補算法對整個控制系統的性能指標提升至關重要。脈沖增量插補中逐點法是插補算法中的典型算法,它相對運算較為直觀,誤差不超過一個脈沖當量,輸出脈沖比較均勻。目前的生產中數控系統多以C、C++等軟件實現,插補過程計算效率較低,相對影響系統的控制速度。本文選擇新型Java語言進行開發,該語音因其穩定和多線程等特點被一些研究機構和廠商用于開發新型網絡化數控系統。文章旨在采用JAVA語言實現逐點法插補及坐標變換算法運算過程,尋求一種既能保證精度、簡化計算,又能穩定快捷實現運算的方法。

1 逐點比較插補算法簡介

逐點比較法能逐個點計算和判別運動偏差,并逐點糾正以逼近理論線性軌跡。軌跡插補旨在線段的起點和終點坐標值之間進行微觀數據點密化,求出一系列中間點的坐標,并向相應坐標輸出脈沖信號。逐點法的插補過程包含四個步驟:第一,進行偏差判別,根據偏差值判別當前刀具加工點的具體位置;第二,坐標進給,根據新判別的結果,控制刀具向坐標方向進給一步;第三,進行偏差計算,根據遞推公式計算出進給一步到新的加工點的偏差,提供下步判別依據;第四,終點判別,在計算偏差的同時,進行終點判別,確定是否達終點,若到則停止插補。具體如圖1所示。

圖1 逐點法插補流程

2 直線插補算法與JAVA實現

2.1 直線逐點法插補判別與象限處理

直線插補過程中各象限偏差進給方向如圖2所示。以一象限加工直線OL1為例,起點為坐標原點O,終點坐標為L1(xe,ye),動點坐標(xi,yi)則方程表示為:xeyi-yexi=0

圖2 直線四象限插補方向

加工時動點坐標(xi,yi),則會存在以下三種情況:加工點在直線上有xeyi-yexi>0;加工點在直線的上邊,有xeyi-yexi=0;加工點在直線下邊,則有xeyi-yexi<0。

假設Fi,j=xeyi-yexi為偏差判別函數,則可以依次判斷出F≥0和F<0時點在直線的具體方位。

對于其他象限,通過坐標變換法將其他三個象限直線的插補計算公式都統一到第一象限的計算公式中,進給脈沖的方向則仍然由實際的象限決定。坐標變換的實質就是將其他各個象限直線的終點坐標與加工點的坐標取絕對值,這樣插補計算公式和插補流程圖與實際插補第一象限直線時一樣。對跨象限坐標變換,本文與傳統算法不同在于將四個象限的插補統一坐標變換,形成四象限綜合算法流程圖,綜合后直線四象限插補如圖3表示,計算公式統一采用F=|Xe||Y|-|Ye||X|。

2.2 直線逐點比較插補算法的JAVA實現

用逐點法插補直線時,每一步進給后,都要判斷當前加工點是否到達終點位置,設定一個終點減法計數器,存入各個坐標軸插補或進給的總步數,在插補過程中不管向哪個方向每進給一步,從總步數中減1,直到計數器中的存數為零,表示插補到達終點;根據圖3流程圖采用JAVA程序設計語言進行算法實現,圖4為軟件實現的仿真實例,比如輸入起點坐標(0,0),終點坐標(6,8),從而得出圖示插補軌跡,任意輸入其他數值同樣自動運算完成并形成插補軌跡圖。

圖3 直線四象限插補流程

圖4 直線逐點法插補仿真實例

主要技術如下:當點擊“插補演示”按鈕,在文本區TextArea中顯示過程,同時在畫布區Canvas中演示執行步驟。x0,y0表示起點坐標,xe,ye表示輸入的終點坐標,x,y表示計算的中間坐標,數組xPoints,yPoints記錄每步執行后點的(x,y)坐標值,F為判別函數。代碼如下:

//在TextArea顯示逐點法直線插補的每步情況

E = E0 = Math.abs(xe) + Math.abs(ye);

for(int i=1; i<=E0; i++) {

F = Math.abs(xe) * Math.abs(y) - Math.abs(x) *Math.abs(ye);

if(F >= 0) {

s =“第” + i +“步:F=" + F + ">0; X=X+1=" + (++x)+ "; Y=Y=" + y + "; E=E-1=" + (--E) + " ";

}

else {

s =“第” + i +“步:F=" + F + "<0; X=X=" + x + ";Y=Y+1=" + (++y) + "; E=E-1=" + (--E) + " ";

}

xPoints[i] = x;

yPoints[i] = canvas.height - y;

text.append(s);

}

//在畫布區顯示演示步驟

canvas.setXP(xPoints);

canvas.setYP(yPoints);

canvas.setNP(nPoints);

canvas.repaint();

}

該新算法的實現可以在終點坐標輸入任意象限數值,實現一次輸入快速計算出整個插補計算過程,解決了傳統算法中各象限分別軟件實現計算的弊端,在保證準確率的基礎上,大大提高運算效率。

3 圓弧逐點比較插補算法與JAVA實現

3.1 圓弧逐點比較插補公式與進給方向判斷

圓弧插補與直線插補過程原理相同,圓弧以加工點距圓心的距離與圓弧半徑大小比較來作為判別依據。圓的方程為x2+y2=R2,設加工時動點坐標(xi,yj),判別函數根據遞推法結合偏差進給方向可以簡單推導點在圓內外時各個進給方向的判別公式:

沿+x走一步xi+1=xi+1,得Fi+1=Fi,j+2xi+1

沿-x走一步xi+1=xi-1,得Fi+1=Fi,j-2xi+1

沿+y走一步yj+1=yj+1,得Fj+1=Fi,j+2yj+1

沿-y走一步yj+1=yj-1,得Fj+1=Fi,j-2yj+1

可以發現,新加工點的偏差值可以用前一點的偏差值遞推出來。遞推法把圓弧偏差運算式由平方運算化為加法和乘2的運算,對于二進制而言,乘2運算容易實現。通過坐標變換如同直線插補一樣將其他各個象限順、逆圓弧插補計算公式都統一到第一象限的逆圓弧插補計算,進給脈沖的方向仍由實際象限來決定,從而解決跨象限問題。該算法同樣在終點坐標輸入任意象限數值,實現了一次坐標數據輸入快速計算出圓弧整個插補計算過程,提高了運算效率和準確率。

3.2 逐點比較圓弧插補軟件JAVA實現與仿真

圓弧插補軟件開發主要代碼如下:

//在TextArea顯示逐點法圓弧插補的每步情況

E = E0 = Math.abs(xe - x0) + Math.abs(ye -y0);

for(int i=1; E > 0; i++) {

if(F >= 0) {

s = "第" + i + "步:F=" + F + ">=0; ";

F = F - 2*x + 1;

s = s + “F=F-2*X+1=” + F +”; X=X-1=” + (--x)+ “; Y=Y=” + y + “; E=E-1=” + (--E) + “ ”;

}

else {

s = "第" + i + "步:F=" + F + "<0; ";

F = F + 2*y + 1;

s = s + “F=F+2*Y+1=” + F +”; X=X=” + x + “;Y=Y+1=” + (++y) + “; E=E-1=” + (--E) + “ ”;

}

xPoints[j] = canvas.width/2 + x;

yPoints[j] = canvas.height/2 - y;

text.append(s);

}

圖5 圓弧逐點法插補仿真實例

圖5為第一象限起點(5,0),終點(0,5)的逆圓插補仿真實例圖。Java語言中利用Canvas的子類來創建畫布對象,并在子類中重寫父類paint方法。通過重寫paint方法時,可以在子類中使用對象g調用各種方法來構造我們需要的步驟。如實現演示步驟時,在Canvas的子類中需設置的方法如下:

public void setXP(int xPoints[ ]){

this.xPoints = xPoints;

}

public void setYP(int yPoints[ ]) {

this.yPoints = yPoints;

}

public void setNP(int nPoints) {

this.nPoints = nPoints;

}

public void paint(Graphics g) {

g.drawPolyline(xPoints, yPoints, nPoints);

}

}

畫圓或畫直線可通過以下語句設置:

g.drawLine(x0, y0, xe, ye);

g.drawArc(left, top, width, height,angle0, angleE);

4 結論

插補運算的實時性很強,算法如果太復雜,每次插補運算的時間將加長,從而會限制進給速度指標和精度指標的提高。本文采用的現代開發軟件JAVA實現了數控系統插補算法,插補運算效率較傳統算法更高,該軟件網絡信息化開發的優勢為這些算法對實現網絡化數控系統的研究具有重要作用,尤其通過坐標變換的方法集中統一到第一象限進行運算,方便解決插補過程的跨象限問題,大大提高了插補效率的時效性。

主站蜘蛛池模板: 国产在线观看一区二区三区| 亚洲伊人天堂| 精品国产美女福到在线直播| 亚洲AV无码久久天堂| 东京热高清无码精品| 欧美日韩高清在线| 夜夜爽免费视频| 伊人AV天堂| 在线看AV天堂| 新SSS无码手机在线观看| 国产在线第二页| 亚洲中文字幕无码爆乳| 欧美精品在线看| 久一在线视频| 免费看美女毛片| 国产精品亚洲日韩AⅤ在线观看| 欧美国产精品不卡在线观看| 久久这里只精品热免费99| 国模沟沟一区二区三区| 国产视频只有无码精品| 中文字幕乱码中文乱码51精品| 国产成人亚洲毛片| 久久国产精品波多野结衣| 色天天综合| 久久99热这里只有精品免费看| 性喷潮久久久久久久久| 97青青青国产在线播放| 美女内射视频WWW网站午夜| 色天堂无毒不卡| 国内丰满少妇猛烈精品播| 日韩国产无码一区| 97国产精品视频自在拍| 亚洲精品国产综合99久久夜夜嗨| 综1合AV在线播放| 精品久久高清| 国产毛片不卡| 国产高清精品在线91| 亚洲中文无码av永久伊人| 国产精欧美一区二区三区| 日韩免费毛片视频| 国产男女免费视频| 久久这里只有精品国产99| 在线99视频| 国产精品永久免费嫩草研究院| 无码中文字幕乱码免费2| 久久香蕉国产线| 免费在线播放毛片| 国产一区成人| av尤物免费在线观看| 国产精品亚洲日韩AⅤ在线观看| 国产在线自揄拍揄视频网站| 波多野结衣中文字幕一区二区| 亚洲最大情网站在线观看| 视频二区中文无码| a在线亚洲男人的天堂试看| 亚洲一级毛片| 国产精品欧美亚洲韩国日本不卡| 国产成人成人一区二区| 国产人前露出系列视频| 日本在线亚洲| 欧美一级高清视频在线播放| 色精品视频| 久久免费精品琪琪| 在线欧美a| 日韩专区欧美| 91高清在线视频| 男女男免费视频网站国产| 免费视频在线2021入口| 中文字幕一区二区人妻电影| 国产一区二区精品福利| 免费A级毛片无码免费视频| 日韩小视频在线观看| 亚洲精品大秀视频| 99免费在线观看视频| 中文无码精品A∨在线观看不卡| 国产美女自慰在线观看| 尤物国产在线| 欧美精品另类| a级毛片毛片免费观看久潮| 欧美综合激情| 国产第一页屁屁影院| 99热最新网址|