You are on page 1of 78

CHAPTER 9

INTERPOLATOR
A common requirement of all manufacturing systems is to generate coordinated
movement of the separately driven axes of motion in order to achieve the desired path
of the tool relative to the work-piece. This involves the generation of signals
prescribing the shape of the produced part and their transmission as reference inputs to
the corresponding control loops. Generation of these reference signals is accomplished
by interpolators. There two kinds of interpolator: hardware interpolators (which
consists of digital circuits, and software interpolator.
9.1 Hardware Interpolator
9.1.1 Digital differential analyzers integrator
The area below the curve p(t) can be calculated by p p(t)
the formula:

(9-1)
pi pi
The approximating area below the curve can be pi-1
p2
considered as a sum of small rectangular areas, each of t
p1 t
equal base t. This yields: t
Hình 9.1 Phép xấp xỉ
(9-2) bằng phương pháp số của
một hàm liên tục.
The value of z at t = k.t is denoted by zk, which may be written as follows:

(9-3)

or (9-4)
where
(9-5)
Digital integration is accomplished in three stages.
+ Stage 1: The ordinate pk is computed by adding the increment p to, or
subtracting it from, the preceding ordinate pk-1:
(9-6)

+ Stage 2: The integration increment zk is calculated according to (9-5),

1
+ Stage 3: The zk is calculated by adding integration increment zk to the
previous zk-1 according to (9-4).

The DDA integrator operates in an iterative mode at a frequency f provided by an


external clock where f = 1/t.

During each iteration the operations given by Eqs (9.6) and (9.5) should be
executed. The input and output data between DDA integrators is transferred as 1-bit
increments, and therefore the values of p and z must be either 1 or 0. This is
achieved in DDAs by storing the p variable in an n-bit register, or up-down counter
with the allowable value to 2n-1.

A schematic diagram of a DDA integrator is shown in Fig. 9.2. It consists of two


n-bit registers, p and q, and one binary adder. During each integration step the new
value of p is obtained according to Eq. (9.6), in which p is either 1 or 0. The
integration itself is performed according to Eq. (9.8) and is executed with the aid of the
binary adder which adds the contents of the p and the q registers at each iteration. The
adder overflows are the output increments z (Eq. 9.9) as the following example:
Example: If n=3, pk=6, and qk-1=4, the binary addition is executed as follows:

qk-1 100
+ +
pk 110
z qk 1 010

Namely, qk=2 và z=1

Clock f
q register f
+ t z
p
Adder z –p (f0)
(f0)
Hình 9.3 A symbolic
+ representation of DDA.
p p register
-

Hình 9.2 A schematic diagram of DDA.

(9-8)

2
If qk ≥ 2n Then zk = 1 (Output increment)
(9-9)
qk = qk – 2n

Mathematically these increments z are given by:

(9-10)
then:
(9-11)
or (9-12)

where: (9-13)
The average output frequency of the overflow pulses f0 is obtained by Eq. (9-12):

(9-14)

Example 9_1: A simple integration in which p is a constant (i.e., p=0) is


performed with a DDA Integrator. Calculate the output z at the first ten integration
steps; the DDA contains 3-bit registers which are initially set to p = 5 and q = 0.
Determine f0 if f = 512 Hz (pulse/second).
Solution:
After the first iteration the contents of q register is 5, according to Eq. (9.8),
q1=q0+p1=0+5=5, z1=0. At the second iteration, its contents is calculated with binary
system as follows:
q1 101
+ +
p2 101
z q2 1 010
Namely, q2=2 và z2=1. These values can be calculated also with the decimal
system according to (9.8). However, if qk ≥ 8 (2n in general case), then qk = qk – 8, and
 zk = 1:
STT p q z z
0 5 0 0 0
1 5 5 0 0
2 5 2 1 1
3 5 7 0 1
4 5 4 1 2
5 5 1 1 3
6 5 6 0 3
7 5 3 1 4
8 5 0 1 5 3
9 5 5 0 5
10 5 2 1 6
f0 of increment pulses z is given by Eq. (9-14):

9.1.2 Exponential Deceleration by using DDA integrator


A DDA which produces an exponentially decaying frequency is frequently used
to decelerate the machine axes of motion before the final stop.
Assume that p(t) is an exponential function p(t) = pa e-αt.
The DDA output frequency is given by (9-14):

= C pa e-αt (9-15)

According to (9-12):
= C pa e-αt t (9-16)
Derivative of p(t) is:

(9-17)

So the corresponding difference equation is:


p = -α pae-αt t (9-18)
The constant C is adjusted such that C= α. Compare Eqs. (9.16) and (9.18) shows
that the required exponential function is obtained if
-p = z (9-19)
Eq. (9.19) is satisfied if the output z of the integrator is connected to its -p
input as it shown in Fig. 9.4.
Ví dụ 9_2: Generate the exponential function p(t)= pa e-t f
(Fig. 9.4) with =1, pa=15, DDA using 4-bit registers, clock t
+ z
p f0
frequency f = 16 (pulse/second): – p

a) Determine the initial values of DDA. Hình 9.4 Set up of an


exponential function.

4
b) Calculate the values of p, q, z at the first twenty integration steps.

c) Determine f and f0 waveforms.

d) Plot p(t) và z(t) according to t.


Solution:
a) The initial values of DDA when t = 0:
p0 = pa = 15 BLU; q0 = 0
b) The values of p, q, z, z (z(t)) according to 9-19, 9-6, 9-8 và 9-9:
TT p0 = 15 qo = 0 z =0 z (z(t)) 27 3 12 0 12
1 15 15 0 0 28 3 15 0 12
2 15 14 1 1 29 3 2 1 13
3 14 12 1 2 30 2 4 0 13
4 13 9 1 3 31 2 6 0 13
5 12 5 1 4 32 2 8 0 13
6 11 0 1 5 33 2 10 0 13
7 10 10 0 5 34 2 12 0 13
8 10 4 1 6 35 2 14 0 13
9 9 13 0 6 36 2 0 1 14
10 9 6 1 7 37 1 1 0 14
11 8 14 0 7 38 1 2 0 14
12 8 6 1 8 39 1 3 0 14
13 7 13 0 8 40 1 4 0 14
14 7 4 1 9 41 1 5 0 14
15 6 10 0 9 42 1 6 0 14
16 6 0 1 10 43 1 7 0 14
17 5 5 0 10 44 1 8 0 14
18 5 10 0 10 45 1 9 0 14
19 5 15 0 10 46 1 10 0 14
20 5 4 1 11 47 1 11 0 14
21 4 8 0 11 48 1 12 0 14
22 4 12 0 11 49 1 13 0 14
23 4 0 1 12 50 1 14 0 14
24 3 3 0 12 51 1 15 0 14
25 3 6 0 12 52 1 0 1 15
26 3 9 0 12 53 0 0 0 15
c) Waveforms of f, f0:
1 2 3…………………………………………………………………………………………………..52
f

f0

Hình 9.5 Waveforms of f và f0.

5
d) Plot of p(t) and z(t) according to t:

p(t) z(t)

p(t)
15
z(t)

10

0 t
10 20 30 40 50

Hình 9.6 Biểu đồ p(t) và z(t) sau 52 bước tích phân.

9.1.3 LINEAR DDA HARDWARE INTERPOLATOR


The ability to control the
y
movement along a straight line between
yB B
given initial and final coordinates is
termed linear interpolation. Linear
interpolation can be performed in a plane
A
(2-D), using one or two axes of motion, yA
x
or in space (3-D), where combined
xA xB
motion of three axes is required. In this Hình 9.7 Line AB.
chapter only 2-D linear interpolators are
discussed.
In Fig. 9.7, The interpolation coordinate is located at the initial point A, so the
equation of line AB is:

6
(a and b are natural number) (9-20)

Parametric equations from Eq. (9-20) can be written:


x = a.t
(9-21)
y = b.t
Derivatives of Eqs. (9.21) are velocities of the machine tables x and y:

Vx =
(9-22)
Vy =

On the other hand:


Vx = f0x . BLU
(9-23)
Vy = f0y . BLU

where f0x và f0y are the respective frequencies of output zx (DDA x) và zy
(DDA y).

From (9-22) and (9-23), we have:

(9-24)

or:

(9-25)

Then:

(9-26)

Namely:

(9-27)

So:
px = a
(9-28)
py = b
and

7
px = 0
(9-29)
py = 0

From Eqs. (9-27), (9-28), (9-29), the structure of linear DDA interpolator can be
described as in Fig 9.8.

+ t zx
px 1 Trục x
- px=a (f0x)
clock

+ t zy
py 2 Trục y
- py=b (f0y)

Hình 9.8 Linear DDA Interpolator.

Each axis of motion requires one DDA integrator; integrator 1 supplies pulses to the X
axis and integrator 2 to the Y axis. The two DDA are controlled by a common clock,
and therefore their operations are performed simultaneously. The required incremental
distance of each axis is fed to the p register in the corresponding DDA. The overflow
pulses from z outputs are supplied as the command signal to the control loops. These
pulses can actuate stepping motors in open-loop systems, where each pulse causes a
single step motion, or can be fed as reference to closed-loop systems.
The initial values are fed to DDA interpolator as the following:
px = (BLU) py = (BLU)
(9-30)
qx = 0 qy = 0

Example 9_2: A Linear DDA interpolator with 4-bit registers generates the path from
the initial point A(0,0) to the final point B(10mm,13mm).

8
a) Determine the initial values of px0, qx0, py0, qy0, time period (cycle) t of clock,
frequency f0x of output zx, frequency f0y of zy, with frequency of clock f = 512
(pulse/second) (Hz), BLU = 1 (mm/pulse).
b) Determine the output pulses at the 16 integration steps.
c) Draw the waveform of f, f0x, f0y and draw the interpolated path.
Giải:
a)
px0 = = 7 (BLU); qx0 = 0
py0 = = 12 (BLU); qy0 = 0

t = = 0,001953 (s/pulse)

f0x = C.px = = 224 (pulse/s)

f0y = C.py = = 384 (pulse/s)

b) The output pulses of the 16 integration steps:

DDA X DDA Y
TT
px0 = 7 qx0 =0 zx=0 zx py0 =12 qy0 =0 zy=0 zy
1 7 7 0 0 12 12 0 0
2 7 14 0 0 12 8 1 1
3 7 5 1 1 12 4 1 2
4 7 12 0 1 12 0 1 3
5 7 3 1 2 12 12 0 3
6 7 10 0 2 12 8 1 4
7 7 1 1 3 12 4 1 5
8 7 8 0 3 12 0 1 6
9 7 15 0 3 12 12 0 6
10 7 6 1 4 12 8 1 7
11 7 13 0 4 12 4 1 8
12 7 4 1 5 12 0 1 9
13 7 11 0 5 12 12 0 9
14 7 2 1 6 12 8 1 10
15 7 9 0 6 12 4 1 11
16 7 0 1 7 12 0 1 12

9
c)

Waveforms of f, f0x, và f0y :


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
f
f0x
f0y

Interpolated path:
y
B(7,12)
Thực
tế
10 -


thuyết

5-

x
-

A(0,0) 5
Hình 9.9 The interpolated path from A to B carried
out by 4-bit hardware DDA interpolator.

9.1.4 Circular DDA interpolator

Fig 9.10 Eight possible circular arcs.


b a
f e

g h
c d

Group I Group II

There are eight different circular arcs which can start at a point, as illustrated in Fig.
9.10. The a, b, c and d arcs of group I have a similar structure and are generated by the
same interpolator. On the other hand, arcs e, f, g and h belong to other group and are
generated by a different interpolator.

10
9.1.4.1 The circular DDA interpolator of group I
Assume that a circular quadrant a (Fig. 9.10) is produced with initial conditions
circular center coordinate C(R,0), radius R from the initial point A(0,0) to the final
point B(R,R) as illustrated in Fig. 9.11.
y

B(R,R)

y
R
ωt x
OA x
C(R,0)

Figure 9.11 Circular arc a of group I.

Equation of circle with center point C(R,0):


(x – R)2 – y2 = R2 (9-31)
The parametric equations of the eq. (9.31) as the following:
y = R sinωt
(9-32)
x = R – R cosωt
Velosity of x axis và y axis:
Vy = ω R cosωt
Vx = ω R sinωt (9-33)

On the other hand:


Vx = f0x . BLU
(9-34)
Vy = f0y . BLU

From eq. (9-33) and eq. (9-34), we infer:

(9-35)

Then:

(9-36)

Or:

11
(9-37)

Let ω = C, we have:

(9-38)

So:
px = R sinωt
(9-39)
py = R cosωt
and then:
+px = ω R cosωt t = zy
(9-40)
- py = ω R sinωt t = zx

Based on the eqs. (9-38), (9-39) and (9-40), circular DDA integrator for group I
can be produced as Fig. 9.12.

f
- t zx
px
+ 2
(f0x) Axis x
px=r.sinwt
clock
(f)
py=r.coswt zy
py - 1 Axis y
(f0y)
+t
f

Hình 9.12 Structure of circular DDA integrator of group I.


The initial values for the circular DDA integrator:
px0 = = R sinα (BLU) py0 = = R cosα (BLU)
(9-41)
qx0 = 0 qy0 = 0
y'

O’A x'

α
x 12
O C(i,j)
Hình 9.13 AB circular arc.

Example 9_3: A hardware circular DDA interpolator y


