1 Introduction

The overhead crane is a piece of significant construction machinery and is widely used. Its good performance is essential to raise working efficiency. Especially when the cranes work in the three-dimensional motion mode, the transportation efficiency of the system will be significantly improved. However, the load will swing when the crane transports the load. In some cases, the movement of the crane presents a double pendulum effect [1]. In detail, the hook swings around the trolley while the load swings around the hook during the crane movement, which will reduce transportation efficiency and possibly cause safety problems. For these reasons, the elimination of swing in the transshipment of load has drawn the attention of researchers. The crane system is a typical underactuated system. Control variables are fewer than controlled variables. The underactuated system is nonlinear and has strong coupling. Therefore, the control of a three-dimensional double pendulum crane system is challenging.

In recent years, the linear method and the sliding mode control method are the two widely-used solutions in practical applications due to the advantages of simplicity in structure. More specifically, the linear method refers to linearizing the crane model near the balance point [2,3,4,5,6,7], ignoring some specific nonlinear terms [8, 9] and using various linear control methods to handle the simplified model. Based on the root locus and particle swarm optimization algorithm, several PID control methods are proposed [10, 11]. However, traditional PID control is challenging to obtain expected control performance [12,13,14,15,16,17,18]. Hence, it needs to be combined with other control strategies, such as fuzzy control [12], neural network [13], multi-objective optimization algorithm [14,15,16], genetic algorithm [17, 18], etc. The introduction of intelligent algorithms reduces the difficulty of parameter optimization and improves the convergence speed, accuracy, and reliability of optimization. Saeidi et al. [19] design a PID control method for a gantry crane system with precise positioning and anti-swing performance by neural network self-tuning technology. In addition to the above series of PID control methods, many linear ways are applied to the crane system. A status feedback controller is developed [20], which performs well on a crane in 3D motion mode. On this basis, a linear quadratic regulator (LQR) approach is proposed [21]. However, this method linearizes the crane system model without considering the nonlinear factors. In addition, researchers apply the local feedback linearization method to double-pendulum offshore boom crane system [22], three-dimensional motion mode crane system [23, 24], and the crane system with load-lifting motion mode [25], respectively.

Actually, excellent robustness is expected for the crane control system when the parameters vary and external disturbances exist. The sliding control method has the benefits of simple implementation, fast response, and strong robustness to system parameter changes [26,27,28,29,30,31,32,33,34,35,36,37,38]. Therefore, it is suitable for all kinds of crane control systems such as second-order sliding mode control method of port crane system [26], sliding mode for unmatched disturbances system [27], an adaptive integral SMC method of port crane system [28], hierarchical sliding mode control method of bridge crane system [29, 30], etc. In detail, a model-independent control method is proposed for the three-dimensional crane system [31]. It could realize the accurate positioning and swing suppression of the trolley. An adaptive sliding mode control is presented for two-stage swing bridge crane system [32]. It enables the system to enter the desired sliding surface as soon as possible and also improves the tracking accuracy of the trolley. In [33], a fuzzy-SMC method is designed for a finite time system. In [34], a global-equivalent SMC is designed for anti-swing control of the overhead crane. Combining the sliding control method with other control patterns, the researchers propose an enhanced coupling PD with sliding mode control method [35], adaptive sliding mode control method [36,37,38], etc.

In the actual operation of the crane, many physical quantities can not be measured directly, such as some state status of the crane, external disturbances, and additional noise from traditional sensors in the measurement process, which makes the closed-loop control of the system complex. In [39], a revolving scheme is proposed to solve the Abel Equation for a satellite rotation cascade, providing a good control idea to improve the crane’s anti-swing control performance. In order to improve the anti-swing control effect of the crane, many scholars use the observer method to observe these state variables, which reduces the number of sensors and noise interference in the process of sensor measurement. An observer for the length of the sling rope is presented, which can observe the length of the sling rope [40]. This provides an effective anti-swing method for some workplaces where the change of the rope length is not easy to detect. A speed observer is designed to achieve the goal of effective positioning and swing suppression without requiring speed feedback, which achieves the accurate positioning of load when the ship crane is working at sea [41]. An extended state observer is designed in [42], and a disturbance observer is designed in [43].

Besides, to reduce the swing angle, scholars also propose many effective nonlinear control methods to suppress swing for three dimensional crane [44,45,46,47,48,49,50,51,52]. A new nonlinear time sub-optimal trajectory planning method is put forward, which can realize effective control of the crane without linearizing the original nonlinear dynamics [44]. A robust passivity-based adaptive control method is proposed for payload trajectory tracking of three-dimensional bridge cranes with variable length sling [45]. A robust finite-time anti-swing is designed for a 3-D crane, which works well even with parameter uncertainties [46]. In [47], an important memory function is constructed featuring expected damping based on passivity. A nonlinear controller is delivered by enforcing the coupled dissipation inequality to suppress the swing angle of the crane. In [48], nonlinear motion control is established in three-dimensional boom cranes. A partial differential equation (PDE) model is constructed for a three-dimensional boom crane, and a boundary control scheme for suppressing the load swing is presented [49]. In [50], a new adaptive control method is proposed for a 3D bridge crane based on trajectory planning, which achieves asymmetric swing elimination and trolley positioning. An optimal control algorithm based on energy is proposed [51, 52]. When designing the crane controller, the controller’s failure should also be considered. Generally, the input amplitude can be controlled within the allowable range to avoid being saturated. The control rule based on the dissipation theory can be effectively applied to the rotating servo system, which provides a good control idea to prevent the crane system from getting into the saturation of the actuator [53]. For the input of the control system, a method of the transition process is designed to avoid the situation where the input to the system is too large, exceeding the limits of actuator control input [42].

All of above mentioned have achieved good positioning and anti-swing performance. However, in general, the above studies still have some deficiencies: (1) Most of the above research objects are with anti-swing control of single pendulum cranes in three-dimensional motion mode or double pendulum cranes in two-dimensional motion mode, three-dimensional double pendulum cranes are not taken into account. (2) Because the three-dimensional double pendulum cranes have more states variables, the coupling between the state variables is very strong, which makes the anti-swing control of the crane more challenging. (3) For the deadband problem of the controller, the traditional scheme is less discussed.

Given above problems, a sliding control mode (SMC) based on an extended state observer is provided in this paper to suppress the two-stage swing of the three-dimensional double pendulum crane. Firstly, the mechanics model of the three-dimensional double pendulum crane is built according to the Lagrange motion equation [54]. After that, the system is converted to one input and one output system by differential flattening method. The extended state observer (ESO) is used to monitor the condition of the crane. Simultaneously, the model error and system interference are estimated. SMC is used to obtain the crane control law. Finally, simulations and experiments verify the validity of the proposed approach.

The contribution of this paper is summarized as follows:

  1. (1)

    Not merely the double pendulum but also the coordinated control of track and trolley motions are taken into account. The proposed nonlinear control method can accurately control the crane’s movement and eliminate the load swing, which reduces the safety risk and improves transportation efficiency.

  2. (2)

    Considering the actuator deadband, a transition process is introduced. By adjusting the control parameters, the deadband of the system’s actuator could be avoided, which improves the system’s operational performance.

  3. (3)

    The method does not rely on the model parameters and has strong robustness and adaptability. The theoretical and experimental results verify the effectiveness of the proposed method.

The remainder of this paper is structured as follows: section II proposes the crane dynamic model and differential flattening. In section III, the control method is put forward. In section IV, the stability of the system is proved. In fifth section, a series of simulations and experiments based on this method verify the control performance of this method. The feasibility and validity of the control method are verified. The last section reviews the discussion of the whole article, summarizes the views of this article, and prospects the future research.

Fig. 1
figure 1

Three-dimensional double pendulum crane model

2 Crane model and differential flatness

2.1 Three-dimensional double pendulum crane model

