1 Introduction

Tuning the cascade controllers’ parameters is a demanding process that requires a high level of expertise of the operator performing this activity [1]. For this reason, a universal methodology has been developed that aims to automate this process as much as possible and significantly simplify it even for a less professional operator.

At the same time, the number of controller parameters that are subject to optimization is high, and these parameters interact. Based on this, there is a requirement for simultaneous optimization as an alternative to gradual optimization (manual tuning).

State feedback with Kalman filter state observer is the basis for the pole placement controller in [2]. The drive control parameters are determined from the multibody mechanical model representation in [3] to reduce the system vibrations. Tuning of cross coupling controller for the machine tool drives extends the stochastic linear quadratic Gaussian regulator, and it combines both the drive and the cutting dynamics into a unified model in [4]. Trajectory generation technique with a shaped frequency content to minimize residual vibrations is introduced in [5]; an alternative feedback control strategy with input signal shaper is presented in [6]. Improved artificial bee colony algorithm optimizes the settings of feedback PID and feedforward PD controller in [7] fulfilling the task of contour tracking. The adaptive sliding mode control with nonlinear sliding surface in [8] increases the feed drive motion accuracy. Static and dynamic machine tool stiffness [9] is influenced by force feedback applied to the PID cascade controller. The contour error–based sliding mode control is introduced in [10, 11] to control the industrial feed drive. The inverse dynamics compensation for machine feed drives using model predictive control is presented in [12]. Time-based linear programming links together feedrate optimization and servo error pre-compensation in [13] for obtaining machine servo drive input. In [14], a data-driven approach is used for controller tuning with Bayesian optimization approach.

The feed drives’ dynamics is identified using unbiased least squares scheme in [15]; parameters for identification are inertia and viscous friction. The genetic algorithm is used for drive axis identification in [16] covering rigid body motion and Coulomb friction. The moment of inertia system identification is performed in [17] by using relay feedback experiment in the time-domain combined with gradual pole compensation (it is supposed that single mass representation is satisfactory for the modeling of the system). Model-based system identification is used in [18] for obtaining the instantaneous model behavior, which can be used for system control. The reduced state-space model of the machine tool with feed drive is obtained in [19] covering dissipative phenomena (which were identified by measurement) and covering controller too. Theoretical estimation algorithm to determine modal parameters of a mechanical system is shown in [20]. Identification based on recursive least squares method is used to determine feed drive model including nonlinear friction [21]. In the paper [22], the pole search method is used in conjunction with least squares projection technique for identifying virtual machine tool drives, and it gives servo errors from the desired position with high accuracy. The system residual vibrations could be suppressed by active vibration absorber (delay resonator is presented in [23]) applied to the 2D robotic arm [24, 25].

This paper deals with the methodology for tuning the cascade control parameters of the machine drive axis. The methodology workflow is as follows: machine drive axis identification, cascade control loop assembly, formulation and processing of optimization task, and application of optimal controller settings. The paper is organized as follows: in Section 2, we describe the identification methods used. Section 3 describes the cascade control; Section 4 deals with the speed control model and emphasizes the free parameters (controller setting). Section 5 is the formulated optimization task objective function. Section 6 compares the simulation results (based on the model identified from measurement), performed with and without optimized controller settings. Section 7 presents the verification of auto-tuning algorithm on a real machine, and Section 8 summarizes the obtained results.

2 Identification of dynamic models

The model of electro-mechanical system with current feedback was obtained by separation from the identified model of velocity feedback. The identification was based on measured data of the desired engine velocity vd and the measured velocity vm, sampled with a time step Δt.

$$ {\boldsymbol{u}}_{\boldsymbol{i}}={v}_d\left(i\cdot \Delta t\right) $$
$$ {\boldsymbol{y}}_{\boldsymbol{i}}={v}_m\left(i\cdot \Delta t\right) $$

Inputs for identification are measured output data y1, y2, …, yq corresponding to measured inputs u1, u2, …, uq. The coefficient q denotes the total number of time steps. For the structured data, the most commonly used method is the Eigensystem realization algorithm (ERA) or methods derived from it (e.g., Multivariable Output Error State-Space (MOESP), [26, 27]).

2.1 Eigensystem realization algorithm method

The output of the ERA method (described by Gawronski [28]) is the discrete state description parameters in a balanced form (states vector is as controllable as observable). The state description is identified in the form described by Eqs. (3) and (4).

$$ {\boldsymbol{x}}_{\boldsymbol{i}+\mathbf{1}}=\boldsymbol{A}{\boldsymbol{x}}_{\boldsymbol{i}}+\boldsymbol{B}{\boldsymbol{u}}_{\boldsymbol{i}} $$
$$ {\boldsymbol{y}}_{\boldsymbol{i}}=\boldsymbol{C}{\boldsymbol{x}}_{\boldsymbol{i}}+\boldsymbol{D}{\boldsymbol{u}}_{\boldsymbol{i}} $$

where A, B, C, and D are matrixes of state description, xi is the state vector, ui is the vector of inputs, and index i corresponds to a time step. The first step of identification is to construct the Markov parameters from the impulse response considering zero initial conditions. Generally, the construction of Markov parameters hk can be written as in Eq. (5).

$$ {\boldsymbol{h}}_{\mathbf{0}}=\boldsymbol{D},{\boldsymbol{h}}_{\boldsymbol{k}}=\boldsymbol{C}{\boldsymbol{A}}^{k-1}\boldsymbol{B} $$

The individual Markov parameters are then written to the Markov matrix H. The coefficient p denotes the prediction horizon (model order) and p ≪ q holds. Choice of order is significant, too low order would not affect part of dynamics, and too high order could bring undesirable dynamics (typically caused by noise in measured data), and in addition, it would increase computational demands.

$$ \boldsymbol{H}=\left[{\boldsymbol{h}}_{\mathbf{0}}\kern0.5em {\boldsymbol{h}}_{\mathbf{1}}\kern0.5em \cdots \kern0.5em {\boldsymbol{h}}_{\boldsymbol{p}}\right] $$

To calculate Markov’s matrix H, it is first necessary to define an input matrix U and an output matrix Y.