with 4-bit registers generates the path of circular B
quadrant from the initial point A(0,0) to the final
point B(11,11mm) as illustrated in Fig. 9.14
a) Determine the initial values of p x0, qx0, py0, qy0, and R
show the structure of the interpolator of the arc. OA x
b) Determine the output pulses at the all integration C
steps.
Hình 9.14 AB Arc.
c) Draw the waveform of f, f0x, f0y and draw the
interpolated path.

Solution:
a) The initial value:
 = 0o, R = 15 mm = 15 BLU.
px0 = R sin = R = 0 BLU py0 = R cos = 15 BLU
qx0 = 0 qy0 = 0
b)
Integration steps:
TT py0 =15 qy0 =0 zy=0 zy px0 =15 qx0 =0 zx=0 zx
1 15 15 0 0 0 0 0 0
2 15 14 1 1 1 1 0 0

13
3 15 13 1 2 2 3 0 0
4 15 12 1 3 3 6 0 0
5 15 11 1 4 4 10 0 0
6 15 10 1 5 5 15 0 0
7 15 9 1 6 6 5 1 1
8 14 7 1 7 7 12 0 1
9 14 5 1 8 8 4 1 2
10 13 2 1 9 9 13 0 2
11 13 15 0 9 9 6 1 3
12 12 11 1 10 10 0 1 4
13 11 6 1 11 11 11 0 4
14 11 1 1 12 12 7 1 5
15 10 11 0 12 12 3 1 6
16 9 4 1 13 13 0 1 7
17 8 12 0 13 13 13 0 7
18 8 4 1 14 14 11 1 8
19 7 11 0 14 14 9 1 9
20 6 1 1 15 15 8 1 10
21 5 6 0 15 15 7 1 11
22 4 10 0 15 15 6 1 12
23 3 13 0 15 15 5 1 13
24 2 15 0 15 15 4 1 14
25 1 0 1* 15 15 3 1 15
26 0 15
Explanation: 1* is removed

c) The waveforms of f, f0x, f0y:


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
f
f0x
f0y

The path of cutting tool: y

B(15,15)
15 Practical

10

Theory
5

x
A(0,0) 5 10 15

14
Hình 9.15 The path of cutting tool.
9.1.4.2 The circular DDA interpolator of group II
Assume that a circular quadrant e (Fig. 9.10) is produced with initial conditions
circular center coordinate C(0,R), radius R from the initial point A(0,0) to the final
point B(R,R) as illustrated in Fig. 9.16. Like the group I, it is easy to infer the structure
of circular DDA integrator of group II.
y

B(R,R)
C(0,R)

ωt R

x
OA

Hình 9.16 Ciruclar arc of group II.

f
- t zy
py
Hình 9.17 Structure p+of=r.sinwt 2 DDA integrator
circular
y
(f0y) Trục y of group II.

The initial values: clock


(f)
px0 = (BLU) = R cos
p =r.coswtx
py0 =z (BLU) = R sin
x

qx0 = 0 px - 1
qy0 =(f0x0)
Trục x (9-42)
+t
f
where (i,j) is coordinate of C in the coordinate system (0’x’y’) at the initial point.

9.1.5 The complete hardware DDA interpolator


Circular linear

-∆t L
∆px 1
f' + px Trục x
C
+∆t 3
f
-p=FRN
- ∆t L
∆py + p 2 Trục y
y

C
Lệnh giảm tốc
(Deceleration)

Hình 9.18 The complete DDA interpolator.

15
9.2 CNC software interpolators
With the reduction of the price and size of PCs, a software interpolation method has appeared
in which interpolation is carried out using a computer program instead of a logic arithmetic
hardware device. Various algorithms have been introduced for soft- ware interpolation and
Table 9.1 summarizes the typical algorithms for the reference pulse interpolator and the
reference word interpolator(Sampled-Data interpolator). In the reference pulse method, a
computer generates reference pulses as an external interrupt signal and the generated pulses
are directly forwarded to the machine drive. Also in this method, 1 pulse denotes 1BLU of
axis.
Table 9.1

Reference pulse method Sampled data method


DDA interpolator Euler interpolator
Stair approximation interpolator Improved Euler interpolator
Direct search interpolator Taylor Interpolator
Tustin Interpolator
Improved Tustin Interpolator
Figure 9.19 shows the structure and information flow for the reference pulse method. A CNC
system based on the reference pulse method includes an Up/Down Counter. This counter
compares the reference pulse from an interpolator with the feedback pulse from an encoder,
calculates the position error from the comparison result, and finally, the calculated position
error is input to a drive. In this structure, the total of the generated pulses determines the
position of an axis and the frequency of pulses determines the speed of an axis.
Theinterruptfrequencydeterminesthespeedoftheaxisinthismethod,sosimple programs and a fast
CPU are essential for high-speed operation. The DDA (Digital Differential Analyzer)
algorithm, Stairs Approximation algorithm, and Direct Search algorithm are suitable for this
interpolation method.

NC Axis of
motion
program Up-down Machine
counter DAC drive
Computer Encoder

Feedback pulses

Interupt Hình 9.19 Software interpolator based on


clock a reference pulse method

16
In the Sampled-Data interpolation method, Fig. 9.20, the interpolation is executed in
two stages unlike the reference pulse method. In the first stage, an input contour is
segmented into straight line segments within an allowable tolerance and, in the second
stage, the approximating line segments are interpolated and the interpolation result
sent to the related axis. In general, the first stage is called rough interpolation and the
second stage fine interpolation. When the performance of microprocessors was low, a
software interpolator carried out the rough interpolation and a hardware interpolator
was used for the fine interpolation. The Euler method, Taylor method, and Tustin
method are typical algorithms for rough interpolation.
Bàn máy
Chương fs Bộ mã
DAC Truyền
trình động hóa số
Computer fs
Bộ Các xung hồi tiếp
đếm
Clear

Real time Hình 9.20 Sơ đồ khối hệ CNC sử dụng


clock kỹ thuật lấy mẫu.
Reference pulse and Sampled-Data methods comparison

Reference pulse methods Sampled data methods

The distance to go is computed with The coordinate points to go per unit


external reference pulses and the sampling time are computed and
Description
calculated pules are fed to each axis. calculated data is transmitted to each
axis.

Strengths Adequate to high-accuracy machining Adequate to high speed machining

Weakness Inadequate to high speed machining inadequate to high-accuracy machining

Because the feed rate of each axis


depends on the frequency of external
Remarks
interrupt signal, a high performance
CPU is required.

9.2.1 Reference pulse interpolators


9.2.1.1 Software DDA interpolator

17
Software DDA interpolation algorithms originate from hardware DDAs and their
execution procedure is the same as the behavior of hardware DDAs.
a. Linear DDA interpolator
Flow chart of linear interpolation is shown in Fig.9.21.
The number of integration steps:
qx = qx + px
n= (9-54)
qx ≥ L
The initial steps:
px = ; py = ;
qx = qx - L
qx = 0 qy = 0
Ví dụ 9_4: A CNC machine using software DDA Pulse to X

interpolator generates the path from A(1mm,2mm) to


B(5mm,5mm) with speed V=50 (mm/minute). Know that
qy = qy + py
BLU=1(mm/xung):
a) Determine the length of L, interpolation time T.
qy ≥ L
b) Determine the initial values, and integration steps.
c) Show the waveforms of f, f0x, f0y, and the interpolation qy = qy - L
path from A to B.
Pulse to Y
Giải:
a)
Length from A to B: Hình 9.21 Flow chart of
linear interpolation
5 mm
Interpolation time:

T= = 0,1 minute

b)
The initial values:
px = = 4 mm py = = 3 mm
qx = 0 qy = 0

18
Integration steps:
Machine table X Machine table Y
STT
px qx z x zx py qy z y zy
0 4 0 0 0 3 0 0 0
1 4 4 0 0 3 3 0 0
2 4 3 1 1 3 1 1 1
3 4 2 1 2 3 4 0 1
4 4 1 1 3 3 2 1 2
5 4 0 1 4 3 0 1 3
c)
y
The waveforms of f, f0x, f0y:
f B
f0x
f0y
The interpolation path (hình 9.22): qy = qy + py
x
OA
Hình 9.22 The integration
qy ≥ R
b. Circular DDA interpolator path.
.
Flow chart of circular DDA
qy = qy - R
interpolation is shown in Fig.9.23. (circular arc of group I).
The initial values:
px = px + 1
px = = R sinα py = = R cosα
qx = 0 qy = 0
Xuất xung
Ví dụ 9_5: A CNC machine using a software DDA tới trục Y
interpolator generates the circular arc with radius R=12mm
from A(0,0) to B(12,12mm) as shown in Fig. 9.14. Know that qx = qx + px
BLU=1(mm/pulse),
a) Determine the initial values. qx ≥ R
b) Determine the integration steps.
c) Show the waveforms of f, f0x, f0y, and interpolation path. qx = qx - R
Solution:
a) The initial values: py = py - 1
px = = R sinα py = = R cosα
qx = 0 qy = 0 Xuất xung
tới trục X

19
Hình 9.23 Flow chart of
circular DDA interpolation.
b)
Integration steps:
TT py qy z y zy px qx z x zx
0 12 0 0 0 0 0 0 0
1 12 0 1 1 1 1 0 0
2 12 0 1 2 2 3 0 0
3 12 0 1 3 3 6 0 0
4 12 0 1 4 4 10 0 0
5 12 0 1 5 5 3 1 1
6 11 11 0 5 5 8 0 1
7 11 10 1 6 6 2 1 2
8 10 8 1 7 7 9 0 2
9 10 6 1 8 8 5 1 3
10 9 3 1 9 9 2 1 4
11 8 11 0 9 9 11 0 4
12 8 7 1 10 10 9 1 5
13 7 2 1 11 11 8 1 6
14 6 8 0 11 11 7 1 7
15 5 1 1 12 12 7 1 8
16 4 5 0 12 12 7 1 9
17 3 8 0 12 12 7 1 10
18 2 10 0 12 12 7 1 11
19 1 11 0 12 12 7 1 12
20 0 12
c)

The waveforms of f, f0x, f0y:


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
f
f0x
f0y
The interpolation path from A to B:
y
Thực
tế B(12,12)

10

5

thuyết

x
A(0,0) 5 10

Hình 9.24 The interpolation path from A to B .


20
9.2.1.2 Stairs Approximation Algorithm
a. Software Circular Stairs Approximation Interpolator
The Stairs Approximation algorithm, termed an incremental interpolator,
determines the direction of the step for every BLU interval and sends the pulse to the
related axis. In this section, the Stairs Approximation interpolator for a circle will be
addressed and the algorithm for a line can be easily determined from the algorithm for
a circle. Figure 9.26 shows how the Stairs Approximation interpolator for a circle
behaves in the case that the commanded circular movement is in the clockwise
direction in the first quadrant with respect to the center of the circle.

y
y

b a f e

x
O O
x

c d g h

Hình 9.25 CW circle and CCW with 8 circular arcs.


y

K K+1
(xk,yk) (xk+1,yk+1)

x
O B
Hình 9.26 The behavior of SA
interpolation algorithm.

21
Assume that the tool reaches the position (Xk,Yk) after the ith iteration. In this
algorithm, the variable Dk is calculated by Eq. 9.55.
Dk = - R2 (9-55)

The direction of a step is determined based on D k, the commanded circular direction,


and the quadrant where movement is done. For example, if the circular movement is
carried out in a clockwise direction in the first quadrant, the algorithm executed is as
below.
1. Dk < 0: This case means that the position (X k,Yk) is located on the inside of a circle
and, in this case, the step moves in the positive direction of X-axis.
2. Dk > 0: This case means that the position (X k,Yk) is located on the outside of a circle
and, in this case, the step is moved in the negative direction of the Y-axis.
3. Dk =0: One of the above rules can be arbitrarily selected and applied.

After one step is completed by applying the above rules, the


position(Xk+1,Yk+1) is updated and the procedure repeated until the tool reaches the
position commanded, (Xf,Yf).
Table 9.1, shows the displacement values for the eight cases of the Stairs
Approximation algorithm, which can calculate a total of eight different cases
according to the quadrant.

Table 9.1 Sign of D and directions of interpolation of 8 circular quadrants

TT Quadrant Direction D<0 D>0


1 a CW x+ y-
2 b CW y+ x+
3 c CW x- y+
4 d CW y- x-
5 e CCW y+ x-
6 f CCW x- y-
y 7 g CCW y-y x+
a. b.
8 h CCW x+ y+

A A
(xA,yA) (xA,yA) (xi,yj)
(xi,yj) (xi+1,yj)

(xi,yj+1)

22
x x
O O
B (xB,yB) B (xB,yB)
Hình 9.27 The direction of movement:
a. From (xi,yj) to (xi+1,yj)
b. From (xi,yj) to (x,yj+1)
If the current position of cutting tool is (xi,yj), Di,j can be determined by Eq.9.56:

Di,j = - R2 (9-56)
In Eq. 9.56, i and j respectively denote the number of steps along the X-axis and theY-
axis. When one step is added along the X-axis from (x i,yj) to (xi+1,yj) as shown in Fig.
9.27a, Eq.9.56 is changed to Eq.9.57:
Di+1,j = - R2 (9-57)
Di+1,j = - R2
Di+1,j = - R2 + 2xi +1
or: Di+1,j = Di,j + xi (9-58)

with: xi = 2xi +1 (9-59)

