亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        數(shù)控系統(tǒng)脈沖增量逐點(diǎn)法插補(bǔ)及坐標(biāo)變換新算法實(shí)現(xiàn)

        2018-11-15 13:14:36尚德波
        關(guān)鍵詞:加工點(diǎn)子類數(shù)控系統(tǒng)

        尚德波

        (濰坊職業(yè)學(xué)院,濰坊 261041)

        對(duì)數(shù)控系統(tǒng)的技術(shù)而言,插補(bǔ)算法對(duì)整個(gè)控制系統(tǒng)的性能指標(biāo)提升至關(guān)重要。脈沖增量插補(bǔ)中逐點(diǎn)法是插補(bǔ)算法中的典型算法,它相對(duì)運(yùn)算較為直觀,誤差不超過一個(gè)脈沖當(dāng)量,輸出脈沖比較均勻。目前的生產(chǎn)中數(shù)控系統(tǒng)多以C、C++等軟件實(shí)現(xiàn),插補(bǔ)過程計(jì)算效率較低,相對(duì)影響系統(tǒng)的控制速度。本文選擇新型Java語言進(jìn)行開發(fā),該語音因其穩(wěn)定和多線程等特點(diǎn)被一些研究機(jī)構(gòu)和廠商用于開發(fā)新型網(wǎng)絡(luò)化數(shù)控系統(tǒng)。文章旨在采用JAVA語言實(shí)現(xiàn)逐點(diǎn)法插補(bǔ)及坐標(biāo)變換算法運(yùn)算過程,尋求一種既能保證精度、簡化計(jì)算,又能穩(wěn)定快捷實(shí)現(xiàn)運(yùn)算的方法。

        1 逐點(diǎn)比較插補(bǔ)算法簡介

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

        圖1 逐點(diǎn)法插補(bǔ)流程

        2 直線插補(bǔ)算法與JAVA實(shí)現(xiàn)

        2.1 直線逐點(diǎn)法插補(bǔ)判別與象限處理

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

        圖2 直線四象限插補(bǔ)方向

        加工時(shí)動(dòng)點(diǎn)坐標(biāo)(xi,yi),則會(huì)存在以下三種情況:加工點(diǎn)在直線上有xeyi-yexi>0;加工點(diǎn)在直線的上邊,有xeyi-yexi=0;加工點(diǎn)在直線下邊,則有xeyi-yexi<0。

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

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

        2.2 直線逐點(diǎn)比較插補(bǔ)算法的JAVA實(shí)現(xiàn)

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

        圖3 直線四象限插補(bǔ)流程

        圖4 直線逐點(diǎn)法插補(bǔ)仿真實(shí)例

        主要技術(shù)如下:當(dāng)點(diǎn)擊“插補(bǔ)演示”按鈕,在文本區(qū)TextArea中顯示過程,同時(shí)在畫布區(qū)Canvas中演示執(zhí)行步驟。x0,y0表示起點(diǎn)坐標(biāo),xe,ye表示輸入的終點(diǎn)坐標(biāo),x,y表示計(jì)算的中間坐標(biāo),數(shù)組xPoints,yPoints記錄每步執(zhí)行后點(diǎn)的(x,y)坐標(biāo)值,F(xiàn)為判別函數(shù)。代碼如下:

        //在TextArea顯示逐點(diǎn)法直線插補(bǔ)的每步情況

        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);

        }

        //在畫布區(qū)顯示演示步驟

        canvas.setXP(xPoints);

        canvas.setYP(yPoints);

        canvas.setNP(nPoints);

        canvas.repaint();

        }

        該新算法的實(shí)現(xiàn)可以在終點(diǎn)坐標(biāo)輸入任意象限數(shù)值,實(shí)現(xiàn)一次輸入快速計(jì)算出整個(gè)插補(bǔ)計(jì)算過程,解決了傳統(tǒng)算法中各象限分別軟件實(shí)現(xiàn)計(jì)算的弊端,在保證準(zhǔn)確率的基礎(chǔ)上,大大提高運(yùn)算效率。

        3 圓弧逐點(diǎn)比較插補(bǔ)算法與JAVA實(shí)現(xiàn)

        3.1 圓弧逐點(diǎn)比較插補(bǔ)公式與進(jìn)給方向判斷

        圓弧插補(bǔ)與直線插補(bǔ)過程原理相同,圓弧以加工點(diǎn)距圓心的距離與圓弧半徑大小比較來作為判別依據(jù)。圓的方程為x2+y2=R2,設(shè)加工時(shí)動(dòng)點(diǎn)坐標(biāo)(xi,yj),判別函數(shù)根據(jù)遞推法結(jié)合偏差進(jìn)給方向可以簡單推導(dǎo)點(diǎn)在圓內(nèi)外時(shí)各個(gè)進(jìn)給方向的判別公式:

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

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

        沿+y走一步y(tǒng)j+1=yj+1,得Fj+1=Fi,j+2yj+1

        沿-y走一步y(tǒng)j+1=yj-1,得Fj+1=Fi,j-2yj+1

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

        3.2 逐點(diǎn)比較圓弧插補(bǔ)軟件JAVA實(shí)現(xiàn)與仿真

        圓弧插補(bǔ)軟件開發(fā)主要代碼如下:

        //在TextArea顯示逐點(diǎn)法圓弧插補(bǔ)的每步情況

        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 圓弧逐點(diǎn)法插補(bǔ)仿真實(shí)例

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

        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);

        }

        }

        畫圓或畫直線可通過以下語句設(shè)置:

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

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

        4 結(jié)論

        插補(bǔ)運(yùn)算的實(shí)時(shí)性很強(qiáng),算法如果太復(fù)雜,每次插補(bǔ)運(yùn)算的時(shí)間將加長,從而會(huì)限制進(jìn)給速度指標(biāo)和精度指標(biāo)的提高。本文采用的現(xiàn)代開發(fā)軟件JAVA實(shí)現(xiàn)了數(shù)控系統(tǒng)插補(bǔ)算法,插補(bǔ)運(yùn)算效率較傳統(tǒng)算法更高,該軟件網(wǎng)絡(luò)信息化開發(fā)的優(yōu)勢為這些算法對(duì)實(shí)現(xiàn)網(wǎng)絡(luò)化數(shù)控系統(tǒng)的研究具有重要作用,尤其通過坐標(biāo)變換的方法集中統(tǒng)一到第一象限進(jìn)行運(yùn)算,方便解決插補(bǔ)過程的跨象限問題,大大提高了插補(bǔ)效率的時(shí)效性。

        猜你喜歡
        加工點(diǎn)子類數(shù)控系統(tǒng)
        卷入Hohlov算子的某解析雙單葉函數(shù)子類的系數(shù)估計(jì)
        關(guān)于對(duì)稱共軛點(diǎn)的倒星象函數(shù)某些子類的系數(shù)估計(jì)
        基于FANUC 32i A數(shù)控系統(tǒng)的外部測量設(shè)計(jì)
        西門子840D sl數(shù)控系統(tǒng)在SC125大型車銑鏜床技術(shù)改造中的應(yīng)用
        基于FANUC Oi mate TD數(shù)控系統(tǒng)的手動(dòng)功能開發(fā)
        數(shù)控系統(tǒng)中GUI軟件平臺(tái)設(shè)計(jì)和實(shí)現(xiàn)
        傳聞老板跑路了
        小小說月刊(2017年5期)2017-05-16 16:58:44
        值得信賴
        三月三(2017年3期)2017-03-27 09:20:36
        值得信賴
        三月三(2017年3期)2017-03-27 05:53:14
        臺(tái)州臨海汛橋鎮(zhèn)查處一非法電鍍酸洗加工點(diǎn)
        欧美激情区| 97精品人妻一区二区三区蜜桃| 国产97色在线 | 国产| 国产卡一卡二卡三| 五月天国产精品| 大量老肥熟女老女人自拍| 成人久久久精品乱码一区二区三区| 亚洲av无码国产精品色午夜字幕| 亚洲精品国产福利一二区| 久久久午夜毛片免费| 国产一级黄色片一区二区| 2021亚洲国产精品无码| 天天做天天爱天天爽综合网 | 国产自产精品露脸刺激91在线| 久久精品国产精品亚洲婷婷| 日本女优在线一区二区三区| 亚洲国色天香卡2卡3卡4| 久久精品国产亚洲AⅤ无码| 精品日韩av专区一区二区| 精品人妻av区乱码色片| 国产国拍精品av在线观看按摩 | 亚洲日韩欧洲无码av夜夜摸| 亚洲激情人体艺术视频| 日本一二三区在线不卡| 无码人妻一区二区三区在线 | 青草热久精品视频在线观看| 国内自拍偷拍一区二区| 操风骚人妻沉沦中文字幕| 午夜无码国产理论在线| 丁香婷婷色| 激情视频在线观看好大| 免费人成年激情视频在线观看| 国内大量揄拍人妻在线视频| 久久精品国产一区二区涩涩| 国产毛片av一区二区| 久久久久国产一区二区| 日韩精品欧美激情亚洲综合| 蜜桃噜噜一区二区三区| 亚洲国产精品无码专区在线观看| 亚洲AV无码不卡无码国产| 高清亚洲精品一区二区三区|