1 Introduction

Machining centres (MCs) belong to the group of production machines, which require high performance, manufacturing accuracy, reliability, safety, etc. With growing demands on manufacturing quality of components for the aerospace, power and pharmaceutical (medical) industry, an increasingly greater emphasis is placed on control and growth of manufacturing eligibility. This is influenced by manufacturing accuracy of the machine tool, i.e. mainly by its geometric accuracy. Geometric accuracy belongs to the group of quasi-static errors that constitute 60-70% of the total error of the machine tool [1]. Apart from geometric errors, these quasi-static errors also include kinematic and thermal errors, [2].

For long-term sustainability of manufacturing accuracy (manufacturing eligibility), it is necessary to pay attention to the mount of MT on a suitably rigid base, to set up the machine to the required geometric accuracy and next, considering the needs and requirements, to apply the appropriate software compensations. In the phase of machine tool use, various technologies for verification of machine tool eligibility are then deployed. For these measurements, the emphasis laid is on adequate measurement accuracy with the highest possible interpretation of the results and especially on short measurement times associated with the necessary MT shutdowns.

Different approaches to measurement, data processing and creation of models for generating compensation tables are described in a number of scientific papers. For verification of the proposed models the most often used measuring instruments are the Ballbar-type apparatus [3], the laser interferometer [46], the laser tracker [79], and the laser tracer [1014]. Modelling of errors of machine tools is closely associated with the used instrumentation. This implies a further procedure for the development of individual mathematical models. A currently researched topic is modelling of volumetric accuracy of machine tools with various kinematic structures. The aim of this research is to use mathematical models to create the so-called map of machine tool accuracy and to utilize the acquired deviations suitable for the relevant software compensation of machine tools. Error modelling of machine tools has been for long time subjected to intensive research. The most common approach to the model creation, based on rigid body kinematics and transformations of coordinates between the individual rigid bodies, is a homogeneous transformation matrix (HTM). HTM modelling is described for various kinematic chains of machining centres in publications [5, 1520].

To achieve relevant results, it is necessary to obtain measurement data free of thermal influence because this influence caused by the change in internal and external ambient conditions may invalidate the measurement by thermal deformation of the machine, but also by the very process of measurement. For this reason, it is necessary to complete the measurements in the shortest possible time interval under stable conditions. In manufacturing facilities, especially in large machining centres, it is almost unrealistic to maintain constant ambient conditions. Therefore the obtained results on the state of the machine may be distorted both due to thermal deformations of the machine and also due to temperature change of ambient air [21].

Information on “geometric behaviour” of small and large CNC MTs can be obtained by various approaches. One of the variants is to machine a test component; this will enable an assessment of machine tool eligibility. The second variant is based on direct measurement of geometrical deviations. This variant is less desirable from the perspective of users; the reason is a necessary machine tool shutdown.

If we intend to analyse the entire working space of MT and obtain an error map, the measurements will be very time-consuming. To meet the requirement on minimum time demands with the aim to create a map of machine tool errors, it is recommended to propose a suitable methodology of measuring and processing of the obtained data. This methodology is not only dependent on the size of MT working space, but also on the kinematic chain between the workpiece and the tool and also on the measuring device used.

2 Algebraic approach

In [22] we discussed the methodology of multi-axis machines geometric error modelling in the context of modern theory of Weil algebras, [23]. When composing the kinematic chain containing geometric errors, we embed the error matrix corresponding to any kinematic joint, i.e. the errors of the joint translation or rotation. In particular, for the translation in the direction of vector \((x,y,z)\) or for the rotation around the z axis by the angle γ, the following error matrices apply, respectively, [24, 25].

$$\begin{aligned}& \begin{pmatrix} 1 & -\alpha & \beta & x \\ \alpha & 1 & \gamma & y \\ -\beta & -\gamma & 1 & z \\ 0 & 0 & 0 &1 \end{pmatrix} \\& \quad{}\times \begin{pmatrix} 1 & -\alpha \cos(\theta+ \gamma ) -\beta \sin(\theta+ \gamma ) & \alpha \sin(\theta+ \gamma ) - \beta \cos(\theta+ \gamma ) & 0 \\ \alpha & \cos (\theta+ \gamma ) & -\sin(\theta+ \gamma ) & 0\\ -\beta & \sin(\theta+ \gamma ) & \cos(\theta+ \gamma ) & 0 \\ 0 & 0 & 0 &1 \end{pmatrix} . \end{aligned}$$