$$ \boldsymbol{U}=\left[\begin{array}{ccccccc}{\boldsymbol{u}}_{\mathbf{0}}& {\boldsymbol{u}}_{\mathbf{1}}& {\boldsymbol{u}}_{\mathbf{2}}& \cdots & {\boldsymbol{u}}_{\boldsymbol{p}}& \cdots & {\boldsymbol{u}}_{\boldsymbol{q}}\\ {}\mathbf{0}& {\boldsymbol{u}}_{\mathbf{0}}& {\boldsymbol{u}}_{\mathbf{1}}& \cdots & {\boldsymbol{u}}_{\boldsymbol{p}-\mathbf{1}}& \cdots & {\boldsymbol{u}}_{\boldsymbol{q}-\mathbf{1}}\\ {}\vdots & \vdots & \vdots & \ddots & \vdots & \ddots & \vdots \\ {}\mathbf{0}& \mathbf{0}& \mathbf{0}& \cdots & {\boldsymbol{u}}_{\mathbf{0}}& \cdots & {\boldsymbol{u}}_{\boldsymbol{q}-\boldsymbol{p}}\end{array}\right] $$
$$ \boldsymbol{Y}=\left[{\boldsymbol{y}}_{\mathbf{0}}\kern0.5em {\boldsymbol{y}}_{\mathbf{1}}\kern0.5em \cdots \kern0.5em {\boldsymbol{y}}_{\boldsymbol{q}}\right] $$

The dependence (9) applies to such formulated matrices, and after pseudoinversion of the input matrix, we obtain the formula for determination of the Markov matrix (10) and its distribution yields also individual Markov parameters.

$$ \boldsymbol{Y}=\boldsymbol{HU} $$
$$ \boldsymbol{H}=\boldsymbol{Y}{\boldsymbol{U}}^T{\left(\boldsymbol{U}{\boldsymbol{U}}^T\right)}^{-1} $$

Observation matrix P and controllability matrix Q are expressed from the Hankel matrix H1 and H2; it results from Eq. (5).

$$ {\boldsymbol{H}}_{\mathbf{1}}=\boldsymbol{PQ}=\left[\begin{array}{cccc}{\boldsymbol{h}}_{\mathbf{1}}& {\boldsymbol{h}}_{\mathbf{2}}& \cdots & {\boldsymbol{h}}_{\boldsymbol{p}}\\ {}{\boldsymbol{h}}_{\mathbf{2}}& {\boldsymbol{h}}_{\mathbf{3}}& \cdots & {\boldsymbol{h}}_{\boldsymbol{p}+\mathbf{1}}\\ {}\vdots & \vdots & \ddots & \vdots \\ {}{\boldsymbol{h}}_{\boldsymbol{p}}& {\boldsymbol{h}}_{\boldsymbol{p}+\mathbf{1}}& \cdots & {\boldsymbol{h}}_{\mathbf{2}\boldsymbol{p}-\mathbf{1}}\end{array}\right] $$
$$ {\boldsymbol{H}}_{\mathbf{2}}=\boldsymbol{PAQ}=\left[\begin{array}{cccc}{\boldsymbol{h}}_{\mathbf{2}}& {\boldsymbol{h}}_{\mathbf{3}}& \cdots & {\boldsymbol{h}}_{\boldsymbol{p}+\mathbf{1}}\\ {}{\boldsymbol{h}}_{\mathbf{3}}& {\boldsymbol{h}}_{\mathbf{4}}& \cdots & {\boldsymbol{h}}_{\boldsymbol{p}+\mathbf{2}}\\ {}\vdots & \vdots & \ddots & \vdots \\ {}{\boldsymbol{h}}_{\boldsymbol{p}+\mathbf{1}}& {\boldsymbol{h}}_{\boldsymbol{p}+\mathbf{2}}& \cdots & {\boldsymbol{h}}_{\mathbf{2}\boldsymbol{p}}\end{array}\right] $$

By singular value decomposition (SVD), the Hankel matrix is broken down into a diagonal matrix of singular numbers Γ and an orthonormal matrices V and U. The diagonal matrix Γ is further broken down into Hankel matrices of singular numbers ΓV and ΓU.

$$ {\boldsymbol{H}}_{\mathbf{1}}=\boldsymbol{V}\boldsymbol{D}{\boldsymbol{U}}^T=\boldsymbol{V}{\boldsymbol{\Gamma}}_{\boldsymbol{V}}{\boldsymbol{\Gamma}}_{\boldsymbol{U}}{\boldsymbol{U}}^T $$

The observation matrix P and controllability matrix Q are given by Eqs. (14) and (15).

$$ \boldsymbol{P}=\boldsymbol{V}{\boldsymbol{\Gamma}}_{\boldsymbol{V}} $$
$$ \boldsymbol{Q}={\boldsymbol{\Gamma}}_{\boldsymbol{U}}{\boldsymbol{U}}^T $$

The matrix A is expressed by a pseudoinversion from the shifted Hankel matrix H2.

$$ \boldsymbol{A}={\boldsymbol{P}}^{+}{\boldsymbol{H}}_{\mathbf{2}}{\boldsymbol{Q}}^{+} $$
$$ {\boldsymbol{P}}^{+}={\left({\boldsymbol{P}}^T\boldsymbol{P}\right)}^{-1}{\boldsymbol{P}}^T $$
$$ {\boldsymbol{Q}}^{+}={\boldsymbol{Q}}^T{\left(\boldsymbol{Q}{\boldsymbol{Q}}^T\right)}^{-1} $$

The matrix B is determined as the first s columns of the matrix Q and the matrix C as the first r rows of the matrix P.

$$ \boldsymbol{B}=\boldsymbol{Q}{\boldsymbol{E}}_{\boldsymbol{s}} $$
$$ {\boldsymbol{E}}_{\boldsymbol{s}}={\left[{\boldsymbol{I}}_{\boldsymbol{s}}\kern0.5em \mathbf{0}\kern0.5em \cdots \kern0.5em \mathbf{0}\right]}^T $$
$$ \boldsymbol{C}={{\boldsymbol{E}}_{\boldsymbol{r}}}^T\boldsymbol{P} $$
$$ {\boldsymbol{E}}_{\boldsymbol{r}}={\left[{\boldsymbol{I}}_{\boldsymbol{r}}\kern0.5em \mathbf{0}\kern0.5em \cdots \kern0.5em \mathbf{0}\right]}^T $$

The matrix D corresponds to the zero Markov parameter.

$$ \boldsymbol{D}={\boldsymbol{h}}_{\mathbf{0}} $$

2.2 Multivariable Output Error State-Space method

The MOESP method will be described using an approach by Katayama [29]. In the first step, the data matrices UK and YK are formed (q is supposed as sufficiently large).

