首页 > 代码库 > 菜鸟学四轴控制器之2:逐点比较法

菜鸟学四轴控制器之2:逐点比较法

逐点比较法是基准脉冲插补算法中,最简单和直接的一种方式。

简单粗暴,速度快!

可以实现直线插补,圆形插补和其他的插补,比如椭圆形等。

逐点比较法,顾名思义,就是每走一步都要将加工点的瞬时坐标同规定的图形轨迹相比较,判断其偏差,然后决定下一步的走向,如果加工点走到图形外面去了,那么下一步就要向图形里面走;如果加工点在图形里面,那么下一步就要向图形外面走,以缩小偏差。这样就能得出一个非常接近规定图形的轨迹,最大偏差不超过一个脉冲当量。

所以说,一般的雕刻机应该可以满足要求吧,关键是速度也快啊,比如说:

MCX314插补速度可以达到8M,计算是256细分,画完一个硬币大小圆形,应该速度也很快吧。具体就懒得算了,实际雕刻效果能够看到,但是手里没有雕刻机,否则真相弄来玩一下。

逐点比较法分为直线和圆弧插补,但是每一种方式都有四个步骤。

(1) 判别。根据偏差值确定刀具位置是在直线的上方(或线上),还是在直线的下方。

(2) 进给。根据判别的结果,决定控制哪个坐标(x或y)移动一步。

(3) 运算。计算出刀具移动后的新偏差,提供给下一步作判别依据。根据式(2—1)及式(2—2)来计算新加工点的偏差,使运算大大简化。但是每一新加工点的偏差是由前一点偏差 推算出来的,并且一直递推下去,这样就要知道开始加工时那一点的偏差是多少。当开始加工时,我们是以人工方式将刀具移到加工起点,即所谓“对刀”,这一点当然没有偏差,所以开始加工点的 =0。

(4) 比较。在计算偏差的同时,还要进行一次终点比较,以确定是否到达了终点。若已经到达,就不再进行运算,并发出停机或转换新程序段的信号。

其实直线和圆弧插补的理解是相同的,直线则判断实际点在理论点的上方还是下方,圆弧则是判断在圆内还是圆外。

另外有一个要注意的就是下面的这个公式:

 

这是一个递推的公式,也就是计算下一点是X轴运动还是Y轴运动,这个公式在四个象限内是不同的。

有两种方法来处理,一种是分别处理法,一种是坐标变换。显然坐标变换法要更方便。

如果是圆弧插补,则递推公式不同,但是原理是一样的,但是要注意,圆弧是有顺时针和逆时钟的差别的,也就是在一个象限有两个公式,也就一共有8种不同的情况。

另外一个就是速度:

V=F/SINα+COSα,这个很容易推导出来,也就是说,F为插补的速度,也就是移动一个脉冲当量的速度。

显然,这个速度的范围为0.707到1之间,插补速度和实际刀具移动的速度影响不是很大,所以也不需要进行速度的调整!!

果然是简单粗暴。

对了,脉冲当量的概念也很简单,就是刀具移动的最小单位,比如256细分下,一个脉冲运动,则是1.8/256°所对应的刀具移动的距离。

显然,用这种方法实现,精度速度兼顾,算法也简单,OK了,那另外一种方法:数字积分法,有啥优势?

问题继续:像MCX314和PCL6045用的是那种算法?

猜测:DSP方案的,应该会用到数字积分法多一点吧。

菜鸟学四轴控制器之2:逐点比较法