The parameters α, β and γ represent the error rotations around the axes z, y and x, respectively, and θ gives the proper rotation around the axis z. The error matrices were derived from the rotation matrices around particular axes by approximation. More precisely, for the rotation around axis x the error matrix is approximated as follows:

$$ \begin{pmatrix} 1 & 0 & 0 & 0 \\ 0 & \cos{ \alpha } & -\sin{ \alpha }& 0 \\ 0 & \sin{ \alpha } & \cos{ \alpha }& 0 \\ 0 & 0 & 0& 1 \end{pmatrix} \rightsquigarrow \begin{pmatrix} 1 & 0 & 0& 0 \\ 0 & 1 & -{\alpha }& 0 \\ 0 & {\alpha } & 1& 0 \\ 0 & 0 & 0& 1 \end{pmatrix} .$$

Thus \(\cos \alpha \rightsquigarrow1\) and \(\sin \alpha \rightsquigarrow \alpha \). In the case that two approximations are multiplied, the whole term vanishes. This is caused by the assumption that the errors are by order smaller than the proper rotation parameters. The above mentioned representation is a standard description of the error matrices to be embedded into the kinematic chain and the corresponding kinematic equations which are to be solved within the error analysis. Generally, in the case of the system of linear equations, we proceed by Gauss elimination, for non-linear systems we use Gröbner bases. Thus in our matrix calculations we use the identities \(\alpha _{i}\beta _{j}=0\), \(\alpha _{i}\gamma _{j}=0\) and \(\beta _{i}\gamma _{j}=0\) for all \(i,j\in\{1,2\}\), which resemble the identities for the imaginary parts of the dual numbers. Thus it makes sense for the whole theory to work with so-called homogeneous matrices over the dual numbers as transformation matrices. More precisely, in error modelling the set \(\mathit{SO}(2,\mathbb{ D})\) of the special orthogonal matrices over the dual numbers are involved, see [22].

From the algebraic point of view, the dual numbers \(\mathbb{ D}\) extend the real numbers by adjoining one new element ι with the property \(\iota^{2} = 0\) (ι is nilpotent). The set of dual numbers forms a particular two-dimensional commutative unital associative algebra over the real numbers. Every dual number can be represented as

$$z = a + b\iota $$

uniquely determined by real numbers a (real part) and b (imaginary part). Division of dual numbers is defined whenever the real part of the denominator is non-zero. The division process is analogous to complex division, i.e. the denominator is multiplied by its conjugate in order to cancel the non-real part. In paper [22] we proved the set of theorems about special orthogonal matrices over dual numbers. For example, in the case \(2 \times2\) matrices, we have the following theorem which describes the class of matrices involved in the error modelling:

Theorem 2.1

Let \(A+B\iota\in \mathit{SO}(2,\mathbb{ D})\). Then \(A+B\iota\) is in the following form:

$$ \begin{pmatrix} \cos(\varphi)- k \sin(\varphi)\iota& -\sin(\varphi)-k \cos(\varphi)\iota\\ \sin(\varphi)+k \cos(\varphi)\iota & \cos(\varphi)- k \sin(\varphi)\iota \end{pmatrix} , $$

where \(\varphi\in\langle0, 2 \pi\rangle\) and \(k \in \mathbb {R}\).

As a result, if the inverse kinematic is realized over the dual numbers, second order errors multiplied by a position coordinate are neglected, i.e. the terms of the form \(x{\varepsilon }_{xy} {\varepsilon }_{xz}\) vanish. This may increase the inaccuracy of the model. To avoid it without any additional complexity in calculations, we recall the following concept: algebra of second order dual numbers \(\mathbb{D}_{1}^{2}\) is defined as a set

