《數(shù)控原理課程設(shè)計(jì)》由會(huì)員分享,可在線閱讀,更多相關(guān)《數(shù)控原理課程設(shè)計(jì)(6頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、1插補(bǔ)算法
1.1 插補(bǔ)方法
脈沖增量插補(bǔ)算法
脈沖增量查補(bǔ)(又稱行程標(biāo)量插補(bǔ))算法是通過向各個(gè)運(yùn)動(dòng)軸分配脈沖,控制機(jī)床坐標(biāo)軸相互協(xié)調(diào)運(yùn)動(dòng),從而加工出一定輪廓形狀的算法。這類插補(bǔ)算法的特點(diǎn)是每次插補(bǔ)的結(jié)果僅產(chǎn)生一個(gè)單位的行程增量,以單位脈沖的形式輸出給步進(jìn)電機(jī)。因此,這類插補(bǔ)被稱為脈沖增量插補(bǔ)。
該插補(bǔ)運(yùn)算比較簡(jiǎn)單,僅僅通過幾次的加法和移位操作就可以完成插補(bǔ)運(yùn)算。處理速度比較快。該插補(bǔ)一般常見的具體算法有:數(shù)字脈沖乘法器法、逐點(diǎn)比較法、最小偏差法、數(shù)字積分法、比較積分法、目標(biāo)點(diǎn)比較法、但不追蹤法等。
本次的課程設(shè)計(jì)我主要分析這其中的一種算法——逐點(diǎn)比較法,用以概括和了解算法的基本
2、運(yùn)算和對(duì)其的了解。而在進(jìn)一步的重點(diǎn)分析中,本次的算法分析我則是分析其第一象限的直線插補(bǔ)運(yùn)算。
數(shù)據(jù)采樣插補(bǔ)算法
數(shù)據(jù)采樣插補(bǔ)(又稱時(shí)間標(biāo)量插補(bǔ))算法是根據(jù)數(shù)控加工程序編寫的進(jìn)給速度,先將零件輪廓曲線按插補(bǔ)周期分割為一系列首尾相連的微小直線段,然后輸入這些微小直線段對(duì)應(yīng)的位置增量數(shù)據(jù),用以控制伺服系統(tǒng)實(shí)現(xiàn)坐標(biāo)軸進(jìn)給。與上一插補(bǔ)算法相比,其結(jié)果不再是單個(gè)脈沖,而是位置增量的數(shù)字量。這類插補(bǔ)算法適用于以直流或交流伺服電動(dòng)機(jī)作為執(zhí)行軟件的閉環(huán)或半閉環(huán)數(shù)控系統(tǒng)。
1.2 插補(bǔ)算法——逐點(diǎn)比較法
1.2.1 原理
逐點(diǎn)比較法的基本原理是,在刀具按要求軌跡運(yùn)動(dòng)加工
3、零件輪廓的過程中,不斷比較刀具與被加工零件之間的相對(duì)位置,并根據(jù)比較結(jié)果決定下一步的進(jìn)給方向,是刀具沿著坐標(biāo)軸向減小偏差的方向進(jìn)給,且僅有一個(gè)方向的進(jìn)給。
逐點(diǎn)比較法既可實(shí)現(xiàn)直線插補(bǔ),也可實(shí)現(xiàn)圓弧插補(bǔ)。逐點(diǎn)比較法插補(bǔ)過程中每進(jìn)給一步都要經(jīng)過以下四個(gè)節(jié)拍:
偏差判別;坐標(biāo)進(jìn)給;偏差計(jì)算;終點(diǎn)判別。其過程如圖1所示。
(1) 偏差判別 根據(jù)偏差值確定刀具位置是在直線的上方
(或線上),還是在直線的下方。
(2) 坐標(biāo)進(jìn)給 根據(jù)判別的結(jié)果,決定控制哪個(gè)坐標(biāo)(X或Y) 圖1
移動(dòng)一步。
(3) 偏差運(yùn)算 計(jì)算出刀具移動(dòng)后的新偏差,提供給下一步作判別依據(jù)。根據(jù)上二式來(lái)計(jì)算新加工點(diǎn)的偏
4、差,使運(yùn)算大大簡(jiǎn)化。但是每一新加工點(diǎn)的偏差是由前一點(diǎn)偏差Fi推算出來(lái)的,并且一直遞推下去,這樣就要知道開始加工時(shí)那一點(diǎn)的偏差是多少。當(dāng)開始加工時(shí),我們是以人工方式將刀具移到加工起點(diǎn),即所謂“對(duì)刀”,這一點(diǎn)當(dāng)然沒有偏差,所以開始加工點(diǎn)的 F0=0。
(4) 終點(diǎn)判別 在計(jì)算偏差的同時(shí),還要進(jìn)行一次終點(diǎn)比較,以確定是否到達(dá)了終點(diǎn)。若已經(jīng)到達(dá),就不再進(jìn)行運(yùn)算,并發(fā)出停機(jī)或轉(zhuǎn)換新程序段的信號(hào)。
1.2.2 第一象限逐點(diǎn)比較法直線插補(bǔ)
圖 2
設(shè)在第一象限上有一直線,
5、起
點(diǎn)在原點(diǎn)O( 0, 0 )上,終點(diǎn)為E(Xe,
Ye),另有一動(dòng)點(diǎn)N( Xi ,Yi ),如圖2
所示,且各個(gè)的坐標(biāo)點(diǎn)都是整數(shù)單位。
當(dāng)動(dòng)點(diǎn)N剛好在直線上時(shí),則:
即 XeYi-XiYe=0
當(dāng)動(dòng)點(diǎn)Nˊ在直線下方ON時(shí),則:
直線的大于直線的斜率,從而有:
即 XeYi-XiYe0
當(dāng)動(dòng)點(diǎn)N在直線的上方N"處時(shí),直線的大于直線的斜率,從而有:
即 XeYi-XiYe0
由上述關(guān)系可以看出,表達(dá)式(XeYi-XiYe)的符號(hào)
6、就能反映出動(dòng)點(diǎn)N相對(duì)直線的偏離情況。為此,取偏差函數(shù)F為: F=XeYi-XiYe
根據(jù)上述過程,可以概括出如下關(guān)系:
當(dāng)F=0時(shí),動(dòng)點(diǎn)N(Xi,Yi)正好處在直線上;
當(dāng)F0時(shí),動(dòng)點(diǎn)N(Xi,Yi)落在直線上方區(qū)域;
當(dāng)F0時(shí),動(dòng)點(diǎn)N(Xi,Yi)落在直線下方區(qū)域。
\
2 程序
開始
2.1 程序流程
初始化Xe,Ye,F(xiàn)0=0,∑=|Xe|+|Ye|
F≥0?
Y N
+X軸進(jìn)給
+Y軸進(jìn)給
F=F+XeX
F=F—Ye
∑-1=0?
N
Y
結(jié)束
7、
圖 4
2.2 程序代碼(基于c語(yǔ)言的編程)
#include "conio.h"
#include "graphics.h"
#include "process.h"
#define Ni_circle 0
#define Shun_circle 1
void init_graph();
void draw_Base_circle();
void draw_cabu_circle();
void close_graph();
8、void acrroods();
static float x0,y0;
void line_cabu(), draw_line(),draw_line_cabu();
void line_cabu()
{
int i;
init_graph();
sleep(1);
for(i=0;i<2;i++)
{
line(0,120,300,120); outtextxy(310,120,"Z");
l
9、ine(100,10,100,300); outtextxy(110,300,"X");
lineto(Xm,Ym);
gotoxy(55,8); printf("X%3.0f Y0 Z%3.0f",Xm-100,Ym-120);
delay(1100);
}
3 分析總結(jié)
通過此次課程設(shè)計(jì),使我更加扎實(shí)的掌握了有關(guān)數(shù)控插補(bǔ)和c語(yǔ)言編程方面的知識(shí),在c語(yǔ)言編程過程中雖然遇到了一些問題,但經(jīng)過一次又一次的思考,一遍又一遍
10、的檢查終于找出了原因所在,也暴露出了前期我在這方面的知識(shí)欠缺和經(jīng)驗(yàn)不足。實(shí)踐出真知,通過親自動(dòng)手制作,使我們掌握的知識(shí)不再是紙上談兵。
回顧起此課程設(shè)計(jì),至今我仍感慨頗多,從理論到實(shí)踐,從中學(xué)到很多很多的東西,同時(shí)不僅可以鞏固了以前所學(xué)過的知識(shí),而且學(xué)到了很多在書本上所沒有學(xué)到過的知識(shí)。通過這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來(lái),從理論中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過程中遇到問題,可以說(shuō)得是困難重重,但可喜的是最終都得到了解決。
參考文獻(xiàn)
[1]汪木蘭 數(shù)控原理與系統(tǒng) 機(jī)械工業(yè)出版社 2010.1
[2]伍胡平 周亞軍 《組合機(jī)床與自動(dòng)化加工技術(shù)》 2008 第9期
[3]周虹 《組合機(jī)床與自動(dòng)化加工技術(shù)》 2004 第3期
[4]譚浩強(qiáng) C語(yǔ)言程序設(shè)計(jì) 第三版 清華大學(xué)出版社 2005.7