thus: xi+1 = 2xi+1 +1


xi+1 = 2(xi +1) +1
so: xi+1 = 2xi +1 +2
xi+1 = xi +2 (9-60)
When one step is added along the X-axis from (x i,yj) to (xi,yj+1) as shown in Fig.
9.27b, Eq.9.56 is changed to Eq.9.61::

Di,j+1 = - R2 (9-61)
Di,j+1 = - R2
Di,j+1 = - R2 - 2yj +1

23
or: Di,j+1 = Di,j + yj (9-62)
with: yj = -2yj +1 (9-63)
thus: yj+1 = -2yj+1 +1
yj+1 = -2(yj -1) +1
so: yj+1 = -2yj +1 +2
yj+1 = yj +2 (9-64)
Flow chart of SA interpolation algorithm is shown in Fig. 9.28
x=x0=xA; xf = ; y=y0=yA; yf =
x =x0=2x0 +1; y = y0 = -2y0 +1; D = 0
x = x0 = xA; y = y0 = yA;
xf =; yf =; D=0; x=2x0 +1;
y=-2y0 +1

Đ S
D>0

D = D + y D = D + x
y = y + 2 x = x + 2
y = y -1 x = x +1
yf = yf -1 xf = xf -1
Pulse to Y- Pulse to X+

xf = 0 S

yf = 0 S

Hình 9.28 Flow chart of


SA interpolation algorithm.
This algorithm requires a small amount of computation and less memory space.
However, numerous iterations are required and N, the number of iteration steps, can be
calculated using the formula :

24
N =|X0−Xf|+|Y0−Yf|, (X0,Y0): Start
position, (Xf,Yf) : Final position y
Example 9_4: A CNC machine using software
SA interpolator generates the path from
A(0,R)
A(0mm,10mm) to B(10mm,0mm) as shown in Fig.
9.29. Know that BLU=1(mm/pulse):
a) Determine the initial values, and integration steps. R
b) Show the waveforms of f, f0x, f0y, and the x
interpolation path from A to B. 0 B(R,0)
Solution: Hình 9.29 AB arc.
a) Initial values:
x0 = xA = 0 ; y0 = yA = 10 ; x = 2x0 +1 = 1; y = -2y0 + 1 = -19 ;
xf = 10 ; yf = 10 ; D = 0 ; x = xA = 0 ; y = yA = 10 .
Interpolation steps:

TT D x Xung x+ xf x y Xung y- yf y


0 0 1 0 10 0 -19 0 10 10
1 1 3 1 9 1 -19 0 10 10
2 -18 3 0 9 1 -17 1 9 9
3 -15 5 1 8 2 -17 0 9 9
4 -10 7 1 7 3 -17 0 9 9
5 -3 9 1 6 4 -17 0 9 9
6 6 11 1 7 5 -17 0 9 9
7 -11 11 0 7 5 -15 1 8 8
8 0 13 1 4 6 -15 0 8 8
9 13 15 1 3 7 -15 0 8 8
10 -2 15 0 3 7 -13 1 7 7
11 13 17 1 2 8 -13 0 7 7
12 0 17 0 2 8 -11 1 6 6
13 17 19 1 1 9 -11 0 6 6
14 6 19 0 1 9 -9 1 5 5
15 -3 19 0 1 9 -7 1 4 4
16 16 21 1 0 10 -7 0 4 4
17 9 21 0 0 10 -5 1 3 3
18 4 21 0 0 10 -3 1 2 2
19 1 21 0 0 10 -1 1 1 1
20 0 21 0 0 10 1 1 0 0

b) The waveform of f0, f0x, f0y:


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
f
f0x
f0y

25
The interpolation path: y

A(0,10) Real

5
ideal
Figure 9.30 The interpolation path of AB arc.

x
O
5 B(10,0)

Y y
'

YB B

b. Software linear SA interpolation algorithm

O’ x
YA
A
26
X
O
XA XB
Hình 9.31 Line AB.
(xi,yj)

Assume that a CNC machine using software SA interpolator generates the linear path
from A(XA,YA) to B(XB,YB) in the Cartesian coordinate system (OXY) as shown in
Fig. 9.31 and know that BLU=1(mm/pulse), the equation of line AB in the coordinate
system is:

y= (9-65)

asign: α= (9-66)

deduce: y = αx (9-67)
If the position of the cutting tool is (xi,yj), Di,j can be determined:
Di,j = yj - αxi (9-68)
If Di,j>0, the point (xi,yj) lies above the line AB, thus the next point that the
cutting tool will get to is the point (xi+1,yj) in the direction of x+, we have:
Di+1,j = yj – αxi+1 (9-69)
Di+1,j = yj – α(xi+1)
Di+1,j = Di,j – α
với x = –α (9-70)
Di+1,j = Di,j + x (9-71)
If Di,j<0, the point (xi,yj) lies below the line AB, so the next point that the cutting
tool will go to is the point (xi,yj+1) in the direction of y+, thus:
Di,j+1 = yj+1 – αxi (9-72)
Di,j+1 = (yj+1) – αxi
Di,j+1 = Di,j +1
với y = 1 (9-73)

27
Di,j+1 = Di,j + y (9-74)
If Di,j = 0, the point (xi,yj) lies on the line AB, the next point can be one of the
two above cases.
The above analysis helps us to generate the SA linear interpolation algorithm of
the line AB in the first quater of the coordinate system in Fig. 9.31 as follows:

x=x0=xA=0; y=y0=yA=0;
xf =;yf =;
x=-α; y=1; D=0

Đ S
D<0

D = D + y D = D + x
y = y +1 x = x +1
yf = yf -1 xf = xf -1
Xung tới y Xung tới x

xf = 0 S

yf = 0 S

Đ nội suy đường thẳng


Hình 9.32 Lưu đồ giải thuật
theo phương pháp xấp xỉ bậc thang.

Tổng số lần nội suy là n=( + )/BLU

Example 9_7: A CNC machine using software SA interpolator generates the


linear path from A(0mm,0mm) to B(5mm,10mm) as shown in Fig. 9.31. Know that
BLU=1(mm/pulse):
(The part program:
G00 X0 Y0 Z2
G01 Z-2
G01 X5 Y10 )

28
a) Determine the initial values, and integration steps.
b) Show the waveforms of f, f0x, f0y, and the interpolation path from A to B.

Solution:
a) The initial values:
x = x0 = xA = 0 ; y = y0 = yA = 0 ; x = -2; y = 1 ; xf = 5 ; yf = 10 ; D = 0 .
Kết quả nội suy theo phương pháp xấp xỉ bậc thang:

TT D x Xung x+ xf x y Xung y- yf y


0 0 -2 0 5 0 1 0 10 0
1 -2 -2 1 4 1 1 0 10 0
2 -1 -2 0 4 1 1 1 9 1
3 0 -2 0 4 1 1 1 8 2
4 -2 -2 1 3 2 1 0 8 2
5 -1 -2 0 3 2 1 1 7 3
6 0 -2 0 3 2 1 1 6 4
7 -2 -2 1 2 3 1 0 6 4
8 -1 -2 0 2 3 1 1 5 5
9 0 -2 0 2 3 1 1 4 6
10 -2 -2 1 1 4 1 0 4 6
11 -1 -2 0 1 4 1 1 3 7
12 0 -2 0 1 4 1 1 2 8
13 -2 -2 1 0 5 1 0 2 8
14 -1 -2 0 0 5 1 1 1 9
15 0 -2 0 0 5 1 1 0 10

b) Biểu đồ tần số f0, f0x, f0y: y


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Lý B(5,10)
f 10
thuyết
f0x Thực
f0y tế

Quỹ đạo dao theo giải thuật xấp xỉ bậc thang:


5

O x
Hình 9.33 Quỹ đạo dao gia công đường thẳng AB A(0,0) 5
theo giải thuật xấp xỉ bậc thang.

9.2.1.3 Giải thuật nội suy tìm kiếm trực tiếp DS (Direct search)

29
One of the weaknesses of the Stairs Approximation algorithm is that a lot of
iterations are required because simultaneous movement of axes is not considered in the
algorithm. Furthermore, possible error conditions are not considered when the
interpolated position is decided. As an alternative, the Direct Search algorithm, which
is introduced in this section, carries out optimal interpolation because the algorithm
searches through all possible directions and finds a direction with the minimum path
error. Basically, the Direct Search algorithm is very similar to the Stairs
Approximation algorithm. x=x 0=xA;y=ythe
However, 0=yA;D=0;
Direct Search algorithm considers the
D1=0; D2=0; D3=0;
simultaneous movement of axesxbased on path error, in contrast to the Stairs
f =;yf =;

Approximation algorithm. x=2x0 +1;y=-2y0 +1;


The Direct Search algorithm searches all possible points that can move from the
D1 =
present position, and finds a point having minimum error by estimating Di,j at possible
D2 =
points: D3 =
1) Increasing 1 BLU for the X-direction: D1 =
2) Increasing 1 BLU for the Y-direction: D2 =
3) Increasing 1 BLU Sfor the X-direction andĐ simultaneously decreasing 1 BLU
D1  D 2
for the Y-direction: D3 =
The third case is different from the Stairs Approximation algorithm.
The
D 2 Di,j
 D3for each
S case is evaluated and the case S
with smallest
D1  Dabsolute value is
3
selected for movement. Figure 9.34 shows the flow chart of the Direct Search
Đ Đ
algorithm for clockwise circular movement in the first quadrant.
D = D + y D = D + x + y D = D + x
y = y + 2 x = x + 2 x = x + 2
y = y -1 y = y + 2 x = x +1
yf = yf -1 x = x +1 xf = xf -1
Xung y- y = y-1 Xung x+
xf = xf -1
yf = yf -1
Xung x+ và y-

xf = 0 S

yf = 0 S

Đ
30
Hình 9.34 Flow chart of Direct search algorithm
of a circular arc.
y

Example 9_4: A CNC machine using software


DS interpolator generates the path from A(0,R)
A(0mm,10mm) to B(10mm,0mm) as shown in Fig.
9.35. Know that BLU=1(mm/pulse): R
x
0 B(R,0) 31
Hình 9.35 AB arc.
a) Determine the initial values, and integration steps.
b) Show the waveforms of f, f0x, f0y, and the interpolation path from A to B.
Solution
a) Initial values:
x0 = xA = 0 ; y0 = yA = 10 ; x = 2x0 +1 = 1; y = -2y0 + 1 = -19 ;
xf = 10 ; yf = 10 ; D = D1 = D2 = D3 = 0 ; x = xA = 0 ; y = yA = 10 .
The result of interpolation:
STT D D1 D2 D3 x Xung x+ xf X ∆y Xung y- ∆yf y
0 0 0 0 0 1 0 10 0 -19 0 10 10
1 1 1 -19 -18 3 1 9 1 -19 0 10 10
2 4 4 -18 -15 5 1 8 2 -19 0 10 10
3 9 9 -15 -10 7 1 7 3 -19 0 10 10
4 -3 16 -10 -3 9 1 6 4 -17 1 9 9
5 6 6 -20 -11 11 1 5 5 -17 0 9 9
6 0 17 -11 0 13 1 4 6 -15 1 8 8
7 -2 13 -15 -2 15 1 3 7 -13 1 7 7
8 0 13 -15 0 17 1 2 8 -11 1 6 6
9 6 17 -11 6 19 1 1 9 -9 1 5 5
10 -3 25 -3 16 19 0 1 9 -7 1 4 4
11 9 16 -10 9 21 1 0 10 -5 1 3 3
12 4 30 4 25 21 0 0 10 -3 1 2 2
13 1 25 1 22 21 0 0 10 -1 1 1 1
14 0 22 0 21 21 0 0 10 1 1 0 0

b) The waveform of f0, f0x, f0y:

1 2 3 4 5 6 7 8 9 10 11 12 13 14
f
f0x
y f0y
Real

Interpolated path: A(0,10)

5
Ideal

x
O
5 B(10,0)
32
Figure 9.36 Interpolated path of AB arc.
Remark: Evaluation of DDA, SA, DS algorithms.
ERi = Ri – R = –R (9.75)

Bảng 9.2 Sai số ER khi R thay đổi.

B.kính R=10 R=20 R=50 R=100


n.suy (BLU) (BLU) (BLU) (BLU)

N N N ERmax N

DDA 16 0,440 32 0,308 79 0,080 157 0,090


Stairs 20 0,945 40 0,487 100 0,099 200 0,099
DSM 14 0,440 28 0,198 71 0,050 141 0,050
B.kính R=200 R=800 R=1600 R=3200
n.suy (BLU) (BLU) (BLU) (BLU)

N N N ERmax N Figure 9.37 Radial error ER.


DDA 314 0,090 1257 0,100 2513 0,098 5027 0,1
Stairs 399 0,100 1600 0,100 3200 0,1 6399 0,1
DSM 282 0,050 1131 0,050 2263 0,05 4524 0,050

The relationship between ER and R:

ERmax

33
RS
Figure 9.38 The relationship between ER and R.
R