$$ {\boldsymbol{U}}_{\boldsymbol{K}}=\left[\begin{array}{cccc}{\boldsymbol{u}}_{\mathbf{0}}& {\boldsymbol{u}}_{\mathbf{1}}& \cdots & {\boldsymbol{u}}_{\boldsymbol{q}-\mathbf{1}}\\ {}{\boldsymbol{u}}_{\mathbf{1}}& {\boldsymbol{u}}_{\mathbf{2}}& \cdots & {\boldsymbol{u}}_{\boldsymbol{q}}\\ {}\vdots & \vdots & \ddots & \vdots \\ {}{\boldsymbol{u}}_{\boldsymbol{p}-\mathbf{1}}& {\boldsymbol{u}}_{\boldsymbol{p}}& \cdots & {\boldsymbol{u}}_{\boldsymbol{p}+\boldsymbol{q}-\mathbf{2}}\end{array}\right] $$
$$ {\boldsymbol{Y}}_{\boldsymbol{K}}=\left[\begin{array}{cccc}{\boldsymbol{y}}_{\mathbf{0}}& {\boldsymbol{y}}_{\mathbf{1}}& \cdots & {\boldsymbol{y}}_{\boldsymbol{q}-\mathbf{1}}\\ {}{\boldsymbol{y}}_{\mathbf{1}}& {\boldsymbol{y}}_{\mathbf{2}}& \cdots & {\boldsymbol{y}}_{\boldsymbol{q}}\\ {}\vdots & \vdots & \ddots & \vdots \\ {}{\boldsymbol{y}}_{\boldsymbol{p}-\mathbf{1}}& {\boldsymbol{y}}_{\boldsymbol{p}}& \cdots & {\boldsymbol{y}}_{\boldsymbol{p}+\boldsymbol{q}-\mathbf{2}}\end{array}\right] $$

Subsequently, LQ decomposition of these data matrices is performed.

$$ {\boldsymbol{U}}_{\boldsymbol{K}}={\boldsymbol{L}}_{\mathbf{1}\mathbf{1}}{\boldsymbol{Q}}_{\mathbf{1}}^T $$
$$ {\boldsymbol{Y}}_{\boldsymbol{K}}={\boldsymbol{L}}_{\mathbf{2}\mathbf{1}}{\boldsymbol{Q}}_{\mathbf{1}}^T+{\boldsymbol{L}}_{\mathbf{2}\mathbf{2}}{\boldsymbol{Q}}_{\mathbf{2}}^T $$

where L11 and L22 are lower triangular matrices and Q1 and Q2 are orthogonal matrices. The next step is SVD decomposition of matrix L22

$$ {\boldsymbol{L}}_{\mathbf{2}\mathbf{2}}=\left[{\boldsymbol{U}}_{\mathbf{1}}{\boldsymbol{U}}_{\mathbf{2}}\right]\left[\begin{array}{cc}{\boldsymbol{S}}_{\mathbf{1}\mathbf{1}}& \mathbf{0}\\ {}\mathbf{0}& \mathbf{0}\end{array}\right]\left[\begin{array}{c}{\boldsymbol{V}}_{\mathbf{1}}^T\\ {}{\boldsymbol{V}}_{\mathbf{2}}^T\end{array}\right]={\boldsymbol{U}}_{\mathbf{1}}{\boldsymbol{S}}_{\mathbf{1}\mathbf{1}}{\boldsymbol{V}}_{\mathbf{1}}^T $$

where U1 has dimension [p · l × n] and U2 has dimension [p · l × (p · l − n)], n is the dimension of the state vector, and l is the dimension of the output vector yi. Then, we define the extended observability matrix as:

$$ {\boldsymbol{O}}_{\boldsymbol{p}}={\boldsymbol{U}}_{\mathbf{1}}{\boldsymbol{S}}_{\mathbf{1}\mathbf{1}}^{1/2} $$

where \( {\boldsymbol{S}}_{\mathbf{11}}^{1/2} \) is a matrix square root of the matrix S11.

Using the extended observability matrix, the matrix C is given by:

$$ \boldsymbol{C}={\boldsymbol{O}}_{\boldsymbol{p}}\left(1:l,1:n\right) $$

Note, that

$$ \left[\begin{array}{c}\boldsymbol{C}\\ {}\boldsymbol{C}\boldsymbol{A}\\ {}\vdots \\ {}\boldsymbol{C}{\boldsymbol{A}}^{p-2}\end{array}\right]\boldsymbol{A}=\left[\begin{array}{c}\boldsymbol{C}\boldsymbol{A}\\ {}\boldsymbol{C}{\boldsymbol{A}}^2\\ {}\vdots \\ {}\boldsymbol{C}{\boldsymbol{A}}^{p-1}\end{array}\right]\to {\boldsymbol{O}}_{\boldsymbol{p}-\mathbf{1}}\boldsymbol{A}={\boldsymbol{O}}_{\boldsymbol{p}}\left(\left(l+1\right):\left(l\cdot p\right),1:n\right) $$

Therefore, using the pseudoinverse of Op −1, the matrix A can be solved as:

$$ \boldsymbol{A}={\boldsymbol{O}}_{\boldsymbol{p}-\mathbf{1}}^{+}{\boldsymbol{O}}_{\boldsymbol{p}}\left(\left(l+1\right):\left(l\cdot p\right),1:n\right) $$

The calculation of B and D estimations is based on the solving equation:

$$ {\boldsymbol{U}}_{\mathbf{2}}^T\left[\begin{array}{cccc}\boldsymbol{D}& \mathbf{0}& \dots & \mathbf{0}\\ {}\boldsymbol{C}\boldsymbol{B}& \boldsymbol{D}& \dots & \mathbf{0}\\ {}\vdots & \vdots & \ddots & \vdots \\ {}\boldsymbol{C}{\boldsymbol{A}}^{p-2}\boldsymbol{B}& \boldsymbol{C}{\boldsymbol{A}}^{p-3}\boldsymbol{B}& \dots & \boldsymbol{D}\end{array}\right]={\boldsymbol{U}}_{\mathbf{2}}^T{\boldsymbol{L}}_{\mathbf{2}\mathbf{1}}{\boldsymbol{L}}_{\mathbf{11}}^{-1} $$

Substituting \( {\boldsymbol{U}}_{\mathbf{2}}^T:= \left[{\mathcal{L}}_1{\mathcal{L}}_2\cdots {\mathcal{L}}_p\right] \) and \( {\boldsymbol{U}}_{\mathbf{2}}^T{\boldsymbol{L}}_{\mathbf{2}\mathbf{1}}{\boldsymbol{L}}_{\mathbf{11}}^{-1}:= \left[{\mathcal{M}}_1{\mathcal{M}}_2\cdots {\mathcal{M}}_p\right] \), we get overdetermined set of linear equations:

$$ \left[\begin{array}{cc}{\mathcal{L}}_1& {\overline{\mathcal{L}}}_2{\boldsymbol{O}}_{\boldsymbol{p}-\mathbf{1}}\\ {}{\mathcal{L}}_2& {\overline{\mathcal{L}}}_3{\boldsymbol{O}}_{\boldsymbol{p}-\mathbf{2}}\\ {}\mathbf{\vdots}& \mathbf{\vdots}\\ {}{\mathcal{L}}_{p-1}& {\overline{\mathcal{L}}}_q{\boldsymbol{O}}_{\mathbf{1}}\\ {}{\mathcal{L}}_p& \mathbf{0}\end{array}\right]\left[\begin{array}{c}\boldsymbol{D}\\ {}\boldsymbol{B}\end{array}\right]=\left[\begin{array}{c}{\mathcal{M}}_1\\ {}{\mathcal{M}}_2\\ {}\mathbf{\vdots}\\ {}{\mathcal{M}}_{p-1}\\ {}{\mathcal{M}}_p\end{array}\right] $$

where \( {\overline{\mathcal{L}}}_i=\left[{\mathcal{L}}_i\cdots {\mathcal{L}}_p\right] \), i = 2, ⋯, p. It can be shown that a unique least-squares solution exists if p > n.

3 Cascade control

The cascade control of feed drive axis consists of three loops (Fig. 1). The innermost current loop, superior speed loop, and the most superior position loop. Determining influence has position control, and others are complementary. They significantly improve behavior of all feedback control. Further improvement brings velocity and acceleration feedforward. Significant influence on the quality of feedback control has the measuring systems and its placing on mechanical structure.

Fig. 1
figure 1

Cascade control, simplified model of feed drive axis

3.1 Current control

The most usual actuator in feed drive axes is brushless permanent magnet synchronous motor (PMSM). The indivisible part of this type of servomotor became the commutation sensor as a necessary tool for the computation of a right commutation angle. Such electronic, brushless, commutation superceded earlier used a mechanical commutator with brush. Further development brings sensorless motors, but the motors with position commutation sensor are still in front in precise applications.

Very advantageous feature of PMSM is linear relationship between the torque and the current (or force and current in the case of linear motor). This relationship can be described by using Eq. [30].

$$ {M}_K={K}_TI $$

where the MK is a motor torque in [Nm], I is a current in [A], and KT is a torque constant in [Nm/A]. If the servomotor would be driven only by the voltage applied on its terminal, the movement would be flexible as the external moment would act on the shaft. Another phenomenon is the electro-magnetic force (EMF) which counteracts the terminal voltage lowering the motor current and thereby its moment. Both undesirable effects are suppressed by the introduction of the current control. PI current controller helps to suppress the effect of EMF and moreover significantly speeds up settling time of current in windings. With PI current control, the settling time of step response is approximately in milliseconds. The output of the current PI control is a desired motor voltage.

3.2 Speed control

Though the fact that the speed PI control works with speed signal, its main contribution is the theoretically infinite static stiffness of feedback control. This is because of the I component of the PI controller. The transfer function Gv (s) of speed PI control is:

$$ {G}_v\left(\mathrm{s}\right)={K}_p\frac{1+{T}_ns}{T_ns};\kern0.17em s=j\upomega $$

where Kp is the proportional component and Tn is the integral component of the speed controller, and j is the imaginary unit. We could see that as ω→0, the value of Gv(s) goes to infinity.

Setting the speed control is crucial for the best performance of whole feed drive axis. The main aims are to reach wide bandwidth and high dynamic stiffness of control loop [30, 31]. High bandwidth allows good tracking properties, and high dynamical stiffness brings low sensitivity to external disturbance MD (Fig. 1). The key to reach these requirements is to set as high gain as possible. But there must be fulfilled requirements for stability and low content of mechanical resonances in step response. In praxis, the gain of the speed controller is limited due to mechanical resonance limits [32]. Such interaction is illustrated in Fig. 2 and Fig. 3.

Fig. 2
figure 2

Bode plot of speed control loop. Controlled mechanics has several resonances [33]

Fig. 3
figure 3

Bode plot of speed control loop. Comparison of bandwidths of speed feedback with and without frequency filters [33]

3.3 Position control

The most superior is the position control loop. The wide bandwidth control requirement assures the basic pre-requisite for accurate tracking in a wide range of frequencies. But the magnitude of the gain, the well-known Kv factor, must be set with regard to aperiodic response to input. No oscillations which can cause some undesirable cut into the workpiece contour are acceptable.

Figure 4 shows different shapes of position deviations. Each curve was captured for the same velocity. The position deviation is nonzero and constant during the constant velocity movement. Its value is proportional to the Kv factor and velocity. If Kv factors of interpolating axes are not equal, it causes contour deviation. It is readily seen during circular interpolation. Different Kv factors for axes cause elliptic instead circular shape. This effect is neglected when the feedforward (FFW) is used. In such case, the circular shape is held also for different Kv factors.

Fig. 4
figure 4

Influence of the Kv factor on the magnitude of the position deviation. Influence of velocity feedforward on positional deviation (FFWon means feedforward is activated, weighting factor is set to 1)

The feedforward (Fig. 1) can significantly reduce position deviation and allows accurate tracking of trajectory also for different Kv factors set in each moving axis. Control systems offer velocity feedforward and acceleration feedforward. Both of them work with the desired position as the input variable. Velocity feedforward derives a desired velocity in a way of derivative block series and weight coefficient Kw in range <0; 1>. Maximal suppression of position deviation is if Kw = 1. In a steady-state movement, the position deviation is in such case zero. Other suppression of position deviations in transition response is possible via acceleration feedforward.

4 Speed control loop model

The general methodology for tuning control loop controllers was developed on the speed control loop. This loop was chosen because its tuning is usually the most difficult. The first step of development was to build a simplified speed control loop model. The model (Fig. 5) consists of two parts, the speed controller and the model of the mechanical system with current control loop. The mechanical system model can be obtained either by modeling (analytical model) or by identification.

Fig. 5
figure 5

Simplified speed control loop model [34]

The speed controller consists of a PI controller, a series of notch filters, and a low-pass filter. The low-pass filter serves as a fuse; if the function of the notch filters is not guaranteed, therefore its use is not always required, and this must be considered when designing the mathematical model.