During the working process of the crane, the load is transported to the specified location by the movement of the trolley, which requires not only accurate positioning but also as little oscillation as possible. In most crane models, the influence of friction force is ignored. However, the friction force of the crane is widespread in the actual construction process. Consequently, to increase the model’s accuracy, a three-dimensional double pendulum overhead crane is built with a friction force effect. A three-dimensional double pendulum crane model is shown in Fig.1. Table 1 shows the symbols and descriptions of the model.

Table 1 Symbols and descriptions

To simplify the description, the following concise symbols are used: \({s_i} = \mathrm{sin}{\theta _i}\), \({c_i} = \mathrm{cos}{\theta _i},\)

\(s_{i-j} = \mathrm{sin}({\theta _i}-{\theta _j})\), \(c_{i-j} = \mathrm{cos}({\theta _i}-{\theta _j})\),

\(i,j = 1,2,3,4 (i \ne j)\). Three-dimensional double pendulum crane mechanics model is established by Eqs. (1)–(6):

$$\begin{aligned}&({M_x} + {m_1} + {m_2})\ddot{x} + \frac{{{m_1}}}{2}( - 2{s_1}{c_2}{l_1}{\dot{\theta }} _1^2 - 2{c_1}{s_2}{l_1}{{{\dot{\theta }} }_1}{{{\dot{\theta }} }_2} \nonumber \\&\quad +2{c_1}{c_2}{l_1}{{\ddot{\theta }}_1} - 2{c_1}{s_2}{l_1}{{{\dot{\theta }} }_1}{{{\dot{\theta }} }_2} - 2{s_1}{c_2}{l_1}{\dot{\theta }} _2^2 \nonumber \\&\quad - 2{s_1}{s_2}{l_1}{{\ddot{\theta }}_2}) +\frac{{{m_2}}}{2}( - 2{s_1}{c_2}{l_1}{\dot{\theta }} _1^2 - 2{c_1}{s_2}{l_1}{{{\dot{\theta }} }_1}{{{\dot{\theta }} }_2} \nonumber \\&\quad + 2{c_1}{c_2}{l_1}{{\ddot{\theta }}_1} - 2{s_3}{c_4}{l_2}{{{\dot{\theta }} }_3}^2 -2{c_3}{s_4}{l_2}{{{\dot{\theta }} }_3}{{{\dot{\theta }} }_4} \nonumber \\&\quad + 2{c_3}{c_4}{l_2}{{\ddot{\theta }}_3} - 2{c_1}{s_2}{l_1}{{{\dot{\theta }} }_1}{{{\dot{\theta }} }_2} - 2{s_1}{c_2}{l_1}{\dot{\theta }} _2^2 \nonumber \\&\quad -2{s_1}{s_2}{l_1}{{\ddot{\theta }}_2} - 2{c_3}{s_4}{l_2}{{{\dot{\theta }} }_3}{{{\dot{\theta }} }_4} - 2{s_3}{c_4}{l_2}{{{\dot{\theta }} }_4}^2 \nonumber \\&\quad - 2{s_3}{s_4}{l_2}{{\ddot{\theta }}_4}) = {Q_{kx}}\text {,} \end{aligned}$$
(1)
$$\begin{aligned}&({M_y} + {m_1} + {m_2})\ddot{y} + {m_1}( - {s_2}{l_1}{\dot{\theta }} _2^2 + {c_2}{l_1}{{\ddot{\theta }}_2}) \nonumber \\&\quad + {m_2}( - {s_2}{l_1}{\dot{\theta }} _2^2 + {c_2}{l_1}{{\ddot{\theta }}_2} - {s_4}{l_2}{{\dot{\theta }}_4}^2 + {c_4}{l_2}{{\ddot{\theta }}_4}) = {Q_{ky}}\text {,}\nonumber \\ \end{aligned}$$
(2)
$$\begin{aligned}&\frac{{{m_1}}}{2}( - 4{l_1}^2{c_2}{s_2}{{{\dot{\theta }} }_1}{{{\dot{\theta }} }_2} + 2{l_1}^2{c_2}^2{{\ddot{\theta }}_1} -2{s_1}{c_2}{l_1}{{{\dot{\theta }} }_1}\dot{x} \nonumber \\&\quad -2{c_1}{s_2}{l_1}{{{\dot{\theta }} }_2}\dot{x} + 2{c_1}{c_2}{l_1}\ddot{x}) + \frac{{{m_2}}}{2}( - 4{l_1}^2{c_2}{s_2}{{{\dot{\theta }} }_1}{{{\dot{\theta }} }_2} \nonumber \\&\quad +2{l_1}^2{c_2}^2{{\ddot{\theta }}_1} + 2{c_{1 - 3}}({{{\dot{\theta }} }_1} - {{{\dot{\theta }} }_3}){c_2}{s_4}{l_1}{l_2}{{{\dot{\theta }} }_4} \nonumber \\&\quad - 2{s_{1 - 3}}{s_2}{s_4}{l_1}{l_2}{{{\dot{\theta }} }_2}{{{\dot{\theta }} }_4} + 2{s_{1 - 3}}{c_2}{c_4}{l_1}{l_2}{{{\dot{\theta }} }_4}^2 \nonumber \\&\quad + 2{s_{1 - 3}}{c_2}{s_4}{l_1}{l_2}{{\ddot{\theta }}_4} - 2{s_{1 - 3}}({{{\dot{\theta }} }_1} - {{{\dot{\theta }} }_3}){c_2}{c_4}{l_1}{l_2}{{{\dot{\theta }} }_3} \nonumber \\&\quad - 2{c_{1 - 3}}{s_2}{c_4}{l_1}{l_2}{{{\dot{\theta }} }_2}{{{\dot{\theta }} }_3} -2{c_{1 - 3}}{c_2}{s_4}{l_1}{l_2}{{{\dot{\theta }}}_3}{{{\dot{\theta }} }_4} \nonumber \\&\quad + 2{c_{1 - 3}}{c_2}{c_4}{l_1}{l_2}{{\ddot{\theta }}_3} - 2{s_1}{c_2}{l_1}{{{\dot{\theta }} }_1}\dot{x} \nonumber \\&\quad -2{c_1}{s_2}{l_1}{{{\dot{\theta }} }_2}\dot{x} + 2{c_1}{c_2}{l_1}\ddot{x}) - \frac{{{m_1}}}{2}( - 2{s_1}{c_2}{l_1}\dot{x}{{{\dot{\theta }} }_1} \nonumber \\&\quad -2{c_1}{s_2}{l_1}\dot{x}{{{\dot{\theta }} }_2}) - \frac{{{m_2}}}{2}( - 2{s_{1 - 3}}{s_2}{s_4}{l_1}{l_2}{{{\dot{\theta }} }_2}{{{\dot{\theta }} }_4} \nonumber \\&\quad -2{c_{1 - 3}}{s_2}{s_4}{l_1}{l_2}{{{\dot{\theta }} }_2}{{{\dot{\theta }} }_3} + 2{c_{1 - 3}}{c_2}{s_4}{l_1}{l_2}{{{\dot{\theta }} }_1}{{{\dot{\theta }} }_4} \nonumber \\&\quad - 2{s_{1 - 3}}{c_2}{c_4}{l_1}{l_2}{{{\dot{\theta }} }_1}{{{\dot{\theta }} }_3} - 2{s_1}{c_2}{l_1}\dot{x}{{{\dot{\theta }} }_1} \nonumber \\&\quad - 2{c_1}{s_2}{l_1}\dot{x}{{{\dot{\theta }} }_2}) + ({m_1} + {m_2})g{l_1}{s_1}{c_2} = 0\text {,} \end{aligned}$$
(3)
$$\begin{aligned}&\frac{{{m_1}}}{2}(2{l_1}^2{{\ddot{\theta }}_2} - 2{c_1}{s_2}{l_1}{{{\dot{\theta }} }_1}\dot{x} - 2{s_1}{c_2}{l_1}{{{\dot{\theta }} }_2}\dot{x} - 2{s_1}{s_2}{l_1}\ddot{x} \nonumber \\&\quad - 2{s_2}{l_1}\dot{y}{{{\dot{\theta }} }_2} + 2{c_2}{l_1}\ddot{y}) + \frac{{{m_2}}}{2}(2{l_1}^2{{\ddot{\theta }}_2} \nonumber \\&\quad - 2{s_{1 - 3}}({{{\dot{\theta }} }_1} -{{{\dot{\theta }} }_3}){s_2}{s_4}{l_1} {l_2}{{{\dot{\theta }} }_4} \nonumber \\&\quad + 2{c_{1 - 3}}{c_2}{s_4}{l_1}{l_2}{{{\dot{\theta }} }_2}{{{\dot{\theta }} }_4} + 2{c_{1 - 3}}{s_2}{c_4}{l_1}{l_2}{{{\dot{\theta }} }_4}^2 \nonumber \\&\quad + 2{c_{1 - 3}}{s_2}{s_4}{l_1}{l_2}{{\ddot{\theta }}_4} - 2{c_{1 - 3}}({{{\dot{\theta }} }_1} - {{{\dot{\theta }} }_3}){s_2}{s_4}{l_1}{l_2}{{{\dot{\theta }} }_3} \nonumber \\&\quad +2{s_{3 - 1}}{c_2}{s_4}{l_1}{l_2}{{{\dot{\theta }} }_2}{{{\dot{\theta }} }_3} + 2{s_{3 - 1}}{s_2}{c_4}{l_1}{l_2}{{{\dot{\theta }} }_3}{{{\dot{\theta }} }_4} \nonumber \\&\quad + 2{s_{3 - 1}}{s_2}{s_4}{l_1}{l_2}{{\ddot{\theta }}_3} - 2{c_1}{s_2}{l_1}{{{\dot{\theta }} }_1}\dot{x} - 2{s_1}{c_2}{l_1}{{{\dot{\theta }} }_2}\dot{x} \nonumber \\&\quad - 2{s_1}{s_2}{l_1}\ddot{x} - 2{s_2}{c_4}{l_1}{l_2}{{{\dot{\theta }} }_2}{{{\dot{\theta }} }_4} - 2{c_2}{s_4}{l_1}{l_2}{{{\dot{\theta }} }_4}^2 \nonumber \\&\quad + 2{c_2}{c_4}{l_1}{l_2}{{\ddot{\theta }}_4} - 2{s_2}{l_1}\dot{y}{{{\dot{\theta }} }_2} + 2{c_2}{l_1}\ddot{y}) \nonumber \\&\quad -\frac{{{m_1}}}{2}( - 2{l_1}^2{c_2}{s_2}{{{\dot{\theta }} }_1}^2 - 2{c_1}{s_2}{l_1}{{{\dot{\theta }} }_1}\dot{x} - 2{s_1}{c_2}{l_1}{{{\dot{\theta }} }_2}\dot{x} \nonumber \\&\quad - 2{s_2}{l_1}\dot{y}{{{\dot{\theta }} }_2}) - \frac{{{m_2}}}{2}(2{c_{1 - 3}}{c_2}{s_4}{l_1}{l_2}{{{\dot{\theta }}}_2}{{{\dot{\theta }} }_4} \nonumber \\&\quad + 2{s_{3 - 1}}{c_2}{s_4}{l_1}{l_2}{{{\dot{\theta }} }_2}{{{\dot{\theta }} }_3} - 2{l_1}^2{c_2}{s_2}{{{\dot{\theta }} }_1}^2 \nonumber \\&\quad - 2{s_{1 - 3}}{s_2}{c_4}{l_1}{l_2}{{{\dot{\theta }} }_1}{{{\dot{\theta }} }_4} - 2{c_{1 - 3}}{s_2}{c_4}{l_1}{l_2}{{{\dot{\theta }} }_1}{{{\dot{\theta }} }_3}\nonumber \\&\quad - 2{c_1}{s_2}{l_1}{{{\dot{\theta }} }_1}\dot{x} - 2{s_1}{c_2}{l_1}{{{\dot{\theta }} }_2}\dot{x} - 2{s_2}{c_4}{l_1}{l_2}{{{\dot{\theta }} }_2}{{{\dot{\theta }} }_4} \nonumber \\&\quad - 2{s_2}{l_1}\dot{y}{{{\dot{\theta }} }_2}) +({m_1} + {m_2})g{l_1}{c_1}{s_2} = 0\text {,} \end{aligned}$$
(4)
$$\begin{aligned}&\frac{{{m_2}}}{2}(2{c_{3 - 1}}({{{\dot{\theta }} }_3} - {{{\dot{\theta }} }_1}){s_2}{s_4}{l_1}{l_2}{{{\dot{\theta }} }_2} + 2{s_{3 - 1}}{c_2}{s_4}{l_1}{l_2}{{{\dot{\theta }} }_2}^2 \nonumber \\&\quad + 2{s_{3 - 1}}{s_2}{c_4}{l_1}{l_2}{{{\dot{\theta }} }_2}{{{\dot{\theta }} }_4} + 2{s_{3 - 1}}{s_2}{s_4}{l_1}{l_2}{{\ddot{\theta }}_2} \nonumber \\&\quad -2{s_{1 - 3}}({{{\dot{\theta }} }_1} - {{{\dot{\theta }} }_3}){c_2}{c_4}{l_1}{l_2}{{{\dot{\theta }} }_1} - 2{c_{1 - 3}}{s_2}{c_4}{l_1}{l_2}{{{\dot{\theta }} }_1}{{{\dot{\theta }} }_2} \nonumber \\&\quad -2{c_{1 - 3}}{c_2}{s_4}{l_1}{l_2}{{{\dot{\theta }} }_1}{{{\dot{\theta }} }_4} + 2{c_{1 - 3}}{c_2}{c_4}{l_1}{l_2}{{\ddot{\theta }}_1} \nonumber \\&\quad - 4{s_4}{c_4}{l_2}^2{{{\dot{\theta }} }_3}{{{\dot{\theta }} }_4} + 2{c_4}^2{l_2}^2{{\ddot{\theta }}_3} - 2{s_4}{c_3}{l_2}\dot{x}{{{\dot{\theta }} }_4} \nonumber \\&\quad - 2{c_4}{s_3}{l_2}\dot{x}{{{\dot{\theta }} }_3} + 2{c_4}{c_3}{l_2}\ddot{x}) \nonumber \\&\quad - \frac{{{m_2}}}{2}(2{s_{1 - 3}}{s_2}{s_4}{l_1}{l_2}{{{\dot{\theta }} }_2}{{{\dot{\theta }} }_4} + 2{c_{1 - 3}}{s_2}{s_4}{l_1}{l_2}{{{\dot{\theta }} }_2}{{{\dot{\theta }} }_3}\nonumber \\&\quad -2{c_{1 - 3}}{c_2}{s_4}{l_1}{l_2}{{{\dot{\theta }} }_1}{{{\dot{\theta }} }_4} + 2{s_{1 - 3}}{c_2}{c_4}{l_1}{l_2}{{{\dot{\theta }} }_1}{{{\dot{\theta }} }_3} \nonumber \\&\quad - 2{c_4}{s_3}{l_2}\dot{x}{{{\dot{\theta }} }_3} - 2{s_4}{c_3}{l_2}\dot{x}{{{\dot{\theta }} }_4}) + {m_2}g{l_2}{c_4}{s_3} = 0\text {,}\nonumber \\ \end{aligned}$$
(5)
$$\begin{aligned}&\frac{{{m_2}}}{2}( - 2{s_{1 - 3}}({{{\dot{\theta }} }_1} - {{{\dot{\theta }} }_3}){s_2}{s_4}{l_1}{l_2}{{{\dot{\theta }} }_2} + 2{c_{3 - 1}}{c_2}{s_4}{l_1}{l_2}{{{\dot{\theta }} }_2}^2 \nonumber \\&\quad + 2{c_{3 - 1}}{s_2}{c_4}{l_1}{l_2}{{{\dot{\theta }} }_2}{{{\dot{\theta }} }_4} + 2{c_{3 - 1}}{s_2}{s_4}{l_1}{l_2}{{\ddot{\theta }}_2}\nonumber \\&\quad + 2{c_{1 - 3}}({{{\dot{\theta }} }_1} - {{{\dot{\theta }} }_3}){c_2}{s_4}{l_1}{l_2}{{{\dot{\theta }} }_1} - 2{s_{1 - 3}}{s_2}{s_4}{l_1}{l_2}{{{\dot{\theta }} }_1}{{{\dot{\theta }} }_2} \nonumber \\&\quad +2{s_{1 - 3}}{c_2}{c_4}{l_1}{l_2}{{{\dot{\theta }} }_1}{{{\dot{\theta }} }_4} + 2{s_{1 - 3}}{c_2}{s_4}{l_1}{l_2}{{\ddot{\theta }}_1} + 2{l_2}^2{{\ddot{\theta }}_4} \nonumber \\&\quad - 2{s_4}{c_3}{l_2}\dot{x}{{{\dot{\theta }} }_3} - 2{c_4}{s_3}{l_2}\dot{x}{{{\dot{\theta }} }_4} - 2{s_4}{s_3}{l_2}\ddot{x} \nonumber \\&\quad - 2{s_2}{c_4}{l_1}{l_2}{{{\dot{\theta }} }_2}^2 - 2{c_2}{s_4}{l_1}{l_2}{{{\dot{\theta }} }_2}{{{\dot{\theta }} }_4} + 2{c_2}{c_4}{l_1}{l_2}{{\ddot{\theta }}_2} \nonumber \\&\quad - 2{s_4}{l_2}\dot{y}{{{\dot{\theta }} }_4} + 2{c_4}{l_2}\ddot{y}) \nonumber \\&\quad - \frac{{{m_2}}}{2}(2{c_{3 - 1}}{s_2}{c_4}{l_1}{l_2}{{{\dot{\theta }} }_2}{{{\dot{\theta }} }_4} \nonumber \\&\quad + 2{s_{1 - 3}}{c_2}{c_4}{l_1}{l_2}{{{\dot{\theta }} }_1}{{{\dot{\theta }} }_4} \nonumber \\&\quad -2{c_{1 - 3}}{c_2}{s_4}{l_1}{l_2}{{{\dot{\theta }} }_1}{{{\dot{\theta }} }_3} - 2{s_4}{c_4}{l_2}^2{{{\dot{\theta }} }_3}^2 - 2{s_4}{c_3}{l_2}\dot{x}{{{\dot{\theta }} }_3} \nonumber \\&\quad - 2{c_4}{s_3}{l_2}\dot{x}{{{\dot{\theta }} }_4} - 2{c_2}{s_4}{l_1}{l_2}{{{\dot{\theta }} }_2}{{{\dot{\theta }} }_4} \nonumber \\&\quad - 2{s_4}{l_2}\dot{y}{{{\dot{\theta }} }_4}) \nonumber \\&\quad + {m_2}g{l_2}{s_4}{c_3} = 0\text {.} \end{aligned}$$
(6)

