技术领域
[0001] 本
发明涉及一种CNC运行数据的计算方法。
背景技术
[0002] 数控加工是当代机械制造的
基础工艺之一。数控加工需要借助于数控机床。数控系统是数控机床的核心部件之一。目前,CNC数控是现代数控系统的不二形式。高速高精的数控系统是提高加工效率和
质量的根本保障。以现场可编程
门阵列FPGA 为代表的新型可重构技术不仅改变传统CNC插补计算的过程而且改变了其计算模式。但是,不管是那种方式,都是依照次序一个点接着一个点地计算的,这样的计算其计算速度只能依赖计算机自身的运算速度,显然,技术条件及成本的限制,计算机的计算速度是有限的,从而制约着数控加工的高速高
精度的提高。
发明内容
[0003] 本发明的目标旨在给出一种可高速计算并能产生高精度结果的、适合于以及芯片级并行流水可重构计算的CNC插补的一种并行流水计算方法,以满足不断发展的工业需求。
[0004] 本发明的CNC插补的一种并行流水计算方法是这样实现的,包括基于单元CU3计算过程的CU3B并行/流水计算过程,
[0005] 单元CU3计算过程是:
[0006] 将伯恩斯坦多项式7:β(f)=β0(1-f)3+3β1 f(1-f)2+3β2 f2(1-f)+β3 f3,0≤f≤1中的数据组〈β0, β1, β2, β3〉作为第一输入数据组通过以下方式进行运算,l
将β0分别送入输出口β0 以及CU3的第一加法器,将β1分别送入CU3的第一加法器、第r
二加法器,将β2分别送入CU3的第二加法器、第三加法器,将β3分别送入输出口β0 以及CU3的第三加法器;CU3的第一加法器接收到β0、β1后实施加法运算后将结果β0+β1分别送至CU3的第一移位器、第四加法器;同样地,CU3的第二加法器将其计算结果β1+β2分别送至CU3的第四加法器、第五加法器,CU3的第三加法器将其计算结果β2+β3分别送至CU3的第五加法器、第二移位器; CU3的第一移位器、第二位移器分别将β0+β1、β2+β3右移l r
1位后的结果(β0+β1)/2、(β2+β3)/2输出到对应输出口β1、β1 ;CU3的第四加法器实施了加法得到β0+2β1+β2后分别送CU3的第三移位器、CU3的第六加法器,CU3的第五加法器实施了加法得到β1+2β2+β3后分别送CU3的第四移位器、CU3的第六加法器;CU3的第三移位器、第四位移器分别对β0+2β1+β2、β1+2β2+β3右移2位后输出(β0+2β1+β2)l r
/4、(β1+2β2+β3)/4至输出口β2、β2 ;最后,CU3的第六加法器接收数据β0+2β1+β2、β1+2β2+β3实施加法得到β0+3β1+3β2+β3后送至CU3的第五移位器,经CU3的第五移l r
位器右移3位后得到(β0+3β1+3β2+β3)/8分别输出至β3、β3 以及中点值β(0.5),l l l l r r r r
这样就获得了两组第二输出数据组(β0、β1、β2、β3〉和〈β0、β1、β2、β3〉以及中l r
点值β(0.5),其中β3、β3、β(0.5)是相等的;
[0007] 基于单元CU3计算过程的CU3B并行/流水计算过程是:
[0008] 基于上层一个单元CU3计算过程获得的两组第二输出数据组〈β0l、β1l、β2l、β3l〉r r r r l l l l r r r和〈β0、β1、β2、β3〉,将该两组第二输出数据组〈β0、β1、β2、β3〉和〈β0、β1、β2、r
β3〉分别作为第一输入数据组通过相应的两个下层单元CU3计算过程进行计算,两下层单元CU3计算过程计算后各获得相应的两组第二输出数据组及一个中点值,这样经过n层计n n
算后,就获得了2-1个变量差为1/2 的中点值:
[0009] 第一层:β(1/2)
[0010] 第二层:β(1/22)、β(3/22)
[0011] 第三层:β(1/23)、β(3/23)、β(5/23)、β(7/23)
[0012] …………
[0013] 第n 层:β(1/2n)、β(3/2n)、…、β((2j+1)/2n)、…、β((2 n -1)/2n)[0014] 然后,将上述中点值连同β(0)、β(1)依变量值t由小到大的顺序储存,作为控制数控机床运行的运行控制数据。
[0015] 这里,基于单元CU2计算过程的CU2B并行/流水计算过程所获得的各个中点值及β(0)、β(1)的速度采用基于单元CU2计算过程的CU2B并行/流水计算过程计算的,[0016] 单元CU2计算过程是:
[0017] 将伯恩斯坦多项式7:β(f)=β0(1-f)3+3β1 f(1-f)2+3β2 f2(1-f)+β3 f3,′ 20≤f≤1的导数—伯恩斯坦多项式8:β (f)=3(β1 -β0)(1-f) +6(β2 –β1)f
2
(1-f)+3(β3 –β2)f,0≤f≤1中的数据组〈β0, β1, β2, β3〉通过T32计算方法转换成数据组Ⅰ´:〈B0, B 1, B 2〉,其中B 0=3(β1-β0),B 1=3(β2-β1),B 2=3(β3-β2)[0018] T32计算方法通过以下方式进行运算:
[0019] 采用三个T32的第一减法器、第二减法器、第三减法器分别实施β1-β0、β2-β1、β3-β2,采用三个T32的第一三倍乘法器、的第二三倍乘法器、的第三三倍乘法器分别对上述输入的计算结果乘3后输出,获得输入数据组Ⅰ´:〈B0, B 1, B 2〉,
[0020] 将B0分别送入输出口B0l以及CU2的第一加法器,将B1分别送入CU2的第一加法r器、第二加法器,将B2分别送入CU2的第二加法器、输出口B0,CU2的第一加法器接收到B0、B1后实施加法运算后将结果B0+B1分别送至CU2的第一移位器、CU2的第三加法器;同样地,CU2的第二加法器将其计算结果B2+B1分别送至CU2的第三加法器、CU2的第三移位器,CU2的第一移位器、第三移位器分别将B0+B1、B2+B1右移1位后的结果(B0+B1)/2、(B2+B1)/2输l r
出到对应输出口B1、B1,CU2的第三加法器实施了加法得到B0+2B1+B2后送至CU2的第二l r /
移位器,CU2的第二移位器将B0+2B1+B2右移2位将结果分别输出至B2、B2 以及中点值βl l l r r r l r /
(0.5),这样就获得两组输出数据组Ⅱ´:〈B0、B1、B2〉和〈B0、B1、B2〉,其中B2、B2 以及β(0.5)是相等的,
[0021] 基于单元CU2计算过程的CU2B并行/流水计算过程是:
[0022] 基于上层一个单元CU2计算过程获得的两组输出数据组Ⅱ´〈B0l、B1l、B2l〉和〈B0r、r r l l l r r rB1、B2〉,将该两组数据组〈B0、B1、B2〉和〈B0、B1、B2〉分别作为输入数据组Ⅰ´通过相应的两下层单元CU2计算过程进行计算,两下层单元CU2计算过程各获得相应的两组输出数n n
据组Ⅱ´及一个中点值,这样经过n层计算后,就获得了2-1个变量差为1/2 的中点值:
[0023] 第一层:β/(1/2)
[0024] 第二层:β/(1/22)、β/(3/22)
[0025] 第三层:β/(1/23)、β/(3/23)、β/(5/23)、β/(7/27)
[0026] …………
[0027] 第n 层:β´(1/2n)、β´(3/2n)、…、β´((2j+1)/2n)、β´((2 n -1)/2n)[0028] 然后,将上述中点值连同β´(0)、β´(1)依变量值t由小到大的顺序储存,作为控制数控机床运行速度的运行控制数据。
[0029] 本发明所依据的理论如下:
[0030] 一、
[0031] 本发明的理论基础在于经典数学理论中多项式的两个性质。
[0032] 性质1. 任意关于t 的多项式
[0033] (1)
[0034] 恒能表示成(伯恩斯坦多项式)
[0035] (2)
[0036] 这里 。
[0037] 性质2. 若 为
[0038] (3)
[0039] 那么有
[0040] (4)
[0041] 这里 满足
[0042] (5)
[0043] 上述性质2称为伯恩斯坦多项式的剖分性质。
[0044] 鉴于本发明主要关注三次多项式的计算,以下主要考虑三次多项式及其对参数t的一阶导数。
[0045] 三次多项式
[0046] (6)
[0047] 经系数变换
[0048] 或者
[0049] 即为如下(7)的形式
[0050] (7)
[0051] 其对参数t 的一阶导数
[0052] (8)
[0053] 显然, 是二次伯恩斯坦多项式。
[0054] 形如(7)(8)的多项式具有对称性,即
[0055]
[0056] (8)式中的3(β1-β0)、3(β2-β1)、3(β3-β2)采用T32计算方法计算分别获得B0、B1、B2。
[0057] 二、计算 的方法
[0058] 对 的计算是CNC插补中点位计算的基础。本发明主要结合一种中分计算方法,给出高速高精计算 的方法。
[0059] 在(4)中取 时得到
[0060] (8)
[0061] 这里
[0062] (9)
[0063] 注意到,如果令 、 那么有
[0064]
[0065]
[0066] 从而
[0067]
[0068] 如果记
[0069]
[0070]
[0071] 那么 上的点集可以通过对 、 的计算得到,即
[0072] (10)
[0073] 由于 、 也是形如(7)的多项式,因此上述计算过程可以递归下去,即通过按照(9)计算出 、 以及;再将同样的计算过程应用于 、 ,依此下去直到达到所需
要的精度为止。这样的计算将产生如下结果:
[0074] 第一次:
[0075] 第二次: 、
[0076] 第三次: 、 、 、
[0077] …………
[0078] 第n 次: 、 、…、 、…、
[0079] 上述从第一到第n次的计算,其第k次都可用一棵深度为n的满二叉树T的第k层来描述,因而整个计算可用T 自根结点到全部叶子结点的层次结构来描述。如图1所示的中分计算满二叉树模型。
[0080] 图1 中分计算的满二叉树模型
[0081] 经过n 层计算后总共得到 个点,按照从上到下自左至右的顺序排列如下[0082] , , ,…, ,…, ,…, (11)
[0083] 其通项为
[0084] (12)
[0085] 这里,c 是i的二进制表示所占的位数。例如, 时 , 时 , 时 。一般地,当 时 。
[0086] 数列(11)是从 的中点开始向两边排列的。虽然从理论上在 时能够得到的全部点,但是并不能按次序对应于 从起点到终点的各个点。只有得到了对应于从起点到终点的各个点,才能连续绘制(插补)出 的曲线。根据二叉树结构的原理,这需要得到T 的中序排列,即如下数列
[0087] , , ,…, , , ,…, ,, (13)
[0088] 其通项是:
[0089] (14)
[0090] 本发明的要点之一是将所述中分计算的数据存储(输出)成中序数列(14)的方法。具体实现见后文描述。
[0091] 三、计算 的方法
[0092] 对 的计算是CNC插补中速度计算的基础。由于 也伯恩斯坦多项式,也具有性质2所描述的剖分,本发明采用与计算点位 相同的中分方法计算 。鉴于其过程相同,这里不赘述。
[0093] 四、中分数据的有序化方法
[0094] 前已述及,采用中分计算得到的数据序列不能按次序对应于从起点到终点的点位/速度序列,不能用于插补(绘制)点位/
速度曲线。只有将中分计算的数据存储(输出)成满二叉树的中序序列才能称为插补所需要的数据序列。采用下述方法,可将本发明计算的数据按照 从起点到终点的顺序存储(输出),实现中分数据的有序化。
[0095] 首先需要一个线性存储结构M 以存储所计算的数据。假如需要在 (或者 )计算出 个点,那么M应该包含 个存储单元。
[0096] 将M的存储单元依次编号为1,2,…, ;那么在实施中分计算时按照如下方式存储:
[0097] 将(第一层计算的) 存储在M 的第 个单元里;
[0098] 将(第二层计算的) 分别存储在M 的第 与 两个单元里;
[0099] …………
[0100] 将(第k 层计算的) 存储在M的第 个单元里。
[0101] 那么,整个计算完毕后,M里就存储了 从起点到终点的依次排列的 个点。
[0102] 五、计算的精度特征
[0103] 由(14)式不难看出,经n 层计算后,中序数列(13)里两相邻点之差为
[0104]
[0105] 注意到 是区间 上的连续多项式函数,因此存在 使得
[0106]
[0107] 此亦
[0108] (15)
[0109] 另一方面,根据本发明计算的特征(参考图1),对应于二叉树第 层的点,除与 两个点以外,其余必在第 层相邻两点 、 之间,且根据满二叉树的父子关系知 是 与 的共同父亲,如图2所示意。
[0110]
[0111] 图2 相邻层与相邻点位的关系示意图
[0112] 考虑到
[0113]
[0114] 结合(15)知,本发明计算的精度级别为
[0115] (16)
[0116] 这里, m 所计算的层数。
[0117] 上式(16)也是由计算精度控制计算规模的依据。如果要求计算的精度为 ,那么计算的层数 宜为
[0118] (16)
[0119] 对于 ,则 。例如,当 时得到 , 当 得到而当 时 。
[0120] 需要指出的是,这里的数量都是无量纲数。如果以毫米为单位那么 毫米就到了亚
纳米级了。
[0121] 六、计算的速度特征
[0122] 本发明所给计算方法的速度特征表现在以下几个方面:
[0123] 1. 根据前述的计算原理可知,本发明的计算在本质上源于经典De Castejlau
算法,但是在效率上有改进。例如,对于三次多项式 ,按照本发明的计算为
[0124]
[0125] 理论上共需要7次加法,1次移位(右移3位)运算;而经典De Castejlau算法需要6次加法,6次乘法,如图3所示。 由于移位与加法运算都是计算机最快的运算,因此本发明的计算具有更高的效率。
[0126] 2. 本发明的计算过程可以设计制作出专门的
硬件计算单元CU(Calculation Unit)来实现。由于硬件具有高速运算的特征,因此本发明的计算效率在CU支持下可极大提高。字长为k 的计算机(或处理器)能够在最多30纳秒的时间周期内计算出 个点。
[0127] 3. 本发明的计算可经CU实现并行流水计算(见后文的设计),其效率更高。
[0128] 图3 De Castejlau的中分计算模型
[0129] 七、 、 的特殊计算方法
[0130] 令 ,将多项式 、 表示成(6)的形式得,
[0131]
[0132]
[0133] 于是 时,
[0134] (17)
[0135] (18)
[0136] 可通过移位与加法组合得到 与 。
[0137] 由于上述的计算方法是可以用硬件来实现的,而硬件的运行速度是很快的,是瞬间完成计算,这样,就能够实现快速计算数控机床上的切削
工件的刀具的运动轨迹的运行控制数据,而且精确度高。
[0138] 这里,在满足足够运算速度的情况下,尽可能地减少单元CU3计算过程,以便使CU3计算过程所需要的硬件数量合理,
[0139] 将每相邻的两个基于单元CU3计算过程的CU3B并行/流水计算过程所获得的值n m m的变量t0、t1的差t1- t0=1/2 分成k个1/2,然后分别通过RCU3的计算方法对β(t0+1/2)、m m m
β(t0+2/2)、β(t0+3/2)……β(t0+k/2)进行串行计算,
[0140] RCU3的计算方法是这样的:
[0141] 首先:
[0142] 先将三次伯恩斯坦多项式7:
[0143] β(f)=β0(1-f)3+3β1 f(1-f)2+3β2 f2(1-f)+β3 f3,0≤f≤1[0144] 通过B3TC的计算过程转换成三次多项式6:
[0145] α(f)=α3f3+α2 f2+α1 f1+α0,0≤f≤1
[0146] B3TC的计算过程是:
[0147] 将三次伯恩斯坦多项式7中的〈β0, β1, β2, β3〉作为输入数据组通过以下方式进行运算: 输入后被分转到输出口 与B3TC的第一减法器, 输入后被分转到B3TC的第一减法器与B3TC的第二减法器, 输入后被分转到B3TC的第二减法器与B3TC的第三减法器, 被输入到B3TC的第三减法器;B3TC的第一减法器执行完 后,将结果分别送到送到B3TC的第一三倍乘法器与B3TC的第四减法器;B3TC的第二减法器执行完 后将结果分别送到B3TC的第四减法器与第五减法器;B3TC的第三减法器将结果 送到B3TC的第五减法器;B3TC的第四减法器执行计算 后,将结果分别送到B3TC的第二三倍乘法器与B3TC的第六减法器;B3TC的第五减法器执行计算 后将结果
送B3TC的第六减法器;B3TC的第一三倍乘法器输出 到输出口 ,B3TC的第二三
倍乘法器输出 到输出口 ,B3TC的第六减法器输出 到
输出口 ,这样,就获得了三次多项式6中的〈 , , , 〉,
m m
[0148] 通过CU1/2计算β(1/2)的计算过程,其中1/2 是相邻两个变量t0、t1的差值,[0149] CU1/2计算过程是将〈β0, β1, β2, β3,σ〉作为数据输入组通过以下方式进行计算:输入数据β3被送入CU1/2的第一减法器,β2被分别送入CU1/2的第一减法器、第二减法器,β1被分别送入CU1/2的第二减法器、第三减法器,β0被分别送入CU1/2的第三减法器与CU1/2的第二加法器,CU1/2的第一减法器、第二减法器、第三减法器分别计算β3-β2、β2-β1、β1-β0,其中CU1/2的第一减法器的结果β3-β2送到CU1/2的第四减法器,CU1/2的第二减法器的结果β2-β1分转到CU1/2的第四减法器与第五减法器、CU1/2的第三减法器的结果β1-β0分转到CU1/2的第五减法器以及CU1/2的第二三倍乘法器,CU1/2的第四减法器的结果β3-2β2+β1送到CU1/2的第六减法器,CU1/2的第五减法器的结果β2-2β1+β0分别送到CU1/2的第六减法器与CU1/2的第一三倍乘法器,两个CU1/2的第一三倍乘法器、第二三倍乘法器将输入数据β2-2β1+β0、β1-β0分别放大3倍后分别对应送到CU1/2的第二可变移位器、第三可变位移器,CU1/2的第六减法器计算出β3-3β2+3β1-β0后将结果送到CU1/2的第一可变移位器,CU1/2的第一可变移位器将输入数据右移 位得到(β3-3β2+3β1-β0)3σ
/2 后将结果送入CU1/2的第一加法器,CU1/2的第二可变移位器将输入数据右移 得到结果3(β2-2β1+β0)/22σ后也送入CU1/2的第一加法器,CU1/2的第三可变移位器将输入数据右移 得到结果3(β1-β0)/2σ后也送入CU1/2的第二加法器,CU1/2的第一加法器计算出(β3-3β2+3β1-β0)/23σ+3(β2-2β1+β0)/22σ后结果送CU1/2的第三加法器,CU1/2的第二加法器计算出3(β1-β0)/2σ+β0后结果也送CU1/2的第三加法器,最后由第三加法器计算出β(1/2m),
[0150] 其次:
[0151] 通过RCU3计算相邻两中点值间变量为1/2m的各个点β(t0+1/2m)、β(t0+2/2m)、β(t0+3/2m)……β(t0+k/2m)的值,
[0152] RCU3计算过程是将〈β(t0),β(1/2m),t0m, a3,a2,a0〉作为数据输入组通过以下方式进行计算,其中β(t0)是某个中点的值,t0是该中点的值的变量:β(t0),β(1/2m)输入到RCU3第一暂存器、第二暂存器; m输入送到RCU3第三暂存器;t0送到RCU3的第四暂存器;a3,a2,a0送入F3;RCU3的计数器控制各个单元;在RCU3的计数
控制器的控制下,实施计算时,RCU3的第一暂存器、第二暂存器的数据送入RCU3的第一加法器,RCU3的第三暂存器的数据m 同时送到F3与RCU3的移位器,RCU3的移位器计算出1/2m后送RCU3的第二加法器,RCU3的第四暂存器的数据同时送RCU3的第二加法器与F3;RCU3的第一加法器完成计算后将β(t0)+β(1/2m)送到RCU3的第三加法器,与F3送过来的数据做加法,结果同时输出到输出端O,也送到RCU3的第二暂存器,准备第二次运算;RCU3的第二加法器将加法结果t0+1/2m送RCU3的第四暂存器准备第二次计算;完成一轮计算后,开始第二轮计算;重复这个过程,直到计数控制器指示计算终止,这样,就获得了相邻两中点值间变量为1/2m的各个点的值〈β(t0+1/2m),β(t0+1/2m+1/2m),……〉,
[0153] 从而获得0—1间的所有变量的值:
[0154] 〈β(0)、β(1/2m)、β(2/2m)……β(k/2m)……β(t0)、β(t0+1/2m)、β(t0+2/2m)……β(t0+k/2m)……β(1- k/2m)、β(1- (k-1)/2m)、β(1- (k-2)/2m)……β(1- 1/2m)、β(1)〉
[0155] 这里,F3的计算过程是这样实现的,数据a0,t0,m 输入后分别进入F3的第一暂存器、第二暂存器、第三暂存器;输入数据a2、a3分别送入F3的二倍乘法器、F3的三倍乘法器,经乘法后分别送入F3的第一乘法器、第二乘法器;F3的第二暂存器的数据t0,也送入F3的第一乘法器、第二乘法器;F3的第三暂存器负责将m送入F3的第一移位器、第二移位器、第三移位器;F3的第一乘法器的乘法结果2a2t0经F3的第一移位器右移m位后,结果送到F3的第一加法器;F3的第二乘法器分别将乘法结果3a3t0送入F3的第二移位器与F3的第三乘法器;F3的第二移位器将数据3a3t0右移2m位后送到F3的第一加法器;F3的第一加法器执行加法计算得到结果2a2t0(1/2m)+3a3t0(1/2m)2送F3的第二加法器;F3的第三乘法器将结果3a3t02送F3的第三移位器,经右移m位后送F3的第二加法器;F3的第二加法器完成加法后得到2a2t0(1/2m)+3a3t0(1/2m)2+3a3t02(1/2m),将结果送F3的减法器;F3的减法器从F3的第一暂存器里面获取a0与F3的第二加法器送来的数据作减法最终得到2a2t0(1/2m)+3a3t0(1/2m)2+3a3t02(1/2m)- a0的计算结果。
[0156] 在满足足够运算速度的情况下,尽可能地减少单元CU2计算过程,以便使CU2计算过程所需要的硬件数量合理,
[0157] 将每相邻的两个基于单元CU2计算过程的CU2B并行/流水计算过程所获得的n m值的变量t0、t1的差t1- t0=1/2 分成k个1/2,然后分别通过RCU2的计算方法对β´m m m m
(t0+1/2)、β´(t0+2/2)、β´(t0+3/2)……β´(t0+k/2)进行串行计算,[0158] RCU2的计算方法是这样的:
[0159] 首先:
[0160] 通过B2TQ的计算方式是将形如
[0161] B0(1-t)2+2B1t(1-t)+B2t2
[0162] 的二次伯恩斯坦多项式系数转换为形如
[0163] A2t2+A1t+A0
[0164] 多项式的系数。
[0165] B2TQ的计算过程是:
[0166] 输入后被分转到输出口 与B2TQ的第一减法器, 输入后分转到B2TQ的第一减法器与第二减法器, 直接输入到B2TQ的第二减法器,B2TQ的第一减法器计算出后将结果分转到B2TQ的二倍乘法器和B2TQ的第三减法器;B2TQ的第二减法器的结
果 直接送入B2TQ的第三减法器,B2TQ的二倍乘法器将 乘以2后输出到 ,
B2TQ的第三减法器计算出 后输出到 ,
[0167] 通过CU1/2计算β´(1/2σ)的计算过程,其中1/2m是相邻两个变量t0、t1的差值,[0168] CU1/2计算过程是将〈B0, B1, B2,σ〉作为数据输入组通过以下方式进行计算:输入数据B3被送入CU1/2的第一减法器, B2被分别送入CU1/2的第一减法器、第二减法器, B1被分别送入CU1/2的第二减法器、第三减法器,B0被分别送入CU1/2的第三减法器,CU1/2的第一减法器、第二减法器、第三减法器分别计算B3- B2、 B2- B1、 B1- B0,其中CU1/2的第一减法器的结果B3- B2送到CU1/2的第四减法器、CU1/2的第二减法器的结果B2- B1分转到CU1/2的第四减法器与第五减法器、CU1/2的第三减法器的结果B1- B0分转到CU1/2的第五减法器以及第二加法器,CU1/2的第四减法器的结果B3-2 B2+B1送到CU1/2的第六减法器,CU1/2的第五减法器的结果B2-2 B1+B0分别送到CU1/2的第六减法器与CU1/2的二倍乘法器,CU1/2的二倍乘法器将输入数据B2-2 B1+B0放大2倍后送到CU1/2的第二移位器,CU1/2的第六减法器计算出B3-3 B2+3B1- B0后将结果送到CU1/2的第一移位器,CU1/2的第一移位器将输入数据右移3σ 位得到(B3-3 B2+3B1- B0)/23σ后将结果送入CU1/2的第一加法器,CU1/2的第二2σ 1/2
移位器将输入数据右移 得到结果2(B2-2 B1+B0)/2 后也送入CU 的第一加法器,第
3σ 2σ 1/2
一加法器计算出(B3-3 B2+3B1- B0)/2 +2(B2-2 B1+B0)/2 后结果送CU 的第二
1/2 1/2
加法器,第二加法器计算出结果后送CU 的三倍乘法器,最后由CU 的三倍乘法器计算出σ
β´(1/2 ),
[0169] 其次:m m m
[0170] 通过RCU2计算相邻两中点值间变量为1/2 的各个点β´(t0+1/2)、β´(t0+2/2)、m mβ´(t0+3/2)……β´(t0+k/2)的值,
m
[0171] RCU2计算过程是将〈β´(t0),β´(1/2),t0 ,m, A3,A1〉作为数据输入组通过以下方式进行计算,其中β´(t0)是某个中点的值,t0是该中点的值的变量:β´(t0),β´m(1/2)输入到RCU2的第一暂存器、第二暂存器; m输入送到RCU2的第三暂存器;t0送到RCU2的第四暂存器;A3,A1送入F2;RCU2的计数器控制各个单元;在RCU2的计数控制器的控制下,实施计算时,RCU2的第一暂存器、第二暂存器的数据送入RCU2的第一加法器,RCU2m
的第三暂存器的数据m同时送到F2与RCU2的移位器,RCU2的移位器计算出1/2 后送RCU2的第二加法器,RCU2的第四暂存器的数据同时送RCU2的第二加法器与F2;RCU2的第一加m
法器完成计算后将β´(t0),β´(1/2)送到RCU2的第三加法器,与F2送过来的数据做加法,结果同时输出到输出端O,也送到RCU2的第二暂存器,准备第二次运算;RCU2的第二m
加法器将加法结果t0+1/2 送RCU2的第四暂存器准备第二次计算;完成一轮计算后,开始第二轮计算;重复这个过程,直到RCU2计数控制器指示计算终止,这样,就获得了相邻两中点m m m m
值间变量为1/2 的各个点的值〈β´(t0+1/2),β´(t0+1/2+1/2),……〉,
[0172] 从而获得0—1间的所有变量的值:
[0173] 〈β´(0)、β´(1/2m)、β´(2/2m)……β´(k/2m)……β´(t0)、β´(t0+1/2m)、m m m mβ´(t0+2/2) ……β´(t0+k/2) ……β´(1- k/2)、β´(1- (k-1)/2)、β´(1- m m
(k-2)/2)……β´(1- 1/2)、β´(1)〉,
[0174] 这里,F2的计算过程是这样实现的,数据A1直接送F2的第一暂存器;A3送F2的六倍乘法器经放大后送入F2的乘法器;t0送F2的乘法器;m送F2的第二暂存器,F2的乘法器实施乘法运算后将结果6 A3 t0送F2的移位器,F2的第二暂存器也将m送F2的移位m器;F2的移位器将6 A3 t0右移m后结果6 A3 t0(1/2)送F2的减法器,同时F2的第一暂m
存器也将A1送的减法器,F2的减法器实施减法运算得到6 A3 t0(1/2)- A1完成计算。
[0175] 上述计算方法所依据的理论如下:
[0176] 一、
[0177] 考虑到
[0178]
[0179]
[0180] 可知只要已知 、 以及δ,就能计算出 、 。特别地如果,则有
[0181] (21)
[0182] (22)
[0183] 这里
[0184] 二、CU1/2、CU1/2所依据的理论是:
[0185] 令 ,将多项式 、 表示成(6)的形式得,
[0186]
[0187]
[0188] 于是 时,
[0189] (17)
[0190] (18)
[0191] 可通过移位与加法组合得到 与 。
[0192] 三、
[0193] 由(21)(22)知,在已知 、 ,借助于CU1/2、CU1/2计算出 、 。并且该计算过程是一个递推的过程。以计算 为例,由 计算出 后,再经
后,又能由 、 计算出 。如此下去,计算出一个序列。这个
计算过程可设计出相应的计算单元RCU(Recursive Calculation Unit)。同理, 也可以由类似的计算单元实现。本发明设计RCU3用于计算 ,RCU2用于计算 。
[0194] 为了减少计算所需要的硬件的数量,设置MA计算过程计算并向各个RCU3计算过程输出, ,t0 ,m, a3,a2,a0, MA计算过程是将CU1/2计算过程、B3TC计算过程、各个CU3计算过程所对应的t0计算过程和m的值的预先设定或者输入组合而成。
[0195] 若单采用基于单元CU3计算过程的CU3B并行/流水计算过程则需要2w-1个单元CU3计算过程,那么,基于CU3B- RCU3并行流水计算过程达到同样计算精度时所需要的硬w w件数量为2/k-1个单元CU3+2/k个RCU3+1个MA,显然,基于CU3B- RCU3并行流水计算过程所需要的硬件数量远比基于单元CU3计算过程的CU3B并行/流水计算过程所需要的硬件数量少接近K-1倍。
[0196] 为了减少计算所需要的硬件的数量,设置MA计算过程计算β´(1/2m),t0 ,m, A3,1/2
A1, MA计算过程是将CU 计算过程、B2TQ计算过程、各个CU2计算过程所对应的t0计算过程和m值的预先设定或者输入组合而成。
[0197] 这里,采用CCU3的计算方法对
计算机辅助制造(CAM)系统输入的j轴(多轴加工系统中的j轴)的一组刀位点 以及初始与终止边界条件为 , 进行插补计算,以便获得刀具以一定的速度沿分段连续的曲线运行并经过各个刀位点 以及初始与终止边界条件为 , 的插补点,
[0198] CCU3的计算方法是三个CU3B或者是CU3B-RCU3组合,负责计算BZ0(t),BZ1(t),[BZ(t)](j);
[0199] 两个CCU3乘法器1、2,分别对输入数据BZ0(t)、BZ1(t)乘以 、 ;
[0200] 一个CCU3加法器3将分别乘以Xij、Xi+1j的BZ0(t)、BZ1(t)相加,一个CCU3减法(j)器4将CCU3加法器3的输出结果与[BZ(t)] 相加
[0201] 这里,Xij是j轴的第i个刀位点,Xi+1j是j轴的第i+1个刀位点
[0202] BZ0(t)=(1-t)3+3t(1-t)2+3μt2(1-t)+t3
[0203] BZ1(t)=(1-t)3+3ηt(1-t)2+3t2(1-t)+t3
[0204] [BZ(t)](j)=3ηXi-1j t(1-t)2+3μXi+1j t(1-t)2+Xij(1-t)3+Xi+1jt3[0205] 这里 为速度控制参数。
[0206] 这里,采用CCU2的计算方法对计算机辅助制造(CAM)系统输入的j轴(多轴加工系统中的j轴)一组刀位点 以及初始与终止边界条件为 , 进行插补计算,以便获得刀具以一定的速度沿分段连续的曲线运行并经过各个刀位点 以及初始与终止边界条件为 , 的插补点的速度,
[0207] CCU2的计算方法是三个CU2B或者是CU2B-RCU2组合,负责计算BZ0(/ t),BZ1(/ t),/ (j)[BZ(t)] ;
[0208] 两个CCU2乘法器1、2,分别对输入数据BZ0/(t)、BZ1/(t)乘以 、 ;
[0209] 一个CCU2加法器3将分别乘以 、 的BZ0/(t)、BZ1/(t)相加,一个CCU2减/ (j)法器4将CCU2加法器3的输出结构与[BZ(t)] 相加
[0210] 这里, 是j轴的第i个刀位点, 是j轴的第i+1个刀位点。
[0211] 上述计算方法所依据的理论是:
[0212] 一、
[0213] CNC插补是根据计算机辅助制造(CAM)系统输入的一组刀位点 以及初始与终止边界条件为 , ,计算出一条刀具运动的轨迹线使得加工的刀具以一定的速度通过每个刀位点。本发明通过设计如下通过 、 的参数曲线段 实现插补计算。
[0214] (23)
[0215] 这里 为速度控制参数。
[0216] 不难验证,在 与 时,有
[0217] (24)
[0218] (25)
[0219] 从而分段连续的曲线
[0220] (26)
[0221] 是光滑的且通过全部点 。
[0223]
[0224]
[0225] 如果记
[0226] (27)
[0227] (28)
[0228] (29)
[0229] 那么 可以写成
[0230] (30)
[0231] 对于多坐标加工系统,设
[0232]
[0233] 那么
[0234]
[0235] 这里 表示 的第j 个坐标(分量)。
[0236] 于是
[0237]
[0238] 二、单坐标
插补器CCU3与CCU2的设计
[0239] 由于 都是形如(7)的多项式,因此可以借助于CU3B、或者CU3-RCU3-CU1/2组合来计算 。
[0240] 本发明与已有技术相比,具有可高速计算并能产生高精度结果的、适合于以及芯片级并行流水可重构计算的、能满足不断发展的工业需求的优点。
[0242] 图1为本发明CU3的结构示意图;
[0243] 图2为本发明CU3B的结构示意图;
[0244] 图3为本发明T32的结构示意图;
[0245] 图4为本发明CU2的结构示意图;
[0246] 图5为本发明CU2B的结构示意图;
[0247] 图6为本发明B3TC的结构示意图;
[0248] 图7为本发明CU1/2的结构示意图;
[0249] 图8为本发明RCU3的结构示意图;
[0250] 图9为本发明F3的结构示意图;
[0251] 图10为本发明CU3B-RCU3的结构示意图;
[0252] 图11为本发明B2TQ的结构示意图;
[0253] 图12为本发明CU1/2的结构示意图;
[0254] 图13为本发明F2的结构示意图;
[0255] 图14为本发明RCU2的结构示意图;
[0256] 图15为本发明CU2B-RCU2的结构示意图;
[0257] 图16为本发明CCU3的结构示意图;
[0258] 图17为本发明CCU2的结构示意图。
[0259] 具体实施方式:
[0260] 现结合附图和
实施例对本发明作进一步详细描述:
[0261] 如图1、2所示,包括基于单元CU3计算过程的CU3B并行/流水计算过程,
[0262] 单元CU3计算过程是:
[0263] 将伯恩斯坦多项式7:β(f)=β0(1-f)3+3β1 f(1-f)2+3β2 f2(1-f)+β3 f3,0≤f≤1中的数据组〈β0, β1, β2, β3〉作为第一输入数据组通过以下方式进行运算,l
将β0分别送入输出口β0 以及CU3的第一加法器a10,将β1分别送入CU3的第一加法器a10、第二加法器a11,将β2分别送入CU3的第二加法器a11、第三加法器a12,将β3分别r
送入输出口β0 以及CU3的第三加法器a12;CU3的第一加法器a10接收到β0、β1后实施加法运算后将结果β0+β1分别送至CU3的第一移位器a16、第四加法器a13;同样地,CU3的第二加法器a11将其计算结果β1+β2分别送至CU3的第四加法器a12、第五加法器a14,CU3的第三加法器a12将其计算结果β2+β3分别送至CU3的第五加法器a14、第二移位器a17; CU3的第一移位器a16、第二位移器a17分别将β0+β1、β2+β3右移1位后的结果l r
(β0+β1)/2、(β2+β3)/2输出到对应输出口β1、β1 ;CU3的第四加法器a13实施了加法得到β0+2β1+β2后分别送CU3的第三移位器a18、CU3的第六加法器a15,CU3的第五加法器a14实施了加法得到β1+2β2+β3后分别送CU3的第四移位器a19、CU3的第六加法器a15;CU3的第三移位器a18、第四位移器a19分别对β0+2β1+β2、β1+2β2+β3右移2位后l r
输出(β0+2β1+β2)/4、(β1+2β2+β3)/4至输出口β2、β2 ;最后,CU3的第六加法器a15接收数据β0+2β1+β2、β1+2β2+β3实施加法得到β0+3β1+3β2+β3后送至CU3的第五移位器a20,经CU3的第五移位器a20右移3位后得到(β0+3β1+3β2+β3)/8分别输出至l r l l l l
β3、β3 以及中点值β(0.5),这样就获得了两组第二输出数据组(β0、β1、β2、β3〉和r r r r l r
〈β0、β1、β2、β3〉以及中点值β(0.5),其中β3、β3、β(0.5)是相等的;
[0264] 基于单元CU3计算过程的CU3B并行/流水计算过程是:
[0265] 基于上层一个单元CU3计算过程获得的两组第二输出数据组〈β0l、β1l、β2l、β3l〉r r r r l l l l r r r和〈β0、β1、β2、β3〉,将该两组第二输出数据组〈β0、β1、β2、β3〉和〈β0、β1、β2、r
β3〉分别作为第一输入数据组通过相应的两个下层单元CU3计算过程进行计算,两下层单元CU3计算过程计算后各获得相应的两组第二输出数据组及一个中点值,这样经过n层计n n
算后,就获得了2-1个变量差为1/2 的中点值:
[0266] 第一层:β(1/2)
[0267] 第二层:β(1/22)、β(3/22)
[0268] 第三层:β(1/23)、β(3/23)、β(5/23)、β(7/23)
[0269] …………
[0270] 第n 层:β(1/2n)、β(3/2n)、…、β((2j+1)/2n)、…、β((2 n -1)/2n)[0271] 然后,将上述中点值连同β(0)、β(1)依变量值t由小到大的顺序储存,作为控制数控机床运行的运行控制数据。
[0272] 这里层与层之间通过时序控制,数据的每个CU3的输出数据按照前述“第k 层第j个输出存储在线性存储结构的第 ”的方法进行存储。如果系统的时序周期为θ的话,那么完成全部计算的时间为
[0273]
[0274] 例如,若系统的时序周期为3纳秒,则计算1024个数据所需要的时间为27纳秒。
[0275] 如图3、4、5所示,基于单元CU2计算过程的CU2B并行/流水计算过程所获得的各个中点值及β(0)、β(1)的速度采用基于单元CU2计算过程的CU2B并行/流水计算过程计算的,
[0276] 单元CU2计算过程是:
[0277] 将伯恩斯坦多项式7:β(f)=β0(1-f)3+3β1 f(1-f)2+3β2 f2(1-f)+β3 f3,′ 20≤f≤1的导数—伯恩斯坦多项式8:β (f)=3(β1 -β0)(1-f) +6(β2 –β1)f
2
(1-f)+3(β3 –β2)f,0≤f≤1中的数据组〈β0, β1, β2, β3〉通过T32计算方法转换成数据组Ⅰ´:〈B0, B 1, B 2〉,其中B 0=3(β1-β0),B 1=3(β2-β1),B 2=3(β3-β2)[0278] T32计算方法通过以下方式进行运算:
[0279] 采用三个T32的第一减法器b1、第二减法器b2、第三减法器b3分别实施β1-β0、β2-β1、β3-β2,采用三个T32的第一三倍乘法器b4、的第二三倍乘法器b5、的第三三倍乘法器b6分别对上述输入的计算结果乘3后输出,获得输入数据组Ⅰ´:〈B0, B 1, B 2〉,[0280] 将B0分别送入输出口B0l以及CU2的第一加法器c4,将B1分别送入CU2的第一加r法器c4、第二加法器c5,将B2分别送入CU2的第二加法器c5、输出口B0,CU2的第一加法器c4接收到B0、B1后实施加法运算后将结果B0+B1分别送至CU2的第一移位器c9、CU2的第三加法器c8;同样地,CU2的第二加法器c5将其计算结果B2+B1分别送至CU2的第三加法器c8、CU2的第三移位器c11,CU2的第一移位器c9、第三移位器c11分别将B0+B1、B2+B1右移l r
1位后的结果(B0+B1)/2、(B2+B1)/2输出到对应输出口B1、B1,CU2的第三加法器c8实施了加法得到B0+2B1+B2后送至CU2的第二移位器c10,CU2的第二移位器c10将B0+2B1+B2右l r /
移2位将结果分别输出至B2、B2 以及中点值β (0.5),这样就获得两组输出数据组Ⅱ´:
l l l r r r l r /
〈B0、B1、B2〉和〈B0、B1、B2〉,其中B2、B2 以及β (0.5)是相等的,
[0281] 基于单元CU2计算过程的CU2B并行/流水计算过程是:
[0282] 基于上层一个单元CU2计算过程获得的两组输出数据组Ⅱ´〈B0l、B1l、B2l〉和〈B0r、r r l l l r r rB1、B2〉,将该两组数据组〈B0、B1、B2〉和〈B0、B1、B2〉分别作为输入数据组Ⅰ´通过相应的两下层单元CU2计算过程进行计算,两下层单元CU2计算过程各获得相应的两组输出数n n
据组Ⅱ´及一个中点值,这样经过n层计算后,就获得了2-1个变量差为1/2 的中点值:
[0283] 第一层:β/(1/2)
[0284] 第二层:β/(1/22)、β/(3/22)
[0285] 第三层:β/(1/23)、β/(3/23)、β/(5/23)、β/(7/27)
[0286] …………
[0287] 第n 层:β´(1/2n)、β´(3/2n)、…、β´((2j+1)/2n)、β´((2 n -1)/2n)[0288] 然后,将上述中点值连同β´(0)、β´(1)依变量值t由小到大的顺序储存,作为控制数控机床运行速度的运行控制数据。
[0289] 这里层与层之间通过时序控制,数据的每个CU2的输出数据按照前述“第k 层第jm-k个输出存储在线性存储结构的第2 (2j+1)”的方法进行存储。
[0290] 如图6、7、8、9、10所示,将每相邻的两个基于单元CU3计算过程的CU3B并行/流n m水计算过程所获得的值的变量t0、t1的差t1- t0=1/2 分成k个1/2,然后分别通过RCU3的m m m m
计算方法对β(t0+1/2)、β(t0+2/2)、β(t0+3/2)……β(t0+k/2)进行串行计算,[0291] RCU3的计算方法是这样的:
[0292] 首先:
[0293] 先将三次伯恩斯坦多项式7:
[0294] β(f)=β0(1-f)3+3β1 f(1-f)2+3β2 f2(1-f)+β3 f3,0≤f≤1[0295] 通过B3TC的计算过程转换成三次多项式6:
[0296] α(f)=α3f3+α2 f2+α1 f1+α0,0≤f≤1
[0297] B3TC的计算过程是:
[0298] 将三次伯恩斯坦多项式7中的〈β0, β1, β2, β3〉作为输入数据组通过以下方式进行运算: 输入后被分转到输出口 与B3TC的第一减法器d4, 输入后被分转到B3TC的第一减法器d4与B3TC的第二减法器d5, 输入后被分转到B3TC的第二减法器d5与B3TC的第三减法器d6, 被输入到B3TC的第三减法器d6;B3TC的第一减法器d4执行完 后,将结果分别送到送到B3TC的第一三倍乘法器d13与B3TC的第四减法器d9;B3TC的第二减法器d5执行完 后将结果分别送到B3TC的第四减法器d9与第第五减
法器d10;B3TC的第三减法器d6将结果 送到B3TC的第五减法器d10;B3TC的第四减法器d9执行计算 后,将结果分别送到B3TC的第二三倍乘法器d14与B3TC的
第六减法器d12;B3TC的第五减法器d10执行计算 后将结果送B3TC的第六减
法器d12;B3TC的第一三倍乘法器d13输出 到输出口 ,B3TC的第二三倍乘法器
d14输出 到输出口 ,B3TC的第六减法器d12输出 到输
出口 ,这样,就获得了三次多项式6中的〈 , , , 〉,
m m
[0299] 通过CU1/2计算β(1/2)的计算过程,其中1/2 是相邻两个变量t0、t1的差值,[0300] CU1/2计算过程是将〈β0, β1, β2, β3,σ〉作为数据输入组通过以下方式进行计算:输入数据β3被送入CU1/2的第一减法器e4,β2被分别送入CU1/2的第一减法器e4、第二减法器e5,β1被分别送入CU1/2的第二减法器e5、第三减法器e6,β0被分别送入CU1/2的第三减法器e6与CU1/2的第二加法器e20,CU1/2的第一减法器e4、第二减法器e5、第三减法器e6分别计算β3-β2、β2-β1、β1-β0,其中CU1/2的第一减法器e4的结果β3-β2送到CU1/2的第四减法器e9,CU1/2的第二减法器e5的结果β2-β1分转到CU1/2的第四减法器e9与第五减法器e10、CU1/2的第三减法器e6的结果β1-β0分转到CU1/2的第五减法器e10以及CU1/2的第二三倍乘法器e14,CU1/2的第四减法器e9的结果β3-2β2+β1送到CU1/2的第六减法器e12,CU1/2的第五减法器e10的结果β2-2β1+β0分别送到CU1/2的第六减法器e12与CU1/2的第一三倍乘法器e13,两个CU1/2的第一三倍乘法器e13、第二三倍乘法器e14将输入数据β2-2β1+β0、β1-β0分别放大3倍后分别对应送到CU1/2的第二可变移位器e17、第三可变位移器e18,CU1/2的第六减法器e12计算出β3-3β2+3β1-β0后将结果送到CU1/2的第一可变移位器e16,CU1/2的第一可变移位器e16将输入数据右移 位得到(β3-3β2+3β1-β0)3σ
/2 后将结果送入CU1/2的第一加法器e19,CU1/2的第二可变移位器e17将输入数据右移
2σ
得到结果3(β2-2β1+β0)/2 后也送入CU1/2的第一加法器e19,CU1/2的第三可变移位器σ
e18将输入数据右移 得到结果3(β1-β0)/2 后也送入CU1/2的第二加法器e20,CU1/2的
3σ 2σ
第一加法器e19计算出(β3-3β2+3β1-β0)/2 +3(β2-2β1+β0)/2 后结果送CU1/2σ
的第三加法器e21,CU1/2的第二加法器e20计算出3(β1-β0)/2 +β0后结果也送CU1/2m
的第三加法器e21,最后由第三加法器e21计算出β(1/2),
[0301] 其次:
[0302] 通过RCU3计算相邻两中点值间变量为1/2m的各个点β(t0+1/2m)、β(t0+2/2m)、m mβ(t0+3/2)……β(t0+k/2)的值,
[0303] RCU3计算过程是将〈β(t0),β(1/2m),t0m, a3,a2,a0〉作为数据输入组通过以下m方式进行计算,其中β(t0)是某个中点的值,t0是该中点的值的变量:β(t0),β(1/2)输入到RCU3第一暂存器f1、第二暂存器f2; m输入送到RCU3第三暂存器f3;t0送到RCU3的第四暂存器f4;a3,a2,a0送入F3;RCU3的计数器f9控制各个单元;在RCU3的计数控制器f9的控制下,实施计算时,RCU3的第一暂存器f1、第二暂存器f2的数据送入RCU3的第一加法器f6,RCU3的第三暂存器f3的数据m同时送到F3与RCU3的移位器f5,RCU3的移位器m
f5计算出1/2 后送RCU3的第二加法器f7,RCU3的第四暂存器f4的数据同时送RCU3的第m
二加法器f7与F3;RCU3的第一加法器f6完成计算后将β(t0)+β(1/2)送到RCU3的第三加法器f8,与F3送过来的数据做加法,结果同时输出到输出端O,也送到RCU3的第二m
暂存器f2,准备第二次运算;RCU3的第二加法器f7将加法结果t0+1/2 送RCU3的第四暂存器f4准备第二次计算;完成一轮计算后,开始第二轮计算;重复这个过程,直到计数控制器m m
f9指示计算终止,这样,就获得了相邻两中点值间变量为1/2 的各个点的值〈β(t0+1/2),m m
β(t0+1/2+1/2),……〉,
[0304] 从而获得0—1间的所有变量的值:
[0305] 〈β(0)、β(1/2m)、β(2/2m)……β(k/2m)……β(t0)、β(t0+1/2m)、βm m m m m(t0+2/2)……β(t0+k/2)……β(1- k/2)、β(1- (k-1)/2)、β(1- (k-2)/2)……m
β(1- 1/2)、β(1)〉
[0306] 这里,F3的计算过程是这样实现的,数据a0,t0,m 输入后分别进入F3的第一暂存器g6、第二暂存器g1、第三暂存器g7;输入数据a2、a3分别送入F3的二倍乘法器g2、F3的三倍乘法器g3,经乘法后分别送入F3的第一乘法器g4、第二乘法器g5;F3的第二暂存器g1的数据t0,也送入F3的第一乘法器g4、第二乘法器g5;F3的第三暂存器g7负责将m送入F3的第一移位器g8、第二移位器g9、第三移位器g12;F3的第一乘法器g4的乘法结果2a2t0经F3的第一移位器g8右移m位后,结果送到F3的第一加法器g10;F3的第二乘法器g5分别将乘法结果3a3t0送入F3的第二移位器g9与F3的第三乘法器g11;F3的第二移位器g9将数据3a3t0右移2m位后送到F3的第一加法器g10;F3的第一加法器g10执行加法计算得m m 2到结果2a2t0(1/2)+3a3t0(1/2)送F3的第二加法器g14;F3的第三乘法器g11将结果
2
3a3t0 送F3的第三移位器g12,经右移m位后送F3的第二加法器g14;F3的第二加法器g14m m 2 2 m
完成加法后得到2a2t0(1/2)+3a3t0(1/2)+3a3t0(1/2),将结果送F3的减法器g13;F3的减法器g13从F3的第一暂存器g6里面获取a0与F3的第二加法器g14送来的数据作减m m 2 2 m
法最终得到2a2t0(1/2)+3a3t0(1/2)+3a3t0(1/2)- a0的计算结果。
[0307] 设置MA计算过程计算并向各个RCU3计算过程输出, ,t0 ,m, a3,a2,a0, MA计算过程是将CU1/2计算过程、B3TC计算过程、各个CU3计算过程所对应的t0计算过程和m的值的预先设定或者输入组合而成。
[0308] 如图11、12、13、14、15所示,将每相邻的两个基于单元CU2计算过程的CU2B并行/n m流水计算过程所获得的值的变量t0、t1的差t1- t0=1/2 分成k个1/2,然后分别通过RCU2m m m m
的计算方法对β´(t0+1/2)、β´(t0+2/2)、β´(t0+3/2)……β´(t0+k/2)进行串行计算,
[0309] RCU2的计算方法是这样的:
[0310] 首先:
[0311] 通过B2TQ的计算方式是将形如
[0312]
[0313] 的二次伯恩斯坦多项式系数转换为形如
[0314] 多项式的系数。
[0315] 的计算过程是:
[0316] 输入后被分转到输出口 与B2TQ的第一减法器h3, 输入后分转到B2TQ的第一减法器h3与第二减法器h4, 直接输入到B2TQ的第二减法器h4,B2TQ的第一减法器h3计算出 后将结果分转到B2TQ的二倍乘法器h7和B2TQ的第三减法器h6;B2TQ
的第二减法器h4的结果 直接送入B2TQ的第三减法器h6,B2TQ的二倍乘法器h7将
乘以2后输出到 ,B2TQ的第三减法器h6计算出 后输出到 ,
[0317] 通过CU1/2计算β´(1/2σ)的计算过程,其中1/2m是相邻两个变量t0、t1的差值,[0318] CU1/2计算过程是将〈B0, B1, B2,σ〉作为数据输入组通过以下方式进行计算:输入数据B3被送入CU1/2的第一减法器i3, B2被分别送入CU1/2的第一减法器i3、第二减法器i4, B1被分别送入CU1/2的第二减法器i4、第三减法器i5,B0被分别送入CU1/2的第三减法器i5,CU1/2的第一减法器、第二减法器、第三减法器分别计算B3- B2、 B2- B1、 B1- B0,其中CU1/2的第一减法器的结果B3- B2送到CU1/2的第四减法器i8、CU1/2的第二减法器的结果B2- B1分转到CU1/2的第四减法器i8与第五减法器i9、CU1/2的第三减法器i5的结果B1- B0分转到CU1/2的第五减法器i9以及第二加法器i17,CU1/2的第四减法器i8的结果B3-2 B2+B1送到CU1/2的第六减法器i11,CU1/2的第五减法器i9的结果B2-2 B1+B0分别送到CU1/2的第六减法器i11与CU1/2的二倍乘法器i12,CU1/2的二倍乘法器i12将输入数据B2-2 B1+B0放大2倍后送到CU1/2的第二移位器i15,CU1/2的第六减法器i11计算出B3-3 B2+3B1- B0后将结果送到CU1/2的第一移位器i14,CU1/2的第一移位器i14将输入数据右移3σ 位得到(B3-3 B2+3B1- B0)/23σ后将结果送入CU1/2的第一加法器i16,CU1/2的第二移位器i152σ 1/2
将输入数据右移 得到结果2(B2-2 B1+B0)/2 后也送入CU 的第一加法器i16,第一
3σ 2σ 1/2
加法器i16计算出(B3-3 B2+3B1- B0)/2 +2(B2-2 B1+B0)/2 后结果送CU 的第
1/2 1/2
二加法器i17,第二加法器i17计算出结果后送CU 的三倍乘法器i18,最后由CU 的三倍σ
乘法器i18计算出β´(1/2 ),
[0319] 其次:m m m
[0320] 通过RCU2计算相邻两中点值间变量为1/2 的各个点β´(t0+1/2)、β´(t0+2/2)、m mβ´(t0+3/2)……β´(t0+k/2)的值,
m
[0321] RCU2计算过程是将〈β´(t0),β´(1/2),t0 ,m, A3,A1〉作为数据输入组通过以下方式进行计算,其中β´(t0)是某个中点的值,t0是该中点的值的变量:β´(t0),β´m(1/2)输入到RCU2的第一暂存器k1、第二暂存器k2; m输入送到RCU2的第三暂存器k3;
t0送到RCU2的第四暂存器k4;A3,A1送入F2;RCU2的计数器k9控制各个单元;在RCU2的计数控制器k9的控制下,实施计算时,RCU2的第一暂存器k1、第二暂存器k2的数据送入RCU2的第一加法器k6,RCU2的第三暂存器k3的数据m 同时送到F2与RCU2的移位器k5,m
RCU2的移位器k5计算出1/2 后送RCU2的第二加法器k7,RCU2的第四暂存器k4的数据同时送RCU2的第二加法器k7与F2;RCU2的第一加法器k6完成计算后将β´(t0),β´m
(1/2)送到RCU2的第三加法器k8,与F2送过来的数据做加法,结果同时输出到输出端O,m
也送到RCU2的第二暂存器k2,准备第二次运算;RCU2的第二加法器k7将加法结果t0+1/2送RCU2的第四暂存器k4准备第二次计算;完成一轮计算后,开始第二轮计算;重复这个过m
程,直到RCU2计数控制器指示计算终止,这样,就获得了相邻两中点值间变量为1/2 的各m m m
个点的值〈β´(t0+1/2),β´(t0+1/2+1/2),……〉,
[0322] 从而获得0—1间的所有变量的值:m m m m
[0323] 〈β´(0)、β´(1/2)、β´(2/2)……β´(k/2)……β´(t0)、β´(t0+1/2)、m m m mβ´(t0+2/2) ……β´(t0+k/2) ……β´(1- k/2)、β´(1- (k-1)/2)、β´(1- m m
(k-2)/2)……β´(1- 1/2)、β´(1)〉,
[0324] 这里,F2的计算过程是这样实现的,数据A1直接送F2的第一暂存器j3;A3送F2的六倍乘法器j1经放大后送入F2的乘法器j2;t0送F2的乘法器j2;m送F2的第二暂存器j4,F2的乘法器实施乘法运算后将结果6 A3 t0送F2的移位器j5,F2的第二暂存器j4m也将m送F2的移位器j5;F2的移位器j5将6 A3 t0右移m后结果6 A3 t0(1/2)送F2的减法器j6,同时F2的第一暂存器j3也将A1送的减法器j6,F2的减法器j6实施减法运算m
得到6 A3 t0(1/2)- A1完成计算。
[0325] 设置MA计算过程计算β´(1/2m),t0 ,m, A3,A1, MA计算过程是将CU1/2计算过程、B2TQ计算过程、各个CU2计算过程所对应的t0计算过程和m值的预先设定或者输入组合而成。
[0326] 如图16所示,采用CCU3的计算方法对计算机辅助制造(CAM)系统输入的j轴(多N轴加工系统中的j轴)的一组刀位点{Pi}i=1以及初始与终止边界条件为P0, PN+1进行插补N
计算,以便获得刀具以一定的速度沿分段连续的曲线运行并经过各个刀位点{Pi}i=1以及初始与终止边界条件为P0, PN+1的插补点,
[0327] CCU3的计算方法是三个CU3B或者是CU3B-RCU3组合,负责计算BZ0(t),BZ1(t),(j)[BZ(t)] ;
[0328] 两个CCU3乘法器1、2,分别对输入数据BZ0(t)、BZ1(t)乘以Xji、Xji+1;
[0329] 一个CCU3加法器3将分别乘以Xij、Xi+1j的BZ0(t)、BZ1(t)相加,一个CCU3减法(j)器4将CCU3加法器3的输出结果与[BZ(t)] 相加
[0330] 这里,Xij是j轴的第i个刀位点,Xi+1j是j轴的第i+1个刀位点
[0331] BZ0(t)=(1-t)3+3t(1-t)2+3μt2(1-t)+t3
[0332] BZ1(t)=(1-t)3+3ηt(1-t)2+3t2(1-t)+t3
[0333] [BZ(t)](j)=3ηXi-1j t(1-t)2+3μXi+1j t(1-t)2+Xij(1-t)3+Xi+1jt3[0334] 这里 为速度控制参数。
[0335] 如图17所示,采用CCU2的计算方法对计算机辅助制造(CAM)系统输入的j轴(多N轴加工系统中的j轴)一组刀位点{Pi}i=1以及初始与终止边界条件为P0, PN+1进行插补计N
算,以便获得刀具以一定的速度沿分段连续的曲线运行并经过各个刀位点{Pi}i=1以及初始与终止边界条件为P0, PN+1的插补点的速度,
[0336] CCU2的计算方法是三个CU2B或者是CU2B-RCU2组合,负责计算BZ0(/ t),BZ1(/ t),/ (j)[BZ(t)] ;
[0337] 两个CCU2乘法器,分别对输入数据BZ0/(t)、BZ1/(t)乘以Xij、Xi+1j;
[0338] 一个CCU2加法器将分别乘以 、 的BZ0/(t)、BZ1/(t)相加,一个CCU2减法/ (j)器将CCU2加法器3的输出结构与[BZ(t)] 相加
j j
[0339] 这里,Xi 是j轴的第i个刀位点,Xi+1 是j轴的第i+1个刀位点。