$$\mathbb{D}_{1}^{2} = \bigl\{ a_{1} + a_{2} \iota+ a_{3} \iota^{2} | a_{i} \in \mathbb {R} \bigr\} $$

together with the sum by parts and multiplication modulo \(\iota^{3}=0\). In particular, \(\mathbb{D}_{1}^{2}\) can be defined as a factor space

$$\mathbb{D}_{1}^{2} = \mathbb {R}[\iota] / \bigl\langle \iota^{3} \bigr\rangle . $$

To apply this concept to the kinematic chain, the matrix representation of \(\mathbb{D}_{1}^{2}\) is used, see [26]. Note that in this setting the dual numbers can be understood as the dual numbers of the first order \(\mathbb{ D}:=\mathbb{ D}_{1}^{1}\).

The theory of matrices over the algebra \(\mathbb{D}_{1}^{2}\) is much more sophisticated, some results can be found in [26], e.g. the description of the relevant \(2 \times2\) matrix class equivalent to the one mentioned in Theorem 2.1 is the following:

Theorem 2.2

If \(A+B\iota+C\iota^{2} \in \mathit{SO}(2,\mathbb{ D}^{2}_{1})\) then

$$\begin{aligned}& A= \begin{pmatrix} \cos(\varphi)& -\sin(\varphi)\\ \sin(\varphi)& \cos(\varphi) \end{pmatrix} ,\quad\quad B= \begin{pmatrix} -k\sin(\varphi)& -k\cos(\varphi)\\ k\cos(\varphi)& -k\sin(\varphi) \end{pmatrix} , \\& C= \begin{pmatrix} -\frac{k^{2}}{2} \cos(\varphi)& \frac{k^{2}}{2}\sin(\varphi)\\ -\frac{k^{2}}{2}\sin(\varphi)& -\frac {k^{2}}{2}\cos(\varphi) \end{pmatrix}. \end{aligned}$$

Our results differ from the classical error modelling theory by admitting the second order errors, i.e. the terms of the form \({\varepsilon }_{xy}{\varepsilon }_{xz}\) are considered as non-zero. The reason of neglecting the terms of the form \({\varepsilon }_{xy}{\varepsilon }_{xz}\) but accepting the terms \(x{\varepsilon }_{xy} {\varepsilon }_{xz}\) in classical approach comes from the unit analysis. Yet the computation itself is then provided in a non-associative algebra. Indeed,

$$0 \neq(x{\varepsilon }_{xy} ){\varepsilon }_{xz} \neq x( {\varepsilon }_{xy} {\varepsilon }_{xz} ) = x\cdot0 =0. $$

Thus compared to classical theory, our approach considers more terms to be non-zero which makes the result even more accurate, furthermore, the calculations are modelled in associative algebra which is much more suitable for computer modelling.

3 Virtual three-axis machine

A proposal for processing the data to create a map of geometric accuracy (phantom data) is prepared to be applied and verified on the demonstrator MCV 754 QUICK (Figure 1). The working space of demonstrator is defined by travels of the individual axes; in Figure 1 it is designated as WS (Working Space) with dimensions of \(754\times500\times550\mbox{ mm}\). In the following part of the computation, simulation is performed on the reduced space - see Figure 1 designated as MS (Measuring Space) with dimensions of \(150\times100\times150\mbox{ mm}\) and shifted in the coordinate system NCS (Coordinate System of New measuring space) to the position of \(x = 300\mbox{ mm}\), \(y = 200\mbox{ mm}\) and \(z = -200\mbox{ mm}\).

Figure 1
figure 1

MCV 754 QUICK.

Working space of three-axis milling machine is defined by Cartesian coordinate system X, Y, Z in the kinematic chain WXYZT (workpiece-tool, W - Workpiece, T - Tool). A computation of “virtual model” and error map is based on parametrization of the individual geometric errors of the machine tool. A three-axis milling machine enables to identify a total of 21 parameters of geometric errors (see Table 1). These errors are defined for each translational axis where each of translational axes has six geometrical deviations. According to ISO, the deviations of the X-axis are designated as EXX, EYX, EZX, EAX, EBX, and ECX. These errors also take into account squareness deviations between two axes, e.g. between X and Y - C0Y. This is a total of \(6\times3\) errors for translational axes and three squareness errors of the individual axes.