where \({M_x}\) is the trolley mass, \( {M_y}\) is the sum of the masses of the trolley and the track, \({m_1}\) is the hook mass, \({m_2}\) is the load mass, x and y represent the trolley displacement in X and Y direction, \(l_1\) refers to the rope length between the trolley and the hook, and \(l_2\) is the string length between the hook and load.

\({Q_{kx} }\) and \({ Q_{ky}}\) represent the crane system external forces in the X and Y directions.

$$\begin{aligned} {Q_{kx}}= & {} F_x - df_x \text {,} \end{aligned}$$
(7)
$$\begin{aligned} {Q_{ky}}= & {} F_y - df_y \text {,} \end{aligned}$$
(8)

where \({F_x}\), \({F_y}\) are the system driving force in the X and Y directions, and the friction forces \(df_x\) and \(df_y\) are of the following form [3, 4].

$$\begin{aligned} d{f_x}= & {} {f_{r0}}\tanh (\dot{x}/\xi ) + {k_f}\dot{x} + {k_r}\left| {\dot{x}} \right| \dot{x} \text {,} \end{aligned}$$
(9)
$$\begin{aligned} d{f_y}= & {} {f_{r0}}\tanh (\dot{y}/\xi ) + {k_f}\dot{x} + {k_r}\left| {\dot{y}} \right| \dot{y} \text {,} \end{aligned}$$
(10)

