Technical Field
[0001] The present invention relates to a spline interpolation method, and more particularly
to, a spline interpolation method of effecting an approximate interpolation of a spline
curve based on preset points among a sequence of given points.
Background Art
[0002] An interpolation method using a cubic spline curve is widely used as a method of
subjecting a sequence of points to interpolation by using a smooth curve.
[0003] The prior art spline interpolation is effected by the following method:
(ia) all of the specified points of the sequence are received;
(iia) simultaneous equations containing all of the sequence point data are created
and solved, to derive the first-derivative vector at each point. This is effected
by deriving the inverse matrix of a matrix equation described later;
(iiia) under a condition that the first-derivative vector at the second point and
the first-derivative vector at the starting point derived as described above are used,
and that the positions of a given starting point and a second point are set, the following
cubic equation connecting the starting point and the second point is derived, and
the calculation is effected to derive the respective positions, thus effecting the
interpolation while the parameter t of the equation is changed from 0 to 1,

(where P(t) denotes a vector representing the position, and K4, K3, K2 and K1 denote coefficient vectors); and
(iva) a cubic equation connecting the second and third points is derived in the same
manner as described above.
[0004] Another method is effected as follows:
(ib) all of the specified points of the sequence are received;
(iib) simultaneous equations containing all of the sequence point data are created
and solved, to derive the first-derivative vector at the starting point and the first-derivative
vector at a second point, and derive the second-derivative vector at the starting
point based on the above first-derivative vectors and the positions of the first and
second points;
(iiib) a cubic equation, which is the same as described above and connects the starting
point and the second point, is derived with the first-derivative vector and the second-derivative
vector at the starting point derived as described above and used as the extreme point
condition, and the calculation is effected to derive respective positions, thus effecting
the interpolation while the parameter t of the equation is changed from 0 to 1; and
(ivb) a cubic equation connecting the second and third points is derived with the
first- and second-derivative vectors of the second point in the cubic equation as
described above, and the calculation then effected in the same manner as described
above to derive the respective positions, thus effecting the interpolation while the
parameter t of the equation is changed from 0 to 1.
[0005] In the above-described methods, the calculations are repeatedly effected for the
third and fourth points, the fourth and fifth points, and so on, to effect the interpolation
of the cubic equation for all of the specified sequential points so that the spline
interpolation for all the sequential points can be effected.
[0006] In the above methods, however, all the specified sequential points must be received
and the calculation therefor effected, and accordingly, the following problem arises:
(a) it is impossible to limitlessly increase the number of specified points;
(b) a very large amount of matrix calculations must be effected when the number of
specified points is large, and thus a large memory capacity and a long calculation
time are required;
(c) if the matrix calculation is not effected with a high precision, the spline curve
may be excessively separated from the succeeding specified points (deviated or oscillated);
and
(d) when the matrix calculation is effected on the programmer side, it is practically
impossible to manually effect the calculation if the number of the specified points
becomes equal to or larger than four, and thus an additional computing device becomes
necessary.
Disclosure of the Invention
[0007] The present invention has been made in view of the above, and an object thereof is
to provide a spline interpolation method of effecting an approximate interpolation
of a spline curve based on preset points among a sequence of given points.
[0008] In this invention, to solve the problem described above, a spline interpolation method
is provided in which given points are subjected to an interpolation using a cubic
spline curve, and is characterized by deriving a first-derivative vector based on
a preset number of points including a starting point, deriving a cubic equation between
the starting point and a next point based on the coordinate values of the preset points
including the starting point, the extreme point condition of the starting point, and
the first-derivative vector, to derive a spline curve between the starting point and
a point next to the starting point, and using a new point instead of the starting
point and sequentially deriving a cubic equation between the points, to thereby derive
a cubic spline curve.
[0009] First, a preset number of points starting from the starting point are used to derive
a cubic spline curve, then a cubic spline curve is derived by using a new point instead
of an initial point, and accordingly, a spline curve between points is sequentially
derived to effect the spline interpolation process.
[0010] Therefore, the spline interpolation process can be effected without practical problems
by sequentially receiving points in a forward direction without previously receiving
all of the sequential points.
Brief Description of the Drawings
[0011]
Fig. 1 is a diagram showing a spline curve;
Fig. 2 is a flowchart showing the process for deriving a spline curve in the present
invention;
Fig. 3 is a block diagram of a numerical control device for effecting the present
invention;
Fig. 4 is a diagram showing the construction of a matrix [A];
Fig. 5 is a diagram showing the construction of a matrix [B];
Fig. 6 is a diagram showing the construction of another matrix [A];
Fig. 7 is a diagram showing the construction of another matrix [B];
Fig. 8 is a diagram showing the general construction of a matrix [A]-1;
Fig. 9 is a diagram showing the concrete construction of a matrix [A]-1; and
Fig. 10 is a diagram showing the concrete construction of another matrix [A]-1.
Best Mode of Carrying Out the Invention
[0012] An embodiment of the present invention will now be described with reference to the
accompanying drawings. [Feature of this invention]
[0013] First, the feature of this invention is described. Attention is paid to the fact
that, in the step of "deriving the first-derivative vector at each point based on
all of the sequential points" in the conventional method (iia) of deriving a spline
curve, a point among all of the sequential points nearer to a corresponding point
at which the first-derivative vector is to be derived has a larger influence on the
first-derivative vector, and the first-derivative vector at the corresponding point
is approximately derived based on a sequence of points among all of the sequential
points and nearer to the corresponding point, to create a cubic equation and effect
the spline interpolation.
[0014] Further, a practical spline curve interpolation can be attained according to the
following process, for example, set as the condition given in the starting point.
(a) Only a desired sequence of points is given and the second-derivative vector at
the starting point is set to 0.
(b) The first-derivative vectors at the starting point and the desired sequential
points are given. [Principle of this invention]
[0015] Next, the principle of the present invention is described.
[0016] Figure 1 shows a sequence of points subjected to a spline interpolation and a spline
curve. Points P
1 to P
L indicate a sequence of points in which point P, is a starting point, point P
L is an end point, and points P
L+1 to P
L+m-1 are auxiliary points used for effecting an interpolation near the end point P
L. P
1(1) to P
4(1) indicate first-derivative vectors and SC is a spline curve.
(1) First-derivative vector
[0017] The first-derivative vector at each point of a cubic spline curve passing all of
the sequential points P
1 to P
n (n points) is generally derived as follows.
[0018] A cubic equation constituting the spline curve is generally shown by the following
equation:

where P(t) is a position vector which varies according to the parameter t, and K
4, K
3, K
2 and K
1 are coefficient vectors. That is, when an XYZ coordinate is used, P(t) = (x(t), y(t),
z(t)) and K
i = (K
iX, K
iy, K
iz) (where i = 1, 2, 3 or 4). The parameter t is determined such that 0 ≤ t ≤ 1.
[0019] Accordingly, the first-derivative vector P
(1) is expressed as follows:

[0020] At this time, the first-derivative vector [p
(1)] at each point can be expressed by the following equation:

[0021] Further, the matrix [P
(1)] of the first-derivative vector is a matrix of n rows x 1 column expressed by

and P
1(1) to P
n(1) are first-derivative vectors at P
1 to
Pn'
[0022] At this time, it is generally known that the matrices [A] and [B] can be expressed
as follows, according to the extreme point condition.
(i) In the case of the first extreme point condition:
(a) The second-derivative vector at the starting point (P1) is 0.
(b) The second-derivative vector at the end point (Pn) is 0.
[0023] At this time, the matrix [A] is expressed by n rows x n columns, as shown in Fig.
4, and the matrix [B] is expressed by n rows x 1 column, as shown in Fig. 5.
(ii) In the case of the second extreme point condition:
(a) The first-derivative vector P1(1) at the starting point (P1) is given.
(b) The second-derivative vector at the end point (Pn) is 0.
[0024] At this time, the matrix [A] is expressed by n rows x n columns, as shown in Fig.
6, and the matrix [B] is expressed by n rows x 1 column, as shown in Fig. 7.
[0025] From the equation (3), [P(
1)] can be derived by [p
(1)] = [A]
-1[B]. The matrix [A]
-1 is expressed by n rows x n columns, as shown in Fig. 8.
[0026] At this time, the absolute values of elements of the matrix [A]
-1 shown in Fig. 8 are large in the diagonal elements (a
k,k k = 1 to n) and become smaller in the elements which are farther away. Further, the
matrix is a fixed matrix set by the extreme point condition.
[0027] Concretely, the matrix shown by an equation (5) of Fig. 9 is obtained when n is set
at 50 in the extreme point condition 1. Further, the matrix shown by an equation (6)
of Fig. 10 is obtained when n is set at 50 in the extreme point condition 2.
[Approximation of the first-derivative vector]
[0028] From the above-described theory, the first-derivative vector P
1(1) can be approximated as follows:

(the precision of the approximation is enhanced as k is made larger).
[0029] In this case, b
i is an i-th element of the matrix [B]. Based on this, P
i(1) can be derived without using all of the elements of [B], i.e., without using all
of the sequential points.
[Formation of a cubic equation and interpolation]
[0030] If the first-derivative vector P
i(1) at P
i can be obtained, the following conditional equations can be derived by applying the
points P
i and P
i (1) to the equations (1) and (2):




[0031] (where Pi(0) and P
i(1) are values of Pi(t) when t = 0 and t = 1 where P(t) in the equation (1) is applied
to P
i to P
i+1, and K
i4, K
i3, K
i2 and K
i1 are respective coefficients of t
3, t
2, t
1 and t
0 in P
i(t). Further, P
i(1)(0) and P
i(1)(1) are values of the first-derivative vector when t = 0 and t = 1).
[0032] From the above four equations, four coefficients Ki
4, Ki
3' Ki
2 and Ki
1 can be obtained.
[0033] In this way, Pi(t) is sequentially derived and connected to create a spline curve.
[0034] When a cubic equation is derived by the above method, errors of P
i(1) and P
i(2) with respect to the theoretical values thereof are not accumulated, and thus the
errors can be suppressed to a negligible small value by adequately setting k in the
equation (7). Therefore, a spline curve which poses no practical problems can be derived
from the spline curve obtained by the present method, without enlarging the errors
with respect to a spline curve obtained theoretically from a sequence of given points.
[Concrete example]
[0035] Next, a case wherein a spline curve is created by effecting the interpolation up
to a point P
i and deriving the first-derivative vector P
i+1(1) at a next point is explained as a concrete example of the present method. [Creation
of a first cubic equation]
[0036] First, a first cubic equation is created and subjected to interpolation.
(i) P1 to P1+m ((m+1) points; m is a constant and (m+1) is a number of buffers for receiving them)
are received.
(ii) Assuming that P1 is followed by a countless number of points, P2(1) is derived from the equation (7).
(a) When the second-derivative vector P1(2) is 0 at the starting point, P2(1) is derived as follows by using the second row in the matrix of the equation (5),
since the matrix obtained when assuming that P1 is followed by a countless number of points is substantially equal to the matrix
of the equation (5).

(b) Where the first-derivative vector P1(1) is given at the starting point, P2(1) is derived as follows by using the second row in the matrix of the equation (6) since
the matrix obtained when assuming that P1 is followed by a countless number of points is substantially equal to the matrix
of the equation (6).


[0037] The following condition (a) or (b) is used according to the extreme point condition:
(a) Where the second-derivative vector P1(2) is 0 at the starting point,

(b) Where the first-derivative vector P1(1) is given at the starting point,



[0038] Coefficients K
4, K
3, K
2 and K
1 are derived from the four conditional equations (12), (13), (14) and (15), to create
a cubic equation, and the cubic equation is subjected to interpolation.
[Creation of second and later cubic equations]
[0039] Next, a second or later cubic equation (i-th; i>=2) is created and is subjected to
interpolation.
(i) Pi+m is received (a state is set up in which (m+1) points Pi to Pi+m are received).
(ii) Assuming that a spline curve on which Pi is followed by a countless number of points is given, an approximate tangential vector
Pi+1(1) at the second point on the curve is derived by using the equation (7). pi+1(1) is derived as follows, using the second row in the matrix of the equation (6), since
the matrix obtained when assuming that P1 is followed by a countless number of points is substantially equal to the matrix
of the equation (6).


