CN102073474B - Cnc插补的一种并行流水计算方法 - Google Patents
Cnc插补的一种并行流水计算方法 Download PDFInfo
- Publication number
- CN102073474B CN102073474B CN201010593543.0A CN201010593543A CN102073474B CN 102073474 B CN102073474 B CN 102073474B CN 201010593543 A CN201010593543 A CN 201010593543A CN 102073474 B CN102073474 B CN 102073474B
- Authority
- CN
- China
- Prior art keywords
- subtracter
- result
- totalizer
- send
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Complex Calculations (AREA)
Abstract
CNC插补的一种并行流水计算方法,其特征在于包括基于单元CU3计算过程的CU3B并行/流水计算过程,单元CU3计算过程是:将伯恩斯坦多项式7:中的数据组〈β0,β1,β2,β3〉作为输入数据组Ⅰ通过单元CU3计算过程计算出两组输出数据组Ⅱ〈β0 l、β1 l、β2 l、β3 l〉和〈β0 r、β1 r、β2 r、β3 r〉以及中点值β(0.5),然后,基于上层一个单元CU3计算过程获得的两组数据组〈β0 l、β1 l、β2 l、β3 l〉和〈β0 r、β1 r、β2 r、β3 r〉,将该两组数据组〈β0 l、β1 l、β2 l、β3 l〉和〈β0 r、β1 r、β2 r、β3 r〉分别作为输入数据组Ⅰ通过相应的下层单元CU3计算过程进行计算,分别获得相应的两组输出数据组Ⅱ及一个中点值,这样经过n层计算后,就获得了2n-1个变量差为1/2n的中点值。本发明与已有技术相比,具有可高速计算并能产生高精度结果的、适合于以及芯片级并行流水可重构计算的、能满足不断发展的工业需求的优点。
Description
技术领域
本发明涉及一种CNC运行数据的计算方法。
背景技术
数控加工是当代机械制造的基础工艺之一。数控加工需要借助于数控机床。数控系统是数控机床的核心部件之一。目前,CNC数控是现代数控系统的不二形式。高速高精的数控系统是提高加工效率和质量的根本保障。以现场可编程门阵列FPGA 为代表的新型可重构技术不仅改变传统CNC插补计算的过程而且改变了其计算模式。但是,不管是那种方式,都是依照次序一个点接着一个点地计算的,这样的计算其计算速度只能依赖计算机自身的运算速度,显然,技术条件及成本的限制,计算机的计算速度是有限的,从而制约着数控加工的高速高精度的提高。
发明内容
本发明的目标旨在给出一种可高速计算并能产生高精度结果的、适合于以及芯片级并行流水可重构计算的CNC插补的一种并行流水计算方法,以满足不断发展的工业需求。
本发明的CNC插补的一种并行流水计算方法是这样实现的,包括基于单元CU3计算过程的CU3B并行/流水计算过程,
单元CU3计算过程是:
将伯恩斯坦多项式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〉作为第一输入数据组通过以下方式进行运算,将β 0分别送入输出口β 0 l以及CU3的第一加法器,将β 1分别送入CU3的第一加法器、第二加法器,将β 2分别送入CU3的第二加法器、第三加法器,将β 3分别送入输出口β 0 r以及CU3的第三加法器;CU3的第一加法器接收到β 0、β 1后实施加法运算后将结果β 0+β 1分别送至CU3的第一移位器、第四加法器;同样地,CU3的第二加法器将其计算结果β 1+β 2分别送至CU3的第四加法器、第五加法器,CU3的第三加法器将其计算结果β 2+β 3分别送至CU3的第五加法器、第二移位器; CU3的第一移位器、第二位移器分别将β 0+β 1、β 2+β 3右移1位后的结果(β 0+β 1)/2、(β 2+β 3)/2输出到对应输出口β 1 l、β 1 r;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)/4、(β 1+2β 2+β 3)/4至输出口β 2 l、β 2 r;最后,CU3的第六加法器接收数据β 0+2β 1+β 2、β 1+2β 2+β 3实施加法得到β 0+3β 1+3β 2+β 3后送至CU3的第五移位器,经CU3的第五移位器右移3位后得到(β 0+3β 1+3β 2+β 3)/8分别输出至β 3 l、β 3 r以及中点值β(0.5),这样就获得了两组第二输出数据组(β 0 l、β 1 l、β 2 l、β 3 l〉和〈β 0 r、β 1 r、β 2 r、β 3 r〉以及中点值β(0.5),其中β 3 l、β 3 r、β(0.5)是相等的;
基于单元CU3计算过程的CU3B并行/流水计算过程是:
基于上层一个单元CU3计算过程获得的两组第二输出数据组〈β 0 l、β 1 l、β 2 l、β 3 l〉和〈β 0 r、β 1 r、β 2 r、β 3 r〉,将该两组第二输出数据组〈β 0 l、β 1 l、β 2 l、β 3 l〉和〈β 0 r、β 1 r、β 2 r、β 3 r〉分别作为第一输入数据组通过相应的两个下层单元CU3计算过程进行计算,两下层单元CU3计算过程计算后各获得相应的两组第二输出数据组及一个中点值,这样经过n层计算后,就获得了2n-1个变量差为1/2n的中点值:
第一层:β(1/2)
第二层:β(1/22)、β(3/22)
第三层:β(1/23)、β(3/23)、β(5/23)、β(7/23)
…………
第n层:β(1/2n)、β(3/2n)、…、β((2j+1)/2n)、…、β((2 n -1)/2n)
然后,将上述中点值连同β(0)、β(1)依变量值t由小到大的顺序储存,作为控制数控机床运行的运行控制数据。
这里,基于单元CU2计算过程的CU2B并行/流水计算过程所获得的各个中点值及β(0)、β(1)的速度采用基于单元CU2计算过程的CU2B并行/流水计算过程计算的,
单元CU2计算过程是:
将伯恩斯坦多项式7:β(f)=β 0 (1-f)3+3β 1 f(1-f)2+3β 2 f2(1-f)+β 3 f3,0≤f≤1的导数—伯恩斯坦多项式8:β ′ (f)=3(β 1 -β 0 )(1-f)2 +6(β 2 –β 1 )f(1-f)+3(β 3 –β 2 )f2,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)
T32计算方法通过以下方式进行运算:
采用三个T32的第一减法器、第二减法器、第三减法器分别实施β 1-β 0、β 2-β 1、β 3-β 2,采用三个T32的第一三倍乘法器、的第二三倍乘法器、的第三三倍乘法器分别对上述输入的计算结果乘3后输出,获得输入数据组Ⅰ′:〈B0, B 1, B 2〉,
将B0分别送入输出口B0 l以及CU2的第一加法器,将B1分别送入CU2的第一加法器、第二加法器,将B2分别送入CU2的第二加法器、输出口B0 r,CU2的第一加法器接收到B0、B1后实施加法运算后将结果B0+B1分别送至CU2的第一移位器、CU2的第三加法器;同样地,CU2的第二加法器将其计算结果B2+B1分别送至CU2的第三加法器、CU2的第三移位器,CU2的第一移位器、第三移位器分别将B0+B1、B2+B1右移1位后的结果(B0+B1)/2、(B2+B1)/2输出到对应输出口B1 l、B1 r,CU2的第三加法器实施了加法得到B0+2B1+B2后送至CU2的第二移位器,CU2的第二移位器将B0+2B1+B2右移2位将结果分别输出至B2 l、B2 r以及中点值β /(0.5),这样就获得两组输出数据组Ⅱ′:〈B0 l、B1 l、B2 l〉和〈B0 r、B1 r、B2 r〉,其中B2 l、B2 r以及β /(0.5)是相等的,
基于单元CU2计算过程的CU2B并行/流水计算过程是:
基于上层一个单元CU2计算过程获得的两组输出数据组Ⅱ′〈B0 l、B1 l、B2 l〉和〈B0 r、B1 r、B2 r〉,将该两组数据组〈B0 l、B1 l、B2 l〉和〈B0 r、B1 r、B2 r〉分别作为输入数据组Ⅰ′通过相应的两下层单元CU2计算过程进行计算,两下层单元CU2计算过程各获得相应的两组输出数据组Ⅱ′及一个中点值,这样经过n层计算后,就获得了2n-1个变量差为1/2n的中点值:
第一层:β /(1/2)
第二层:β /(1/22)、β /(3/22)
第三层:β /(1/23)、β /(3/23)、β /(5/23)、β /(7/27)
…………
第n层:β′(1/2n)、β′(3/2n)、…、β′((2j+1)/2n)、β′((2 n -1)/2n)
然后,将上述中点值连同β′(0)、β′(1)依变量值t由小到大的顺序储存,作为控制数控机床运行速度的运行控制数据。
本发明所依据的理论如下:
一、
本发明的理论基础在于经典数学理论中多项式的两个性质。
性质1. 任意关于t的多项式
(1)
恒能表示成(伯恩斯坦多项式)
(2)
这里。
性质2. 若为
(3)
那么有
(4)
这里 满足
(5)
上述性质2称为伯恩斯坦多项式的剖分性质。
鉴于本发明主要关注三次多项式的计算,以下主要考虑三次多项式及其对参数t的一阶导数。
三次多项式
(6)
经系数变换
或者
即为如下(7)的形式
(7)
其对参数t的一阶导数
(8)
显然,是二次伯恩斯坦多项式。
形如(7)(8)的多项式具有对称性,即
(8)式中的3(β 1-β 0)、3(β 2-β 1)、3(β 3-β 2)采用T32计算方法计算分别获得B0、B1、B2。
二、计算
的方法
对的计算是CNC插补中点位计算的基础。本发明主要结合一种中分计算方法,给出高速高精计算的方法。
在(4)中取时得到
(8)
这里
(9)
注意到,如果令、那么有
从而
如果记
那么上的点集可以通过对、的计算得到,即
(10)
由于、也是形如(7)的多项式,因此上述计算过程可以递归下去,即通过按照(9)计算出、以及;再将同样的计算过程应用于、,依此下去直到达到所需要的精度为止。这样的计算将产生如下结果:
第一次:
第二次:、
第三次:、、、
…………
第n次:、、…、、…、
上述从第一到第n次的计算,其第k次都可用一棵深度为n的满二叉树T的第k层来描述,因而整个计算可用T自根结点到全部叶子结点的层次结构来描述。如图1所示的中分计算满二叉树模型。
图1 中分计算的满二叉树模型
经过n层计算后总共得到个点,按照从上到下自左至右的顺序排列如下
,,,…,,…, ,…, (11)
其通项为
(12)
这里,c是i的二进制表示所占的位数。例如,时,时,时。一般地,当时。
数列(11)是从的中点开始向两边排列的。虽然从理论上在时能够得到的全部点,但是并不能按次序对应于从起点到终点的各个点。只有得到了对应于从起点到终点的各个点,才能连续绘制(插补)出的曲线。根据二叉树结构的原理,这需要得到T的中序排列,即如下数列
,,,…, ,, ,…, ,, (13)
其通项是:
(14)
本发明的要点之一是将所述中分计算的数据存储(输出)成中序数列(14)的方法。具体实现见后文描述。
三、计算
的方法
对的计算是CNC插补中速度计算的基础。由于也伯恩斯坦多项式,也具有性质2所描述的剖分,本发明采用与计算点位相同的中分方法计算。鉴于其过程相同,这里不赘述。
四、中分数据的有序化方法
前已述及,采用中分计算得到的数据序列不能按次序对应于从起点到终点的点位/速度序列,不能用于插补(绘制)点位/速度曲线。只有将中分计算的数据存储(输出)成满二叉树的中序序列才能称为插补所需要的数据序列。采用下述方法,可将本发明计算的数据按照从起点到终点的顺序存储(输出),实现中分数据的有序化。
首先需要一个线性存储结构M以存储所计算的数据。假如需要在(或者)计算出个点,那么M应该包含个存储单元。
将M的存储单元依次编号为1,2,…, ;那么在实施中分计算时按照如下方式存储:
将(第一层计算的)存储在M的第个单元里;
将(第二层计算的)分别存储在M的第与两个单元里;
…………
将(第k层计算的)存储在M的第个单元里。
那么,整个计算完毕后,M里就存储了从起点到终点的依次排列的个点。
五、计算的精度特征
由(14)式不难看出,经n层计算后,中序数列(13)里两相邻点之差为
注意到是区间上的连续多项式函数,因此存在使得
此亦
(15)
另一方面,根据本发明计算的特征(参考图1),对应于二叉树第层的点,除与两个点以外,其余必在第层相邻两点、 之间,且根据满二叉树的父子关系知是与的共同父亲,如图2所示意。
图2 相邻层与相邻点位的关系示意图
考虑到
结合(15)知,本发明计算的精度级别为
(16)
这里, m所计算的层数。
上式(16)也是由计算精度控制计算规模的依据。如果要求计算的精度为,那么计算的层数 宜为
(16)
对于,则。例如,当时得到 , 当得到而当时。
需要指出的是,这里的数量都是无量纲数。如果以毫米为单位那么毫米就到了亚纳米级了。
六、计算的速度特征
本发明所给计算方法的速度特征表现在以下几个方面:
1. 根据前述的计算原理可知,本发明的计算在本质上源于经典De Castejlau算法,但是在效率上有改进。例如,对于三次多项式,按照本发明的计算为
理论上共需要7次加法,1次移位(右移3位)运算;而经典De Castejlau算法需要6次加法,6次乘法,如图3所示。 由于移位与加法运算都是计算机最快的运算,因此本发明的计算具有更高的效率。
2. 本发明的计算过程可以设计制作出专门的硬件计算单元CU(Calculation Unit)来实现。由于硬件具有高速运算的特征,因此本发明的计算效率在CU支持下可极大提高。字长为k的计算机(或处理器)能够在最多30纳秒的时间周期内计算出个点。
3. 本发明的计算可经CU实现并行流水计算(见后文的设计),其效率更高。
图3 De Castejlau的中分计算模型
七、
、
的特殊计算方法
令,将多项式、表示成(6)的形式得,
于是时,
(17)
(18)
可通过移位与加法组合得到与 。
由于上述的计算方法是可以用硬件来实现的,而硬件的运行速度是很快的,是瞬间完成计算,这样,就能够实现快速计算数控机床上的切削工件的刀具的运动轨迹的运行控制数据,而且精确度高。
这里,在满足足够运算速度的情况下,尽可能地减少单元CU3计算过程,以便使CU3计算过程所需要的硬件数量合理,
将每相邻的两个基于单元CU3计算过程的CU3B并行/流水计算过程所获得的值的变量t0、t1的差t1- t0=1/2n分成k个1/2m,然后分别通过RCU3的计算方法对β(t0+1/2m)、β(t0+2/2m)、β(t0+3/2m)……β(t0+k/2m)进行串行计算,
RCU3的计算方法是这样的:
首先:
先将三次伯恩斯坦多项式7:
β(f)=β 0 (1-f)3+3β 1 f(1-f)2+3β 2 f2(1-f)+β 3 f3,0≤f≤1
通过B3TC的计算过程转换成三次多项式6:
α(f)=α 3 f3+α 2 f2+α 1 f1+α 0,0≤f≤1
B3TC的计算过程是:
将三次伯恩斯坦多项式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中的〈,,,〉,
通过CU 1/2 计算 β(1/2m)的计算过程,其中1/2m是相邻两个变量t0、t1的差值,
CU 1/2 计算过程是将〈β 0, β 1, β 2, β 3,σ〉作为数据输入组通过以下方式进行计算:输入数据β 3被送入CU 1/2 的第一减法器,β 2被分别送入CU 1/2 的第一减法器、第二减法器,β 1被分别送入CU 1/2 的第二减法器、第三减法器,β 0被分别送入CU 1/2 的第三减法器与CU 1/2 的第二加法器,CU 1/2 的第一减法器、第二减法器、第三减法器分别计算β 3-β 2、β 2-β 1、β 1-β 0,其中CU 1/2 的第一减法器的结果β 3-β 2送到CU 1/2 的第四减法器,CU 1/2 的第二减法器的结果β 2-β 1分转到CU 1/2 的第四减法器与第五减法器、CU 1/2 的第三减法器的结果β 1-β 0分转到CU 1/2 的第五减法器以及CU 1/2 的第二三倍乘法器,CU 1/2 的第四减法器的结果β 3-2β 2+β 1送到CU 1/2 的第六减法器,CU 1/2 的第五减法器的结果β 2-2β 1+β 0分别送到CU 1/2 的第六减法器与CU 1/2 的第一三倍乘法器,两个CU 1/2 的第一三倍乘法器、第二三倍乘法器将输入数据β 2-2β 1+β 0、β 1-β 0分别放大3倍后分别对应送到CU 1/2 的第二可变移位器、第三可变位移器,CU 1/2 的第六减法器计算出β 3-3β 2+3β 1-β 0后将结果送到CU 1/2 的第一可变移位器,CU 1/2 的第一可变移位器将输入数据右移位得到(β 3-3β 2+3β 1-β 0)/23σ后将结果送入CU 1/2 的第一加法器,CU 1/2 的第二可变移位器将输入数据右移得到结果3(β 2-2β 1+β 0)/22σ后也送入CU 1/2 的第一加法器,CU 1/2 的第三可变移位器将输入数据右移得到结果3(β 1-β 0)/2σ后也送入CU 1/2 的第二加法器,CU 1/2 的第一加法器计算出(β 3-3β 2+3β 1-β 0)/23σ+3(β 2-2β 1+β 0)/22σ后结果送CU 1/2 的第三加法器,CU 1/2 的第二加法器计算出3(β 1-β 0)/2σ+β 0后结果也送CU 1/2 的第三加法器,最后由第三加法器计算出β(1/2m),
其次:
通过RCU3计算相邻两中点值间变量为1/2m的各个点β(t0+1/2m)、β(t0+2/2m)、β(t0+3/2m)……β(t0+k/2m)的值,
RCU3计算过程是将〈β(t 0),β(1/2m),t 0 m, a 3,a 2,a 0〉作为数据输入组通过以下方式进行计算,其中β(t0)是某个中点的值,t0是该中点的值的变量:β(t 0),β(1/2m)输入到RCU3第一暂存器、第二暂存器; m输入送到RCU3第三暂存器;t 0送到RCU3的第四暂存器;a 3,a 2,a 0送入F3;RCU3的计数器控制各个单元;在RCU3的计数控制器的控制下,实施计算时,RCU3的第一暂存器、第二暂存器的数据送入RCU3的第一加法器,RCU3的第三暂存器的数据m同时送到F3与RCU3的移位器,RCU3的移位器计算出1/2m后送RCU3的第二加法器,RCU3的第四暂存器的数据同时送RCU3的第二加法器与F3;RCU3的第一加法器完成计算后将β(t 0)+β(1/2m)送到RCU3的第三加法器,与F3送过来的数据做加法,结果同时输出到输出端O,也送到RCU3的第二暂存器,准备第二次运算;RCU3的第二加法器将加法结果t 0+1/2m送RCU3的第四暂存器准备第二次计算;完成一轮计算后,开始第二轮计算;重复这个过程,直到计数控制器指示计算终止,这样,就获得了相邻两中点值间变量为1/2m的各个点的值〈β(t0+1/2m),β(t0+1/2m+1/2m),……〉,
从而获得0—1间的所有变量的值:
〈β(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)〉
这里,F3的计算过程是这样实现的,数据a 0,t 0,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的第三乘法器将结果3a3t0 2送F3的第三移位器,经右移m位后送F3的第二加法器;F3的第二加法器完成加法后得到2a2t0(1/2m)+3a3t0(1/2m)2+3a3t0 2(1/2m),将结果送F3的减法器;F3的减法器从F3的第一暂存器里面获取a0与F3的第二加法器送来的数据作减法最终得到2a2t0(1/2m)+3a3t0(1/2m)2+3a3t0 2(1/2m)- a0的计算结果。
在满足足够运算速度的情况下,尽可能地减少单元CU2计算过程,以便使CU2计算过程所需要的硬件数量合理,
将每相邻的两个基于单元CU2计算过程的CU2B并行/流水计算过程所获得的值的变量t0、t1的差t1- t0=1/2n分成k个1/2m,然后分别通过RCU2的计算方法对β′(t0+1/2m)、β′(t0+2/2m)、β′(t0+3/2m)……β′(t0+k/2m)进行串行计算,
RCU2的计算方法是这样的:
首先:
通过B2TQ的计算方式是将形如
B 0(1-t)2+2B 1t(1-t)+B 2t2
的二次伯恩斯坦多项式系数转换为形如
A 2t2+A 1t+A 0
多项式的系数。
B2TQ的计算过程是:
输入后被分转到输出口与B2TQ的第一减法器,输入后分转到B2TQ的第一减法器与第二减法器,直接输入到B2TQ的第二减法器,B2TQ的第一减法器计算出后将结果分转到B2TQ的二倍乘法器和B2TQ的第三减法器;B2TQ的第二减法器的结果直接送入B2TQ的第三减法器,B2TQ的二倍乘法器将乘以2后输出到,B2TQ的第三减法器计算出后输出到,
通过CU 1/2 计算 β′(1/2 σ )的计算过程,其中1/2m是相邻两个变量t0、t1的差值,
CU 1/2 计算过程是将〈B 0, B 1, B 2,σ〉作为数据输入组通过以下方式进行计算:输入数据B 3被送入CU 1/2 的第一减法器, B 2被分别送入CU 1/2 的第一减法器、第二减法器, B 1被分别送入CU 1/2 的第二减法器、第三减法器,B 0被分别送入CU 1/2 的第三减法器,CU 1/2 的第一减法器、第二减法器、第三减法器分别计算B 3- B 2、 B 2- B 1、 B 1- B 0,其中CU 1/2 的第一减法器的结果B 3- B 2送到CU 1/2 的第四减法器、CU 1/2 的第二减法器的结果B 2- B 1分转到CU 1/2 的第四减法器与第五减法器、CU 1/2 的第三减法器的结果B 1- B 0分转到CU 1/2 的第五减法器以及第二加法器,CU 1/2 的第四减法器的结果B 3-2 B 2+B 1送到CU 1/2 的第六减法器,CU 1/2 的第五减法器的结果B 2-2 B 1+B 0分别送到CU 1/2 的第六减法器与CU 1/2 的二倍乘法器,CU 1/2 的二倍乘法器将输入数据B 2-2 B 1+B 0放大2倍后送到CU 1/2 的第二移位器,CU 1/2 的第六减法器计算出B 3-3 B 2+3B 1- B 0后将结果送到CU 1/2 的第一移位器,CU 1/2 的第一移位器将输入数据右移3σ位得到(B 3-3 B 2+3B 1- B 0)/23σ 后将结果送入CU 1/2 的第一加法器,CU 1/2 的第二移位器将输入数据右移得到结果2(B 2-2 B 1+B 0)/22σ 后也送入CU 1/2 的第一加法器,第一加法器计算出(B 3-3 B 2+3B 1- B 0)/23σ +2(B 2-2 B 1+B 0)/22σ 后结果送CU 1/2 的第二加法器,第二加法器计算出结果后送CU 1/2 的三倍乘法器,最后由CU 1/2 的三倍乘法器计算出β′(1/2 σ ),
其次:
通过RCU2计算相邻两中点值间变量为1/2m的各个点β′(t0+1/2m)、β′(t0+2/2m)、β′(t0+3/2m)……β′(t0+k/2m)的值,
RCU2计算过程是将〈β′(t0),β′(1/2m),t 0 ,m, A 3 ,A 1 〉作为数据输入组通过以下方式进行计算,其中β′(t0)是某个中点的值,t0是该中点的值的变量:β′(t0),β′(1/2m)输入到RCU2的第一暂存器、第二暂存器; m输入送到RCU2的第三暂存器;t 0送到RCU2的第四暂存器;A 3 ,A 1 送入F2;RCU2的计数器控制各个单元;在RCU2的计数控制器的控制下,实施计算时,RCU2的第一暂存器、第二暂存器的数据送入RCU2的第一加法器,RCU2的第三暂存器的数据m同时送到F2与RCU2的移位器,RCU2的移位器计算出1/2m后送RCU2的第二加法器,RCU2的第四暂存器的数据同时送RCU2的第二加法器与F2;RCU2的第一加法器完成计算后将β′(t0),β′(1/2m)送到RCU2的第三加法器,与F2送过来的数据做加法,结果同时输出到输出端O,也送到RCU2的第二暂存器,准备第二次运算;RCU2的第二加法器将加法结果t 0+1/2m送RCU2的第四暂存器准备第二次计算;完成一轮计算后,开始第二轮计算;重复这个过程,直到RCU2计数控制器指示计算终止,这样,就获得了相邻两中点值间变量为1/2m的各个点的值〈β′(t0+1/2m),β′(t0+1/2m+1/2m),……〉,
从而获得0—1间的所有变量的值:
〈β′(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)〉,
这里,F2的计算过程是这样实现的,数据A 1直接送F2的第一暂存器;A 3送F2的六倍乘法器经放大后送入F2的乘法器;t 0送F2的乘法器;m送F2的第二暂存器,F2的乘法器实施乘法运算后将结果6 A 3 t 0送F2的移位器,F2的第二暂存器也将m送F2的移位器;F2的移位器将6 A 3 t 0右移m后结果6 A 3 t 0(1/2m)送F2的减法器,同时F2的第一暂存器也将A 1送的减法器,F2的减法器实施减法运算得到6 A 3 t 0(1/2m)- A 1完成计算。
上述计算方法所依据的理论如下:
一、
考虑到
可知只要已知、以及δ,就能计算出、。特别地如果,则有
(21)
(22)
这里
二、CU
1/2
、CU
1/2
所依据的理论是:
令,将多项式、表示成(6)的形式得,
于是时,
(17)
(18)
可通过移位与加法组合得到与 。
三、
由(21)(22)知,在已知、,借助于CU1/2、CU1/2计算出、。并且该计算过程是一个递推的过程。以计算为例,由计算出后,再经后,又能由、计算出。如此下去,计算出一个序列。这个计算过程可设计出相应的计算单元RCU(Recursive Calculation Unit)。同理,也可以由类似的计算单元实现。本发明设计RCU3用于计算,RCU2用于计算。
为了减少计算所需要的硬件的数量,设置MA计算过程计算并向各个RCU3计算过程输出, ,t 0 ,m, a 3,a 2,a 0, MA计算过程是将CU 1/2 计算过程、B3TC计算过程、各个CU3计算过程所对应的t0计算过程和m的值的预先设定或者输入组合而成。
若单采用基于单元CU3计算过程的CU3B并行/流水计算过程则需要2w-1个单元CU3计算过程,那么,基于CU3B- RCU3并行流水计算过程达到同样计算精度时所需要的硬件数量为2w/k-1个单元CU3+2w/k个RCU3+1个MA,显然,基于CU3B- RCU3并行流水计算过程所需要的硬件数量远比基于单元CU3计算过程的CU3B并行/流水计算过程所需要的硬件数量少接近K-1倍。
为了减少计算所需要的硬件的数量,设置MA计算过程计算β′(1/2m),t 0 ,m, A 3 ,A 1 , MA计算过程是将CU 1/2 计算过程、B2TQ计算过程、各个CU2计算过程所对应的t0计算过程和m值的预先设定或者输入组合而成。
这里,采用CCU3的计算方法对计算机辅助制造(CAM)系统输入的j轴(多轴加工系统中的j轴)的一组刀位点以及初始与终止边界条件为,进行插补计算,以便获得刀具以一定的速度沿分段连续的曲线运行并经过各个刀位点以及初始与终止边界条件为,的插补点,
CCU3的计算方法是三个CU3B或者是CU3B-RCU3组合,负责计算BZ0(t),BZ1(t),[BZ(t)](j);
两个CCU3乘法器1、2,分别对输入数据BZ0(t)、BZ1(t)乘以、;
一个CCU3加法器3将分别乘以Xi j、Xi+1 j的BZ0(t)、BZ1(t)相加,一个CCU3减法器4将CCU3加法器3的输出结果与[BZ(t)](j)相加
这里,Xi j是j轴的第i个刀位点,Xi+1 j是j轴的第i+1个刀位点
BZ0(t)=(1-t)3+3t(1-t)2+3μt2(1-t)+t3
BZ1(t)=(1-t)3+3ηt(1-t)2+3t2(1-t)+t3
[BZ(t)](j)=3ηXi-1 j t(1-t)2+3μXi+1 j t(1-t)2+Xi j(1-t)3+Xi+1 jt3
这里为速度控制参数。
这里,采用CCU2的计算方法对计算机辅助制造(CAM)系统输入的j轴(多轴加工系统中的j轴)一组刀位点以及初始与终止边界条件为,进行插补计算,以便获得刀具以一定的速度沿分段连续的曲线运行并经过各个刀位点以及初始与终止边界条件为,的插补点的速度,
CCU2的计算方法是三个CU2B或者是CU2B-RCU2组合,负责计算BZ0 /(t),BZ1 /(t),[BZ/(t)](j);
两个CCU2乘法器1、2,分别对输入数据BZ0 /(t)、BZ1 /(t)乘以、;
一个CCU2加法器3将分别乘以、的BZ0 /(t)、BZ1 /(t)相加,一个CCU2减法器4将CCU2加法器3的输出结构与[BZ/(t)](j)相加
这里,是j轴的第i个刀位点,是j轴的第i+1个刀位点。
上述计算方法所依据的理论是:
一、
CNC插补是根据计算机辅助制造(CAM)系统输入的一组刀位点以及初始与终止边界条件为,,计算出一条刀具运动的轨迹线使得加工的刀具以一定的速度通过每个刀位点。本发明通过设计如下通过、的参数曲线段实现插补计算。
(23)
这里为速度控制参数。
不难验证,在与时,有
(24)
(25)
从而分段连续的曲线
(26)
是光滑的且通过全部点。
将曲线(23)进行整理得
如果记
(27)
(28)
(29)
那么 可以写成
(30)
对于多坐标加工系统,设
那么
这里表示的第j个坐标(分量)。
于是
二、单坐标插补器CCU3与CCU2的设计
由于都是形如(7)的多项式,因此可以借助于CU3B、或者CU3-RCU3-CU1/2组合来计算。
本发明与已有技术相比,具有可高速计算并能产生高精度结果的、适合于以及芯片级并行流水可重构计算的、能满足不断发展的工业需求的优点。
附图说明:
图1为本发明CU3的结构示意图;
图2为本发明CU3B的结构示意图;
图3为本发明T32的结构示意图;
图4为本发明CU2的结构示意图;
图5为本发明CU2B的结构示意图;
图6为本发明B3TC的结构示意图;
图7为本发明CU 1/2 的结构示意图;
图8为本发明RCU3的结构示意图;
图9为本发明F3的结构示意图;
图10为本发明CU3B-RCU3的结构示意图;
图11为本发明B2TQ的结构示意图;
图12为本发明CU 1/2 的结构示意图;
图13为本发明F2的结构示意图;
图14为本发明RCU2的结构示意图;
图15为本发明CU2B-RCU2的结构示意图;
图16为本发明CCU3的结构示意图;
图17为本发明CCU2的结构示意图。
具体实施方式:
现结合附图和实施例对本发明作进一步详细描述:
如图1、2所示,包括基于单元CU3计算过程的CU3B并行/流水计算过程,
单元CU3计算过程是:
将伯恩斯坦多项式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〉作为第一输入数据组通过以下方式进行运算,将β 0分别送入输出口β 0 l以及CU3的第一加法器a10,将β 1分别送入CU3的第一加法器a10、第二加法器a11,将β 2分别送入CU3的第二加法器a11、第三加法器a12,将β 3分别送入输出口β 0 r以及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位后的结果(β 0+β 1)/2、(β 2+β 3)/2输出到对应输出口β 1 l、β 1 r;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位后输出(β 0+2β 1+β 2)/4、(β 1+2β 2+β 3)/4至输出口β 2 l、β 2 r;最后,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分别输出至β 3 l、β 3 r以及中点值β(0.5),这样就获得了两组第二输出数据组(β 0 l、β 1 l、β 2 l、β 3 l〉和〈β 0 r、β 1 r、β 2 r、β 3 r〉以及中点值β(0.5),其中β 3 l、β 3 r、β(0.5)是相等的;
基于单元CU3计算过程的CU3B并行/流水计算过程是:
基于上层一个单元CU3计算过程获得的两组第二输出数据组〈β 0 l、β 1 l、β 2 l、β 3 l〉和〈β 0 r、β 1 r、β 2 r、β 3 r〉,将该两组第二输出数据组〈β 0 l、β 1 l、β 2 l、β 3 l〉和〈β 0 r、β 1 r、β 2 r、β 3 r〉分别作为第一输入数据组通过相应的两个下层单元CU3计算过程进行计算,两下层单元CU3计算过程计算后各获得相应的两组第二输出数据组及一个中点值,这样经过n层计算后,就获得了2n-1个变量差为1/2n的中点值:
第一层:β(1/2)
第二层:β(1/22)、β(3/22)
第三层:β(1/23)、β(3/23)、β(5/23)、β(7/23)
…………
第n层:β(1/2n)、β(3/2n)、…、β((2j+1)/2n)、…、β((2 n -1)/2n)
然后,将上述中点值连同β(0)、β(1)依变量值t由小到大的顺序储存,作为控制数控机床运行的运行控制数据。
这里层与层之间通过时序控制,数据的每个CU3的输出数据按照前述“第k层第j个输出存储在线性存储结构的第”的方法进行存储。如果系统的时序周期为θ的话,那么完成全部计算的时间为
例如,若系统的时序周期为3纳秒,则计算1024个数据所需要的时间为27纳秒。
如图3、4、5所示,基于单元CU2计算过程的CU2B并行/流水计算过程所获得的各个中点值及β(0)、β(1)的速度采用基于单元CU2计算过程的CU2B并行/流水计算过程计算的,
单元CU2计算过程是:
将伯恩斯坦多项式7:β(f)=β 0 (1-f)3+3β 1 f(1-f)2+3β 2 f2(1-f)+β 3 f3,0≤f≤1的导数—伯恩斯坦多项式8:β ′ (f)=3(β 1 -β 0 )(1-f)2 +6(β 2 –β 1 )f(1-f)+3(β 3 –β 2 )f2,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)
T32计算方法通过以下方式进行运算:
采用三个T32的第一减法器b1、第二减法器b2、第三减法器b3分别实施β 1-β 0、β 2-β 1、β 3-β 2,采用三个T32的第一三倍乘法器b4、的第二三倍乘法器b5、的第三三倍乘法器b6分别对上述输入的计算结果乘3后输出,获得输入数据组Ⅰ′:〈B0, B 1, B 2〉,
将B0分别送入输出口B0 l以及CU2的第一加法器c4,将B1分别送入CU2的第一加法器c4、第二加法器c5,将B2分别送入CU2的第二加法器c5、输出口B0 r,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右移1位后的结果(B0+B1)/2、(B2+B1)/2输出到对应输出口B1 l、B1 r,CU2的第三加法器c8实施了加法得到B0+2B1+B2后送至CU2的第二移位器c10,CU2的第二移位器c10将B0+2B1+B2右移2位将结果分别输出至B2 l、B2 r以及中点值β /(0.5),这样就获得两组输出数据组Ⅱ′:〈B0 l、B1 l、B2 l〉和〈B0 r、B1 r、B2 r〉,其中B2 l、B2 r以及β /(0.5)是相等的,
基于单元CU2计算过程的CU2B并行/流水计算过程是:
基于上层一个单元CU2计算过程获得的两组输出数据组Ⅱ′〈B0 l、B1 l、B2 l〉和〈B0 r、B1 r、B2 r〉,将该两组数据组〈B0 l、B1 l、B2 l〉和〈B0 r、B1 r、B2 r〉分别作为输入数据组Ⅰ′通过相应的两下层单元CU2计算过程进行计算,两下层单元CU2计算过程各获得相应的两组输出数据组Ⅱ′及一个中点值,这样经过n层计算后,就获得了2n-1个变量差为1/2n的中点值:
第一层:β /(1/2)
第二层:β /(1/22)、β /(3/22)
第三层:β /(1/23)、β /(3/23)、β /(5/23)、β /(7/27)
…………
第n层:β′(1/2n)、β′(3/2n)、…、β′((2j+1)/2n)、β′((2 n -1)/2n)
然后,将上述中点值连同β′(0)、β′(1)依变量值t由小到大的顺序储存,作为控制数控机床运行速度的运行控制数据。
这里层与层之间通过时序控制,数据的每个CU2的输出数据按照前述“第k层第j个输出存储在线性存储结构的第2m-k(2j+1)”的方法进行存储。
如图6、7、8、9、10所示,将每相邻的两个基于单元CU3计算过程的CU3B并行/流水计算过程所获得的值的变量t0、t1的差t1- t0=1/2n分成k个1/2m,然后分别通过RCU3的计算方法对β(t0+1/2m)、β(t0+2/2m)、β(t0+3/2m)……β(t0+k/2m)进行串行计算,
RCU3的计算方法是这样的:
首先:
先将三次伯恩斯坦多项式7:
β(f)=β 0 (1-f)3+3β 1 f(1-f)2+3β 2 f2(1-f)+β 3 f3,0≤f≤1
通过B3TC的计算过程转换成三次多项式6:
α(f)=α 3 f3+α 2 f2+α 1 f1+α 0,0≤f≤1
B3TC的计算过程是:
将三次伯恩斯坦多项式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中的〈,,,〉,
通过CU 1/2 计算 β(1/2m)的计算过程,其中1/2m是相邻两个变量t0、t1的差值,
CU 1/2 计算过程是将〈β 0, β 1, β 2, β 3,σ〉作为数据输入组通过以下方式进行计算:输入数据β 3被送入CU 1/2 的第一减法器e4,β 2被分别送入CU 1/2 的第一减法器e4、第二减法器e5,β 1被分别送入CU 1/2 的第二减法器e5、第三减法器e6,β 0被分别送入CU 1/2 的第三减法器e6与CU 1/2 的第二加法器e20,CU 1/2 的第一减法器e4、第二减法器e5、第三减法器e6分别计算β 3-β 2、β 2-β 1、β 1-β 0,其中CU 1/2 的第一减法器e4的结果β 3-β 2送到CU 1/2 的第四减法器e9,CU 1/2 的第二减法器e5的结果β 2-β 1分转到CU 1/2 的第四减法器e9与第五减法器e10、CU 1/2 的第三减法器e6的结果β 1-β 0分转到CU 1/2 的第五减法器e10以及CU 1/2 的第二三倍乘法器e14,CU 1/2 的第四减法器e9的结果β 3-2β 2+β 1送到CU 1/2 的第六减法器e12,CU 1/2 的第五减法器e10的结果β 2-2β 1+β 0分别送到CU 1/2 的第六减法器e12与CU 1/2 的第一三倍乘法器e13,两个CU 1/2 的第一三倍乘法器e13、第二三倍乘法器e14将输入数据β 2-2β 1+β 0、β 1-β 0分别放大3倍后分别对应送到CU 1/2 的第二可变移位器e17、第三可变位移器e18,CU 1/2 的第六减法器e12计算出β 3-3β 2+3β 1-β 0后将结果送到CU 1/2 的第一可变移位器e16,CU 1/2 的第一可变移位器e16将输入数据右移位得到(β 3-3β 2+3β 1-β 0)/23σ后将结果送入CU 1/2 的第一加法器e19,CU 1/2 的第二可变移位器e17将输入数据右移得到结果3(β 2-2β 1+β 0)/22σ后也送入CU 1/2 的第一加法器e19,CU 1/2 的第三可变移位器e18将输入数据右移得到结果3(β 1-β 0)/2σ后也送入CU 1/2 的第二加法器e20,CU 1/2 的第一加法器e19计算出(β 3-3β 2+3β 1-β 0)/23σ+3(β 2-2β 1+β 0)/22σ后结果送CU 1/2 的第三加法器e21,CU 1/2 的第二加法器e20计算出3(β 1-β 0)/2σ+β 0后结果也送CU 1/2 的第三加法器e21,最后由第三加法器e21计算出β(1/2m),
其次:
通过RCU3计算相邻两中点值间变量为1/2m的各个点β(t0+1/2m)、β(t0+2/2m)、β(t0+3/2m)……β(t0+k/2m)的值,
RCU3计算过程是将〈β(t 0),β(1/2m),t 0 m, a 3,a 2,a 0〉作为数据输入组通过以下方式进行计算,其中β(t0)是某个中点的值,t0是该中点的值的变量:β(t 0),β(1/2m)输入到RCU3第一暂存器f1、第二暂存器f2; m输入送到RCU3第三暂存器f3;t 0送到RCU3的第四暂存器f4;a 3,a 2,a 0送入F3;RCU3的计数器f9控制各个单元;在RCU3的计数控制器f9的控制下,实施计算时,RCU3的第一暂存器f1、第二暂存器f2的数据送入RCU3的第一加法器f6,RCU3的第三暂存器f3的数据m同时送到F3与RCU3的移位器f5,RCU3的移位器f5计算出1/2m后送RCU3的第二加法器f7,RCU3的第四暂存器f4的数据同时送RCU3的第二加法器f7与F3;RCU3的第一加法器f6完成计算后将β(t 0)+β(1/2m)送到RCU3的第三加法器f8,与F3送过来的数据做加法,结果同时输出到输出端O,也送到RCU3的第二暂存器f2,准备第二次运算;RCU3的第二加法器f7将加法结果t 0+1/2m送RCU3的第四暂存器f4准备第二次计算;完成一轮计算后,开始第二轮计算;重复这个过程,直到计数控制器f9指示计算终止,这样,就获得了相邻两中点值间变量为1/2m的各个点的值〈β(t0+1/2m),β(t0+1/2m+1/2m),……〉,
从而获得0—1间的所有变量的值:
〈β(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)〉
这里,F3的计算过程是这样实现的,数据a 0,t 0,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执行加法计算得到结果2a2t0(1/2m)+3a3t0(1/2m)2送F3的第二加法器g14;F3的第三乘法器g11将结果3a3t0 2送F3的第三移位器g12,经右移m位后送F3的第二加法器g14;F3的第二加法器g14完成加法后得到2a2t0(1/2m)+3a3t0(1/2m)2+3a3t0 2(1/2m),将结果送F3的减法器g13;F3的减法器g13从F3的第一暂存器g6里面获取a0与F3的第二加法器g14送来的数据作减法最终得到2a2t0(1/2m)+3a3t0(1/2m)2+3a3t0 2(1/2m)- a0的计算结果。
设置MA计算过程计算并向各个RCU3计算过程输出, ,t 0 ,m, a 3,a 2,a 0, MA计算过程是将CU 1/2 计算过程、B3TC计算过程、各个CU3计算过程所对应的t0计算过程和m的值的预先设定或者输入组合而成。
如图11、12、13、14、15所示,将每相邻的两个基于单元CU2计算过程的CU2B并行/流水计算过程所获得的值的变量t0、t1的差t1- t0=1/2n分成k个1/2m,然后分别通过RCU2的计算方法对β′(t0+1/2m)、β′(t0+2/2m)、β′(t0+3/2m)……β′(t0+k/2m)进行串行计算,
RCU2的计算方法是这样的:
首先:
通过B2TQ的计算方式是将形如
的二次伯恩斯坦多项式系数转换为形如
多项式的系数。
的计算过程是:
输入后被分转到输出口与B2TQ的第一减法器h3,输入后分转到B2TQ的第一减法器h3与第二减法器h4,直接输入到B2TQ的第二减法器h4,B2TQ的第一减法器h3计算出后将结果分转到B2TQ的二倍乘法器h7和B2TQ的第三减法器h6;B2TQ的第二减法器h4的结果直接送入B2TQ的第三减法器h6,B2TQ的二倍乘法器h7将乘以2后输出到,B2TQ的第三减法器h6计算出后输出到,
通过CU 1/2 计算 β′(1/2 σ )的计算过程,其中1/2m是相邻两个变量t0、t1的差值,
CU 1/2 计算过程是将〈B 0, B 1, B 2,σ〉作为数据输入组通过以下方式进行计算:输入数据B 3被送入CU 1/2 的第一减法器i3, B 2被分别送入CU 1/2 的第一减法器i3、第二减法器i4, B 1被分别送入CU 1/2 的第二减法器i4、第三减法器i5,B 0被分别送入CU 1/2 的第三减法器i5,CU 1/2 的第一减法器、第二减法器、第三减法器分别计算B 3- B 2、 B 2- B 1、 B 1- B 0,其中CU 1/2 的第一减法器的结果B 3- B 2送到CU 1/2 的第四减法器i8、CU 1/2 的第二减法器的结果B 2- B 1分转到CU 1/2 的第四减法器i8与第五减法器i9、CU 1/2 的第三减法器i5的结果B 1- B 0分转到CU 1/2 的第五减法器i9以及第二加法器i17,CU 1/2 的第四减法器i8的结果B 3-2 B 2+B 1送到CU 1/2 的第六减法器i11,CU 1/2 的第五减法器i9的结果B 2-2 B 1+B 0分别送到CU 1/2 的第六减法器i11与CU 1/2 的二倍乘法器i12,CU 1/2 的二倍乘法器i12将输入数据B 2-2 B 1+B 0放大2倍后送到CU 1/2 的第二移位器i15,CU 1/2 的第六减法器i11计算出B 3-3 B 2+3B 1- B 0后将结果送到CU 1/2 的第一移位器i14,CU 1/2 的第一移位器i14将输入数据右移3σ位得到(B 3-3 B 2+3B 1- B 0)/23σ 后将结果送入CU 1/2 的第一加法器i16,CU 1/2 的第二移位器i15将输入数据右移得到结果2(B 2-2 B 1+B 0)/22σ 后也送入CU 1/2 的第一加法器i16,第一加法器i16计算出(B 3-3 B 2+3B 1- B 0)/23σ +2(B 2-2 B 1+B 0)/22σ 后结果送CU 1/2 的第二加法器i17,第二加法器i17计算出结果后送CU 1/2 的三倍乘法器i18,最后由CU 1/2 的三倍乘法器i18计算出β′(1/2 σ ),
其次:
通过RCU2计算相邻两中点值间变量为1/2m的各个点β′(t0+1/2m)、β′(t0+2/2m)、β′(t0+3/2m)……β′(t0+k/2m)的值,
RCU2计算过程是将〈β′(t0),β′(1/2m),t 0 ,m, A 3 ,A 1 〉作为数据输入组通过以下方式进行计算,其中β′(t0)是某个中点的值,t0是该中点的值的变量:β′(t0),β′(1/2m)输入到RCU2的第一暂存器k1、第二暂存器k2; m输入送到RCU2的第三暂存器k3;t 0送到RCU2的第四暂存器k4;A 3 ,A 1 送入F2;RCU2的计数器k9控制各个单元;在RCU2的计数控制器k9的控制下,实施计算时,RCU2的第一暂存器k1、第二暂存器k2的数据送入RCU2的第一加法器k6,RCU2的第三暂存器k3的数据m同时送到F2与RCU2的移位器k5,RCU2的移位器k5计算出1/2m后送RCU2的第二加法器k7,RCU2的第四暂存器k4的数据同时送RCU2的第二加法器k7与F2;RCU2的第一加法器k6完成计算后将β′(t0),β′(1/2m)送到RCU2的第三加法器k8,与F2送过来的数据做加法,结果同时输出到输出端O,也送到RCU2的第二暂存器k2,准备第二次运算;RCU2的第二加法器k7将加法结果t 0+1/2m送RCU2的第四暂存器k4准备第二次计算;完成一轮计算后,开始第二轮计算;重复这个过程,直到RCU2计数控制器指示计算终止,这样,就获得了相邻两中点值间变量为1/2m的各个点的值〈β′(t0+1/2m),β′(t0+1/2m+1/2m),……〉,
从而获得0—1间的所有变量的值:
〈β′(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)〉,
这里,F2的计算过程是这样实现的,数据A 1直接送F2的第一暂存器j3;A 3送F2的六倍乘法器j1经放大后送入F2的乘法器j2;t 0送F2的乘法器j2;m送F2的第二暂存器j4,F2的乘法器实施乘法运算后将结果6 A 3 t 0送F2的移位器j5,F2的第二暂存器j4也将m送F2的移位器j5;F2的移位器j5将6 A 3 t 0右移m后结果6 A 3 t 0(1/2m)送F2的减法器j6,同时F2的第一暂存器j3也将A 1送的减法器j6,F2的减法器j6实施减法运算得到6 A 3 t 0(1/2m)- A 1完成计算。
设置MA计算过程计算β′(1/2m),t 0 ,m, A 3 ,A 1 , MA计算过程是将CU 1/2 计算过程、B2TQ计算过程、各个CU2计算过程所对应的t0计算过程和m值的预先设定或者输入组合而成。
如图16所示,采用CCU3的计算方法对计算机辅助制造(CAM)系统输入的j轴(多轴加工系统中的j轴)的一组刀位点{P i}N i=1以及初始与终止边界条件为P 0, P N+1进行插补计算,以便获得刀具以一定的速度沿分段连续的曲线运行并经过各个刀位点{P i}N i=1以及初始与终止边界条件为P 0, P N+1的插补点,
CCU3的计算方法是三个CU3B或者是CU3B-RCU3组合,负责计算BZ0(t),BZ1(t),[BZ(t)](j);
两个CCU3乘法器1、2,分别对输入数据BZ0(t)、BZ1(t)乘以Xj i、Xj i+1;
一个CCU3加法器3将分别乘以Xi j、Xi+1 j的BZ0(t)、BZ1(t)相加,一个CCU3减法器4将CCU3加法器3的输出结果与[BZ(t)](j)相加
这里,Xi j是j轴的第i个刀位点,Xi+1 j是j轴的第i+1个刀位点
BZ0(t)=(1-t)3+3t(1-t)2+3μt2(1-t)+t3
BZ1(t)=(1-t)3+3ηt(1-t)2+3t2(1-t)+t3
[BZ(t)](j)=3ηXi-1 j t(1-t)2+3μXi+1 j t(1-t)2+Xi j(1-t)3+Xi+1 jt3
这里为速度控制参数。
如图17所示,采用CCU2的计算方法对计算机辅助制造(CAM)系统输入的j轴(多轴加工系统中的j轴)一组刀位点{P i}N i=1以及初始与终止边界条件为P 0, P N+1进行插补计算,以便获得刀具以一定的速度沿分段连续的曲线运行并经过各个刀位点{P i}N i=1以及初始与终止边界条件为P 0, P N+1的插补点的速度,
CCU2的计算方法是三个CU2B或者是CU2B-RCU2组合,负责计算BZ0 /(t),BZ1 /(t),[BZ/(t)](j);
两个CCU2乘法器,分别对输入数据BZ0 /(t)、BZ1 /(t)乘以Xi j、Xi+1 j;
一个CCU2加法器将分别乘以、的BZ0 /(t)、BZ1 /(t)相加,一个CCU2减法器将CCU2加法器3的输出结构与[BZ/(t)](j)相加
这里,Xi j是j轴的第i个刀位点,Xi+1 j是j轴的第i+1个刀位点。
Claims (2)
1.一种CNC插补的并行流水计算方法,其特征在于包括基于单元CU3计算过程的CU3B并行流水计算过程,
单元CU3计算过程是:
将伯恩斯坦多项式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〉作为第一输入数据组通过以下方式进行运算,将β 0分别送入输出口β 0 l以及CU3的第一加法器,将β 1分别送入CU3的第一加法器、第二加法器,将
β 2分别送入CU3的第二加法器、第三加法器,将β 3分别送入输出口β 0 r以及CU3的第三加法器;CU3的第一加法器接收到β 0、β 1后实施加法运算后将结果β 0+β 1分别送至CU3的第一移位器、第四加法器;同样地,CU3的第二加法器将其计算结果(β 1+β 2)分别送至CU3的第四加法器、第五加法器,CU3的第三加法器将其计算结果β 2+β 3分别送至CU3的第五加法器、第二移位器; CU3的第一移位器、第二位移器分别将
〈β 0+β 1、β 2+β 3〉右移1位后的结果〈(β 0+β 1)/2、(β 2+β 3)/2〉输出到对应输出口β 1 l、β 1 r;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)/4、(β 1+2β 2+β 3)/4〉至输出口β 2 l、β 2 r;最后,CU3的第六加法器接收数据〈(β 0+2β 1+β 2)、(β 1+2β 2+β 3)〉实施加法得到(β 0+3β 1+3β 2+β 3)后送至CU3的第五移位器,经CU3的第五移位器右移3位后得到(β 0+3β 1+3β 2+β 3)/8分别输出至β 3 l、β 3 r以及中点值β(0.5),这样就获得了两组第二输出数据组
〈β 0 l、β 1 l、β 2 l、β 3 l〉和〈β 0 r、β 1 r、β 2 r、β 3 r〉以及中点值β(0.5),其中
β 3 l、β 3 r、β(0.5)是相等的;
基于单元CU3计算过程的CU3B并行流水计算过程是:
基于上层一个单元CU3计算过程获得的两组第二输出数据组〈β 0 l、β 1 l、β 2 l、β 3 l〉和〈β 0 r、β 1 r、β 2 r、β 3 r〉,将该两组第二输出数据组〈β 0 l、β 1 l、β 2 l、β 3 l〉和
〈β 0 r、β 1 r、β 2 r、β 3 r〉分别作为第一输入数据组通过相应的两个下层单元CU3计算过程进行计算,两下层单元CU3计算过程计算后各获得相应的两组第二输出数据组及一个中点值,这样经过n层计算后,就获得了2n-1个变量差为1/2n的中点值:
第一层:β(1/2)
第二层:β(1/22)、β(3/22)
第三层:β(1/23)、β(3/23)、β(5/23)、β(7/23)
…………
第n层:β(1/2n)、β(3/2n)、…、β((2j+1)/2n)、…、β((2 n -1)/2n)
然后,将上述中点值连同β(0)、β(1)依变量值由小到大的顺序储存,作为控制数控机床运行的运行控制数据。
2.根据权利要求1所述的CNC插补的并行流水计算方法,其特征在于基于单元CU2计算过程的CU2B并行流水计算过程所获得的各个中点值及β(0)、β(1)的速度采用基于单元CU2计算过程的CU2B并行流水计算过程计算的,
单元CU2计算过程是:
将伯恩斯坦多项式7:〈β(f)=β 0 (1-f)3+3β 1 f(1-f)2+3β 2 f2(1-f)+β 3 f3,0≤f≤1〉的导数—伯恩斯坦多项式8:
〈β ′ (f)=3(β 1 -β 0 )(1-f)2 +6(β 2 –β 1 )f(1-f)+3(β 3 –β 2 )f2,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)〉
T32计算方法通过以下方式进行运算:
采用三个T32的第一减法器、第二减法器、第三减法器分别实施
〈β 1-β 0、β 2-β 1、β 3-β 2〉,采用三个T32的第一三倍乘法器、的第二三倍乘法器、的第三三倍乘法器分别对上述输入的计算结果乘3后输出,获得输入数据组Ⅰ′:〈B0, B 1, B 2〉,
将B0分别送入输出口B0 l以及CU2的第一加法器,将B1分别送入CU2的第一加法器、第二加法器,将B2分别送入CU2的第二加法器、输出口B0 r,CU2的第一加法器接收到
〈B0、B1〉后实施加法运算后将结果(B0+B1)分别送至CU2的第一移位器、CU2的第三加法器;同样地,CU2的第二加法器将其计算结果(B2+B1)分别送至CU2的第三加法器、CU2的第三移位器,CU2的第一移位器、第三移位器分别将〈(B0+B1)、(B2+B1)〉右移1位后的结果〈(B0+B1)/2、(B2+B1)/2〉输出到对应输出口〈B1 l、B1 r〉,CU2的第三加法器实施了加法得到(B0+2B1+B2)后送至CU2的第二移位器,CU2的第二移位器将(B0+2B1+B2)右移2位将结果分别输出至〈B2 l、B2 r〉以及中点值β /(0.5),这样就获得两组输出数据组Ⅱ′:〈B0 l、B1 l、B2 l〉和〈B0 r、B1 r、B2 r〉,其中B2 l、B2 r以及β /(0.5)是相等的,
基于单元CU2计算过程的CU2B并行流水计算过程是:
基于上层一个单元CU2计算过程获得的两组输出数据组Ⅱ′
〈B0 l、B1 l、B2 l〉和〈B0 r、B1 r、B2 r〉,将该两组数据组〈B0 l、B1 l、B2 l〉和〈B0 r、B1 r、B2 r〉分别作为输入数据组Ⅰ′通过相应的两下层单元CU2计算过程进行计算,两下层单元CU2计算过程各获得相应的两组输出数据组Ⅱ′及一个中点值,这样经过n层计算后,就获得了2n-1个变量差为1/2n的中点值:
第一层:β /(1/2)
第二层:β /(1/22)、β /(3/22)
第三层:β /(1/23)、β /(3/23)、β /(5/23)、β /(7/27)
…………
第n层:β′(1/2n)、β′(3/2n)、…、β′((2j+1)/2n)、β′((2 n -1)/2n)
然后,将上述中点值连同β′(0)、β′(1)依变量值由小到大的顺序储存,作为控制数控机床运行速度的运行控制数据。
3.根据权利要求1或2所述的CNC插补的并行流水计算方法,其特征在于将每相邻的两个基于单元CU3计算过程的CU3B并行流水计算过程所获得的值的变量t0、t1的差
t1- t0=1/2n分成k个1/2m,然后分别通过RCU3的计算方法对
〈β(t0+1/2m)、β(t0+2/2m)、β(t0+3/2m)……β(t0+k/2m)〉进行串行计算,
RCU3的计算方法是这样的:
首先:
先将三次伯恩斯坦多项式7:
β(f)=β 0 (1-f)3+3β 1 f(1-f)2+3β 2 f2(1-f)+β 3 f3,0≤f≤1
通过B3TC的计算过程转换成三次多项式6:
α(f)=α 3 f3+α 2 f2+α 1 f1+α 0,0≤f≤1
B3TC的计算过程是:
将三次伯恩斯坦多项式7中的〈β 0, β 1, β 2, β 3〉作为输入数据组通过以下方式进行运算:β 0输入后被分转到输出口α 0与B3TC的第一减法器,β 1输入后被分转到B3TC的第一减法器与B3TC的第二减法器,β 2输入后被分转到B3TC的第二减法器与B3TC的第三减法器,β 3被输入到B3TC的第三减法器;B3TC的第一减法器执行完(β 1-β 0)后,将结果分别送到送到B3TC的第一三倍乘法器与B3TC的第四减法器;B3TC的第二减法器执行完(β 2-β 1)后将结果分别送到B3TC的第四减法器与第五减法器;B3TC的第三减法器将结果(β 3-β 2)送到B3TC的第五减法器;B3TC的第四减法器执行计算
(β 2-2β 1+β 0)后,将结果分别送到B3TC的第二三倍乘法器与B3TC的第六减法器;B3TC的第五减法器执行计算(β 3-2β 2+β 1)后将结果送B3TC的第六减法器;B3TC的第一三倍乘法器输出3(β 1-β 0)到输出口α 1,B3TC的第二三倍乘法器输出
3(β 3-2β 2+β 1)到输出口α 2,B3TC的第六减法器输出(β 3-3β 2+3β 1-β 0)到输出口
α 3,这样,就获得了三次多项式6中的〈α 0,α 1,α 2,α 3〉,
通过CU 1/2 计算 β(1/2m)的计算过程,其中1/2m是相邻两个变量t0、t1的差值,
CU 1/2 计算过程是将〈β 0, β 1, β 2, β 3,σ〉作为数据输入组通过以下方式进行计算:输入数据β 3被送入CU 1/2 的第一减法器,β 2被分别送入CU 1/2 的第一减法器、第二减法器,β 1被分别送入CU 1/2 的第二减法器、第三减法器,β 0被分别送入CU 1/2 的第三减法器与CU 1/2 的第二加法器,CU 1/2 的第一减法器、第二减法器、第三减法器分别计算
〈β 3-β 2、β 2-β 1、β 1-β 0〉,其中CU 1/2 的第一减法器的结果β 3-β 2送到CU 1/2 的第四减法器,CU 1/2 的第二减法器的结果(β 2-β 1)分转到CU 1/2 的第四减法器与第五减法器、CU 1/2 的第三减法器的结果(β 1-β 0)分转到CU 1/2 的第五减法器以及CU 1/2 的第二三倍乘法器,CU 1/2 的第四减法器的结果(β 3-2β 2+β 1)送到CU 1/2 的第六减法器,CU 1/2 的第五减法器的结果(β 2-2β 1+β 0)分别送到CU 1/2 的第六减法器与CU 1/2 的第一三倍乘法器,两个CU 1/2 的第一三倍乘法器、第二三倍乘法器将输入数据(β 2-2β 1+β 0)、(β 1-β 0)分别放大3倍后分别对应送到CU 1/2 的第二可变移位器、第三可变位移器,CU 1/2 的第六减法器计算出(β 3-3β 2+3β 1-β 0)后将结果送到CU 1/2 的第一可变移位器,CU 1/2 的第一可变移位器将输入数据右移 3σ位得到(β 3-3β 2+3β 1-β 0)/23σ后将结果送入CU 1/2 的第一加法器,CU 1/2 的第二可变移位器将输入数据右移2σ得到结果3(β 2-2β 1+β 0)/22σ后也送入CU 1/2 的第一加法器,CU 1/2 的第三可变移位器将输入数据右移σ得到结果3(β 1-β 0)/2σ后也送入CU 1/2 的第二加法器,CU 1/2 的第一加法器计算出
((β 3-3β 2+3β 1-β 0)/23σ+3(β 2-2β 1+β 0)/22σ)后结果送CU 1/2 的第三加法器,CU 1/2 的第二加法器计算出3(β 1-β 0)/2σ+β 0)后结果也送CU 1/2 的第三加法器,最后由第三加法器计算出(β(1/2m),
其次:
通过RCU3计算相邻两中点值间变量为1/2m的各个点
〈β(t0+1/2m)、β(t0+2/2m)、β(t0+3/2m)……β(t0+k/2m)〉的值,
RCU3计算过程是将〈β(t 0),β(1/2m),t 0 m, a 3,a 2,a 0〉作为数据输入组通过以下方式进行计算,其中β(t0)是某个中点的值,t0是该中点的值的变量:β(t 0),β(1/2m)输入到RCU3第一暂存器、第二暂存器; m输入送到RCU3第三暂存器;t 0送到RCU3的第四暂存器;a 3,a 2,a 0送入F3;RCU3的计数器控制各个单元;在RCU3的计数控制器的控制下,实施计算时,RCU3的第一暂存器、第二暂存器的数据送入RCU3的第一加法器,RCU3的第三暂存器的数据m同时送到F3与RCU3的移位器,RCU3的移位器计算出1/2m后送RCU3的第二加法器,RCU3的第四暂存器的数据同时送RCU3的第二加法器与F3;RCU3的第一加法器完成计算后将(β(t 0)+β(1/2m))送到RCU3的第三加法器,与F3送过来的数据做加法,结果同时输出到输出端O,也送到RCU3的第二暂存器,准备第二次运算;RCU3的第二加法器将加法结果(t 0+1/2m)送RCU3的第四暂存器准备第二次计算;完成一轮计算后,开始第二轮计算;重复这个过程,直到计数控制器指示计算终止,这样,就获得了相邻两中点值间变量为1/2m的各个点的值
〈β(t0+1/2m),β(t0+1/2m+1/2m),……〉,
从而获得0—1间的所有变量的值:
〈β(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)〉
这里,F3的计算过程是这样实现的,数据a 0,t 0,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的第三乘法器将结果3a3t0 2送F3的第三移位器,经右移m位后送F3的第二加法器;F3的第二加法器完成加法后得到(2a2t0(1/2m)+3a3t0(1/2m)2+3a3t0 2(1/2m)),将结果送F3的减法器;F3的减法器从F3的第一暂存器里面获取a0与F3的第二加法器送来的数据作减法最终得到(2a2t0(1/2m)+3a3t0(1/2m)2+3a3t0 2(1/2m)- a0)的计算结果。
4.根据权利要求3所述的CNC插补的并行流水计算方法,其特征在于设置MA计算过程计算并向各个RCU3计算过程输出, 〈β(1/2m),t 0 ,m, a 3,a 2,a 0, MA〉计算过程是将CU 1/2 计算过程、B3TC计算过程、各个CU3计算过程所对应的t0计算过程和m的值的预先设定或者输入组合而成。
5.根据权利要求2或4所述的CNC插补的并行流水计算方法,其特征在于将每相邻的两个基于单元CU2计算过程的CU2B并行流水计算过程所获得的值的变量t0、t1的差
t1- t0=1/2n分成k个1/2m,然后分别通过RCU2的计算方法对
〈β′(t0+1/2m)、β′(t0+2/2m)、β′(t0+3/2m)……β′(t0+k/2m)〉进行串行计算,
RCU2的计算方法是这样的:
首先:
通过B2TQ的计算方式是将形如
B 0(1-t)2+2B 1t(1-t)+B 2t2
的二次伯恩斯坦多项式系数转换为形如
A 2t2+A 1t+A 0
多项式的系数,
B2TQ的计算过程是:
B 0输入后被分转到输出口A 0与B2TQ的第一减法器,B 1输入后分转到B2TQ的第一减法器与第二减法器,B 2直接输入到B2TQ的第二减法器,B2TQ的第一减法器计算出(B 1- B 0)后将结果分转到B2TQ的二倍乘法器和B2TQ的第三减法器;B2TQ的第二减法器的结果(B 2- B 1)直接送入B2TQ的第三减法器,B2TQ的二倍乘法器将(B 1- B 0)乘以2后输出到A 1,B2TQ的第三减法器计算出(B 2- 2B 1+ B 0)后输出到A 2,
通过CU 1/2 计算 β′(1/2 σ )的计算过程,其中1/2m是相邻两个变量t0、t1的差值,
CU 1/2 计算过程是将〈B 0, B 1, B 2,σ〉作为数据输入组通过以下方式进行计算:输入数据B 3被送入CU 1/2 的第一减法器, B 2被分别送入CU 1/2 的第一减法器、第二减法器, B 1被分别送入CU 1/2 的第二减法器、第三减法器,B 0被分别送入CU 1/2 的第三减法器 ,CU 1/2 的第一减法器、第二减法器、第三减法器分别计算〈B 3- B 2、 B 2- B 1、 B 1- B 0〉,其中CU 1/2 的第一减法器的结果B 3- B 2送到CU 1/2 的第四减法器、CU 1/2 的第二减法器的结果(B 2- B 1)分转到CU 1/2 的第四减法器与第五减法器、CU 1/2 的第三减法器的结果(B 1- B 0)分转到CU 1/2 的第五减法器以及第二加法器,CU 1/2 的第四减法器的结果(B 3-2 B 2+B 1)送到CU 1/2 的第六减法器,CU 1/2 的第五减法器的结果(B 2-2 B 1+B 0)分别送到CU 1/2 的第六减法器与CU 1/2 的二倍乘法器,CU 1/2 的二倍乘法器将输入数据(B 2-2 B 1+B 0)放大2倍后送到CU 1/2 的第二移位器,CU 1/2 的第六减法器计算出(B 3-3 B 2+3B 1- B 0)后将结果送到CU 1/2 的第一移位器,CU 1/2 的第一移位器将输入数据右移3σ位得到(B 3-3 B 2+3B 1- B 0)/23σ 后将结果送入CU 1/2 的第一加法器,CU 1/2 的第二移位器将输入数据右移 得到结果2(B 2-2 B 1+B 0)/22σ 后也送入CU 1/2 的第一加法器,第一加法器计算出((B 3-3 B 2+3B 1- B 0)/23σ +2(B 2-2 B 1+B 0)/22σ )后结果送CU 1/2 的第二加法器,第二加法器计算出结果后送CU 1/2 的三倍乘法器,最后由CU 1/2 的三倍乘法器计算出β′(1/2 σ ),
其次:
通过RCU2计算相邻两中点值间变量为1/2m的各个点
〈β′(t0+1/2m)、β′(t0+2/2m)、β′(t0+3/2m)……β′(t0+k/2m)〉的值,
RCU2计算过程是将〈β′(t0),β′(1/2m),t 0 ,m, A 3 ,A 1 〉作为数据输入组通过以下方式进行计算,其中β′(t0)是某个中点的值,t0是该中点的值的变量:
〈β′(t0),β′(1/2m)〉输入到RCU2的第一暂存器、第二暂存器; m输入送到RCU2的第三暂存器;t 0送到RCU2的第四暂存器;A 3 ,A 1 送入F2;RCU2的计数器控制各个单元;在RCU2的计数控制器的控制下,实施计算时,RCU2的第一暂存器、第二暂存器的数据送入RCU2的第一加法器,RCU2的第三暂存器的数据m同时送到F2与RCU2的移位器,RCU2的移位器计算出1/2m后送RCU2的第二加法器,RCU2的第四暂存器的数据同时送RCU2的第二加法器与F2;RCU2的第一加法器完成计算后将
〈β′(t0),β′(1/2m)〉送到RCU2的第三加法器,与F2送过来的数据做加法,结果同时输出到输出端O,也送到RCU2的第二暂存器,准备第二次运算;RCU2的第二加法器将加法结果t 0+1/2m送RCU2的第四暂存器准备第二次计算;完成一轮计算后,开始第二轮计算;重复这个过程,直到RCU2计数控制器指示计算终止,这样,就获得了相邻两中点值间变量为1/2m的各个点的值〈β′(t0+1/2m),β′(t0+1/2m+1/2m),……〉,
从而获得0—1间的所有变量的值:
〈β′(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)〉,
这里,F2的计算过程是这样实现的,数据A 1直接送F2的第一暂存器;A 3送F2的六倍乘法器经放大后送入F2的乘法器;t 0送F2的乘法器;m送F2的第二暂存器,F2的乘法器实施乘法运算后将结果6 A 3 t 0送F2的移位器,F2的第二暂存器也将m送F2的移位器;F2的移位器将6 A 3 t 0右移m后结果6 A 3 t 0(1/2m)送F2的减法器,同时F2的第一暂存器也将A 1送的减法器,F2的减法器实施减法运算得到(6 A 3 t 0(1/2m)- A 1)完成计算。
6.根据权利要求5所述的CNC插补的并行流水计算方法,其特征在于设置MA计算过程计算〈β′(1/2m),t 0 ,m, A 3 ,A 1 , MA〉计算过程是将CU 1/2 计算过程、B2TQ计算过程、各个CU2计算过程所对应的t0计算过程和m值的预先设定或者输入组合而成。
7.根据权利要求3所述的CNC插补的并行流水计算方法,其特征在于采用CCU3的计算方法对计算机辅助制造CAM系统输入的j轴的一组刀位点{P i}N i=1以及初始与终止边界条件为P 0, P N+1进行插补计算,以便获得刀具以一定的速度沿分段连续的曲线运行并经过各个刀位点{P i}N i=1以及初始与终止边界条件为P 0, P N+1的插补点,
CCU3的计算方法是三个CU3B或者是CU3B-RCU3组合,负责计算
〈BZ0(t),BZ1(t),[BZ(t)](j)〉;
两个CCU3乘法器,分别对输入数据BZ0(t)、BZ1(t)乘以〈Xi j、Xi+1 j〉;
一个CCU3加法器将分别乘以〈Xi j、Xi+1 j〉的〈BZ0(t)、BZ1(t)〉相加,一个CCU3减法器将CCU3加法器的输出结果与[BZ(t)](j)相加
这里,Xi j是j轴的第i个刀位点,Xi+1 j是j轴的第i+1个刀位点
BZ0(t)=(1-t)3+3t(1-t)2+3μt2(1-t)+t3
BZ1(t)=(1-t)3+3ηt(1-t)2+3t2(1-t)+t3
[BZ(t)](j)=3ηXi-1 j t(1-t)2+3μXi+1 j t(1-t)2+Xi j(1-t)3+Xi+1 jt3
这里〈0<η, μ<1〉为速度控制参数。
8.根据权利要求5所述的CNC插补的并行流水计算方法,其特征在于采用CCU2的计算方法对计算机辅助制造CAM系统输入的j轴一组刀位点{P i}N i=1以及初始与终止边界条件为P 0, P N+1进行插补计算,以便获得刀具以一定的速度沿分段连续的曲线运行并经过各个刀位点{P i}N i=1以及初始与终止边界条件为P 0, P N+1的插补点的速度,
CCU2的计算方法是三个CU2B或者是CU2B-RCU2组合,负责计算
〈BZ0 /(t),BZ1 /(t),[BZ/(t)](j)〉;
两个CCU2乘法器,分别对输入数据〈BZ0 /(t)、BZ1 /(t)〉乘以〈Xi j、Xi+1 j〉;
一个CCU2加法器将分别乘以〈Xi j、Xi+1 j〉的〈BZ0 /(t)、BZ1 /(t)〉相加,一个CCU2减法器将CCU2加法器3的输出结构与[BZ/(t)](j)相加
这里,Xi j是j轴的第i个刀位点,Xi+1 j是j轴的第i+1个刀位点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010593543.0A CN102073474B (zh) | 2010-12-17 | 2010-12-17 | Cnc插补的一种并行流水计算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010593543.0A CN102073474B (zh) | 2010-12-17 | 2010-12-17 | Cnc插补的一种并行流水计算方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102073474A CN102073474A (zh) | 2011-05-25 |
CN102073474B true CN102073474B (zh) | 2014-11-12 |
Family
ID=44032026
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010593543.0A Expired - Fee Related CN102073474B (zh) | 2010-12-17 | 2010-12-17 | Cnc插补的一种并行流水计算方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102073474B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103513613B (zh) * | 2013-09-30 | 2016-08-17 | 佛山科学技术学院 | 高速cnc插补计算方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1621986A (zh) * | 2003-11-28 | 2005-06-01 | 山崎马扎克公司 | 控制机床的方法和设备 |
CN101324790A (zh) * | 2008-07-11 | 2008-12-17 | 上海瑞尔实业有限公司 | 一种用于去交叉孔毛刺的刀具设计方法及该刀具 |
CN101634847A (zh) * | 2009-07-16 | 2010-01-27 | 上海交通大学 | 相贯线切割机可重构数控系统 |
-
2010
- 2010-12-17 CN CN201010593543.0A patent/CN102073474B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1621986A (zh) * | 2003-11-28 | 2005-06-01 | 山崎马扎克公司 | 控制机床的方法和设备 |
CN101324790A (zh) * | 2008-07-11 | 2008-12-17 | 上海瑞尔实业有限公司 | 一种用于去交叉孔毛刺的刀具设计方法及该刀具 |
CN101634847A (zh) * | 2009-07-16 | 2010-01-27 | 上海交通大学 | 相贯线切割机可重构数控系统 |
Also Published As
Publication number | Publication date |
---|---|
CN102073474A (zh) | 2011-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103744346B (zh) | 一种电子凸轮曲线生成方法 | |
CN107977785B (zh) | 一种电网工程项目进度监控方法 | |
CN101539769B (zh) | 基于二次b样条曲线对g01代码的拟合及插补方法 | |
CN102536774B (zh) | 工业循环水泵组运行特性及运行能效分析装置 | |
CN104181860B (zh) | 数控机床s型加减速控制方法 | |
CN105739436B (zh) | 一种数控机床样条曲线自适应快速插补方法 | |
CN102298359B (zh) | 一种数控系统中加减速过渡平滑控制方法 | |
CN111002308A (zh) | 基于分段多阶次多项式插值的工业机械臂路径规划方法 | |
CN102073474B (zh) | Cnc插补的一种并行流水计算方法 | |
CN106020122A (zh) | 基于牛顿迭代的数控轨迹控制方法 | |
CN103258300A (zh) | 设计火力发电厂电缆通道中电缆桥架的方法 | |
CN110850883A (zh) | 一种机器人的移动控制方法、介质、终端和装置 | |
CN102023840B (zh) | Cnc插补的一种并行流水计算装置 | |
Tsai et al. | On acceleration/deceleration before interpolation for CNC motion control | |
CN104331080B (zh) | 用于移动式机器人的定点跟踪路径规划方法 | |
CN103927776B (zh) | 动画曲线优化方法 | |
CN107831823B (zh) | 一种用于分析和优化电网拓扑结构的高斯消元方法 | |
CN201892938U (zh) | Cnc插补的一种并行流水计算装置 | |
CN203705892U (zh) | 高速cnc插补计算装置 | |
CN109951173A (zh) | 一种多路并行输入并行处理的fir滤波方法及滤波器 | |
CN113656852B (zh) | 一种精细化河道地形快速生成方法 | |
CN104020717A (zh) | 基于参数同步的五轴等距双nurbs刀具路径插补方法 | |
TWI733334B (zh) | 卷積神經網路運算裝置及其運算的方法 | |
CN103513613A (zh) | 高速cnc插补计算方法 | |
CN103677743B (zh) | 一种基于fpga的pn序列并行产生方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20141112 Termination date: 20151217 |
|
EXPY | Termination of patent right or utility model |