Figure 9.39 The relationship between N (the number of iteration steps and R.

Table 9.3 The parameters of DDA, SA and DS.


Algorithm N V Vmax Vmin
DDA (/2) R f f f
SA 2R (/4) f f
DS f

34
9.2.2 Các giải thuật nội suy phần mềm dùng cho hệ CNC lấy mẫu
9.2.2.1 Giải thuật nội suy từ chuẩn cho đường thẳng
Trong giải thuật nội suy từ chuẩn, nội suy đường thẳng rất đơn giản so với nội
suy đường tròn. Khái niệm và lưu đồ cho nội suy từ chuẩn cho đường thẳng được cho
trong hình 9.40.

a.

c.

b.

Hình 9.40 Nội suy từ chuẩn cho đường thẳng.

Hình 9.40 trình bày quá trình nội suy đường thẳng theo giải thuật từ chuẩn. Hình
9.40a cho thấy toàn bộ đoạn thẳng gia công từ điểm đầu (x s,ys) đến điểm cuối (xe,ye)
với vận tốc V, đoạn thẳng này tạo với trục hoành góc , những phân đoạn ∆L hay
những điểm nội suy Pi để di chuyển đến ở mỗi khoảng thời gian nội suy T ipo, và gia
lượng của trục x là ∆x và của trục y là ∆y ứng với mỗi khoảng thời gian nội suy này.
Như vậy, ý tưởng cơ bản của giải thuật này là phân đoạn đường thẳng gia công bởi
mỗi khoảng thời gian nội suy T ipo. Tại mỗi khoảng thời gian lấy mẫu này, điểm được

35
nội suy có thể được xác định như trong phương trình (9.76), mà trong đó lượng dịch
chuyển của mỗi trục được cho bởi phương trình (9.77).
xi+1 = xi + x;
(9.76)
yi+1 = yi + y

x = L.cos = L.
(9.77)
y = L.sin = L.

L = V.Tipo (9.78)
L= (9.79)
V = V0 . feed override (9.80)
Trong phương trình (9.78), đoạn thẳng ∆L phụ thuộc vào vận tốc V. Vận tốc V
thì được xác định bởi phương trình (9.80) khi mà vận tốc điều khiển V0 được xác định
trong chương trình gia công được bù trừ bởi việc hiệu chỉnh tốc độ chạy dao.
Hình 9.40b trình bày lưu đồ nội suy từ chuẩn cho đường thẳng được suy ra từ các
phương trình ở trên. Hình 9.40c chỉ ra số lượng gia lượng (x và y) cho các trục x và
y trong mỗi khoảng thời gian nội suy Tipo. Tổng số lần nội suy được tính như dưới đây:

N= (9.81)

Gia lượng của mỗi trục sẽ được truyền đến vùng đệm FIFO trong mỗi khoảng
thời gian nội suy Tipo và gia lượng này cũng là tín hiệu đầu vào (input) của bộ điều
khiển tăng tốc/giảm tốc. Nói chung, bởi vì tốc độ chạy dao không đổi được cấp phát
trong từng khối lệnh trong chương trình gia công chi tiết, ∆x và ∆y giữ cho tốc độ
chạy dao không đổi. Tuy nhiên, nếu việc hiệu chỉnh tốc độ chạy dao được thực thi, gia
lượng của mỗi trục có thể bị thay đổi trong mỗi khoảng thời gian nội suy.
Tới đây, xuất hiện một câu hỏi. Khi chiều dài của đoạn thẳng L, không chính xác là
N lần ∆L, (trong đó N là số nguyên), mà còn có phần dư nhỏ hơn ∆L, làm thế nào để
nội suy lượng chiều dài còn lại (phần dư)? Phương pháp điển hình cho việc xử lý
lượng chiều dài còn dư là chia nó thành các phần bằng nhau và cấp phát thêm những
phần chia này cho mỗi lần nội suy. Ví dụ, nếu chiều dài còn lại là 10, sau đó thêm vào
1 cho mỗi giá trị nội suy từ lần đầu tiên đến lần nội suy thứ 10. Phương pháp này đòi

36
hỏi công suất tính toán lớn mặc dù vận tốc được duy trì không đổi. Vì vậy, cách tốt
nhất và thiết thực của việc giải quyết chiều dài còn dư là thêm vào toàn bộ chiều dài
còn dư vào giá trị nội suy ở lần nội suy sau cùng. Điều này không hề ảnh hưởng đến
độ chính xác gia công.
9.2.2.2 Giải thuật nội suy từ chuẩn cho cung tròn
Giả sử cần gia công cung tròn AB với vận tốc V như trên hình 9.41. Trong suốt
quá trình nội suy đường tròn, vận tốc tiếp tuyến V cần được giữ ổn định trên đường
tròn. Vận tốc riêng lẻ của các trục được xác định bởi phương trình (9.82):
Vx(t) = V.sin(t)
(9.82)
Vy(t) = V.cos(t)
trong đó:
(t) là góc nội suy ở thời điểm t
(t) = (V.t/R) (9.83)
Vận tốc của các trục (Vx, Vy) được tính
toán bởi bộ nội suy đường tròn và được đưa
B
vào vòng điều khiển kín của bộ điều khiển vị
trí giống như là tín hiệu đầu vào chuẩn. Trong
nội suy từ chuẩn cho cung tròn, đoạn cung nội
suy được xấp xỉ gần đúng bằng nhiều phân
đoạn thẳng bằng nhau. Các phân đoạn thẳng
này được tạo ra bằng cách chia cung cần nội
suy AB thành nhiều cung bằng nhau, mỗi
cung có độ lớn góc là α; góc α chính là góc O
A
gia lượng sau mỗi lần nội suy. Số lượng phân Hình 9.41 Nội suy từ chuẩn cho cung tròn.
đoạn càng lớn thì nội suy càng chính xác. Tuy
nhiên, khả năng tính toán được yêu cầu mạnh hơn khi số lần nội suy tăng lên. Vì vậy,
cần thiết phải tối ưu số phân đoạn sao cho sai số của cung tròn nội suy nhỏ hơn hoặc
bằng 1 BLU. Việc xác định số phân đoạn hợp lý thực chất là xác định góc  hợp lý.
Giá trị góc  là yếu tố then chốt cho nội suy từ chuẩn. Với các cách xác định góc 
khác nhau dẫn đến các giải thuật khác nhau.

37
Hình 9.41 mô tả quan hệ giữa hai điểm nội suy liên tiếp. Điểm thứ i có tọa độ
(xi,yi) và điểm tiếp theo thứ i+1 có tọa độ (x i+1,yi+1); trong đó góc nội suy tại điểm thứ i
là i và góc nội suy tại điểm thứ i+1 là i+1. Quan hệ giữa i và i+1 là:
i+1 = i + α (9.84)
Do vậy cosi+1 = cos(i+ α)
(9.85)
sini+1 = sin(i+ α)
hay cosi+1 = cosi.cosα - sini.sinα
(9.86)
sini+1 = sini.cosα + sinα.cosi
Đặt: A = cosα ; B = sinα (9.87)
suy ra: cosi+1 = A.cosi – B.sini
(9.88)
sini+1 = A.sini + B.cosi
Mặt khác, tọa độ điểm nội suy thứ i được xác định như sau:
xi = R.cosi
(9.89)
yi = R.sini
Tương tự:
xi+1 = R.cosi+1
(9.90)
yi+1 = R.sini+1
Thay biểu thức (9.88) vào phương trình (9.90) và cùng với phương trình (9.89),
dễ dàng suy ra được vị trí điểm nội suy tiếp theo i+1 là:
xi+1 = A.xi – B.yi
(9.91)
yi+1 = A.yi + B.xi

Như đã nói ở trên, các giải thuật nội suy từ chuẩn được trình bày trong chương
này phụ thuộc vào những phương trình ở trên và sự khác nhau giữa các giải thuật này
chính là ở các phương pháp được sử dụng để xác định góc  và cách thức để xấp xỉ
gần đúng A và B trong phương trình (9.91).
Nếu góc  được xác định mà không quan tâm đến loại giải thuật nào, thủ tục nội
suy tiếp theo được thực thi ở mỗi bước lặp. Vị trí bắt đầu và vận tốc được cho bởi
chương trình gia công chi tiết.
Giả sử dao đang ở vị trí điểm nội suy thứ i có tọa độ (x i,yi), từ phương trình
(9.91) và các giá trị A, B đã biết (góc  đã được xác định), tọa độ điểm nội suy tiếp

38
theo (xi+1,yi+1) có thể được tính toán. Và vì vậy, chiều dài đoạn thẳng Ds i từ điểm i đến
i+1 (chiều dài dây cung) được xác định thông qua việc tính toán các đoạn gia lượng
Dxi theo phương x và Dyi theo phương y cũng như xác định vận tốc của các trục theo
phương x và y.
Dxi và Dyi được xác định theo phương trình:
Dxi = xi+1 – xi = (A-1).xi – B.yi
(9.92)
Dyi = yi+1 – yi = (A-1).yi + B.xi
Do vậy: Dsi = (9.93)
Vận tốc của các trục theo phương x và y từ điểm nội suy thứ i đến điểm i+1 là:

Vx(i) =
(9.94)
Vy(i) =

Dxi và Dyi (lần lượt là gia lượng dọc theo các trục x và y); V x(i) và Vy(i) (lần lượt
là vận tốc theo trục x và y) được gọi là các từ chuẩn cho các trục x và y tương ứng.
Những giá trị này được truyền đến chương trình điều khiển gia tốc/giảm tốc thông qua
bộ đếm FIFO. Sử dụng những thông tin này, chương trình con nội suy luôn cập nhật
điểm nội suy tức thời (xi,yi).

9.2.2.3 Sai số bán kính và sai số chiều cao dây cung

Sai số bán kính ER và sai số chiều cao dây cung EH (hình 9.42) là cơ sở cho việc
xác định góc . Hai loại sai số này xảy ra khi một cung tròn được xấp xỉ bởi những
đoạn thẳng. Giả sử ta cần gia công cung tròn AB tâm O, bán kính R như trên hình
9.42. Do điểm nội suy thứ i (x i,yi) có khả năng không nằm trên quĩ đạo cung tròn lý
tưởng tâm O, bán kính R nên tạo ra sai số bán kính ER i chính là khoảng cách từ điểm i
đến cung tròn lý tưởng. Sai số bán kính này được tính như sau:

ERi = Ri – R = –R (9.95)

Thay x1 = A.x0 – B.y0


y1 = A.y0 + B.x0
vào phương trình (9.95) với i =1:

39
ER1 = R0. –R
vì (x0,y0) là điểm xuất phát trên cung tròn nên: R0 = R
do vậy: ER1 = R. –R
ER1 = .R (9.96)
Do ER là một sai số từ ảnh hưởng của sự cắt xén và sai số này được tích lũy bởi
số lần lặp lại nên có thể xem ERi có giá trị gần đúng là i lần ER1, vì vậy:
ERi = i. .R (9.97)

i+1
B

O A
Hình 9.42 Sai số bán kính và sai số chiều cao dây cung.

Khác với sai số bán kính ER, sai số chiều cao dây cung EH không tích lũy. Xét
tam giác tạo bởi ba điểm O, i và i+1, ta thấy sai số chiều cao dây cung là hiệu của bán
kính cung tròn lý tưởng R và đường cao có đỉnh là O của tam giác trên, và được tính
theo biểu thức:

EHi = R – Ri.cos (9.98)

Do: cosα = 2.

nên: cos = = (9.99)


Thay biểu thức (9.99) vào biểu thức (9.98), ta được:
EHi = R – Ri. (9.100)

40
Dựa vào các phương trình ở trên,  nên được xác định sao cho giá trị của ER và
EH không vượt qua giá trị 1 BLU.
Trong thực tế đã có những phương pháp xác định góc  khác nhau tương ứng với
giải thuật khác nhau như giải thuật Euler, giải thuật Improved Euler, giải thuật Taylor,
giải thuật Tustin, giải thuật Improved Tustin…. Dưới đây là các giải thuật này.

9.2.2.4 Giải thuật Euler


Như trên ta đã đặt:
A = cos ; B = sin
Triển khai xấp xỉ cos và sin theo chuỗi Taylor, ta có:

cos = 1 - + - + (9.101)

sin =  - + - +
(9.102)
Trong giải thuật Euler, cos and sin được xấp xỉ gần đúng bởi khai triển chuỗi
Taylor bậc nhất; do vậy từ biểu thức (9.101) và (9.102) ta suy ra:
A = cos = 1
(9.103)
B = sin = 
Vì sự khai triển dãy bị cắt nên sai số bán kính ER có ảnh hưởng đến độ chính xác
của giải thuật. Sai số bán kính lớn nhất của giải thuật này được tính toán bằng phương
trình (9.104):

ERmax = (9.104)
Và nếu  nhỏ, sai số bán kính lớn nhất có thể được xấp xỉ gần đúng bởi phương
trình (9.105):

ERmax = (9.105)

Nếu ¼ cung tròn được nội suy sử dụng giải thuật này, góc  được tính từ phương
trình (9.105) với ERmax = 1 BLU là:

= (9.106)

Số lần lặp lại N khi nội suy ¼ cung tròn là thương số của góc /2 chia cho α:

41
N= =

hay N= (9.107)

9.2.2.5 Giải thuật Euler cải tiến (Improved Euler)


Giải thuật Euler cải tiến giống với giải thuật Euler nhưng khác ở chỗ x i+1 được sử
dụng để tính yi+1 thay vì xi trong phương trình (9.91):
xi+1 = A.xi – B.yi
(9.108)
yi+1 = A.yi + B.xi+1
xi+1 = xi – .yi
suy ra:
yi+1 = yi + .(xi – .yi)
xi+1 = xi – .yi
(9.109)
yi+1 = (1- 2).yi + .xi
trong đó giá trị trung bình của hệ số A trong phương trình (9.109) xấp xỉ với giá
trị được xác định trong phương trình (9.110) và gần với giá trị cos khi khai triển
chuỗi Taylor bậc 2:

A = cos = (1+(1- 2)) = 1 - α2 (9.110)


Sai số bán kính ER của giải thuật Euler cải tiến cực đại tại góc nội suy =/4
hoặc khi phép lặp mà thỏa mãn phương trình (9.111).
xi = (1+α).yi (9.111)
Khi sử dụng giải thuật Euler cải tiến, góc  được xác định theo phương trình
(9.112) và số bước lặp cho nội suy ¼ đường tròn theo biểu thức (9.113):

α= (9.112)

N= = (9.113)

9.2.2.6 Giải thuật Taylor

Trong giải thuật Taylor, hệ số A được chọn là giá trị cosα được xấp xỉ gần đúng
bởi khai triển chuỗi Taylor bậc hai và B được chọn là giá trị sinα được xấp xỉ gần đúng

42
bởi khai triển chuỗi Taylor bậc nhất. Dễ thấy rằng, hệ số A trong phương trình (9.114)
bằng với giá trị trung bình của hệ số A trong giải thuật Euler cải tiến.

A = cos = 1 - α2
(9.114)
B = sin = 
Thay biểu thức (9.114) vào phương trình (9.97) với số lần lặp lại lớn nhất i=N=

= , ta tính được sai số bán kính cực đại như sau:

ERmax =

ERmax (9.115)

Tương tự, từ (9.114) và (9.100) suy ra được sai số dây cung theo phương trình:

EHi = R – Ri

EHi R – Ri + (9.116)

EHi đạt giá trị lớn nhất khi Ri đạt giá trị nhỏ nhất, tức Ri = R, vì vậy:

EHmax = (9.117)

Phương trình (9.115) và (9.117) cho thấy mối quan hệ giữa sai số bán kính lớn
nhất và sai số dây cung lớn nhất là:

ERmax EHmax (9.118)

Từ phương trình 9.118, chúng ta thấy rằng nếu góc  nhỏ hơn 2/, sai số chiều
cao dây cung EH lớn hơn sai số bán kính ER. Hình 9.38 cho ta thấy, khi R quá nhỏ sai
số ER sẽ lớn vì vậy khi R lớn hơn R S = 50BLU thì sai số ER sẽ nhỏ và ổn định. Như
vậy khi R lớn hơn RS thì <2/ được thỏa mãn và sai số EH lớn hơn ER.
Vì sai số chiều cao dây cung EH có giá trị cho phép lớn nhất là 1 BLU,  được
xác định từ phương trình (9.117):

 (9.119)
Số lần nội suy ¼ cung tròn theo giải thuật Taylor được xác định như sau:

43
N (9.120)

9.2.2.7 Giải thuật Tustin

Giải thuật Tustin dựa trên quan hệ xấp xỉ giữa các toán tử vi phân và biến rời rạc
z như được thể hiện trong phương trình (9.121).

s (9.121)

Dựa vào phương trình (9.121), A và B trong phương trình (9.87) có thể được xác
định như sau:

A B (9.122)
Thay hệ số A và B ở trên vào các phương trình (9.92), ta được:

Dxi

(9.123)
Dyi

Đạo hàm các phương trình (9.123):

Vx(i)
(9.124)
Vy(i)

Giải thuật Tustin gán sai số bán kính ER luôn bằng 0 (ER i = 0) tức là Ri luôn có
giá trị bằng R nên góc α được tính dựa trên sai số dây cung EH. Bằng cách thay giá trị
A trong biểu thức (9.122) vào phương trình (9.100), EH có thể được xác định:

EHi (9.125)

Nếu góc α rất nhỏ, EHi được tính gần đúng là:

EHi (9.126)

Suy ra α (9.127)

Vì R rất lớn hơn 1 nên:

44
α (9.128)

Số lần nội suy ¼ cung tròn theo giải thuật Tustin:

N (9.129)

9.2.2.8 Giải thuật Tustin cải tiến (Improved Tustin)

Giải thuật Tustin thiết lập giá trị ER = 0. Trong thực tế, ER có thể thiết lập tới giá
trị 1 BLU thay vì là 0. Làm điều này có thể gia tăng được góc  và vì vậy gia tăng
được hiệu quả của giải thuật. Dựa vào ý tưởng này, giải thuật Tustin cải tiến đã được
đề xuất. Xét tam giác vuông OiM (hình 9.43), xác định được:

(9.130)

Từ (9.99) và (9.128) ta có:

= = (9.131)

Từ đây có thể suy ra góc α:

α= (9.132)

Số lần nội suy theo giải thuật này là:

N (9.133)

M
i

O
Hình 9.43 Nội suy theo giải thuật Tustin cải tiến.
45
So với giải thuật Tustin, giải thuật này tăng góc  lên lần khi so sánh giữa biểu
thức (9.132) và (9.128). Ngoài ra, số bước lặp lại N cho nội suy ¼ đường tròn giảm (so
sánh giữa (9.133) và (9.129)). Trong giải thuật Tustin cải tiến sai số bán kính cực đại
ER và sai số chiều cao dây cung EH không nhất thiết phải có giá trị là 1 BLU, có
nghĩa là ER và EH có thể thiết lập ở một giá trị  BLU bất kỳ (với  < 1 BLU), điều
này có nghĩa là:
Ri = R + 
Do vậy:
(9.130)
suy ra:
α = 2.cos-1 (9.132)
Số lần nội suy:

N (9.133)

Nhận xét: Từ những phân tích ở trên, ta có thể tóm tắt các thông số về góc α và
số lần nội suy (hay số lần lặp lại) N của các giải thuật như sau:
Bảng 9.4 Góc α và số lần nội suy N của các giải thuật theo phương pháp lấy mẫu
Giải thuật α N

Euler

Euler cải tiến

Taylor

Tustin

Tustin cải tiến

Dựa vào bảng trên ta thấy góc α và số lần nội suy N trong giải thuật Tustin và
Taylor là giống nhau. Góc α của giải thuật Taylor và Tustin luôn lớn hơn góc α của
các giải thuật Euler và số lần nội suy N của các giải thuật này ít hơn so với số lần nội

46
suy của các giải thuật Euler. Vì vậy, hiệu quả nội suy của giải thuật Taylor và Tustin
cao hơn các giải thuật Euler.

9.2.2.9 Ví dụ về nội suy theo phương pháp từ chuẩn


Ví dụ 9-9: Một máy CNC được điều khiển bởi
y
bộ nội suy cung tròn bằng phần mềm theo phương
pháp từ chuẩn – Euler với bàn máy x, y có
B(0,R)
BLU=1mm. Giả sử dao cần nội suy theo cung tròn AB
bán kính cung tròn R=6mm; tọa độ điểm A(6,0) và
R
điểm B(0,6) như hình 1.
x
a. Xác định góc gia công  của cung tròn AB, xác O A(R,0)
Hình 1.
định số điểm nội suy N0, góc gia lượng .
b. Xác định các giá trị gia lượng và tọa độ các điểm nội suy cho cung tròn AB
theo phương pháp từ chuẩn – Euler.
Giải

a. Xác định , N0, :


* Góc nội suy cung tròn AB:
 = B - A = 900 = /2(radian)
* Áp dụng công thức (9.107), số điểm nội suy tối thiểu là

Nmin = = 7,4  chọn số điểm nội suy N0 = 10 điểm lớn hơn Nmin

* Góc gia lượng nội suy:

= = 90 ; đặt A = cos; B = sin

b. Các giá trị gia lượng Dxi, Dyi và tọa độ các điểm nội suy xi, yi của cung tròn AB:
Áp dụng công thức (9.92), ta có bảng giá trị Dxi, Dyi, xi, yi như dưới đây:

47
Từ các giá trị Dxi, Dyi ở bảng trên, áp dụng công thức (9.93) để xác định Ds i và
từ đó dùng công thức (9.94) để xác định các cặp giá trị vận tốc tức thời (Vx(i),Vy(i))
tương ứng. Các cặp giá trị này chính là dữ liệu đầu vào cho các bộ điều khiển servo
của các Các giá trị gia lượng Dxi,Dyi Tọa độ các điểm nội suy xi,yi bàn
TT
Dxi = (A-1).xi – B.yi Dyi = (A-1).yi + B.xi xi yi
máy X và Y.
1 0.07387 0.938604 5,92613 0.938604
2 0.21979 0.915494 5,70634 1,854098
9.3 Nội 3 0.3461 0.870959 5,36024 2.725057 suy
4 0.49193 0.802771 4,86831 3.527828
tinh
5 0.61145 0.715932 4,25686 4.243763
6 0.71591 0.611466 3,54095 4.855229
7 0.80275 0.491943 2,7382 5.347172 Khi
8 0.86982 0.360307 1,86838 5.707479
khoảng 9 0.91435 0.205604 0,95403 5.913083
thời
gian 10 0.93858 0.07388 0,01545 5.986963 nội suy
lấy mẫu cho nội suy thô và chuỗi xung sau khi tăng/giảm tốc lớn hơn khoảng thời gian
lấy mẫu điều khiển vị trí, nội suy tinh được thực hiện. Ví dụ, nếu khoảng thời gian cho
nội suy thô và tăng/giảm tốc là 4ms, và khoảng thời gian lấy mẫu cho điều khiển vị trí
là 1ms, thì chuỗi xung cho mỗi 4ms được chứa trong CPU chính, mà được nội suy tinh
cho mỗi 1ms bởi CPU có nhiệm vụ điều khiển chuyển động.
Trong thực tế, quá trình điều khiển tốc độ “gom” một lượng liên tiếp kết quả nội
suy lại với nhau ( có thể coi là số xung), sau đó tính toán vận tốc, bộ nội suy tinh có
nhiệm vụ chia tổng số xung dịch chuyển cho cả khoảng thời gian lấy mẫu một cách
hợp lý. Có nhiều phương pháp nội suy tinh:
- Phương pháp tuyến tính mà trong đó chuỗi xung của mỗi 4ms được chia thành
1ms.
- Và phương pháp trung bình dịch chuyển mà trong đó lượng trung bình dịch
chuyển của chuỗi xung được sử dụng để nội suy tinh.

48
Phương pháp nội suy tuyến tính:
Giả sử thời gian gom xung là 4ms, thời gian mỗi lần nội suy tinh là 1ms, bộ nội
suy tinh sẽ chia khoảng thời gian như sau:

(9.134)

Công thức trên thể hiện phương pháp nội suy tuyến tính, a(j) là số xung xuất ra
tại thời điểm nội suy thứ j, và p(i) là tổng số xung xuất ra sau khi điều khiển
tăng/giảm tốc trong khoảng thời gian gom xung i. t ipo là thời gian nội suy thô, N
là tỉ số giữa thời gian lặp lại nội suy và thời gian lặp lại điều khiển vị trí.

Hình 9.44 Nội suy tinh tuyến tính.

Phương pháp trung bình dịch chuyển:


Công thức (9.135) đặc trưng cho phương pháp trung bình dịch chuyển;
trong đó các hệ số a(j) được tính từ nội suy tuyến tính, b(j) và b’(j) là lượng dịch
chuyển được xác định từ các giá trị a(j) và N để suy ra lượng trung bình dịch
chuyển b”(j) :

(9.135)

Áp dụng các công thức tính ở trên, ta có thể tính được lượng trung bình
dịch chuyển b”(j) của chuỗi xung đã cho trên hình 9.44. Các giá trị b”(j) được thể
hiện trên hình 9.45.

b"(j)

49

Hình 9.45 Trung bình dịch chuyển của chuỗi xung trên hình 9.44.
9.4 Nội suy NURBS
9.4 .1 Mô hình đường cong NURBS
Một đường cong NURBS C(u) bậc p được định nghĩa:
1 voi : ui  u  ui 1
với
N i ,0 (u )   (9.136)
0 trường
truonghợphopkhác
khac

Pi (0 ≤ i ≤ n) là các điểm điều khiển, w i là các trọng số, Ni,p(u) là các hàm B-
Spline cơ sở được xác định dựa trên các véctơ nút U={u 0 , u1,…, um}, (m=n+p+1), các

ul (0 ≤ l ≤ m) là các nút.
u  ui ui  p 1  u
N i , p (u )  N i , p 1 (u )  Ni 1, p 1 (u ) (9.137)
ui  p  ui ui  p 1  ui 1

9.4.2 Những tính chất của đường cong NURBS


Đường cong NURBS có những tính chất quan trọng sau:
- Điều kiện (m = n+p+1) phải luôn luôn thỏa với đường cong NURBS
- Đường cong NURBS là trường hợp tổng quát của cả đường cong B-Spline,
Bézier hữu tỉ, Bézier
- Khi các w1= w2=…= wn=1 thì đường cong NURBS trở thành đường cong B-
Spline
- Khi n = p và có 2(p+1) = 2(n+1) nút với (p+1) nút đầu bằng không và (p+1) nút
cuối bằng một, tức là: u 0 = u1 = ….. = up = 0 và um-p = um-p+1 = …. = um = 1 thì

đường cong NURBS trở thành đường cong Bézier.


- Thay đổi trọng số wi của đường cong sẽ làm hình dáng của nó thay đổi theo.

50
- Thay đổi vị trí điểm điều khiển P i sẽ tác động đến hình dáng đường cong trong
khoảng [ui, ui+p+1].
9.4.3 Đạo hàm của đường cong
9.4.3.1 Đạo hàm
Đường cong đạo hàm bậc nhất, bậc hai của đường cong NURBS cũng là một
đường cong NURBS. Ta có:
w(u )C (u ) A(u )
C (u )   (9.138)
w(u ) w(u )
n

với: w(u )   N i , p (u ) wi và A(u) = w(u)C(u)


i 0

Do đó đạo hàm cấp một là:


w(u ) A '(u )  w '(u ) A(u )
C '(u ) 
w(u ) 2
w(u ) A '(u )  w '(u ) w(u )C (u )

w(u ) 2
A '(u )  w '(u )C (u )

w(u )

A '(u )  w '(u )C (u )
vậy: C '(u )  (9.139)
w(u )
Đạo hàm cấp thứ k là:
A(u) = w(u)C(u) (9.140)
Theo công thức Leibnitz:
k
k 
A(u )( k )  ( w(u )C (u )) ( k )    w(i ) (u )C ( k 1) (u )
i 0  i 

k
k 
 w(u )C ( k ) (u )    w(i ) (u )C ( k 1) (u ) (9.141)
i 0  i 
Vậy suy ra: k
k 
A( k ) (u )    w( i ) (u )C ( k 1) (u )
i 1  i 
C ( k ) (u )  (9.142)
w(u )

Các trường hợp đặc biệt:


p w1
C '(0)  ( P1  P0 )
u p 1 w0
(9.143)
p wn 1
C '(1)  ( Pn  Pn 1 )
1  um  p 1 wn

51
Khi w1= w2=…= wn= 1 thì đường cong NURBS trở thành đường cong B-spline:
n
C (u )   N i , p (u ) Pi (9.144)
i 0

Đạo hàm trong trường hợp này là:


Đạo hàm cấp 1:
n 1
C '(u )   N i 1, p 1 (u )Qi (9.145)
i 0

p
với: Qi  ( Pi 1  Pi )
ui  p 1  ui 1

Đạo hàm tại nút đầu và nút cuối:


p
C '(0)  ( P1  P0 )
u p 1
(9.146)
p
C '(1)  ( Pn  Pn 1 )
1  um  p 1

Đạo hàm cấp 2: n 1


C '(u )   N i  2, p  2 (u ) K i
i 0
(9.147)
p
với: Ki  (Qi 1  Qi )
u 'i  p 1  u 'i 1
9.4.3.2 Điều kiện liên tục
- Điều kiện liên tục vị trí: xét hai đoạn đường cong C 1 (u) và C2 (u) trên miền tham số u ∈
[0,1]. Để hai đoạn đường cong này kết nối với nhau, chúng phải thỏa điều kiện liên tục
vị trí như sau:
C1 (1)  C2 (0)

- Điều kiện liên tục bậc nhất C1: hai đoạn đường cong C1 (u) và C2 (u) được gọi là liên tục
bậc nhất tại điểm kết nối khi thỏa điền kiện sau:
C1 '(1)  C2 '(0)

-Điều kiện liên tục bậc hai C2: hai đoạn đường cong C1(u) và C2(u) được gọi là liên tục
bậc hai tại điểm kết nối khi thỏa các điều kiện sau:
C1 '(1)  C2 '(0)

C1 ''(1)  C2 ''(0)
9.4.4 Tính toán nội suy NURBS

52
9.4.4.1 Lý thuyết nội suy NURBS
Cho (n+1) điểm dữ liệu Q0, Q1, Q2, …, Qk (0 ≤ k ≤ n) tìm đường cong NURBS
C(u) có bậc là p, xây dựng dựa trên các điểm điều khiển Pi (chưa biết).
Với chuỗi điểm dữ liệu Q0, Q1, Q2, …, Qk (0 ≤ k ≤ n) cho trước thì luôn có một
đường cong NURBS C(u) bậc p đi qua chuỗi điểm đó.
Từ đó ta có: n
1
Qk  C (tk )  n N i, p (tk ) wi Pi (9.148)
N
i 0
i, p (tk ) wi i 0

hay: Q = N.P
với: Q0   P0 
Q  P 
 1  1
Q  Q2  P   P2 
   
   
Q  P 
 n  n

 w0 N 0, p (t0 ) w1 N1, p (t0 ) w2 N 2, p (t0 ) wn N n , p (t0 ) 


  
 A0 (t0 ) A0 (t0 ) A0 (t0 ) A0 (t0 ) 
 w0 N 0, p (t1 ) w1 N1, p (t1 ) w2 N 2, p (t1 ) w N (t ) 
  n n, p 1 
 A1 (t1 ) A1 (t1 ) A1 (t1 ) A1 (t1 ) 
 w N (t ) w1 N1, p (t2 ) w2 N 2, p (t2 ) wn N n , p (t2 ) 
N '   0 0, p 2   (9.149)
 A2 (t2 ) A2 (t2 ) A2 (t2 ) A2 (t2 ) 
 
 
 w0 N 0, p (tn ) w1 N1, p (tn ) w2 N 2, p (tn ) wn N n , p (tn ) 
  
 An (tn ) An (tn ) An (tn ) An (tn ) 
 
 
trong đó:
 A0 (t0 )   N 0, p (t0 ) N1, p (t0 ) N 2, p (t0 )  N n , p (t0 )   w0 
 A (t )   N (t ) 
N1, p (t1 ) N 2, p (t1 )  N n , p (t1 )   w1 
 1 1   0, p 1  
A   A2 (t2 )    N 0, p (t2 ) N1, p (t2 ) N 2, p (t2 )  N n , p (t 2 )    w2  (9.150)
     
     
 A (t )   N (t ) 
N1, p (tn ) N 2, p (tn )  N n , p (tn )   wn 
 n n   0, p n

Thông qua phép toán ma trận ta dễ dàng tìm được chuỗi điểm điều khiển.
9.4.4.2 Quy trình tính toán nội suy NURBS
9.4.4.2.1 Bước 1: Tính các giá trị tham số

53
Có nhiều phương pháp tính các giá trị tham số t i, ở đây xin được trình bày ba
phương pháp:
+ Phương pháp khoảng cách không đổi (Uniformly Spaced Method): phương
pháp này là phương pháp đơn giản nhất. Với một khoảng [a,b] cho trước, giá trị t i
tương ứng với (n+1) điểm dữ liệu là:
t0  a
ba
ti  a  i ; với: (0 ≤ i ≤ n -1) (9.151)
n
tn  b

Với mong muốn đường cong sẽ đi qua điểm dữ liệu đầu và cuối thì khi ấy t1= 0,
tn= 1 và khi ấy [a,b] = [0,1]
t0  0
i
ti  ; với: (0 ≤ i ≤ n-1) (9.152)
n
tn  1

+ Phương pháp hướng tâm (Centripetal method):


Với (n+1) điểm dữ liệu Q0, Q1, Q2, …, Qn và hệ số a cho trước ta có:
n
L   Qi  Qi 1
a
(9.153)
suy ra : i 1

 Q Q
a
i i 1
Lk  i 1 (9.154)
L

Như vậy các giá trị ti tương ứng với (n+1) điểm dữ liệu Q0, Q1, Q2, …, Qn là:

t0  0
1 k
tk   Qi  Qi 1
a
(9.155)
L i 1
tn  1
với t1 =0, tn =1 thì đường cong sẽ đi qua điểm dữ liệu đầu Q0 và cuối Qn.
+ Phương pháp độ dài cung (Chord Length Method): cho các điểm dữ liệu Q0,
Q1, Q2, …, Qn , khoảng cách từ Qi-1 đến Qi là và tổng chiều dài các đoạn thẳng
nối các điểm dữ liệu là:
n
L   Qi  Qi 1 (9.156)
i 1

54
Tỉ số giữa tổng chiều dài từ điểm dữ liệu Q 0 đến Qk trên tổng chiều dài các đoạn
thẳng nối các điểm dữ liệu là:

1 k
Lk   Qi  Qi 1
L i 1
(9.157)

Nếu xét trên đoạn [0,1] thì các giá trị ti là:
t0  0
1 k
tk   Qi  Qi 1
L i 1 (9.158)
tn  1

Nếu xét trên đoạn [a,b] thì các giá trị ti là:
t0  a
(b  a) k
tk  a   Qi  Qi1
L i 1
(9.159)

tn  b

9.4.4.2.2 Bước 2: Tính vectơ Knot


Có vài phương pháp tính véctơ Knot, ở đây xin được trình bày hai phương pháp:
- Phương pháp khoảng cách không đổi (Uniformly Spaced Method)
u0  u1  ........  u p  0
j
u j p 
n  p 1
um  p  um  p 1  ........  um  1

- Phương pháp trung bình (Average Method): Phương pháp này do Boor đề nghị

u0  u1  ........  u p  0
j  p 1
1
u j p 
p
u
i j
i

um  p  um  p 1  ........  um  1;  m  n  p  1

9.4.4.2.3 Bước 3: Tính các hàm B-spline cơ bản theo công thức
u  ui u u
N i , p (u )  N i , p 1 (u )  i  p 1 N i 1, p 1 (u )
ui  p  ui ui  p 1  ui 1
Với:
1 voi : ui  u  ui 1
N i ,0 (u )  
0 truong hop khac

55
9.4.4.3 Giải thuật nội suy NURBS

Đường cong NURBS

Tính toán vectơ nút U

Tính toán hàm cơ sở B-


Spline N

Thiết lập trọng số

Vẽ đường cong NURBS

Kết thúc

Hình 3.1. Lưu đồ giải thuật nội suy NURBS

Điểm dữ liệu
Qk từ bản vẽ
chi tiết hoặc
phần mềm
CAD/CAM

Tính toán giá trị tham


số nút tk

Tính toán vectơ nút U

m
Tính toán hàm cơ sở
Ni,p
m

TínhCho
toánu=0,
điểm điều
khiển Pi
56
ui= ui-1+Δu Tính toán nội
hàmsuy cơ sở Nhập điểm dữ liệu
mXuất điểm
u=1
Ni,pmới mới, số p mới
NURBS
57
9.4. Nội suy NURBS
Khi gia công với tốc độ cao, việc tính toán theo đường thẳng hoặc cung tròn tốn
nhiều thời gian và sai số lớn, do vậy, việc sử dụng các đường cong B-Spline cho phép
hệ thống điều khiển gia công nhanh và chính xác hơn.
9.4.1. Công thức dạng đường cong NURBS
Có nhiều mẫu công thức toán học cho từng loại đường cong : Bezier, B-spline và
NURBS để thể hiện các đường cong tự do. Trong số các công thức trên, NURBS là
mẫu phổ biến, là một giải pháp đặc biệt. Với hình dáng hình học của NURBS, có thể
thực hiện nội suy nhiều đường cong phức tạp, tốn ít dữ liệu và có thay đổi hình dạng
nhờ thay đổi các điểm điều khiển. Hiện nay, nội suy hình học NURBS được sử dụng
nhiều trong các hệ thống CAD/CAM.
Công thức thể hiện NURBS:

(9.136)

Ni,p(u) là điểm kiều khiển cơ bản của đường B-spline, được thể hiện trong công thức:

(9.137)

58
Trong các công thức trên, giá trị ui thể hiện các điểm điều khiển (nút), và đường cong
NURBS dựa trên các vector tạo từ các nút này. Vector điều khiển được thể hiện trong
công thức, mỗi giá trị ui lớn trong vector U đều lớn hơn hoặc bằng giá trị trước đó ui-1.

(9.138)

P thể hiện số bậc của đường cong B-spline. Pi thể hiện cho điểm điều khiển i,
và wi thể hiện cho “tọa độ” của Pi.
9.4.2. Các tính chất của dạng đường cong NURBS.
Các tính chất của đường cong NURBS dựa trên đường B-spline được tổng kết
như sau:
Nếu u không nằm trong [ui , ui+1+p+ ), Ni,p(u) = 0
U và p thỏa mãn, Ni,p(u) ≥0
P (a) = P0, P (b) = Pn, các đường cong NURBS đi qua các điểm điều khiển đầu
và các điểm điều khiển cuối.
Sự dịch chuyển của điểm điều khiển pi hoặc thay đổi wi ngay lậm tức làm thay
đổi đường cong.
Bằng việc thay đổi trọng số k, các điểm điều khiển, các vector nút, các đường
cong tự do ở nhiều dạng khác nhau đều có thể thể hiện qua NURBS.
9.4.3. Thuật toán nội suy NURBS
Nội suy NURBS được giới thiệu để sử dụng cho nội suy lấy mẫu. Thuật toán này
gồm 2 bước:
Bước 1: tính toán các điểm nội suy với sai số nội suy lớn nhất cho phép.
Bước 2: các điểm nội suy đó được tính toán xem có vượt quá khả năng tăng tốc của
hệ thống. Nếu cần thiết, một điểm nội suy mới có thể được tìm ra dựa vào khả

59
năng tăng tốc cho phép. Trong phần sau sẽ chỉ ra nguyên tắc hoạt động của thuật
toán
9.4.4. Lỗi khi nội suy NURBS
Trong nội suy lấy mẫu, tần số nội suy là cố định và tốc độ được quyết định dựa
vào độ dài của các đoạn thẳng nội suy nhỏ. Sai số của thuật toán phụ thuộc vào độ
cong của đường cong. Sai số nội suy h của đường cong tự do được tính toán theo
nguyên lý trên hình 4.15. Khoảng cách từ trung điểm của đường thẳng nối từ 2 điểm
nội suy liên tiếp tới cung tròn là h, nếu h lớn hơn giá trị nội suy lớn nhất cho phép, εmax
thì điểm nội suy tiếp theo sẽ chuyển thành (x’i+1, y’ i+1 ) gần với điểm ban đầu hơn.

Hình 4.15 Biểu đồ khi nội suy NURBS

Hình 9.46 Trung bình dịch chuyển của chuỗi xung trên hình 9.44.

Hình 4.16 thể hiện tính cong tại từng điểm riêng rẽ trên đường cong tự do, đặc tính
cong K và bán kính R được tính toán theo công thức dưới đây:

Với:

60
K : đặc tính cong.
R : bán kính của cung cong.
 Φ : góc thay đổi.
 S : chiều dài của cung gia công.
Cung PQ là một phần của đường trong bán kỉnh R và đặc tính cong K.

Hình 4.16: Tính toán lượng dịch chuyển khi nội suy NURBS
Sai số h được tính theo công thức sau :

Nếu độ dài cung tròn ∆s được coi xấp xỉ bằng chiều dài đoạn thẳng PQ, đặc tính cong
được tính toán như sau:

61
4.6.1 Thuật toán trong phần điều khiển tăng tốc giảm tốc.
Do giới hạn của hệ thống công nghệ, trong quá trình gia công, tốc độ động cơ cần phải được
điều khiển một cách chính xác theo các thông số cho phép của động cơ : thời gian tăng tốc,
giảm tốc, lượng thay đổi tốc độ tối đa cho phép. Do vậy cần phải có bộ điều khiển tăng/giảm
tốc ( bộ điều khiển gia tốc ) để đảm nhận quá trình này.
Có hai phương pháp điều khiển gia tốc được sử dụng tương ứng với hai loại cấu trúc của nhân
điều khiển số NCK đó là :
Điều khiển gia tốc sau nội suy.
Điều khiển gia tốc trước nội suy.
Điều khiển gia tốc sau nội suy
Trong điều khiển gia tốc sau nội suy, đầu tiên là nhân điều khiển số NCK có nhiệm vụ dịch
chương trình điều khiển sử dụng module dịch và tính toán lượng dịch chuyển cho mỗi trục, ∆
X, ∆ Y, ∆ Z cho mỗi lần nội suy dựa vào kết quả của module nội suy thô. Tiếp theo, tín hiệu
điều khiển gia tốc độc lập được gửi đến các trục, và tiếp theo là nhiệm vụ của nội suy tinh.
Cuối cùng, tổng lượng dịch chuyển của mỗi trục cho mỗi lần nội suy được tính toán bởi
module điều khiển vị trí.

62
Thuật toán điều khiển gia tốc sau nội suy khác vơi thuật toán điều khiển gia tốc trước nội suy.
Hình 4.19 thể hiện quá trình hoạt động của NCK khi điều khiển gia tốc sau nội suy. Thuật
toán này sẽ chờ thông số về các điểm nội suy,

Hình 4.19 Hoạt động của NCK điều khiển gia tốc sau nội suy
Điều khiển gia tốc sau nội suy là phương pháp được sử dụng trong các hệ thống NC và hệ
thống điều khiển chuyển động, trong cả nội suy phần cứng lẫn phần mềm. Bất kể phương
pháp thực hiện ra sao, thuật toán này không thay đổi. Trong phần này, nguyên lý điều khiển
( phần mềm) và phương pháp thực hiện bằng phần cứng sẽ được giới thiệu.
4.6.1.1 Điều khiển gia tốc sau nội suy sử dụng bộ lọc số.

Thuật toán điều khiển gia tốc sau nội suy dựa trên nguyên lý bộ lọc số. Dựa vào nguyên lý
này, nếu tín hiệu x[n] đi vào bộ lọc số với tín hiệu đáp ứng h[n], tín hiệu ra y[n] là một hàm
liên hệ bởi 2 giá trị trên theo công thức :

Công thức trên có thể viết lại dưới dạng:

Ví dụ với hàm đầu h[n] và hàm nhân x[n] vào như hình dưới, ta có kết quả :

Hình 4.20 Phép nhân chập của nội suy thô và hàm đáp ứng xung
Thời gian gia tốc τ là kết quả của phép nhân n với thời gian lấy mẫu T.

63
Có 3 dạng profile vận tốc đầu ra phụ thuộc vào hàm đáp ứng xung (inpulse Response) h[n]:
Dạng tuyến tính (linear type)
Dạng chữ S (S-shape Type)
Dạng hàm mũ (Exponential Type)

Hình 4.21 Các dạng hàm điều khiển tăng tốc giảm tốc điều khiển gia tốc sau nội
suy sử dụng mạch số.
Đây là phương pháp với thời gian tính toán gia tốc rất ngắn, phương pháp này được sử dụng
khi hiệu năng của CPU thấp. Phần cứng với các thanh ghi dịch, bộ chia và bộ chứa dữ liệu.
Khi hiệu năng CPU được gia tăng, các phương pháp điều khiển phần mềm với các bước tính
toán tương tự dần thay thế cho phướng pháp điểu khiển phần cứng.
Trong phương pháp điều khiển gia tốc sau nội suy, xung từ bộ nội suy thô được dùng làm tín
hiệu vào cho mạch điều khiển gia tốc, và bộ điều khiển này xuất ra xung mẫu trong suốt quá
trình xuất xung.

4.6.2 Điều khiển gia tốc theo dạng vận tốc


Sau đây là các phương pháp điều khiển gia tốc theo dạng vận tốc.
4.6.2.1 Điều khiển dạng tuyến tính.

Mạch điều khiển gia tốc dạng tuyến tính bao gồm nhiều thanh ghi đệm, bộ cộng, bộ cộng tích
lũy, thanh ghi SUM, bộ chia. Bộ lưu trữ lưu dữ liệu vào từ bộ cộng, thanh ghi SUM sẽ lưu trữ
các dữ liệu của bộ cộng tích lũ, và bộ chia sẽ chia các dữ liệu này cho các thanh ghi đệm. Các

64
thanh ghi đệm được ghép nối tiếp. Mỗi thanh ghi đệm lưu tín hiệu xung từ bộ nội su thô. Giá
trị của mỗi thanh ghi đệm được chuyển sang cho thanh ghi tiếp theo mỗi lần bộ điều khiển gia
tốc lấy mẫu.

Hình 4.22 Sơ đồ kết nối bộ cộng, bộ cộng tích lũy, bộ chia, thanh ghi dịch
Như trên sơ đồ trên, giá trị của thanh ghi đệm là đầu vào của bộ cộng, giá trị của thanh ghi n-1
sẽ chuyển sang thanh ghi n, giá trị của thanh ghi n-2 sẽ chuyển sang thanh ghi n-1. Các tín
hiệu điều khiển từ bộ nội suy thô đều đi qua thanh ghi số 1.
Dựa trên nguyên lý mạch, với thời gian lấy mẫu tùy ý K, giá trị đi vào bộ lưu trũ và giá trị đầu
ra của bộ chia ∆ Xo được biểu thị trong công thức :

Hình 4.23 Kết quả dạng xung ra với ΔX=10, ∑ΔX=80.

Với thời gian lấy mẫu là T = 8ms, số thanh ghi đệm n = 5, số xung vào ∆ X được nạp vào
mạch mỗi lần lấy mẫu là 10, và kết quả xung ra được thể hiện trên bảng 4.1

65
Bảng 4.1 Dạng xung ra của mạch
Hình 4.23 cho thấy các xung đầu ra bàn đầu là tăng hoặc giảm theo hằng số. Tổng số các
xung vào (theo ví dụ là 80) bằng tổng tất cả các xung ra từ mạch. Sau khi số xung vào giảm
còn 0, có thể thấy số xung ra bắt đầu giảm. Điều này cho thấy chế độ tăng tốc hoạt động cho
tới khi các thanh ghi đệm đầy, và chế độ giảm tốc hoạt động khi số lượng thanh ghi chứa giữ
liệu giảm. Dựa vào đó, ta xác định được rằng số thanh ghi đệm có quan hệ với thời gian gia
tốc, và được thể hiện bởi công thức :

T là thời gian lấy mẫu, trong ví dụ trên, thời gian cố định là 40 ms (5x8), τ là khoảng thời gian
của một lần xuất xung điều khiển.
Nói một cách khác, nếu như số lượng xung nhỏ hơn số lượng thanh ghi của bộ đệm, thì số
lượng xung ra lớn nhất sẽ khác với số lượng xung vào. Ví dụ nếu như số lượng xung vào là 10
trong khi kích thước của chuỗi xung ra là 4, thì kết quả chuỗi xung ra như bảng 4.2

66
Bảng 4.2 Đầu ra của chuỗi xung
Như thể hiện ở bảng 4.2 giá trị lớn nhất của xung ra là 8 nhỏ hơn số lượng xung vào là 10.
Điều này có nghĩa là với những khối lệnh dịch chuyển ngắn, sẽ không đủ xung đưa ra và sẽ
không thể tiến tới được vận tốc mong muốn. Từ đó dẫn đến quá trình giảm tốc bắt đầu trước
khi quá trình tăng tốc kết thúc bởi vì độ ngắn trong dịch chuyển của khối lệnh.
4.6.2.2 Điều khiển gia tốc dạng chữ S.

Hình 4.24 Cấu trúc phần cứng của bộ điều khiển vận tốc dạng chữ S

Bộ điều khiển bao gồm n thanh ghi đệm, n bộ nhân, một bộ cộng và một bộ chia. Trong biểu
đồ trên, S1, S2….Sn là số lượng thanh ghi đệm dược dùng với tác dụng như thanh ghi dịch. ∆
X là xung vừa xuất ra từ bộ nội suy thô vào thanh ghi đệm. Như trên mạch điều khiển gia tốc
tuyến tính, giá trị của ∆ X được lưu trữ trong thanh ghi đệm và dịch sau mỗi lần lấy mẫu.
Ngoài ra, các bộ nhân M1…Mn có hệ số K1, …, Kn riêng. Và kết quả sau phép nhân hệ số
này được đưa vào bộ cộng, bộ chia và đưa ra kết quả ∆ Xo.

67
Ngoài ra, trong thời gian lấy mẫu k, nếu giá trị của thanh ghi đệm Sa ~ Sn là A1~ An, thì giá
trị của bộ cộng ( A) được tính theo công thức :
n
A   Ai  K i
i 1

Cuối cùng, kết quả đầu ra như sau : với D là tổng các hệ số.
n

A A K i i
X 0   i 1
n
D
Ki 1
i

Tương tự nhu điều khiển gia tốc dạng tuyến tính, thời gian điều khiển cũng phụ thuộc
vào số thanh ghi đệm với công thức:

Một ví dụ cho việc điều khiển gia tốc dạng đường con S. Với cùng dạng tín hiệu vào và ra
như ví dụ với điều khiển tuyến tính, bảng 4.3 thể hiện kết quả xung ra với các hệ số K khác
nhau, k1=0.5, k2 = 1, k3 =2, k4=3, k5=0.5. Do vậy ta có thể thấy rằng, hệ số Ki liên hệ mật
thiết đến tín hiệu xuất ra.

Bảng 4.3 Các giá trị xung ra dạng hình chữ S

68
Hình 4.25 Đầu ra của mạch cho đường cong dạng hình chữ S

4.6.2.3 Điều khiển gia tốc dạng mũ.

Hình 4.26 thể hiện mạch nguyên lý, sử dụng các DDA khác với điều khiển dạng tuyến tính và
dạng đường cong S.

Hình 4.26 Sơ đồ thuật toán điều khiển gia tốc dạng mũ

Hình 4.27 Bộ tạo xung có tần số không đổi


Nguyên lý điều khiển như sau:
Đầu tiên, xung với tần số không đổi [Fi] được xuất ra từ bộ xuất xung, tổng số lượng xung là
N, tương ứng với lượng dịch chuyển.
Giá trị thu được từ việc lấy giá trị Fi trừ đi giá trị của bộ cộng tích lũy (Accummulator) sẽ
được đưa chứa trong thanh ghi p. Cùng lúc này, giá trị của thanh gi p, (x) và giá trị của bộ

69
cộng tích lũy (y) sẽ được cộng lại khi có xung Fa được tạo, Với Fa được tạo ra trong các
khoảng thời gian cố định. Tiếp đó tổng này sẽ được chứa trong thanh bộ cộng tích lũy.
Nguyên lý của bộ điều khiển tăng tốc giảm tốc dạng mã có thể mô tả như sau:
Gọi tín hiệu đầu ra của bộ tạo xung là fc ( xung/– p/s ), đầu vào của mạch điều khiển sẽ được
tính theo công thức :

Trong khoảng thời gian rất nhỏ ∆ t, số lượng xung là ∆ x không được lưu vào thanh ghi p,
được tính toán theo công thức:

Số lượng xung “xếp chồng” tại bộ cộng tích lũy trong khoảng thời gian ∆ t thể được thể hiện
bởi giá trị trên thanh ghi p và được thêm vào bởi xung điều khiển (Fa*∆ t),∆ Y có thể tính
toán dựa vào công thức :

Số xung tràn từ bộ lưu trữ trong khoảng thời gian ∆ là Fo.∆t. Nếu số bit của bộ lưu trữ là n, số
lượng xung tràn sẽ là ∆ y/2n .
Khi t = 0, giá trị của thanh ghi p và bộ cộng là 0. Lúc đó X(0) = Y(0) = 0, ta có:

Nếu ta lấy xấp xỉ ∆ t, ∆ X, ∆ Y với giá trị dt, dx, dy, ta có:

Bằng cách giải phương trình vị phân từ ta có thể đưa ra mối quan hệ giữa Fo và Fi theo công
thức sau

Có thể thấy rằng số bít của bộ lưu trữ quyết định thời gian tăng và giảm tốc. Nếu số bít càng
tăng, số lượng xung tràn trong mỗi khoảng thời gian càng giảm, và rõ ràng thời gian tăng và
giảm tốc sẽ giảm. Ngoài ra, nếu tần số xuất xung giảm, các khoảng thời gian cho mỗi xung sẽ
tăng lên, và thời gian gia tốc tăng lên. Điều này trái với sự thật rằng số lượng xung đi vào bộ
lưu trữ trong mỗi đơn vị thời gian giảm xuống, nghĩa là số lượng xung tràn sẽ giảm.
Nếu gọi thời gian lấy mẫu là T và tần số xuất xung từ bộ xuất xung là T và Fi, số xung vào
cho mạch điều khiển gia tốc dạng hàm số mũ được thể hiện trên phương trình

Ví dụ, nếu T=8ms, tần số 1000Hz, 8 xung sẽ được nạp vào mạch trong mỗi lần lấy mẫu. Tại
thời điểm tùy ý k, giá trị của thanh ghi p được thể hiện trên công thức sau ( giá trị xung tràn từ
bộ lưu trữ chưa được trừ đi)

70
Với x(k-1) là giá trị của thanh ghi tại thời điểm k-1.
Tại thời điểm tùy ý k, số lượng xung tràn từ bộ lưu trữ O(k) được tính theo phương trình. n là
số bit của bộ lưu trữ.

Số lượng xung tràn P(k) tại thời điểm k được tính toán theo :

Ngoài ra, giá trị của thanh ghi p – x(k) sau khi trừ đi xung tràn được tính theo:

Y(k)- giá trị trên bộ lưu trữ được tính toán theo :

Bằng cách sử dụng chuyển đổi Z. ta có

Ta có thể rút ra mối quan hệ giữa đầu vào Pi và đầu ra Po :

Tiếp tục sử dụng biết đổi Z ngược ta có

Điều khiển gia tốc dạng hàm số mũ được thực hiện với thời gian gia tốc cố định τ thể hiện
trên công thức :

4.6.2.4 Kết luận về sai số gia công

Sai số gia công dựa trên các phương pháp điều khiển gia tốc, các phương pháp này được
nghiên cứu và tính toán, ta rút ra kết luận:
Sai số tỉ lệ thuận với binh phương thời gian gia công, tỉ lệ nghịch với bán kính cung tròn.
Ngoài ra, ta nhận thấy chạy dao càng lớn thời gian điều khiển gia tốc càng cao. Bán kính càng
nhỏ, sai số gia công càng lớn. Và phương pháp điều khiển vận tốc dạng chữ S là phù hợp nhất
cho yêu cầu gia công tốc độ cao và đảm bảo độ chính xác.

71
4.6.2 Điều khiển gia tốc trước nội suy.
Do hạn chế của mình, độ chính xác của phương pháp điều khiển vận tốc sau nội suy ảnh
hưởng rất nhiều bởi vận tốc cắt, do vậy cần thiết phải có một phương pháp thay thế khi gia
công với vận tốc cắt cao. Phương pháp này chính là điều khiển gia tốc trước nội suy, dựa vào
các tín hiệu điều khiển vị trí gia công, bộ điều khiển tốc độ sẽ tính toán một cách phù hợp.

Bảng 4.5 Tổng hợp sai số của các phương pháp điều khiển tăng tốc giảm tốc.

.
Hình 4.28 Sơ đồ cấu trúc tăng tốc giảm tốc trước nội suy

4.6.2.1 Xuất ra biểu đồ dạng tốc độ.

Phương pháp tăng tốc giảm tốc trước nội suy xét tới vận tốc, gia tốc và chiều dài khoảng dịch
chuyển để tính toán. Ví dụ, khi gia công theo đường thẳng, chiều dài gia công là L(mm), gia
tốc dương tối đa cho phép là A(mm/s2 ), gia tốc âm tối đa cho phép là D(mm/s2), thời gian
thực hiện nội suy thô là τ (s), và gia tốc cắt là F(mm/s2)
Có 2 dạng đường gia công, đường gia công ngắn và đường gia công thường, được
phân biệt dựa vào công thức:
F2 F2
 L
2 A 2B
Đường gia công thường sẽ thỏa mãn công thức trên ( đủ thời gian và khoảng cách để tăng,
giảm tốc độ tới tốc độ yêu cầu)
Đường gia công không thỏa mãn công thức trên là đường gia công ngắn, tốc độ khi tăng, giảm
tốc không đạt vận tốc yêu cầu.

72
Hình 4.29 Dạng đồ thị vận tốc của khối có lượng dịch chuyển dài và ngắn.
Với đường gia công dạng thông thường, thời gian tăng tốc TA từ 0 tới vận tốc cắt F , thời gian
giảm tốc từ vận tốc F về 0 : TD. Thời gian TC duy trì vận tốc cắt F được tính như sau:

Với đường gia công ngắn, F’ là vận tốc cắt lớn nhất có thể đạt được.

Từ các công thức trên, có thể xuất ra dạng biểu đồ vận tốc.
4.6.2.2 Các dạng đường gia công liên tiếp

Khi xét tới hai khối gia công liên tiếp, tùy thuộc vào dạng khối và vận tốc cắt có thể chia ra
các dạng khối như sau và tính toán vận tốc tại điểm giao của hai khối.
Có các dạng sau:
Hai đường gia công thường liên tiếp cùng vận tốc cắt
Đường gia công thường vận tốc cắt cao, đường gia công ngắn vận tốc thấp
Đường gia công thường vận tốc thấp, đường gia công ngắn vận tốc cao
Đường gia công ngắn, đường gia công thường có cùng vận tốc cắt
Đường gia công ngắn, đường gia công thường vận tốc khác nhau
Đường gia công thường, đường gia công ngắn vận tốc khác nhau
Đường gia công thường, đường gia công ngắn khác vận tốc
Hai đường gia công ngắn cùng vận tốc
Đường gia công ngắn tốc độ cao, đường gia công ngắn tốc độ thấp

73
Đường gia công ngắn tốc độ cao, đường gia công ngắn tốc độ thấp

4.6.3.Thuật toán “ Look Ahead”


Hiệu năng của hệ thống CNC phụ thuộc vào vận tốc cắt và độ chính xác gia công, khi phải gia
công các đường liên tiếp với vận tốc thay đổi, cần phải đưa ra một thuật toán để giải quyết
yêu cầu thay đổi vận tốc mà vẫn giữ nguyên độ chính xác

Hình 4.30 Quĩ đạo hình tròn


Ví dụ như trên hình, chứa 15 phần đoạn thẳng nhỏ ( đường gia công thực tế sau khi nội suy),
bán kính của nửa đường tròn là 10 mm, tốc độ cắt 400mm/phút, gia tốc tối đa cho phép là
9600mm/phút. Nếu sử dụng các phương pháp đưa ra trong phần tạo profile vận tốc trong
trường hợp độ dịch chuyển của 2 câu lệnh là quá ngắn để tới được vận tốc thiết lập, dạng vận
tốc sẽ có dạng răng cưa như trên hình 4.31, Lý do là chiều dài các đoạn thẳng chỉ là 2,094mm,
quá ngắn để đạt tới tốc độ cắt 400mm/phút. Như trên hình 4.31, tốc độ cắt chỉ đạt tới
141,78mm và việc tăng giảm tốc được lặp lại liên tục.

Hình 4.31 profile vận tốc cho quĩ đạo đường tròn
Để giảm thiểu việc thay đổi tốc độ cắt và giảm thời gian gia công các đường ngắn, thuật toán
Look Ahead được sử dụng rộng rãi. Thuật toán này cho phép giảm thiểu việc giảm tốc độ cắt
bằng cách tính toán vận tốc cắt tối đa và vận tốc cắt tại điểm cuối khi gia công các đường
ngắn dựa vào dạng vận tốc của khối gia công tiếp theo.

74
75
When the sampling interval for rough interpolation and pulse train after acceleration/
deceleration is larger than that of position control, fine interpolation is performed.
For instance, if the sampling interval for rough interpolation and acceleration/
deceleration is 4 ms, and the sampling interval for position control is 1 ms, then
the pulse train for every 4 ms is stored in the main CPU, which is fine-interpolated
for every 1 ms by the CPU in charge of motion control.
There are methods for fine interpolation, the linear method where pulse train of 4
ms is divided into 1 ms, and the moving-average method where the moving average
of pulse train is used for fine interpolation. Figure 3.18 shows a linear interpolation
method, where pulse train of 4 ms is linearly divided into that of 1 ms.
Formally, Eq. 3.72 can be used for linear methods. In Eq. 3.72, a( j) denotes the
number of pulses from fine interpolation at arbitrary time j, and p(i) is the number
of the pulses from rough interpolation and Acc/Dec control at time i. tipo is the iteration
time of rough interpolation and N is the ratio of the iteration time of rough
interpolation and the iteration time of position control.
a( j) =
p(i)
N
, i ≤ j < i+tipo (3.72)
The second method is the moving average method. The equation used for the
moving average can be represented by an iterative equation as shown in Eq. 3.73. In
Eq. 3.72, a( j) is from linear interpolation, and b_( j) and b__( j) are further interpolation
for the moving average. Table 3.9 illustrates the computing procedure for the
moving average.
15
6789
10
2 3 4 11 121314
15
16 1718 19
20
21 22 23 24
25
26 27 28
2
4
6
2
4
a(j)
Mcmd(n)
0
29
30
Fig. 3.18 Linear fine interpolation
Figure 3.19 shows the moving average of the pulse train shown in Fig. 3.18 and
Table 3.9 gives the values from Fig. 3.19.
b( j) =

N2
k=−N2
+1
a( j−k)
N
,b_( j) =

N2

76
−1
k=−N2
a( j−k)
N
,b__( j) =
b( j)+b_( j)
2
(3.73)
98 3 Interpolator
Table 3.9 Example of computing procedure for moving average
n j a( j+4) a( j+3) a( j+2) a( j+1) a( j) a( j−1) a( j−2) b( j) b_( j) b__( j)
112000000000
22200000000
3 2 2 2 0 0 0 0 0 12
0.25
4 2 2 2 2 0 0 0 12
1 0.75
254222200111
2 1.25
6 4 4 2 2 2 2 0 112
2 1.75
74442222221
2 2.25
8 4 4 4 4 2 2 2 212
3 2.75
396444422331
2 3.25
10 6 6 4 4 4 4 2 312
4 3.75
11 6 6 6 4 4 4 4 4 4 1
2 4.25
12 6 6 6 6 4 4 4 412
5 4.75
4 13 6 6 6 6 6 4 4 5 5 1
2 5.25
14 6 6 6 6 6 6 4 512
6 5.75
15 6 6 6 6 6 6 6 6 6 6
16 6 6 6 6 6 6 6 6 6 6
5 17 4 6 6 6 6 6 6 6 6 6
18 4 4 6 6 6 6 6 6 6 6
19 4 4 4 6 6 6 6 6 5 1
2 5.75
20 4 4 4 4 6 6 6 512
5 5.25
6 21 2 4 4 4 4 6 6 5 4 1
2 4.75
22 2 2 4 4 4 4 6 412
4 4.25
23 2 2 2 4 4 4 4 4 3 1
2 3.75
24 2 2 2 2 4 4 4 312
3 3.25
7 25 0 2 2 2 2 4 4 3 2 1
2 2.75
26 0 0 2 2 2 2 4 212
2 2.25
27 0 0 0 2 2 2 2 2 1 1
2 1.75
28 0 0 0 0 2 2 2 112
1 1.25
8 29 0 0 0 0 0 2 2 1 12
0.75
30 0 0 0 0 0 0 2 12
0 0.25
31 0 0 0 0 0 0 0 0 0 0
32 0 0 0 0 0 0 0 0 0 0
3.5 NURBS Interpolation
For high-speed and high-accuracy machining functions various interpolation functions
such as splines, involute, and helical interpolation are used. In CNC free-form

77
curves can be approximated by a set of line segments or circle arcs. However, to get
an accurate approximation of the curve the approximating line or circle is generally
very short. These short segments result in inconsistency of feedrate and this inconsistency
of feedrate reduces the surface quality. In addition, many blocks are required
to define these short paths and the size of the part program increases dramatically. To
overcome this drawback, NURBS interpolation was developed. In NURBS interpo3.5
NURBS Interpolation 99
15
6789
10
2 3 4 11 121314
15
16 1718 19
20
21 22 23 24
25
26 27 28
B”(j)
29
30
Fig. 3.19 Pulse train moving average
lation, the CNC itself directly convertsNURBS curve data fromthe part program into
small line segments, using positions calculated from the NURBS curve data. In this
way it is possible to reduce the size of the part program and it is possible to increase
the machining speed because the command feedrate depends on the interpolation.

78

You might also like