4.1 State-space description of PI regulator

The state-space model of the PI regulator (API, BPI, CPI, DPI) is given by 2 parameters: proportional gain Kp and integration time constant Tn.

$$ {A}_{PI}=0 $$
$$ {B}_{PI}=-{K}_p $$
$$ {C}_{PI}=-\frac{1}{T_n} $$
$$ {D}_{PI}={K}_p $$

4.2 State-space description of notch filter

The state-space model of the notch filter (ANi, BNi, CNi, DNi) is given by 4 parameters: eigenfrequencies Ω1,Zi, Ω2,Zi, and comparative damping ξ1,Ni, ξ2,Ni.

$$ {\boldsymbol{A}}_{\boldsymbol{Ni}}=\left[\begin{array}{cc}0& -{\Omega}_{2, Ni}^2\\ {}1& -2{\xi}_{2, Ni}{\Omega}_{2, Ni}\end{array}\right] $$
$$ {\boldsymbol{B}}_{\boldsymbol{Ni}}=\left[\begin{array}{c}{\left(\frac{\Omega_{2, Ni}}{\Omega_{1, Ni}}\right)}^2-1\\ {}\frac{2}{\Omega_{1,\mathrm{N}i}^2}\left({\xi}_{2, Ni}{\Omega}_{2, Ni}-{\xi}_{1, Ni}{\Omega}_{1, Ni}\right)\end{array}\right] $$
$$ {\boldsymbol{C}}_{\boldsymbol{Ni}}=\left[0\kern0.5em -{\Omega}_{2, Ni}^2\right] $$
$$ {D}_{Ni}={\left(\frac{\Omega_{2, Ni}}{\Omega_{1, Ni}}\right)}^2 $$

4.3 State-space description of low-pass filter

The state-space model of the low-pass filter (ALP, BLP, CLP, DLP) is given by 2 parameters: eigenfrequency ΩLP and comparative damping ξLP.

$$ {\boldsymbol{A}}_{\mathbf{LP}}=\left[\begin{array}{cc}0& 1\\ {}-{\Omega}_{LP}^2& -2{\xi}_{LP}{\Omega}_{LP}\end{array}\right] $$
$$ {\boldsymbol{B}}_{\mathbf{LP}}=\left[\begin{array}{c}0\\ {}{\Omega}_{LP}^2\end{array}\right] $$
$$ {\boldsymbol{C}}_{\mathbf{LP}}=\left[1\kern0.5em 0\right] $$
$$ {D}_{LP}=0 $$

4.4 State-space description of the open-loop system

When constructing an open-loop model, a state-space description of a series of notch filters was first compiled. The shape of the state description matrices for n notch filters is described by using Eqs. (49)–(52). The notation of the matrix product is used in the notation. The short notation is used for the multiplication of matrixes DNi (e.g., DN31 = DN3 DN2 DN1).

$$ {\boldsymbol{A}}_{\mathbf{SN}}=\left[\begin{array}{ccccc}{\boldsymbol{A}}_{\boldsymbol{N}\mathbf{1}}& \mathbf{0}& \cdots & \mathbf{0}& \mathbf{0}\\ {}{\boldsymbol{B}}_{\boldsymbol{N}\mathbf{2}}{\boldsymbol{C}}_{\boldsymbol{N}\mathbf{1}}& {\boldsymbol{A}}_{\boldsymbol{N}\mathbf{2}}& \cdots & \mathbf{0}& \mathbf{0}\\ {}\vdots & \vdots & \ddots & \vdots & \vdots \\ {}{\boldsymbol{B}}_{\boldsymbol{N}\boldsymbol{n}-\mathbf{1}}{\boldsymbol{D}}_{\boldsymbol{N}\boldsymbol{n}-\mathbf{2}\to \mathbf{2}}{\boldsymbol{C}}_{\boldsymbol{N}\mathbf{1}}& {\boldsymbol{B}}_{\boldsymbol{N}\boldsymbol{n}-\mathbf{1}}{\boldsymbol{D}}_{\boldsymbol{N}\boldsymbol{n}-\mathbf{2}\to \mathbf{3}}{\boldsymbol{C}}_{\boldsymbol{N}\mathbf{2}}& \cdots & {\boldsymbol{A}}_{\boldsymbol{N}\boldsymbol{n}-\mathbf{1}}& \mathbf{0}\\ {}{\boldsymbol{B}}_{\boldsymbol{N}\boldsymbol{n}}{\boldsymbol{D}}_{\boldsymbol{N}\boldsymbol{n}-\mathbf{1}\to \mathbf{2}}{\boldsymbol{C}}_{\boldsymbol{N}\mathbf{1}}& {\boldsymbol{B}}_{\boldsymbol{N}\boldsymbol{n}}{\boldsymbol{D}}_{\boldsymbol{N}\boldsymbol{n}-\mathbf{1}\to \mathbf{3}}{\boldsymbol{C}}_{\boldsymbol{N}\mathbf{2}}& \cdots & {\boldsymbol{B}}_{\boldsymbol{N}\boldsymbol{n}}{\boldsymbol{C}}_{\boldsymbol{N}\boldsymbol{n}-\mathbf{1}}& {\boldsymbol{A}}_{\boldsymbol{N}\boldsymbol{n}}\end{array}\right] $$
$$ {\boldsymbol{B}}_{\mathbf{SN}}=\left[\begin{array}{c}{\boldsymbol{B}}_{\boldsymbol{N}\mathbf{1}}\\ {}{\boldsymbol{B}}_{\boldsymbol{N}\mathbf{2}}{\boldsymbol{D}}_{\boldsymbol{N}\mathbf{1}}\\ {}\vdots \\ {}{\boldsymbol{B}}_{\boldsymbol{N}\boldsymbol{n}-\mathbf{1}}{\boldsymbol{D}}_{\boldsymbol{N}\boldsymbol{n}-\mathbf{2}\to \mathbf{1}}\\ {}{\boldsymbol{B}}_{\boldsymbol{N}\boldsymbol{n}}{\boldsymbol{D}}_{\boldsymbol{N}\boldsymbol{n}-\mathbf{1}\to \mathbf{1}}\end{array}\right] $$
$$ {\boldsymbol{C}}_{\mathbf{SN}}=\left[{\boldsymbol{D}}_{\boldsymbol{N}\boldsymbol{n}\to \mathbf{2}}{\boldsymbol{C}}_{\boldsymbol{N}\mathbf{1}}\kern0.5em {\boldsymbol{D}}_{\boldsymbol{N}\boldsymbol{n}\to \mathbf{3}}{\boldsymbol{C}}_{\boldsymbol{N}\mathbf{2}}\kern0.5em \cdots \kern0.5em {\boldsymbol{D}}_{\boldsymbol{N}\boldsymbol{n}}{\boldsymbol{C}}_{\boldsymbol{N}\boldsymbol{n}-\mathbf{1}}\kern0.5em {\boldsymbol{C}}_{\boldsymbol{N}\boldsymbol{n}}\right] $$
$$ {\boldsymbol{D}}_{\mathbf{SN}}={\boldsymbol{D}}_{\boldsymbol{Nn}\to \mathbf{1}} $$