Table 1 Parametric errors for three-axis MT

When creating a virtual model, it was necessary to divide the working space WS into individual parts of MS due to the non-linear behaviour of some geometric errors. A sample linear behaviour of EXX error and non-linearity of EZX on WS can be seen in Figure 3. The measured data were obtained on the test demonstrator with “tracking laser interferometer”, Figure 2.

Figure 2
figure 2

Configurations of tracking laser interferometer.

On the basis of determined non-linear behaviour of geometric errors of demonstrator, it was necessary to parametrize the working space of 16 geometric errors. This model showed large deviations of error map caused by non-linearity of measured geometric errors. For this reason, the working space was divided into smaller segments (MS), see Table 2, where only seven of the assessed geometric errors (EYY, EAY, EZX, EYX, EZY, EXY, EXZ) exhibit non-linear behaviour. Such a number of geometric errors in the simulation further appear to be plausible.

Table 2 Adjusted space in the machine coordinate system with the start-CP

We compose the classical kinematic chain of the matrices over the second order dual numbers, i.e. the algebra \(\mathbb{D}_{1}^{2}\). All consequent calculations are then computed in this algebra. This allows us to use the effective modules of mathematical interface, in particular of Mathematica ®. Our model was based on real data, relating the configuration space. One can see, Figure 3, that the configuration space \(750 \times550 \times500\) breaks up into several blocks on which we can assume a linear variation of error. In order to check the inner accuracy of our method, we use the phantom data generated on the configuration space \(150 \times100 \times100\). The appropriate error vectors with coordinates formed by the differences dx, dy and dz are shown on Figures 4 and 5.

Figure 3
figure 3

Error model on configuration space.

Figure 4
figure 4

Phantom data.

Figure 5
figure 5

X - Y , X - Z and Y - Z projection planes of the phantom data.

4 Error modelling

In order to calculate the parameters conversely, we have to proceed in several steps. First, for the machine in question we determine the kinematic chain and substitute δ and ε in the resulting matrix by the appropriate linear parametrizations. Then if we let the modified matrix T act on the vector

$$X= \begin{pmatrix} 1 \\ 1 \\ 1 \\ 1 \end{pmatrix} , $$

we obtain the real position of the vector \(( 1 \ 1 \ 1) ^{T}\) which is consequently subtracted from the ideal image position, i.e. from the vector

$$X= \begin{pmatrix} x \\y \\ z \end{pmatrix} $$

and thus the difference vector

$$X= \begin{pmatrix} \Delta x \\ \Delta y \\ \Delta z \end{pmatrix} $$

is established.

In our particular case we use the following kinematic chain which contains error matrices corresponding to deviations caused both by the machine mechanics and by the machine errors. Let us consider the following kinematic chain for three-axis machines:

$$\begin{aligned} T =& \begin{pmatrix} 1& 0& 0& x\\ 0& 1& 0& 0\\ 0& 0& 1& 0\\ 0& 0& 0& 1 \end{pmatrix} \begin{pmatrix} 1& -{\varepsilon }_{zx} \iota& {\varepsilon }_{yx\iota}& \delta_{xx}\iota\\ {\varepsilon }_{zx}\iota& 1& -{\varepsilon }_{xx}\iota& \delta_{yx}\iota\\ -{\varepsilon }_{yx}\iota& {\varepsilon }_{xx}\iota& 1& \delta_{zx}\iota\\ 0& 0& 0& 1 \end{pmatrix} \begin{pmatrix} 1& 0& 0& 0\\ 0& 1& 0& y\\ 0& 0& 1& 0\\ 0& 0& 0& 1 \end{pmatrix} \\ &{}\times \begin{pmatrix} 1& -{\varepsilon }_{zy}\iota& {\varepsilon }_{yy}\iota& \delta_{xy}\iota-S_{xy} y\\ {\varepsilon }_{zy}\iota& 1& -{\varepsilon }_{xy}\iota& \delta_{yy}\iota\\ -{\varepsilon }_{yy}\iota& {\varepsilon }_{xy}\iota& 1& \delta_{zy}\iota\\ 0& 0& 0& 1 \end{pmatrix} \begin{pmatrix} 1& 0& 0& 0\\ 0& 1& 0& 0\\ 0& 0& 1& z\\ 0& 0& 0& 1 \end{pmatrix} \\ &{}\times \begin{pmatrix} 1& -{\varepsilon }_{zz}\iota& {\varepsilon }_{yz}\iota& \delta_{xz}\iota-S_{xz} z\\ {\varepsilon }_{zz}\iota& 1& -{\varepsilon }_{xz}\iota& \delta_{yz}\iota-S_{yz} z\\ -{\varepsilon }_{yz}\iota& {\varepsilon }_{xz}\iota& 1& \delta_{zz}\iota\\ 0& 0& 0& 1 \end{pmatrix} \begin{pmatrix} 1& 0& 0& 0\\ 0& 1& 0& 0\\ 0& 0& L& 0\\ 0& 0& 0& 1 \end{pmatrix} . \end{aligned}$$

The above mentioned parametrization is realized by the choice of constants of linearity for the expression of the displacement errors in the given direction and of the rotation errors. The displacement errors in the other directions than the one of the actual displacement are calculated by means of Abe principle. Thus we recall the following parametrization:

$$\begin{aligned}& \delta_{xx} = ax,\quad\quad\delta_{yy} = by,\quad\quad\delta_{zz} = cz, \\& \delta_{yx} = \frac{f_{1}}{2}x^{2},\quad\quad\delta_{zy} = \frac{g_{1}}{2}y^{2},\quad\quad\delta_{yz} = \frac{h_{1}}{2}z^{2}, \\& \delta_{zx} = \frac{f_{2}}{2}x^{2},\quad\quad\delta_{xy} = \frac{g_{2}}{2}y^{2},\quad\quad\delta_{xz} = \frac{h_{2}}{2}z^{2}, \\& {\varepsilon }_{yx} = f_{1}x,\quad\quad {\varepsilon }_{xy} = g_{1}y,\quad\quad {\varepsilon }_{xz} = h_{1}z, \\& {\varepsilon }_{zx} = f_{2}x,\quad\quad {\varepsilon }_{zy} = g_{2}y,\quad\quad {\varepsilon }_{zz} = h_{3}z, \\& {\varepsilon }_{xx} = f_{3}x,\quad\quad {\varepsilon }_{yy} = g_{3}y,\quad\quad {\varepsilon }_{yz} = h_{2}z. \end{aligned}$$

In fact, our goal is to reconstruct the parameters from the phantom data measured on the axis x, y, and z. The first goal is to express the differences by means of the following parameters

$$ a, b, c, f_{1}, f_{2}, f_{3}, g_{1}, g_{2}, g_{3}, h_{1}, h_{2}, h_{3} $$

which are to be calculated consequently by the least square method. By comparison of the result with the ideal values, the following three equations are given.