where \({f_{r0}}\), \({k_f}\) and \({k_r}\) are friction-related parameters and \(\xi \in {\mathbb {R}} \) is a static friction coefficient. Suppose the crane has the following traits:

  1. (1)

    Hook and load can be regarded as particles, and the masses and tension of the suspension rope and sling are negligible.

  2. (2)

    When the crane is transporting goods, the goods oscillate around the equilibrium point, which swing angles are small enough, then the following assumptions can be made: \(cos\theta _i \approx 1\), \(sin\theta _i \approx \theta _i\), \(\theta _i \theta _j \approx 0 \), \({{\dot{\theta }} _i}{{\dot{\theta }} _j}\approx 0\), and \(\theta _i{\ddot{\theta }_j} \approx 0\) (i, j = 1, 2, 3, 4) [2,3,4,5,6,7,8,9].

  3. 3)

    The coordinates of the starting point and endpoint of the crane are known.

Thus, the simplified model is Eqs. (11)–(16):

$$\begin{aligned}&({M_x} + {m_1} + {m_2})\ddot{x} + {m_1}{l_1}{\ddot{\theta }_1} + {m_2}({l_1}{\ddot{\theta }_1} + {l_2}{\ddot{\theta }_3}) = {Q_{kx}}\text {,}\nonumber \\ \end{aligned}$$
(11)
$$\begin{aligned}&({M_y} + {m_1} + {m_2})\ddot{y} + {m_1}{l_1}{\ddot{\theta }_2} + {m_2}({l_1}{\ddot{\theta }_2} + {l_2}{\ddot{\theta }_4})\nonumber \\&\quad = {Q_{ky}}\text {,} \end{aligned}$$
(12)
$$\begin{aligned}&{m_1}({l_1}^2{{\ddot{\theta }}_1} + {l_1}\ddot{x}) + {m_2}({l_1}^2{{\ddot{\theta }}_1} + {l_1}{l_2}{{\ddot{\theta }}_3} + {l_1}\ddot{x}) + \nonumber \\&\quad ({m_1} + {m_2})g{l_1}{\theta _1} = 0\text {,} \end{aligned}$$
(13)
$$\begin{aligned}&{m_1}({l_1}^2{{\ddot{\theta }}_2} + {l_1}\ddot{y}) + {m_2}({l_1}^2{{\ddot{\theta }}_2} + {l_1}{l_2}{{\ddot{\theta }}_4} + {l_1}\ddot{y}) \nonumber \\&\quad + ({m_1} + {m_2})g{l_1}{\theta _2} = 0\text {,} \end{aligned}$$
(14)
$$\begin{aligned}&{m_2}({l_1}{l_2}{\ddot{\theta }_1} + {l_2}^2{\ddot{\theta }_3} + {l_2}\ddot{x}) + {m_2}g{l_2}{\theta _3} = 0\text {,} \end{aligned}$$
(15)
$$\begin{aligned}&{m_2}( {l_2}^2{\ddot{\theta }_4} + {l_1}{l_2}{\ddot{\theta }_2} + {l_2}\ddot{y}) + {m_2}g{l_2}{\theta _4} = 0\text {.} \end{aligned}$$
(16)