The state-space description of the speed controller (ACi, BCi, CCi, DCi) was created in the next step. At this stage, either controller without low-pass filter (AC1, BC1, CC1, DC1) is constructed

$$ {\boldsymbol{A}}_{\boldsymbol{C}\mathbf{1}}=\left[\begin{array}{cc}{\boldsymbol{A}}_{\mathbf{PI}}& \mathbf{0}\\ {}{\boldsymbol{B}}_{\mathbf{SN}}{\boldsymbol{C}}_{\mathbf{PI}}& {\boldsymbol{A}}_{\mathbf{SN}}\end{array}\right] $$
$$ {\boldsymbol{B}}_{\boldsymbol{C}\mathbf{1}}=\left[\begin{array}{c}{\boldsymbol{B}}_{\mathbf{PI}}\\ {}{\boldsymbol{B}}_{\mathbf{SN}}{\boldsymbol{D}}_{\mathbf{PI}}\end{array}\right] $$
$$ {\boldsymbol{C}}_{\boldsymbol{C}\mathbf{1}}=\left[{\boldsymbol{D}}_{\mathbf{SN}}{\boldsymbol{C}}_{\mathbf{PI}}\kern0.5em {\boldsymbol{C}}_{\mathbf{SN}}\right] $$
$$ {\boldsymbol{D}}_{\boldsymbol{C}\mathbf{1}}={\boldsymbol{D}}_{\mathbf{SN}}{\boldsymbol{D}}_{\mathbf{PI}} $$

or with low-pass filter controller (AC2, BC2, CC2, DC2) is created.

$$ {\boldsymbol{A}}_{\boldsymbol{C}\mathbf{2}}=\left[\begin{array}{ccc}{\boldsymbol{A}}_{\mathbf{PI}}& \mathbf{0}& \mathbf{0}\\ {}{\boldsymbol{B}}_{\mathbf{SN}}{\boldsymbol{C}}_{\mathbf{PI}}& {\boldsymbol{A}}_{\mathbf{SN}}& \mathbf{0}\\ {}{\boldsymbol{B}}_{\mathbf{L}\mathbf{P}}{\boldsymbol{D}}_{\mathbf{SN}}{\boldsymbol{C}}_{\mathbf{PI}}& {\boldsymbol{B}}_{\mathbf{L}\mathrm{P}}{\boldsymbol{C}}_{\mathbf{SN}}& {\boldsymbol{A}}_{\mathbf{L}\mathbf{P}}\end{array}\right] $$
$$ {\boldsymbol{B}}_{\boldsymbol{C}\mathbf{2}}=\left[\begin{array}{c}{\boldsymbol{B}}_{\mathbf{PI}}\\ {}{\boldsymbol{B}}_{\mathbf{SN}}{\boldsymbol{D}}_{\mathbf{PI}}\\ {}{\boldsymbol{B}}_{\mathbf{LP}}{\boldsymbol{D}}_{\mathbf{SN}}{\boldsymbol{D}}_{\mathbf{PI}}\end{array}\right] $$
$$ {\boldsymbol{C}}_{\boldsymbol{C}\mathbf{2}}=\left[{\boldsymbol{D}}_{\mathbf{LP}}{\boldsymbol{D}}_{\mathbf{SN}}{\boldsymbol{C}}_{\mathbf{PI}}\kern0.5em {\boldsymbol{D}}_{\mathbf{LP}}{\boldsymbol{C}}_{\mathbf{SN}}\kern0.5em {\boldsymbol{C}}_{\mathbf{LP}}\right] $$
$$ {\boldsymbol{D}}_{\boldsymbol{C}\mathbf{2}}={\boldsymbol{D}}_{\mathbf{LP}}{\boldsymbol{D}}_{\mathbf{SN}}{\boldsymbol{D}}_{\mathbf{PI}} $$

An open-loop state-space description was obtained by serial connection of the controller model and the mechanical system model.

$$ {\boldsymbol{A}}_{\mathbf{OL}}=\left[\begin{array}{cc}{\boldsymbol{A}}_{\boldsymbol{C}\boldsymbol{i}}& \mathbf{0}\\ {}{\boldsymbol{B}}_{\mathbf{MS}}{\boldsymbol{C}}_{\boldsymbol{C}\boldsymbol{i}}& {\boldsymbol{A}}_{\mathbf{MS}}\end{array}\right] $$
$$ {\boldsymbol{B}}_{\mathbf{OL}}=\left[\begin{array}{c}{\boldsymbol{B}}_{\boldsymbol{Ci}}\\ {}{\boldsymbol{B}}_{\mathbf{MS}}{\boldsymbol{D}}_{\boldsymbol{Ci}}\end{array}\right] $$
$$ {\boldsymbol{C}}_{\mathbf{OL}}=\left[{\boldsymbol{D}}_{\mathbf{MS}}{\boldsymbol{C}}_{\boldsymbol{C}\boldsymbol{i}}\kern0.5em {\boldsymbol{C}}_{\mathbf{MS}}\right] $$
$$ {\boldsymbol{D}}_{\mathbf{OL}}={\boldsymbol{D}}_{\boldsymbol{Ci}}{\boldsymbol{D}}_{\mathbf{MS}} $$

where AMS, BMS, CMS, DMS are matrices of state-space mechanical model representation.

4.5 State-space description of the closed-loop system

$$ {u}_{\mathrm{OL}}=y-u $$

A closed-loop system description (66)–(69) is obtained by input uOL substitution with the difference between the system output y and required value for the open-loop input u, Eq. (65). Arrays ACL, BCL, CCL, and DCL are matrices of the closed-loop state-space description.