$$\begin{aligned}& \Delta x =-{S_{xy}} y-{S_{xz}} z + \biggl[ a x+L ({f_{1}} x+{g_{3}} y+{h_{2}} z)+z ({f_{1}} x+{g_{3}} y)- {S_{yz}} z (-{f_{2}} x-{g_{2}} y) \\& \hphantom{\Delta x =}{}-{f_{2}} x y-{f_{2}} x +\frac{{g_{2}} y^{2}}{2}-{g_{2}} y+ \frac{{h_{2}} z^{2}}{2}-{h_{3}} z \biggr] \iota+ [\cdots] \iota^{2}, \\& \Delta y =-{S_{yz}} z+ \biggl[b y+\frac{{f_{1}} x^{2}}{2}-{S_{xz}} z ({f_{2}} x+{g_{2}} y)- {f_{2}} {S_{xy}} x y+{f_{2}} x+L (-{f_{3}} x-{g_{1}} y-{h_{1}} z) \\& \hphantom{\Delta y =}{}+z (-{f_{3}} x-{g_{1}} y)+{g_{2}} y+ \frac{{h_{1}} z^{2}}{2}+{h_{3}} z \biggr] \iota+ [\cdots] \iota^{2}, \\& \Delta z = \biggl[c z-{S_{xz}} z (-{f_{1}} x-{g_{3}} y)+{f_{1}} {S_{xy}} x y- {f_{1}} x+\frac{{f_{2}} x^{2}}{2}-{S_{yz}} z ({f_{3}} x+{g_{1}} y) \\& \hphantom{\Delta z =}{} + {f_{3}} x y+{f_{3}} x+\frac{{g_{1}} y^{2}}{2}+{g_{1}} y-{g_{3}} y+ {h_{1}} z-{h_{2}} z \biggr] \iota+ [ \cdots] \iota^{2}. \end{aligned}$$

In what follows, for the sake of simplicity, the coefficients of \(\iota ^{2}\) are omitted. Clearly, it is possible to handle the elements of different orders separately or jointly. Note that another advantage of our approach is that the errors of particular orders can be recognized and separated during the calculation.

If these equations are reformulated in the way that the parameters

$$a,b,c,f_{1},f_{2},f_{3},g_{1},g_{2},g_{3},h_{1},h_{2},h_{3} $$

are understood as the variables and the functions of x, y, z form their coefficients. The value L is given by the machine construction and the squareness errors \(S_{xy}\), \(S_{yz}\) and \(S_{xz}\) are constant within the whole workspace and assumed to be known. For Δx we have the variables

$$\begin{aligned}& h_{3},h_{2},g_{3},g_{2},f_{2},f_{1},a,g_{3}h_{2},g_{3}h_{1},g_{2}h_{3},g_{2}h_{1},f_{2}h_{3},f_{2}h_{1}, \\& f_{2}g_{2},f_{2}g_{1},f_{1}h_{2},f_{1}h_{1},f_{1}g_{3},f_{1}g_{1},cg_{3},cf_{1},bf_{2} \end{aligned}$$

with the appropriate coefficients. For instance, the coefficient of \(f_{1}g_{1}\) is in the form \(\frac{1}{2} x y^{2}\) and for \(f_{1}g_{3}\) the appropriate multiplier is \(S_{xz}xyz\). For the choice \(x\in 1,\ldots,15\), \(y=5\) and \(z=5\) we obtain the matrix of the dimension \(15\times22\), where the rows represent different choices of x and the right hand side of the system is given by the actual difference Δx at \((x,y,z)\). To this matrix, we find the Moore-Penrose inversion and calculate the coefficients in question consequently. The same procedure on Δy and Δz is applied and the resulting error parameters are used for graphical demonstration of the predicted deviations, see Fig. 6.

Figure 6
figure 6

X - Y , X - Z and Y - Z projection planes of the results.

5 Conclusion

We used the phantom data based on the technical parameters and measured errors of the demonstrator to check the proposed method of the calculation of the geometric errors linear parametrization. To avoid the discontinuity in the error evolution, we focused on such part of the MS space where the errors are approximately linear. Consequently, we calculate the linear parameters in question classically by means of the Moore-Penrose inverse matrix with the modification based on the calculus of the dual numbers formulated in [22]. Our aim is to both predict the machine tool behaviour and to use the measured data for the correct description of its possible states. The main contribution of our calculation proposal is the reduction if the number of inputs that are necessary to measure within the machine working space. This leads to significant reduction of the machines shutdown time needed for the data collection. Furthermore, it is possible to use more elementary measurement tools like laser interferometer, the price of which is remarkably lower than that of the Laser TRACER, which was used within this publication. The disadvantage of the proposed algorithm is the assumption on the errors linearity behaviour. This questions the suitability for small and middle-sized machines. On the other hand, the error linearity of particular geometric errors can be expected for large machines. We conclude that, based on the provided graphs, for such machines our results are highly applicable.