2.2 Differential flatness determination

Substituting Eqs. (13) and (15) into Eqs. (17) and (18) yields:

$$\begin{aligned}&\ddot{x} + {l_1}{\ddot{\theta }_1} + \frac{{{m_2}{l_2}}}{{{m_1} + {m_2}}}{\ddot{\theta }_3} + g{\theta _1} = 0\text {,} \end{aligned}$$
(17)
$$\begin{aligned}&\ddot{x} + {l_1}{\ddot{\theta }_1} + {l_2}{\ddot{\theta }_3} + g{\theta _3} = 0\text {.} \end{aligned}$$
(18)

Define the displacement signal in the X direction as \({x_z}\),

$$\begin{aligned} {x_z} = x + {l_1}{\theta _1} + {l_2}{\theta _3}\text {.} \end{aligned}$$
(19)

Combine Eq. (18) with Eq. (19), we can get

$$\begin{aligned} {\theta _3} = - \frac{{{{\ddot{x}}_z}}}{g}\text {.} \end{aligned}$$
(20)

 Further,

$$\begin{aligned} {{\dot{\theta }} _3}= & {} - \frac{{x_z^{(3)}}}{g}\text {,} \end{aligned}$$
(21)
$$\begin{aligned} {\ddot{\theta }_3}= & {} - \frac{{x_z^{(4)}}}{g}\text {.} \end{aligned}$$
(22)

Substituting Eqs. (20), (21), and (22) into Eqs. (17) and (18), we can get

$$\begin{aligned} {\theta _1} = - \frac{{{{\ddot{x}}_z}}}{g} - \frac{{{m_1}{l_2}}}{{({m_1} + {m_2}){g^2}}}x_z^{(4)}\text {.} \end{aligned}$$
(23)

 Then,

$$\begin{aligned} {{\dot{\theta }} _1}= & {} - \frac{{{x_z}^{(3)}}}{g} - \frac{{{m_1}{l_2}}}{{({m_1} + {m_2}){g^2}}}x_z^{(5)}\text {,} \end{aligned}$$
(24)
$$\begin{aligned} {\ddot{\theta }_1}= & {} - \frac{{{x_z}^{(4)}}}{g} - \frac{{{m_1}{l_2}}}{{({m_1} + {m_2}){g^2}}}x_z^{(6)}\text {.} \end{aligned}$$
(25)

Substituting Eqs. (20) and (23) into Eq. (19), horizontal travel x can be achieved as follows,

$$\begin{aligned} x = {x_z} + \frac{{({l_1} + {l_2})}}{g}{\ddot{x}_z} + \frac{{{m_1}{l_1}{l_2}}}{{({m_1} + {m_2}){g^2}}}x_z^{(4)}\text {,} \end{aligned}$$
(26)

and then,

$$\begin{aligned} {x^{(i)}} = {x_z}^{(i)} + \frac{{{l_1} + {l_2}}}{g}x_z^{(i + 2)} + \frac{{{m_1}{l_1}{l_2}}}{{({m_1} + {m_2}){g^2}}}x_z^{(i + 4)}\text {.}\nonumber \\ \end{aligned}$$
(27)

Similarly, the displacement signal in Y direction can be defined as \({y_z}\),

$$\begin{aligned} {y_z} = y + {l_1}{\theta _2} + {l_2}{\theta _4}\text {.} \end{aligned}$$
(28)

Further,

$$\begin{aligned} {\theta _4}= & {} - \frac{{{{\ddot{y}}_z}}}{g}\text {,} \end{aligned}$$
(29)
$$\begin{aligned} {{\dot{\theta }} _4}= & {} - \frac{{y_z^{(3)}}}{g}\text {,} \end{aligned}$$
(30)
$$\begin{aligned} {\ddot{\theta }_4}= & {} - \frac{{y_z^{(4)}}}{g}\text {,} \end{aligned}$$
(31)
$$\begin{aligned} {\theta _2}= & {} - \frac{{{{\ddot{y}}_z}}}{g} - \frac{{{m_1}{l_2}}}{{({m_1} + {m_2}){g^2}}}y_z^{(4)}\text {,} \end{aligned}$$
(32)
$$\begin{aligned} {{\dot{\theta }} _2}= & {} - \frac{{{y_z}^{(3)}}}{g} - \frac{{{m_1}{l_2}}}{{({m_1} + {m_2}){g^2}}}y_z^{(5)}\text {,} \end{aligned}$$
(33)
$$\begin{aligned} {\ddot{\theta }_2}= & {} - \frac{{{y_z}^{(4)}}}{g} - \frac{{{m_1}{l_2}}}{{({m_1} + {m_2}){g^2}}}y_z^{(6)}\text {,} \end{aligned}$$
(34)
$$\begin{aligned} {y^{(i)}}= & {} {y_z}^{(i)} + \frac{{{l_1} + {l_2}}}{g}y_z^{(i + 2)} + \frac{{{m_1}{l_1}{l_2}}}{{({m_1} + {m_2}){g^2}}}y_z^{(i + 4)}\text {.}\nonumber \\ \end{aligned}$$
(35)

Any system of state variables can be expressed as algebraic forms \({x_z}\) and \({y_z}\) and their different order derivatives algebraic combinations. At this point, Eqs. (27) and (35) are single input single output (SISO) systems, where the system is not underactuated.

3 Control method

In the second section, the crane model is simplified, which may affect the model’s accuracy. In this section, ESO will be introduced to observe the crane system’s conditions. The initial conditions of the system are zero initial state. The error caused by inaccurate model and external interference will be equivalent to the total interference of the system for estimation. The error is compensated in the controller. In common control system, the error is directly referred to \(e = v-y\), where v is the output of TD, and y stands for the system output. This error method makes the initial error very large and easy to overshoot, which is unreasonable. Depending on the carrying capacity of the controller, we organize a reasonable transition process. It can effectively solve the contradiction between the rapidity and overshoot of the control system, which is also an efficient means of improving the robustness of the regulator. For transition process, TD can produce a tracking and differential signal and filter out noise. On this basis, SMC is utilized to overcome system uncertainty.

According to the analysis in second section, the crane kinematics equations in the X and Y directions have the same structure, so this section only discusses the control strategy in the X-direction. The crane control system is displayed in Fig. 2. Figure 3 shows the sequence of the steps of the proposed method.

3.1 Design of ESO

Most control objects can be described as Eq. (36),