(Pi(1) has been derived by the spline curve up to pi)


[0040] Coefficients K
4, K
3, K
2 and K
1 are derived from the above conditional equations to create a cubic equation, and
the cubic equation is subjected to interpolation.
[0041] (3) When the end point P
L is reached, the process (2) is repeatedly effected to sequentially create cubic equations
between points P
L-m to P
L while auxiliary points P
L, P
L+1' ---
' P
L+m-1 are created.
[0042] In this case,

[Flowchart]
[0043] The processing flowchart of the present invention is shown in Fig. 2. In Fig. 2,
each numeral following S denotes a step number.
[S1] Set i to 1.
[S2] Receive points Pi to Pi+m. Make (m+1) points by creating auxiliary points when a point to be received has exceeded
the end point.
[S3] Execute S4 when i = 1, i.e., the starting point is specified; and execute S5
when a point other than the starting point is specified.
[S4] Create a cubic equation under a condition including the starting point.
[S5] Create a cubic equation under a condition excluding the starting point.
[S6] Derive coefficients of the created cubic equation and effect the interpolation
between points by using the cubic equation.
[S7] Increment i by 1 and effect the interpolation for a next cubic equation between
points.
[S8] Determine whether or not Pi is an end point, and if it is not the end point, the process returns to S2 and the
interpolation is continuously effected.
[Construction of hardware]
[0044] Figure 3 shows the construction of the hardware of a numerical control device (CNC)
for effecting the present invention. In Fig. 3, 11 denotes a processor for global
control (CPU), 12 denotes a ROM in which a control program and the like used for deriving
a spline curve are stored, 13 denotes a RAM for storing interim data and the like
of a point on the spline curve, and 14 denotes a nonvolatile memory in which the derived
spline curve, machining program, parameters and the like are stored. Numeral 14a denotes
a machining program.
[0045] Numeral 15 denotes a PMC (programmable machine controller) which receives instructions
such as M-function and T-function, converts them into signals for controlling the
machine tool, and outputs the same. The M-function and the like are processed according
to a sequence program 15a and then supplied from an input/output circuit to a control
circuit on the machine side. Numeral 16 denotes a display control circuit which converts
a digital signal into a display signal; 16a denotes a display unit, which can be a
CRT, liquid crystal display device or the like; and 17 denotes a keyboard used for
inputting various data.
[0046] Numeral 18 denotes a position control circuit for controlling a servomotor; 19 denotes
a servo amplifier for controlling the speed of the servomotor; 20 denotes the servomotor;
21 denotes a tachometer generator for effecting the speed feedback; and 22 denotes
a position detector, which can be a pulse coder, optical scale or the like. The above
elements must be provided in a number corresponding to the number of axes, but in
this case, the elements for only one axis are shown.
[0047] Numeral 23 denotes an input/output circuit for transferring digital signals with
respect to the external unit, and a tool select signal (T-signal) for controlling
the replacement of tools is output from the circuit to the machine-side control circuit.
Numeral 24 denotes a manual pulse generator for moving each axis in a digital manner.
[0048] In the above construction, a single processor is used, but it is also possible to
use a processor for global control and a processor for deriving a spline curve, thus
constructing a multi-processor. Further, it is possible to add a co-processor or the
like to enhance the operation speed.
[0049] Further, an automatic programming device other than the numerical control device
can be applied to carry out the spline interpolation method of this invention.
[0050] As described above, according to the present invention, since a cubic spline curve
between points is sequentially derived based on a preset number of points among a
sequence of given points, a practical spline curve can be derived in a short period
of time even when the number of points to be interpolated becomes larger.
[0051] Further, the extreme point condition is set with the second-derivative vector set
at 0, so that the interpolation of the spline curve can be effected without setting
the condition of the first-derivative vector at the extreme point or the starting
point.
[0052] In addition, a smooth spline curve can be obtained near the end point by providing
auxiliary points after the end point.