前面提到过数字积分法插补是脉冲增量插补的一种,它是用数字积分的方法计算刀具沿各坐标轴的移动量,从而使刀具沿着设定的曲线运动。实现数字积分插补计算的装置称为数字积分器,或数字微分器(Digital Differential Analyzer, DDA),数字积分器可以用软件来实现。数字积分器具有运算速度快,脉冲分配均匀,可以实现一次、二次曲线的插补和各种函数运算,而且易于实现多坐标联动,但传统的DDA插补法也有速度调节不方便,插补精度需要采取一定措施才能满足要求的缺点,不过目前CNC数控系统中多采用软件实现DDA插补时,可以很容易克服以上缺点,所以DDA插补是目前使用范围很广的一种插补方法。它的基本原理可以用图4.1所示的函数积分表示,从微分几何概念来看,从时刻0到时刻t求函数y=f(t)曲线所包围的面积时,可用积分公式:
(4.1)
如果将0~t的时间划分成时间间隔为Δt的有限区间,当Δt足够小时,可得近似公式:
(4.2)
式中yi-1为t=ti-1时f(t)的值,此公式说明:积分可以用数的累加来近似代替,其几何意义就是用一系列小矩形面积之和来近似表示函数f(t)下面的面积,
如果在数字运算时,用取Δt为基本单位“1”,则4.2式可以简化为:
(4.3)
如果系统的基本单位Δt设置得足够小,那么就可以满足我们所需要的精度。
一般地,每个坐标方向需要一个被积函数寄存器和一个累加器,它的工作过程可用图4.2表示:
被积函数寄存器用以存放坐标值f(t),累加器也称余数寄存器用于存放坐标的累加值。每当Δt出现一次,被积函数寄存器中的f(t)值就与累加器中的数值相加一次,并将累加结果存放于累加器中,如果累加器的容量为一个单位面积,被积函数寄存器的容量与累加器的容量相同,那么在累加过程中每超过一个单位面积累加器就有溢出,当累加次数达到累加器的容量时,所产生的溢出总数就是要求的总面积,即积分值。
我们知道,数字积分器溢出脉冲的频率与被积函数寄存器中的存数即溢出基值成正比,也就每个程序段都要完成同样的次数的累加运算,所以不论加工行程长短每个程序段所用的时间都是固定不变的。因此,各个程序段的进给速度就不一致了,这样影响了加工的表面质量,特别是行程短的程序段生产率低,为了克服这一缺点,使溢出脉冲均匀、溢出速度提高,通常采用左移规格化处理。所谓“左移规格化”是当被积函数值较小时,如被积函数寄存器有i个前零时,若直接迭代,那么至少需要2i次迭代,才能输出一个溢出脉冲,致使输出脉冲速率下降,因此在实际的数字积分器中,需把被积函数寄存器中的前零移去即对被积函数实现“左移规格化”处理。经过左移规格化处理后,积分器每累加两次必有一次溢出,因此不仅提高了溢出速度还使溢出脉冲变得比较均匀。
目前的CNC数控系统一般采用软件来实现数字积分插补[27],这样就可以完全抛开硬件数字积分的左移规格化的概念及由于进位而产生进给脉冲的概念。因为在软件数字积分里,我们可以很方便地设置一个基值,在完成被积函数值与累加值的加法运算后,把累加结果与基值进行比较,通过比较指令判断在哪个坐标轴方向上有脉冲输出。