$$\begin{aligned} \left\{ \begin{array}{l} {x^{(n)}} = f(x, \dot{x},...{x^{(n - 1)}}, {x^{(n)}}, w(t), u, \dot{u}, \cdots , {u^{(n)}}, t) + bu\\ y = x(t)\text {.} \end{array} \right. \nonumber \\ \end{aligned}$$
(36)

where \(w\left( t \right) \) refers to an unknown outer disturbance; u stands for plant input; the system order is n; b represents the control gain, \(b>0\); y denotes the system output; \(x, \dot{x},\ldots , {x^{(n - 1)}}, {x^{(n)}} \) represent the system state variables and the n-order derivative of the value of the status; the \(f(x, \dot{x},\ldots , {x^{(n - 1)}}, {x^{(n)}}, w(t), u, \dot{u}, \cdots , {u^{(n)}}, t)\) link to the outer disturbance denotes real-time action, the system status and its derivatives are categorized as global disruption. For sake of expression, we shorten it as \(f(X, \omega )\).

Fig. 2
figure 2

Crane control system

Fig. 3
figure 3

Flowchart of the controller design

Next, a state of expansion \({x_1}, {x_2}, \cdots , {x_{n + 1}}\) satisfy:

$$\begin{aligned} \left\{ \begin{array}{l} {{\dot{x}}_1} = {x_2}\\ {{\dot{x}}_2} = {x_3}\\ \mathrm{{ }} \vdots \\ {{\dot{x}}_{n - 1}} = {x_n}\\ {{\dot{x}}_n} = f(X, \omega ) + bu\\ y = {x_1}\text {,} \end{array} \right. \end{aligned}$$
(37)

\(X = {[{x_1}, {x_2}, \cdots , {x_{n + 1}}]^\mathrm{{T}}}\), e is observation error.

An ESO can be established as follows:

$$\begin{aligned} \left\{ \begin{array}{l} e = {z_1} - {y_1}\\ {{\dot{z}}_1} = {z_2} - {\beta _1}e\\ {{\dot{z}}_2} = {z_3} - {\beta _2}e\\ \mathrm{{ }} \vdots \\ {{\dot{z}}_{n - 1}} = {z_n} - {\beta _{n - 1}}e\\ {{\dot{z}}_n} = - {\beta _n}e + bu\text {.} \end{array} \right. \end{aligned}$$
(38)

\({z_i}\) is the estimated value of \(x_z^{(i - 1)}\). \({\beta _i}\) is the index of gain of the observer.

Once the control object presented in Eq. (36) is confirmed, the above function is available, and its derivative \(\dot{f}(X, \omega )\) is obtained. Therefore, system state is depicted as Eq. (37).

Introducing the matrix,

$$\begin{aligned} A = \left[ {\begin{array}{*{20}{c}} 0&{}1&{}0&{} \cdots &{}0\\ 0&{}0&{}1&{} \cdots &{}0\\ 0&{}0&{}0&{} \cdots &{}0\\ 0&{}0&{}0&{} \cdots &{}1\\ 0&{}0&{}0&{} \cdots &{}0 \end{array}} \right] \text {,} B = {\left[ {\begin{array}{*{20}{c}} 0&\cdots&0&b&0 \end{array}} \right] ^\mathrm{{T}}}\text {,} \\ X = {[{x_1}, {x_2}, \cdots , {x_{n + 1}}]^\mathrm{{T}}}\text {.} \end{aligned}$$

Then, Eq. (37) can be expressed as,

$$\begin{aligned} \dot{X} = AX + Bu\text {.} \end{aligned}$$
(39)

3.2 Design of TD

Develop a TD for flat input \({x_{zd}}\).

From Eq. (19),

$$\begin{aligned} {x_{zd}} = {x_d} + {l_1}{\theta _{1d}} + {l_2}{\theta _{3d}}\text {.} \end{aligned}$$
(40)

In Eq. (38), \({x_d}\) is the expected horizontal movement of the crane; \({\theta _{1d}}\) is the oscillating angle for the first stage, \({\theta _{3d}}\) stands for the desired second stage flip degree for the system, \({\theta _{1d}}\) and \({\theta _{3d}}\) are set to zero; therefore, Eq. (40) may be reduced to Eq. (41),

$$\begin{aligned} {x_{zd}} = {x_d}\text {.} \end{aligned}$$
(41)

As a result, we can determine the formula for TD. It is designed as follows:

$$\begin{aligned} \left\{ \begin{array}{l} {{\dot{v}}_1} = {v_2}\\ {{\dot{v}}_2} = {v_3}\\ {{\dot{v}}_3} = {v_4}\\ {{\dot{v}}_4} = {v_5}\\ {{\dot{v}}_5} = {v_6}\\ {{\dot{v}}_6} = - r(r(r(r(r(r({v_1} - {v_0}) + 6{v_2}) + 15{v_3}) \\ + 20{v_4}) + 15{v_5}) + 6{v_6})\text {.} \end{array} \right. \end{aligned}$$
(42)

In Eq. (42), \({v_0} = {x_{zd}}\) is the setting value of the displacement control, and \({v_1}\) corresponds to the transition process implemented by TD; \({v_2}\) refers to the differential of \({v_1}\); \({v_3}\) stands for the 2nd derivative of \({v_1}\); \({v_4}\) is the 3rd derivative of \({v_1}\); \({v_5}\) represents the 4th derivative of \({v_1}\); \({v_6}\) is the 5th derivative of \({v_1}\); r denotes an adjustment to TD’s performance according to system requirements.

3.3 Design of SMC

The nonlinear factors ignored in modeling will affect the control effect of the system in practice, especially for external disturbances and parameter perturbations. SMC is robust to outer disturbances and parameter uncertainties. For the differential equation of motion Eq. (37), where the function \(f(X, \omega )\) is known, and the coordinate of the system state variable \(({x_1}, {x_2}, \ldots , {x_n})\) is the phase coordinate variable \((x, \dot{x},\ldots , {x^{(n - 1)}})\), then the tracking error and its derivatives are:

$$\begin{aligned} \left\{ {\begin{array}{*{20}{l}} {{e_1} = {x_1} - {x_{1d}}}\\ {{e_2} = {x_2} - {x_{2d}}}\\ {{e_3} = {x_3} - {x_{3d}}}\\ {{e_4} = {x_4} - {x_{4d}}}\\ {{e_5} = {x_5} - {x_{5d}}}\\ {{e_6} = {x_6} - {x_{6d}}}\\ {} {{{\dot{e}}_1} = {{\dot{x}}_1} - {{\dot{x}}_{1d}}}\\ {{{\dot{e}}_2} = {{\dot{x}}_2} - {{\dot{x}}_{2d}}}\\ {{{\dot{e}}_3} = {{\dot{x}}_3} - {{\dot{x}}_{3d}}}\\ {{{\dot{e}}_4} = {{\dot{x}}_4} - {{\dot{x}}_{4d}}}\\ {{{\dot{e}}_5} = {{\dot{x}}_5} - {{\dot{x}}_{5d}}}\\ {{{\dot{e}}_6} = {{\dot{x}}_6} - {{\dot{x}}_{6d}}}\text {.} \end{array}} \right. \end{aligned}$$
(43)

\({x_{1d}}\), \({x_{2d}}\), \({x_{3d}}\), \({x_{4d}}\), \({x_{5d}}\), and \({x_{6d}}\) are ideal state variables.  The sliding surface can be designed:

$$\begin{aligned} s = {c_1}{e_1} + {c_2}{e_2} + \ldots + {c_n}{e_n}\text {,} \end{aligned}$$
(44)

where \({c_i}\) must satisfy the Hurwitz condition, then \({c_i> 0}\) (\(i = 1, 2, ..., n\)). In general, \({c_n} = 1\) [55].

Combining Eqs. (37) and (44), one can get

$$\begin{aligned} \dot{s}= & {} {c_1}{{\dot{\mathrm{e}}}_1} + {c_2}{{\dot{\mathrm{e}}}_2} + \ldots + {c_n}{{\dot{\mathrm{e}}}_n} \nonumber \\= & {} \sum \limits _{i = 2}^n {c_{i-1}} x_i + f(X, \omega ) + bu \end{aligned}$$
(45)

The traditional sliding mode uses the discrete switch function. Some improved control strategies change the switch function to the saturation function, which reduces the amplitude of chattering brought by the saltation of the switch function to a certain extent. However, there is still a large amount of buffeting. The role of the hyperbolic tangent replaces the switching process to minimize the amplitude of oscillations caused by the switching function. The change of the procedure is smooth, and there is no sudden change, which weakens the high-frequency vibration of the sliding mode to a certain extent. The hyperbolic tangent function can be expressed as

$$\begin{aligned} \tanh (\alpha x) = \frac{{{e^{\alpha x}} - {e^{ - \alpha x}}}}{{{e^{\alpha x}} + {e^{ - \alpha x}}}}\text {.} \end{aligned}$$
(46)

\(\alpha \) is the weight factor and a positive value. The smaller \(\alpha \) is, the greater the boundary layer thickness is, the slower the system convergence is, and the worse the system robustness is. When \(\alpha \rightarrow + \infty \), it will be converted to the switching process, which will cause greater buffeting. In this paper, \(\alpha =2\) can meet the requirements of the accuracy and robustness of the system.

Then, the control rate u can be obtained:

$$\begin{aligned} u = -\frac{{\sum \nolimits _{i = 2}^n {c_{i-1}} x_i + f(X, \omega )}}{b} - \frac{{\tanh (\alpha s)}}{b} \text {.} \end{aligned}$$
(47)

4 Stability analysis

To simplify analysis, we indicate the corresponding observation value \({x_i}\) \(\mathrm{{ (}} i = 1, 2,\ldots , n + 1\mathrm{{)}}\) as \({\tilde{x}_i}\) \(\mathrm{{ (}} i = 1, 2,\ldots , n + 1\mathrm{{)}}\).

$$\begin{aligned} \dot{{{\tilde{X}}}} = A{{\tilde{X}}} + Bu + L(X - {{\tilde{X}}}) \text {.} \end{aligned}$$
(48)

A stands for extended observer observation vector. B is the optional observer’s constant gain matrix.

$$\begin{aligned} L = {\left[ {\begin{array}{*{20}{c}} {{l_1}}&{}0&{} \cdots &{}0\\ {{l_2}}&{}0&{} \cdots &{}0\\ \vdots &{} \vdots &{} \ddots &{} \vdots \\ {{l_{n + 1}}}&{}0&{} \cdots &{}0 \end{array}} \right] _{(n + 1) \times (n + 1)\text {.}}} \end{aligned}$$
(49)

Subtract Eq. (48) from Eq. (39):

$$\begin{aligned} \dot{X} - \dot{{{\tilde{X}}} }= (A - L)(X - {{\tilde{X}}})\text {.} \end{aligned}$$
(50)

For the observation error to be close to zero, the above system should meet the stability requirements. According to the stability condition of linear constant system, all the eigenvalues of the system matrix are in the left half-open complex plane [56]. That is, all the eigenvalues of matrix \([A-L]\) have negative part of the real roots, and the observer state \({{\tilde{X}}} \) will progressively approximate the actual state X.

Theorem 1

With the control rate in Eq. (47), the system is uniformly asymptotically stable at the equilibrium point.

Table 2 System model parameters

Proof

From Eqs. (44) and (45), the Lyapunov function is defined as

$$\begin{aligned}&V = \frac{1}{2}{s^2}\text {,} \end{aligned}$$
(51)
$$\begin{aligned}&\begin{array}{ll} \dot{V} &{}= s\dot{s} \\ &{} = s({c_1}{{{\dot{\mathrm{e}}}}_1} + {c_2}{{{\dot{\mathrm{e}}}}_2} + \ldots + {c_n}{{{\dot{\mathrm{e}}}}_n}) \\ &{}=s\left( \sum \limits _{i = 2}^n {c_{i-1}} x_i + f(X, \omega ) + bu\right) \text {.} \end{array} \end{aligned}$$
(52)

Substituting Eq. (47) into Eq. (52):

$$\begin{aligned}&\begin{array}{ll} \dot{V} &{}= s\dot{s}\\ &{} = s\left( \sum \limits _{i = 2}^n {c_{i-1}} x_i + f(X, \omega )\right. \\ &{}\left. \quad - b\left( \frac{{\sum \limits _{i = 2}^n {c_{i-1}} x_i + f(X, \omega )}}{b} + \frac{{\tanh (\alpha s)}}{b}\right) \right) \\ &{} = - s*\frac{{\tanh (\alpha s)}}{b} \text {,} \end{array} \end{aligned}$$
(53)
$$\begin{aligned}&\dot{V} = s\dot{s} = - s*\frac{{\tanh (\alpha s)}}{b}\left\{ \begin{array}{l}< 0, \qquad s > 0\\ = 0\mathrm{{ }}, \qquad s = 0\\< 0\mathrm{{ }}, \qquad s < 0 \end{array} \right. \text {.} \end{aligned}$$
(54)

According to Lyapunov stability theory [57], one may obtain from Eqs. (47) and (54) that the system is uniformly asymptotically stable at equilibrium point. \(\square \)

5 Simulations and experiments

In this section, some simulations and experiments are conducted to evaluate the effectiveness and robustness of the proposed method. For this purpose, the system parameters of the crane are set, and a set of control parameters of a three-dimensional double pendulum overhead crane are established. Based on these control parameters, the comparative simulation experiments of the crane are carried out. A comparative simulation experiment is established to study the error between the simplified model and the original model. The results indicate that the error between both models is less than 1%. Next, four robust experiments are conducted to evaluate the robustness and anti-interference ability. Then, a DSP-based experimental platform is developed to verify the proposed methods.

Fig. 4
figure 4

Comparative control results: a X-direction; b Y-direction

5.1 Simulation conditions

A simulation is conducted to estimate the controller control effectiveness in MATLAB/Simulink environment. Table 2 sets out the parameters of the system model.

In view of system control performance, the parameters of crane control system are shown in Table 3.

Table 3 Controller parameters

\(c_1\)\(c_5\) are the parameters of sliding mode controller, \(r_x\) and \(r_y\) are the parameters of TD, and \(w_o\) is the bandwidth of ESO, respectively.

5.2 Simulation comparison

In this part, the proposed control method is compared with two other typical control schemes. The PID control parameters are \(kp_x=6.667\), \(ki_x= 0.0665\), \(kd_x= 18.97\), \(kp_{\theta 1}= 0.2778\), \(ki_{\theta 1}= 6.606\), \(kd_{\theta 1}= 12.54\), \(kp_{\theta 3}= 0.334\), \(ki_{\theta 3}= 1.333\), \(kd_{\theta 3}= 1.81\), \(kp_y= 3.33\), \(ki_y= 0.067\), \(kd_y= 19.06\), \(kp_{\theta 2}= -0.036\), \(ki_{\theta 2}= 6.22\), \(kd_{\theta 2}= 20.83\), \(kp_{\theta 4}= 0.334\), \(ki_{\theta 4}= 1.999\), \(kd_{\theta 4}= 1.808\).

The comparative simulation results are shown in Fig. 4. In Fig. 4, the maximum swing angles of several crane control methods are less than 10\(^\circ \), which verifies the correctness and rationality of hypothesis 2 in Sect. 2.1. From the results in Table 4, the control method proposed for the three-dimensional double pendulum crane in this article can reach a quick and precise position, and the two-stage swing is suppressed from the system. Even though the control structure of PID is relatively simple, the number of control parameters that need to be optimized is excessive, which leads to difficulty in choosing the optimal set of control parameters. However, due to its simple structure, PID is widely used in industrial situations where the requirements of the swing angles are not very strict. The sliding mode control method has fewer parameters than PID, but the effect of sliding mode control is not as good as that of the strategy presented in this paper for swing elimination.

The crane model is simplified to reduce research difficulties, which may introduce model error. The extended state controller is introduced to estimate system state and model error. In order to investigate the relationship between simplified and original models, an experiment is conducted. The same control method and control parameters are used for experiments on both models in the simulation experiment. In Fig. 5, the error between the simplified model and the original model is below 1%.

Fig. 5
figure 5

Comparative simulation results between the proposed method with original model: a simplified model; b original model; c model error

Fig. 6
figure 6

Crane motion and swing angles when parameter r changes: a X-direction; b Y-direction

Table 4 Comparative control results
Fig. 7
figure 7

Robust performance—crane motion and swing angles when parameter load mess varies: a X-direction; b Y-direction

Fig. 8
figure 8

Robust performance—crane motion and swing angles when parameter rope length varies: a X-direction; b Y-direction

Fig. 9
figure 9

Robust performance—crane motion and swing angles when the crane main parameters vary: a X-direction; b Y-direction

Fig. 10
figure 10

Robust performance—external interference to the system: a X-direction; b Y-direction

From Fig. 5, the proposed control method achieves almost the same control effect on the original model as the simplified model, which manifests that the control method also applies to the nonlinear model. Therefore, the subsequent simulation experiments are based on the original model to study the proposed method’s robustness.

By changing the parameter r of the TD, the influence of r on the control effect is studied. Fig. 6 shows the crane motion and its swing angles when \(r = 1.2, r = 1.5, r = 1.8\). The simulation results indicate that the system’s response speed increases as well as load swing with the rises of r. In addition, the control F varies with the adjustment of r. Therefore, r can be adjusted according to the actual control system requirements, such as controller deadband, maximum load swing angle limit, etc.

5.3 Robustness analysis

To investigate the robustness of the system when system parameters change, the following four groups of experiments are performed:

  1. (1)

    When the load mass of the crane changes, the load mass increases from 5 to 10 kg and then to 20 kg.

  2. (2)

    The rope length of the crane may change, increasing or decreasing by 50%.

  3. (3)

    Change in the masses of track, trolley and hook on the crane.

  4. (4)

    The crane may be interfered by external forces during operation, the system is disturbed by 10 N external forces in two directions.

In practice, the crane may transport the loads of different masses. Figure 7 shows the results of the system with varying the load mass. Even if the load mass increases fourfold, the proposed method can achieve accurate positioning and swing elimination for different loads masses without changing the control parameters. The results show that the crane can effectively prevent load swing when the mass of the load changes.

The rope length may change in different working places. In experiment 2, the influence of rope length change of crane on load anti-swing positioning is studied. Figure 8 shows the effect of the system when the rope length changes. The results indicate that the system can effectively reduce load swing when rope length varies.

In most cases, the masses of track, trolley and hook of a crane system are fixed. To verify that the proposed control strategy does not depend on crane model parameters, the parameters shown in Table 2 are changed. Taking into account the following two situations:

S1: \(M_x=20\) kg, \(M_y=30\) kg, \(m_1=5\) kg, \(m_2=5\) kg.

S2: \(M_x=30\) kg, \(M_y=40\) kg, \(m_1=10\) kg, \(m_2=5\) kg.

From Fig. 9, the proposed method can effectively reduce the load swing when model parameters change considerably, which indicates that the method is insensitive to the model parameters.

External interference may occur during the operation of the crane. Considering the harsh working conditions, when the crane runs in the X direction, and at the 5th second, it is subject to intensity external interference of 0.1 s and 10 N. Running in the Y direction, and at the 6th second, it is subject to external interference of 10N for 0.1 s. Under such conditions, the anti-interference ability of the proposed control method is studied. Figure 10 shows the crane’s operation under external impact in different directions and at other times. The result shows that the crane is not disturbed by the outside environment, proving that the proposed method has a solid anti-interference ability.

Nine groups of simulations are carried out in this section. A comparative experiment is conducted to evaluate crane operation performance among PID, SMC, and the method proposed in this article. The three control methods can realize no residual swing control of the crane. Compared with PID and SMC, the maximum swing angle of the proposed scheme can be reduced by 62% and 41%, and 17.88% and 10.24%, respectively, which can reduce the transportation time. These improve the crane’s operational performance and reduce the possible risks. Comparing the original model with the simplified model, the control method functions well in the nonlinear and strongly coupled system. From the result, the error between the simplified model and the original is less than 1%, which indicates the simplification process is correct. The influence of parameter r in the TD on the system is studied. The parameter r can be adjusted according to actual control system requirements, such as controller deadband, maximum load swing angle limitation, etc. In addition, a series of robust experiments are established to prove that the proposed method has a solid anti-interference ability and high robustness.

5.4 Experiments and results analysis

As shown in Fig. 11, experiments are conducted in a three-dimensional double pendulum overhead crane platform (230 cm long\(\times \)180 cm wide\(\times \)120 cm high). The maximum length of lifting rope \(l_1\) is 0.6 m and \(l_2\) is 0.3 m. The maximum moving speed of the track and trolley is 0.4 m/s, the farthest displacement of track is 210cm, and the farthest displacement of trolley is 160 cm. The trolley and track driving motor are Inovance Servo Motor (AC 220V, 3000 rpm), a 20-bit incremental encoder, and the servo driver is Inovance IS620P servo drive. The main mechanical part of the three-dimensional double pendulum crane is composed of a truck and a trolley. The truck consists of a track and a trolley. Two AC motors provide driving forces in X and Y directions when transporting a load, respectively. The data feedback includes the position information and the hook and load swing angles. The encoder of the drive motor records the position information, and the angle sensors measure the swing angles information of the hook and the load.

Fig. 11
figure 11

Prototype crane

Fig. 12
figure 12

Anti-swing module

The core of the whole control system is DSP (TEXAS INSTRUMENTS: TMS320F28335), which uses the communication protocol based on RS485 MODBUS RTU to communicate with the server drivers and the computer. Fig. 12 shows the anti-swing module. The main experimental steps are:

  1. (1)

    The driver identifies the motor;

  2. (2)

    Input crane and load parameters;

  3. (3)

    Input the target point of the crane (take the current position of the crane as the coordinate origin) and enable the anti-swing module;

  4. (4)

    The speed, displacement and swing angles of the crane in the experimental platform are fed back to the anti-swing module, which calculates and outputs the driving torque and maximum moving speed.

Table 5 sets out the parameters of the experimental platform. In Sect. 5.3, Fig. 9 shows that the proposed method can effectively reduce the load swing when model parameters change considerably. Therefore, the control parameters of the experimental platform use the parameters in Table 2.

Fig. 13
figure 13

Comparative experimental results of different methods: a X-direction; b Y-direction

Fig. 14
figure 14

Robust performance experiment—crane motion and swing angles when parameter load mess varies: a X-direction; b Y-direction

Fig. 15
figure 15

Robust performance experiment—crane motion and swing angles when parameter rope length varies: a X-direction; b Y-direction

Table 5 Experimental platform parameters
Table 6 Comparative control results

To further evaluate the performance of the proposed controller, a control effect comparison among PID, SMC, energy-based control method [58], and the proposed method is depicted in Fig. 13. From the results in Table 6, the proposed method in this article can reach a quick and precise position, and the swing angles are the smallest among the four methods. Although the energy-based control method [58] achieves the shortest transportation time, in some industrial situations where the limit of load swing angle is stringent, such as the transportation of high-temperature molten metal, the transport speed requirements are relatively minor.

Two experiments corroborate the proposed method’s robustness, including the change of rope length and load mass. From Figs.14 and 15, under the experimental platform, without adjusting the control parameters, the proposed method can suppress the load swing when the load mass and rope length vary.

6 Conclusion

In actual industrial production, the double pendulum crane is widely used. Effective control of load swing during transportation significantly improves industrial production safety. The research on coordinated motion control of track and trolley of a double pendulum crane is of great significance to further improve the transportation efficiency of the crane. This paper proposes a sliding mode control based on an extended state observer to suppress the load swing for three-dimensional double-pendulum overhead cranes. Compared with other technologies in the literature, the proposed method shortens the transit time, improves work efficiency, and reduces the safety risk. The method is insensitive to the model parameters and has strong robustness. The proposed method is applied to a nonlinear experimental platform, and the theoretical and experimental results verify the effectiveness of the proposed method. The introduction of TD effectively solves the contradiction between the rapidity and overshoot of the control system. The problem of controller deadband saturation can be effectively solved. By adjusting the control parameters of TD, the problem of the system output caused by the observer delay error in the initial time can be effectively reduced. Restricted by experimental conditions, the effectiveness and accuracy of the proposed control method are validated in the laboratory at the present stage. The experiment has not been carried out under actual factory conditions. The anti-swing effect under factory conditions remains to be further studied. Currently, we are cooperating with a drive manufacturer to make the proposed control strategy for the general inverter and industrialize the proposed anti-swing strategy.