一、比较积分法
比较积分法又称为脉冲间隔法。我们知道,以积分原理为基础构成的数字积分法,可以灵活地实现各种函数的插补和多坐标直线的插补。但是,由于其溢出脉冲频率与被积函数值大小有关,所以存在着速度调节不便的缺点。相反,逐点比较法由于以判别原理为基础,其进给脉冲是跟随指令运算频率(脉冲源频率)的,因而速度平稳,调节方便,恰恰克服了数字积分法的缺点。但它在某些二次曲线的插补计算上不大方便。如果我们能把两种方法结合起来,吸收各自的优点,就能得到更为理想的脉冲分配方案。比较积分法就是在这种背景下产生的新型脉冲分配方法。
1.比较积分法的原理
我们先用直线插补来说明。在数字积分法的介绍中已经知道,一个函数的定积分可以用矩形公式求和来近似计算。
如果已知一条直线的方程为
(2-37)
式中 , 为直线的终点坐标。
对上式求微分得
如果引入时间变量 ,分别对被积函数 和 进行积分就得到数字积分法的直线插补。我们现在不这样做,而是设法用比较判别的方法来建立两个积分的联系。先将上式改写为
用矩形公式来求积就得到
或 (2-38)
图2-32 脉冲分配序列
此式表明, 方向每发一个进给脉冲,相当于积分值增加一个量 ; 方向每发一个进给脉冲,积分值增加一个量 ,为了得到直线,必须使两个积分相等。
根据式(2-38),我们在时间轴上分别作出x轴和y轴的脉冲序列,如图2-32所示。把时间间隔作为积分增量,轴上每隔一段时间 发出一个脉冲,就得到一个时间间隔 ;y轴上每隔一段时间 发出一个脉冲,就得到一个时间间隔 。在 轴发出 个脉冲后,其总时间间隔为式(2-38)的左边,即
同样,如果 轴上发出了 个脉冲,其总的时间间隔为积分式(2-38)的右边,即
由公式(2-38)可知,要实现直线插补,必须始终保持上述两个积分式相等。为此,与逐点比较法相似,我们引入一个判别函数,所不同的是,这个判别函数定义为 轴脉冲总时间间隔与 轴脉冲总时间间隔之差。用 表示为
(2-39)
用一个脉冲源控制运算速度,每发一个脉冲,计算一次 的值,根据 的正负决定下次脉冲应如何进给。即当 >0时,说明 轴输出脉冲时间超前(即多发出 ),这时应控制 轴进行 的累加;若 <0,则说明轴输出脉冲时间超前(即多发了 ),这时应控制 轴进行 的累加;依次进行下去即可实现直线插补。这里,我们通过将两个积分式相比较的办法来实现插补的,所以称为比较积分法。
2. 圆弧插补运算
设一圆以坐标原点为圆心,则其方程为
(2-40)
考虑起点为 、终点为 的第Ⅰ象限顺圆弧 ,如图2-33所示。
图2-33
对式(2-40)两边微分得
亦即有
对上式用矩形公式求积就得到
亦即
令 (即脉冲当量=1)
;
经变量替换,上面的积分求和公式变为
(2-41)
上式的展开式为
+( +1)+( +2)+…= +( -1)+( -2)+…
图2-34
公式(2-41)表示,若用进给脉冲的时间间隔来描述圆的动点变化规律,则圆函数的脉冲时间间隔在插补过程中是变化的,在某一时刻x轴与y轴进给脉冲时间间隔之比等于动点所在位置圆的半径矢量的x分量与y分量之比。公式(2-41)是公差分别为+1和-1的等差数列,圆就可根据这组等差数列来产生。根据式(2-41)可作出如图2-34所示的第Ⅰ象限顺圆弧进给脉冲分配序列。
同理,不难得出圆函数在不同象限顺、逆时针加工情况下的矩形求和公式。
第Ⅰ、Ⅲ象限顺圆,第Ⅱ、Ⅳ象限逆圆矩形求和公式为
(2-42)
第Ⅱ、Ⅳ象限顺圆,第Ⅰ、Ⅲ象限逆圆矩形求和公式为
(2-43)
为实现圆函数插补运算也须要引进判别函数 。所不同的是除偏差运算外,在 轴(或 轴)每发出一个进给脉冲后,还得对被积函数 (或 )作加1或减1修正。
3.直线及一般二次曲线的插补算法
以类似上述的推导过程,可方便地得到双曲线、椭圆、抛物线等各种二次曲线的插补公式。对于二次曲线来说,可以用时间坐标上的两组等差数列表示其脉冲分配过程,只要改变公差的大小和符号就可以得到各种类型的曲线。
比较积分法的插补步骤与逐点比较法类似,每输出一个脉冲,也须要作偏差判别、坐标进给和新偏差计算等。为叙述方便,综合直线及一般二次曲线的矩形求和公式,我们用 和β分别表示矩形求和公式中 和 轴进给脉冲时间间隔等差数列的公差,用 和 表示 和 轴进给脉冲的时间间隔。显然,对直线而言, 和 的初始值分别为 , ;对于圆,则 , ,又可以写成 | |, |β|。用 和 值表示 和 轴有无进给脉冲,即 =1,表示 轴走一步, =1,表示 轴走一步。于是,比较积分法的插补步骤如下:
(1) 确定基础轴。这是通过比较 轴和 轴的进给脉冲间隔 和 进行的。插补时取脉冲间隔小(脉冲密度高)的轴作为基础轴。即 时,取 为基础轴;反之,取 为基础轴。
(2) 脉冲源每发出一个脉冲,基础轴都走一步(即每拍运算,基础轴都走一步),非基础轴是否同时走一步则根据判别函数 来决定。
在以 轴为基础轴的情况下:
当 时, =1, =1;
当 时, =1, =0。
若以 轴为基础轴,则
时, =1, =1;
时, =0, =1。
(3) 坐标进给之后,须根据前述公式再计算新的偏差值 。以直线为例:
当 和 轴同时进给( =1, =1)时,新偏差值
当仅 轴进给时,新偏差值
(4) 在每次 和 轴进给之后,须对时间间隔 和 进行修正(显然,因直线的 = =0,故直线插补时, 和 无须修正):
当 =1时, ;
当 =1时, 。
(5) 判别是否改变基础轴。当改变基础轴时,作 =- 运算。
(6) 过象限处理。当曲线过象限时,修正进给轴方向。
(7) 终点判别。当 = ,并且y= 时,插补结束,否则重复执行上述各步骤。
下面举一例说明其插补过程。
试用比较积分法插补第Ⅰ象限直线 ,起点 在坐标原点,终点为 (11,5)。
解 由于 > ,即 轴的脉冲密度高,或者说 轴的脉冲间隔 小于 轴的脉冲时间间隔 ( < ),因此 轴应取为基础轴。每次运算后 轴都应发出一个脉冲(即走一步),然后根据运算结果决定y轴是否同时要走一步。
已知 =0, = =5, = =11,其计算过程如下:
(1) =0,走 , = + =0+5=5
(2) >0,走 , , = - + =5-11+5=-1
(3) <0,走 , = + =-1+5=4
(4) >0,走 , = - + =4-11+5=-2
(5) <0,走 , = + =-2+5=3
(6) >0,走 , , = - + =3-11+5=-3
(7) <0,走 , = + =-3+5=2
(8) >0,走 , , = - + =2-11+5=-4
(9) <0,走 , = + =-4+5=1
(10) >0,走 , , = - + =1-11+5=-5
(11) <0,走 , = + =-5+5=0
图2-35比较积分法直线插补轨迹此题计算时是将 =0归于 <0一类。插补轨迹如图2-35所示。
图2-35比较积分法直线插补轨迹
二、 直接函数运算法(DFB)
直接函数运算法属于最小偏差法的一种。它与逐点比较法类似,是一种代数运算方法。但它的进给方式不像逐点比较法那样或 方向或 方向急剧变化,这对机械部分是有利的,特别是可以改善步进电机的谐振现象。另外,直接函数法可以比较并选择误差较小的一个进给方向,这也是它的一个优点。因为直接函数法每插补一步要试算两个方向并作比较。
图2-36 比较积分法直线插补轨迹
1.直线插补
(1) 卦限的划分。直接函数法将直角坐标的每个象限都用45°斜线分成2个区域,如图2-36所示。图2-36卦限的划分4个象限共分为8个区域,称为8个卦限,用0~7表示。对某一卦限内的直线进行插补时,只有 和 , 两种可能的进给方向。对于第Ⅰ象限的右下区域即“0”卦限来讲,直线插补时或是 方向走一步,或是 与 方向同时走一步。对于“1”卦限的直线插补,或是 方向走一步,或是 与 方向同时走一步。引入 和 坐标系的目的是将8个卦限的进给都统一用“0”卦限内的u和v坐标来计算,以简化插补程序,缩短运算时间。对8个卦限中的直线,这种坐标变换关系如表2-9所示。
表2-9 直线插补的坐标变换
卦 限 |
u |
v |
0 |
+x |
+x, +y |
1 |
+y |
+x, +y |
2 |
+y |
-x, +y |
3 |
-x |
-x, +y |
4 |
-x |
-x, -y |
5 |
-y |
-x, -y |
6 |
-y |
+x, -y |
7 |
+x |
+x, -y |
图2-37 “0”卦限的直线
(2) 误差函数与进给方向。图2-37中所示“0”卦限的直线终点为 和 ,直线方程为
引入误差函数 = - ,显然,对于直线上的所有点均满足下式: = - =0
对直线上方的点 0
对直线下方的点 0
当 0时,往+ 方向进给一步,误差函数的变化为
= -
= - -
=- (2-44)
当 0时,往+ 和+ 方向同时进给一步,误差函数的变化为
= -
= - -
= (2-45)
在插补过程中,引入进给循环变量 可得
( +1)= ( )+
因插补是从坐标原点开始的,故 (0)=0。在 方向进行终点判别,当 = 时,直线到达终点,插补工作完成。
图2-38是对 =30, =4的“0”卦限直线进行插补的例子。为了直观,图中的脉冲当量取得很大。从图中可以看出,进给方向的变化不是90°而是45°。
图2-38“0”卦限的直线插补轨迹
为了减小插补误差,实际的DFB法还可以进一步对两个可能的进给方向作试算与比较,并选择一个误差最小的方向进给。
若往 方向进给一步,误差函数将为
若 和 方向同时都进给一步,误差函数将为
将式(2-44)和式(2-45)分别代入上两式中,可得到两个试算结果,将它们的绝对值进行比较,以决定应向哪个方向进给。
当| | | |时, +1次进给应为 方向;
当| | | |时, +1次进给应为 和 方向(即各进给一步)。
2.圆弧插补
图2-39是第Ⅰ象限的逆时针方向圆弧,圆心在 坐标系的原点。参考圆的方程,引进误差函数 用来选择适当的进给方向。
对于圆弧上的点
=0 (2-46)
对于圆外的点
0
对于圆内的点
0
图2-39第Ⅰ象限圆弧
图2-40圆弧插补各卦限的进给方向
为了使进给方向每次最多改变45°,仍旧划分0~7共8个卦限,将各卦限内的圆弧插补,都统一用“0”卦限的公式进行计算。每个卦限中又都有顺时针圆弧和逆时针圆弧两种情况,8个卦限中顺圆与逆圆的进给方向标在图2-40中,均用 和 , 代表。它们在 坐标系中的实际进给方向可根据卦限及圆弧走向用表2-10进行变换。显然,当每次插补运算时,除判断是否到达终点外,还要判断是否到达卦限的边界。如图2-39中第Ⅰ象限的逆圆在“0”卦限限时,它是沿+ 向或- 和+ 向进给的,到达“1”卦限的边界后,应改为沿- 向或- 和+ 向进给。
表2-10 直线插补时进给方向的坐标变换
卦 限 |
顺 时 针 圆 弧 |
逆 时 针 圆 弧 |
v |
u,v |
v |
u,v |
0 |
-y |
+x, -y |
+y |
-x, +y |
1 |
+x |
+x, -y |
-x |
-x, +y |
2 |
+x |
+x, +y |
-x |
-x, -y |
3 |
+y |
+x, +y |
-y |
-x, -y |
4 |
+y |
-x, +y |
-y |
+x, -y |
5 |
-x |
-x, +y |
+x |
+x, -y |
6 |
-x |
-x, -y |
+x |
+x, +y |
7 |
-y |
-x,-y |
+y |
+x, +y |
将公式(2-46)转换为 和 坐标,并在“0”卦限中推导误差函数的变化。对逆时针圆弧,当 0时,应走+ 和- ;当 0时,应走+ 。当往+ 走一步时
=
=2 +1 (2-47)
而往- 与+ 向同时走一步时
=
=
=-2 (2-48)
对顺时针圆弧,则或者走- ( 0时),或者走+ 和- ( 0时)。当往- 向走一步时,可求出
=-2 +1 (2-49)
往+ 与- 向同时走一步时,可求出
=2 -2 +2 (2-50)
引入循环变量 可得
( +1)= ( )+Δ ( +1)
当 =0时,为圆弧上的起始点(如图2-39中的 点)。此时 (0)=0。
当 ( ) 0时,轨迹到达圆外。此时,对于“0”或偶数卦限的逆时针圆弧及奇数卦限的顺时针圆弧, +1次进给应为 和 方向。对于奇数卦限逆时针圆弧及“0”或偶数卦限顺时针圆弧, +1次进给应为 方向。
当 ( ) 0时,轨迹则到达圆上或进入圆内。此时,对“0”或偶数卦限的逆时针圆弧及奇数卦限的顺时针圆弧, +1次进给应为 方向。对于奇数卦限的逆时针圆弧及“0”或偶数卦限的顺时针圆弧, +1次进给应为 和 方向。
以上各种情况下的实际进给方向,可参照表2-10得到。误差函数计算统一使用“0”卦限中推导的公式(2-47)、(2-48)(逆时针圆弧)或(2-49)、(2-50)(顺时针圆弧)。为此,要统一变换为 和 坐标,且 和 坐标的走向与实际进给方向的关系要与图2-40中“0”卦限情况一样。
除根据误差函数、卦限及圆弧走向判断本次应进给的方向外,插补运算还包括下列步骤:
(1) 计算 F(i+1);
(2) 修正并得到新的坐标值u(i+1)和v(i+1);
(3) 存入应进给方向的符号;
(4) 计算误差函数F(i+1);
(5) 检查进给后是否到达卦限的边界;
(6) 检查进给后是否到达预定圆弧的终点。
除了直线插补与圆弧插补外,DFB法还可以推广到用方程
描述的一般二次曲线。但由于在计算误差函数时,要与各系数作乘法运算,将使插补运算的速度显著变慢。在这种情况下,只好损失一些进给速度,而对于像抛物线这种二次曲线的特例,用直接函数法进行插补运算的速度则与圆弧插补时相当。此外,DFB法也可以推广到极坐标。这时,阿基米德螺旋线的插补可以归并为直线插补。
以上介绍了常用的几种基准脉冲插补法和数据采样插补法。在实际使用中还会见到上述一些插补算法的变形算法或扩展算法,如最小偏差法、单步追赶法、方向余弦法等等。读者需要时可参阅有关文献资料。
|