$$ {\boldsymbol{A}}_{\mathbf{CL}}={\boldsymbol{A}}_{\mathbf{OL}}-{\boldsymbol{B}}_{\mathbf{OL}}{\left(\boldsymbol{I}+{\boldsymbol{D}}_{\mathbf{OL}}\right)}^{-1}{\boldsymbol{C}}_{\mathbf{OL}} $$
$$ {\boldsymbol{B}}_{\mathbf{CL}}={\boldsymbol{B}}_{\mathbf{OL}}-{\boldsymbol{B}}_{\mathbf{OL}}{\left(\mathbf{I}+{\boldsymbol{D}}_{\mathbf{OL}}\right)}^{-1}{\boldsymbol{D}}_{\mathbf{OL}} $$
$$ {\boldsymbol{C}}_{\mathbf{CL}}={\left(\boldsymbol{I}+{\boldsymbol{D}}_{\mathbf{OL}}\right)}^{-1}{\boldsymbol{C}}_{\mathbf{OL}} $$
$$ {\boldsymbol{D}}_{\mathbf{CL}}={\left(\boldsymbol{I}+{\boldsymbol{D}}_{\mathbf{OL}}\right)}^{-1}{\boldsymbol{D}}_{\mathbf{OL}} $$

4.6 Transformation between physical and machine parameters without reduction

The inputs of the optimization algorithm are physical parameters, but machine parameters of individual speed controller blocks are entered into the machine control system. For this reason, it was necessary to define forward and backward transformations between physical and machine parameters. Figure 6 shows the machine parameters of the notch filter (fZi - retention frequency, DZi - drop on fZi, WZi - bandwidth, RZi - reduction behind fZi).

Fig. 6
figure 6

Machine parameters of notch filter

5 Formulation of velocity controller tuning optimization task

The first step in the formulation of the optimization task was to select the quality criteria of the machine tool drive axis control [30]. Based on these criteria, the sub-objective functions were subsequently defined, and finally the overall objective function was compiled, and boundary conditions of the task were determined.

5.1 Influence of amplitude characteristics

The first selected quality control criterion was the amplitude characteristics of the system. This characteristic (see Fig. 7) can be divided into three areas: precision control area (zone 1), transition area (zone 2), and damping area (zone 3).

Fig. 7
figure 7

Idealized typical amplitude characteristic

In the precision control area, the system response is required to match the best desired output. The aim is to approach the course of the amplitude characteristic to the horizontal axis. A partial objective function is defined as the absolute value of the area between the characteristic curve and the horizontal axis.

$$ {OF}_{a1}={\int}_0^{f_{12}}\left|A(f)\ \right|\mathrm{df} $$

Since the amplitude characteristic is rendered discreetly, it was necessary to convert this function to a numerical form.

$$ {OF}_{a1}={\sum}_{i=1}^{i_{12}}\left|\left(\frac{A_{i+1}+{A}_i}{2}\right)\left({f}_{i+1}-{f}_i\right)\right| $$

Conversely, in the damping area, resonant states are required to be suppressed. This requirement is ensured by reducing the global maximum in this region to the cutoff amplitude. The partial objective function is defined as the absolute value of the difference between the maximum and the limit amplitude.

$$ {\mathrm{OF}}_{a3}=\left|{A}_{\mathrm{max}}-{A}_{\mathrm{lim}}\right| $$

The effect of the shape of the transition on the control quality has not been proven. For this reason, this partial objective function is zero. The key parameters of the transition area are edge frequencies f12 and f23 that determine the location and width of the area.

$$ {OF}_{a2}=0 $$

5.2 Influence of system unit step response

The second criterion of the objective function is the overshoot value in response to a unit jump. The optimum overshoot of step response is not zero (Fig. 8). The optimum overshoot value is usually selected around 20% to maintain machine tool dynamics.

Fig. 8
figure 8

Typical unit step response

The requirement for a sufficiently rapid response of the machine to the external stimulus is based on the effort to approach the maximum overshoot to the optimum value. The partial objective function is then defined as the absolute value of the difference between maximum and optimal overshoot.

$$ {OF}_{\mathrm{us}}=\left|{o}_{\mathrm{max}}-{o}_{\mathrm{optim}}\right| $$

5.3 Influence of system distance from stability limit

The last control quality criterion is the distance of the system from the stability limit (marked as e). This distance is given by the highest value of the real component of the poles of the system. If this value is lower than the limit distance, the system is guaranteed to be stable and the objective function is zero. Conversely, if it is greater than zero, the system is unstable, and the value of the partial objective function is very high. The transition of the partial objective function from the limit distance to the stability limit is given by linear dependence. Related objective function behavior is described by using Eq. (75) and is displayed in Fig. 9.

