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