$$ {OF}_e=\left\{\begin{array}{c}e<{e}_{\mathrm{lim}}\to {OF}_e=0\ \\ {}{e}_{\mathrm{lim}}<e<0\to {OF}_e=-\frac{10^6}{e_{\mathrm{lim}}}e+{10}^6\\ {}e>0\to {OF}_e={10}^6\ \end{array}\right. $$
Fig. 9
figure 9

Partial target function of stability criterion [34]

5.4 The overall objective function

The overall objective function is the sum of the products of the partial objective functions and their weights. The value of these weights is chosen that the influence of individual objective functions on the total value is balanced.

$$ \mathrm{OF}={\sum}_{i=1}^3\left({q}_{\mathrm{ai}}\cdotp {OF}_{\mathrm{ai}}\right)+{q}_{\mathrm{us}}\cdotp {OF}_{\mathrm{us}}+{OF}_e $$

The use of all criteria may not always be required, and if this is not the case, selected ones can be excluded from optimization by resetting the weight of the partial objective function. This step can be performed for criteria where fulfillment is ensured by a marginal condition of optimization and the partial objective function serves as an indicator of the quality of fulfillment of this criterion (amplitude characteristic - attenuation area, unit jump response, and stability criterion).

5.5 Boundary conditions of the optimization task

There are boundary conditions related to individual machine parameters. The choice of these conditions depends on the user experience and capabilities of the control software. Other optimization boundaries are inequality conditions based on control quality criteria, equations are as follows:

$$ {A}_{\mathrm{max}}-{A}_{\mathrm{lim}}<0 $$
$$ {o}_{\mathrm{max}}-{o}_{\mathrm{optim}}<0 $$
$$ e<0 $$

6 Simulation testing of developed optimization procedure

The optimization algorithm [35] was applied to the identified current control loop models of benchmark machine tool. The benchmark machine is a modern medium-sized horizontal machining center equipped with interchangeable technological pallets with a load capacity of 16 t. The machine itself has 5 fully controlled axes and two-axis indexed milling head. The machine is designed for productive machining; therefore, it works with high working feeds up to 36 m/min and spindle speeds up to 4000 1/min with a spindle diameter of 130 mm. The model identification was carried out at different loads on the machine tool. The machine tool load was simulated by placing the weight on the machine axis.

The identification process can be divided into two phases. In the first phase, an open speed control loop model with a weakly tuned speed controller is identified (the controller parameters are set to minimize the current control loop behavior); in the second phase, the current control loop model itself is separated. Figure 10 shows a comparison of the measured and simulated waveforms of open speed control loop response to the chirp signal.

Fig. 10
figure 10

Comparison of open speed control loop responses

All quality control criteria were used to calculate the objective function. Selected parameters of objective function calculation are recorded in Table 1.

Table 1 Selected parameters of objective function calculation

6.1 Load state hm0

Optimization of the machine speed control loop parameters in the load state hm0 (i.e., without load) was chosen to present the functionality of the methodology. The change of the individual parameters before and after the optimization is recorded in Table 2.

Table 2 Comparison of initial and optimized machine parameters

On the course of the amplitude characteristic before and after optimization (Fig. 11), the extension of the precision control area and the attenuation of the influence of 2 natural machine frequencies in the attenuation area can be observed.

Fig. 11
figure 11

hm0 - amplitude characteristic

By comparing the system response to the unit jump (Fig. 12), it can be deduced that the condition of lowering the maximum overshoot below the optimum overshoot condition was met, but the system response was decreased.

Fig. 12
figure 12

hm0 - unit step response

6.2 Comparison of load states

For the sake of completeness, the results of optimization of all load cases (hm0 - without load, hm1 - light load (~5 t), hm2 - heavy load (~10 t)) are presented in this chapter.

Comparing the amplitude characteristics after optimization (Fig. 13), it can be concluded that increasing the load reduces the boundary of the precision control area. Similarly, a system response slowdown can be observed in comparing unit jump responses (Fig. 14).

Fig. 13
figure 13

Comparison of load states - amplitude characteristics

Fig. 14
figure 14

Comparison of three loading states - unit step response

7 Verification of auto-tuning algorithm on real machine

Verification tests proceeded on a real heavy machine tool with a ballscrew feed drive axis with parameters introduced in Section 6. The subject of the test was to verify computed constants of speed control by its transfer into the real control system and by measuring resulting behavior of the feed drive. Adjusted parameters were proportional Kp and integral component Tn of PI speed controller and the parameters of current filters, namely frequency and damping of low-pass filter and frequency, damping (notch), and bandwidth of band-stop filters.

The machine tool was equipped by the control system Heidenhain. An example of user screen with measured data is in Fig. 15.

Fig. 15
figure 15

Example of user screen (crop of whole user screen)

7.1 Table without load — hm0

Figure 16 shows comparison of the original and optimized characteristic of speed control loop for the table without load. Comparison of the computed constants transferred into the machine parameters are presented in Table 3. Both optimized settings 1 and 2 bring stable and suitable behavior of the feed drive axis. Computed parameters are portable into the real control system. From a practical point of view, setting 1 is a little bit better than setting 2 because its filters are around the frequencies 150 Hz and 200 Hz less aggressive.

Fig. 16
figure 16

Bode plots of speed control loop for the table without load (hm0). Comparison of three settings of speed control

Table 3 Comparison of machine parameters for three settings of speed control for table without load

7.2 Table with one load — hm1 (~5 t)

Other verifications were carried out with one load of approximately 5 t on the table. Comparisons of such measurements are shown in Fig. 17; an overview of parameters transferred into the machine are in Table 4.

Fig. 17
figure 17

Bode plots of speed control loop for the table with one load (hm1) of approx. 5 t. Comparison of three settings of speed control

Table 4 Comparison of machine parameters for three settings of speed control for table with one load

Automatic settings of speed control loop for axis with load approx. 5 t bring stable and suitable settings with more remarkable improvement of dynamic properties than in previous case hm0. Especially, optimization with setting 2 brings bandwidth increase of about 30%.

7.3 Table with two loads — hm2 (~10 t)

Further verifications were carried out with two loads of approximately 10 t on the table. Comparisons of such measurements are shown in Fig. 18, and transferred machine parameters are in Table 5.

Fig. 18
figure 18

Bode plots of speed control loop for the table with two loads (hm2) of approx. 10 t. Comparison of three settings of speed control

Table 5 Comparison of machine parameters for three settings of speed control for table with two loads

Automated tuning brings a stable and suitable setting of speed control loop like in previous cases, and computed parameters are portable into a real machine control system. Comparisons of the machine parameters for presented measurements are in Table 5. In this case, three band-stop filters were used compared to two band-stop filters in previous two cases.

8 Conclusions

The main objective of the research was to create a methodology for optimization of the cascade regulation controller of the machine tool drive axes. This methodology was developed on the speed control loop. Its tuning is usually the most difficult because of close interaction with modal and other dynamic properties of the machine. The whole procedure is of course also applicable to the position and current control loop. During the development, a simplified experimentally identified model of system was built and used, the optimization task was formulated, and the quality criteria of control including optimization boundary conditions were applied.

Optimized settings applied on the real machine bring higher loop gain which improve dynamic behavior and stiffness of feed drive axis. Differences between the original auto-tuned settings seem to be low, but from the practical experience, further increasing of gain would lead to oscillating behavior with consequences in accuracy of machine. From this point of view, it can be resumed that the developed algorithm is capable to find the great compromise between the loop gain, stability, and measure of oscillation. Moreover, tests were carried out in a different level of the axis stroke (which brings small drift in natural frequencies) with no impact on results. Thereby, it is possible to highlight the robustness and portability of computed settings into the machine with the real control system.

The paper shows the efficiency of the proposed methodology applied to the identified model of the real machine tool axes. Furthermore, the possibility of using the proposed methodology as an alternative to manual tuning by a trained operator was proven. The implementation of the proposed complex procedure on a real machine tool proved the advantage of simultaneous tuning of all parameters using optimization methods. This strategy solves the problem of mutual interaction of all control law parameters disabling effective usability of gradual sequential tuning. As part of the further development of the methodology, it is planned to increase the automation of the preparatory phase (choice of initial optimization parameters) and to optimize parameters of all control loops (position, speed, current) together.

The subject of further work could be optimizing the shape of current filters.