1 Introduction

During the past decades, abundant efforts have been devoted to the exploration of effective control strategies for underactuated mechatronic systems [110]. A lot of systems are designed to be underactuated for the purposes of reducing energy consumption, hardware cost saving, mechanical structure simplifications, and so on. Some other systems are underactuated because of nonintegrable nonholonomic constraints, such as missiles, mobile robots, underwater vehicles, among others. In addition, when some actuators of fully actuated systems fail to work normally, they will also become underactuated. The major difficulty and challenge in controlling such systems stem from the fact that there are less available control inputs than the system degrees of freedom (DOFs), and on the other hand, most of them are represented with highly nonlinear dynamics. Therefore, researches on controlling such systems are of both theoretical and practical importance.

In the present paper, we focus on the control problem for underactuated cranes, which are important engineering tools greatly promoting the national economic construction. The main obstacle restraining the safety and working efficiency of industrial cranes is the unactuated cargo swing that is induced by inertia or external disturbances. Presently, a series of results have been reported regarding the antiswing control topic, which, according to the fact whether signal feedback is required or not, could be divided into two categories: open-loop control and closed-loop control. The fundamental idea for developing open-loop control methods is to take full advantage of the coupling characteristics between the actuated trolley translation and the unactuated payload swing; some representative approaches are input shaping [1115], trajectory planning [1619], etc.

Though open-loop methods exhibit the merits of being convenient for implementation, no requirements for additional sensors, etc., their control performances are prone to be influenced by parametric uncertainties and sensitive to external disturbances. In contrast, closed-loop methods can achieve better control performance in harsher situations due to the instantaneous feedback signals that enhance the control system robustness. Many closed-loop control approaches have been developed in the literature; see e.g., [2036] and the references therein.

The length of the rail, on which the trolley moves, is physically limited; therefore, the trolley can merely move within a specified motion range. If the range is exceeded, then unexpected collisions will happen, which is very dangerous in practical applications. As far as we know, all currently available closed-loop control methods can only achieve asymptotic results at best, and there is no (theoretical) guarantee for the transient control performance, such as unexpected overshoots of the trolley motion. If the control gains are not properly tuned and the trolley destination is close to the length limitation, then the trolley would probably go beyond the available range due to overshoots. Because the control gains are usually obtained by trial and error and the initially chosen control gains might not work well (e.g., cause significant overshoots), this is a very important practical issue that should be taken into account when designing an application-oriented control method. On the other hand, owing to the complex working environments, cranes usually suffer from various parametric uncertainties, such as unknown payload mass, wire length, unknown friction, and so on, whose exact values are usually difficult, if not completely impossible, to measure.

In order to address the aforementioned two practical problems, i.e., rail length limitation as well as parametric uncertainties, we present a novel adaptive control approach for underactuated cranes subject to rail length limitation in the presence of parametric uncertainties. Specifically, we fabricate a new storage function with the purpose of facilitating controller development and increasing the transient control performance. Then an elaborate term is introduced to guarantee that the trolley will not tend out of the prescribed motion range. Lyapunov techniques are utilized to prove asymptotic stability of the equilibrium point of the closed-loop control system. Experimental results are included to suggest the effectiveness and robustness of the designed method.

The main contribution of this paper can be summarized as follows: (1) To the best of our knowledge, the presented method successfully yields the first result that can theoretically ensure the trolley motion range, in addition to achieving the preliminary control objective of precise trolley positioning and swing suppression, in the presence of uncertain parameters; (2) As verified by experiments, the proposed method can achieve better control performance than existing methods, and it shows good robustness with respect to uncertainties and disturbances.

The rest parts of this paper are structured as follows: Sect. 2 describes the control problem of interest. In Sect. 3, the controller design process as well as the stability analysis is provided. Experimental results are exhibited in Sect. 4. At last, Sect. 5 provides the conclusions and discusses the current/future work.

2 Problem statement

The dynamics describing underactuated crane systems are provided as follows (see Fig. 1 for an illustration):

$$\begin{aligned} (M + m)\ddot{x}+ml \ddot{\theta } \cos {\theta }- ml \dot{\theta }^2 \sin {\theta }=&F - F_\mathrm{r}, {}\end{aligned}$$
(1)
$$\begin{aligned} ml^2 \ddot{\theta } +ml \cos {\theta } \ddot{x}+ mgl\sin {\theta } + d \dot{\theta } =&0, {} \end{aligned}$$
(2)

where \(x(t),\theta (t)\) denote the trolley position and the payload swing, respectively, \(M,m,l\) represent the trolley mass, the payload mass, and the wire length, respectively, \(F(t)\) denotes the control input imposed on the trolley, \(d\dot{\theta }\) denotes the pivot friction force where \(d \in \mathbb {R}^{+}\), and \(F_\mathrm{r}(t)\) is the rail/trolley friction force with the following expression [17, 23]:

$$\begin{aligned} {} F_\mathrm{r}(t) = f_{\mathrm{r}0}\tanh {(\dot{x}/\epsilon )} - k_\mathrm{r} |\dot{x}| \dot{x}, \end{aligned}$$
(3)

where \(f_{\mathrm{r}0},k_\mathrm{r},\epsilon \in \mathbb {R}\) are friction parameters. As can be seen from the dynamic Eqs. (1) and (2), the crane dynamics are nonlinear due to the inclusion of strongly coupled state variables, which brings much difficulty for the control design and analysis.

Fig. 1
figure 1

The crane model

In this paper, the preliminary control objective is simultaneous trolley positioning and antiswing control for crane systems, which can be mathematically quantified in the following way:

$$\begin{aligned} {} x(t) \rightarrow x_f \triangleq {\frac{p_\mathrm{d}}{2}},\theta (t) \rightarrow 0,\dot{x}(t) \rightarrow 0,\dot{\theta }(t) \rightarrow 0, \end{aligned}$$
(4)

wherein the initial trolley position is considered as \(x_i = - p_\mathrm{d}/2, x_f\) denotes the destination (see Fig. 1), and \(p_\mathrm{d}\) represents the distance from the initial trolley position to the destination, i.e., \(p_\mathrm{d} = x_f - x_i\).

Remark 1

For the trolley motion, we merely care about the relative distance \(p_\mathrm{d}\) between the initial position \(x_i\) and the goal position \(x_f\), i.e., how far the trolley should move. In order to facilitate the subsequent analysis, without loss of generality, we have treated the initial trolley position as \(x_i = - p_\mathrm{d}/2\) in this paper.

Besides the previously mentioned control objective (4), one should take into consideration more practical factors when developing an effective application-oriented control law, which are listed below.

(1) The trolley should always move within the range of \((-\chi , \chi )\), that is,

$$\begin{aligned} {} |x(t)| < \chi ,\quad \forall t \ge 0, \end{aligned}$$
(5)

where \(\chi \) denotes the rail length limitation (see Fig. 1).

(2) The physical parameters \(M,m,l,d,f_{\mathrm{r}0},k_\mathrm{r}\) in (1)–(2) are unknown.Footnote 1

Due to the physical constraints (5), for a reachable position, \(x_i,x_f,\) and \(p_\mathrm{d}\) should satisfy the following conditions (see Fig. 1):

$$\begin{aligned} {} |x_i| < \chi ,\quad |x_f| < \chi \Longrightarrow p_\mathrm{d} < 2 \chi . \end{aligned}$$
(6)

The requirement (5) is of significant engineering practice. When a crane is in operation, the trolley moves along the rail to carry payloads to the expected destination. Owing to the rail’s length limitation, the available range for the trolley movement is also restricted. To the best of our knowledge, for all currently available closed-loop crane control methods, merely asymptotic results can be obtained, and there is no theoretical guarantee for the transient response (e.g., overshoots) for \(x(t)\). If the control parameters are not appropriately tuned, then the trolley might probably escape the scope of (5) and results in collisions or even accidents. For the second factor listed above, cranes often transport different payloads of diverse masses with not exactly known wire length, and they also suffer from uncertain friction forces. Additionally, because of mechanical abrasion, some physical parameters such as the trolley mass \(M\) would also become different from its nominal value. These factors induce a lot of difficulties to controller development for cranes.

3 Main results

In this section, we will detail the controller design process and then provide the corresponding stability analysis for the equilibrium point of the closed-loop system.

3.1 Controller design

In order to achieve the control objective described by (4), we define the following error signals:

$$\begin{aligned} {} e_x(t) \triangleq x(t) - \frac{p_\mathrm{d}}{2}, \quad e_{\theta }(t) \triangleq \theta (t). \end{aligned}$$
(7)

We know that the crane system is passive and dissipative; thus, we transform the control problem into fabricating an appropriate control law to damp out the energy storage function of the crane system. The crane energy storage function is represented by

$$\begin{aligned} {} E&\triangleq \frac{1}{2} (M + m) \dot{x}^2 + ml \dot{x} \dot{\theta } \cos {\theta } + \frac{1}{2} m l^2 \dot{\theta }^2 \nonumber \\&\quad +\, mgl (1- \cos {\theta }) \ge 0, \end{aligned}$$
(8)

which is positive definite with regard to \(\dot{x}(t), \dot{\theta }(t)\), and \(\theta (t)\) on \(\theta (t) \in (-\pi , \pi )\). Adding velocity-related terms into the energy function, we can modify the kinetic energy of the original system, which can usually lead to increased control performance [37]; this process is termed as kinetic energy shaping. Similarly, by incorporating position-error-related terms, which we call potential energy shaping, the potential energy may be changed to render that the modified energy achieves its minimum value at the desired equilibrium point. Motivated by the desire to regulate the crane system effectively, we modify the energy storage function in (8) as follows:

$$\begin{aligned} {} E_\mathrm{s} =&\frac{1}{2} (M + m) \dot{x}^2 + mgl (1- \cos {\theta }) + ml \dot{x} \dot{\theta } \cos {\theta } \nonumber \\&+ \frac{1}{2} m l^2 \dot{\theta }^2 + \underbrace{\frac{\kappa }{2} \left( M + m \sin ^2{\theta } \right) \dot{x}^2}_{\mathrm{{K.E.S.}}} + \underbrace{\frac{k_\mathrm{p}}{2} e_x^2}_\mathrm{{P.E.S.}}, \end{aligned}$$
(9)

which is positive definite with respect to \(e_x(t), \dot{x}(t), \theta (t), \dot{\theta }(t)\), where \(\kappa ,k_\mathrm{p} \in \mathbb {R}^{+}\) are control gains, and K.E.S. and P.E.S. are abbreviations for kinetic energy shaping and potential energy shaping, respectively. Differentiating (9) with respect to time, along the trajectories of (1) and (2), and making some mathematical arrangements, we are led to the following results:

$$\begin{aligned} {} \dot{E}_\mathrm{s} = (1 + \kappa ) \left[ F + \frac{k_\mathrm{p}}{1 + \kappa } e_x + {\varvec{\phi }}^{\top } {\varvec{\omega }} \right] \dot{x} - d \dot{\theta }^2 , \end{aligned}$$
(10)

where the vectors \({\varvec{\phi }} = [{\varvec{\phi }}_1^{\top },{\varvec{\phi }}_2^{\top }]^{\top },{\varvec{\omega }} = [{\varvec{\omega }}_1^{\top },{\varvec{\omega }}_2^{\top }]^{\top } \in \mathbb {R}^{6}\) are with the following definitions:

$$\begin{aligned} {\varvec{\phi }}_1 \triangleq&\frac{\kappa }{1 + \kappa } \left[ \sin {\theta } \cos {\theta }, \sin {\theta } \dot{\theta }^2, \dot{x} \dot{\theta } \sin {\theta } \cos {\theta }, \cos {\theta } \dot{\theta }\right] ^{\top }, \\ {\varvec{\phi }}_2 \triangleq&\left[ -\tanh (\dot{x}/\epsilon ),|\dot{x}|\dot{x} \right] ^{\top },\\ {\varvec{\omega }}_1 \triangleq&\left[ mg,ml,m,d/l \right] ^{\top }, {\varvec{\omega }}_2 \triangleq \left[ f_{\mathrm{r}0},k_\mathrm{r} \right] ^{\top }. \end{aligned}$$

In view of the expression for (10), the following nonlinear state-feedback controller is designed:

$$\begin{aligned} {} F&= - \frac{k_\mathrm{p}}{1 + \kappa } e_x - \frac{2 k_\mathrm{e} [ (\chi ^2 - x^2) + x e_x ] }{(\chi ^2 - x^2)^2} e_x \nonumber \\&\quad -\, k_\mathrm{d} (1 + k_{\theta } \sin ^2{\theta }) \dot{x} - {\varvec{\phi }}^{\top } {\hat{\varvec{\omega }}}, \end{aligned}$$
(11)

wherein \(k_\mathrm{e}\) and \(k_\mathrm{d}\) are positive control parameters, the second term is introduced to ensure (5), and \({\hat{\varvec{\omega }}}(t)\) denotes the online estimate of \({\varvec{\omega }}\) via the following update law:

$$\begin{aligned} {} \dot{\hat{\varvec{\omega }}} = \Gamma {\varvec{\phi }} \dot{x}, \end{aligned}$$
(12)

where \(\Gamma \triangleq \mathrm{{diag}}\{\gamma _1, \gamma _2, \gamma _3, \gamma _4, \gamma _5, \gamma _6\} \in \mathbb {R}^{6 \times 6}\) denotes a positive definite diagonal update matrix with \(\gamma _i > 0,i = 1, 2, \ldots , 6\). Let the estimate error vector \(\tilde{\varvec{\omega }}(t)\) be defined in the following manner:

$$\begin{aligned} {} \tilde{\varvec{\omega }} = {\varvec{\omega }} - {\hat{\varvec{\omega }}}, \end{aligned}$$
(13)

indicating that

$$\begin{aligned} {} \dot{\tilde{\varvec{\omega }}} = - \dot{{\hat{\varvec{\omega }}}}, \end{aligned}$$
(14)

which will be utilized in the subsequent analysis.

As will be shown in the next subsection, the proposed controller (11) can achieve the control objective of (4) while assuring the requirement of (5).

Remark 2

It is noted that in the developed nonlinear control law (11), we have used a differential term \(- k_\mathrm{d} (1 + k_{\theta } \sin ^2{\theta }) \dot{x}\) rather than traditional differential terms in the form of \(- k_\mathrm{d} \dot{x}\) (that is, the control gain is constant). By doing so, the swing-related nonlinear term \((1 + k_{\theta } \sin ^2{\theta })\) has fully been incorporated in the control law, which can increase the trolley/payload coupling and adjust the trolley motion to improve the transient performance. It is known that the differential term works essentially as a predictive component. Thus, when the swing angle is small, \((1 + k_{\theta } \sin ^2{\theta })\) is also small, and the trolley would be accelerated to improve the transferring efficiency; otherwise, the predictive component will become large to fasten swing damping.

3.2 Stability analysis

In this subsection, we will demonstrate asymptotic stability for the equilibrium point of the crane system in closed loop with (11).

Theorem 1

The proposed adaptive control law (11), along with the update law (12), can drive the trolley from \(x_i\) to arrive at the desired location \(x_f\) while suppressing and eliminating the payload swing angle in the sense that

$$\begin{aligned} {} \lim _{t \rightarrow \infty } \left[ x,\theta ,\dot{x},\dot{\theta }\right] ^{\top } = \left[ p_\mathrm{d}/2,0,0,0\right] ^{\top }. \end{aligned}$$
(15)

In the meantime, the trolley position \(x(t)\) is always within the range of \((-\chi , \chi )\).

Proof

Let us begin the proof by considering the following scalar function:

$$\begin{aligned} {} V = E_\mathrm{s} + \frac{k_\mathrm{e} (1 + \kappa )}{\chi ^2 - x^2} e_x^2 + \frac{1 + \kappa }{2} {\tilde{\varvec{\omega }}}^{\top } \Gamma ^{-1} {\tilde{\varvec{\omega }}}. \end{aligned}$$
(16)

By differentiating \(V(t)\) in (16) with regard to time, substituting for the results of (10)–(14), and arranging the derived results, we are led to the following conclusions:

$$\begin{aligned} {} \dot{V} =&- k_\mathrm{d} (1 + k_{\theta } \sin ^2{\theta }) (1 + \kappa ) \dot{x}^2 - d \dot{\theta }^2 \nonumber \\ \le&- k_\mathrm{d} (1 + \kappa ) \dot{x}^2 - d \dot{\theta }^2 \le 0, \end{aligned}$$
(17)

and consequently, \(V(t)\) is nonincreasing, that is,

$$\begin{aligned} {} V(t) \le V(0). \end{aligned}$$
(18)

It is noted that \(|x(0)| = |x_i| < \chi \) [see (6)]. Thus, if \(x(t)\) has the tendency to go out of the scope \((-\chi , \chi )\), it needs first to exceed the subset \((- \chi ^{-}, \chi ^{-})\), where \(\chi ^{-} \triangleq \lim _{\delta \rightarrow 0^{+}} (\chi - \delta )\). At this point, suppose that \(|x(t)| \rightarrow \chi ^{-}\) at some instant, then \(V(t) \rightarrow + \infty \), which obviously contradicts with the conclusion in (18) by noting that \(V(0)\) is bounded. As a consequence, it can be concluded that

$$\begin{aligned} {} |x(t)| < \chi ,\quad \forall t \ge 0, \end{aligned}$$
(19)

implying that \(x(t)\) will not exceed the range \((-\chi , \chi )\). Hence, \((\chi ^2 - x^2) > 0\) holds for \(t \ge 0\). Based on the expression of \(V(t)\) shown by (16), it is known that \(V(t) \ge 0, \forall t \ge 0\). Together with (18), considering that \(V(0) \in {\mathcal {L}}_{\infty }\), it is straightforward that

$$\begin{aligned} {} V(t) \in {\mathcal {L}}_{\infty }. \end{aligned}$$
(20)

Additionally, it is implied from (16) and (20), and further from (3) and (12) that the following signals are bounded:

$$\begin{aligned} {} e_x, \dot{x}, \dot{\theta }, {\tilde{\varvec{\omega }}}, \frac{e_x^2}{\chi ^2 - x^2} \in {\mathcal {L}}_{\infty } \Longrightarrow F_\mathrm{r}, \varvec{\phi }, \dot{\hat{\varvec{\omega }}} \in {\mathcal {L}}_{\infty }, \end{aligned}$$
(21)

which, along with the fact that \({\varvec{\omega }}\), is a bounded constant parameter vector and the relationship of (13), further indicates that

$$\begin{aligned} {} {\hat{\varvec{\omega }}} \in {\mathcal {L}}_{\infty }. \end{aligned}$$
(22)

As a means to further explore the boundedness of \(1/(\chi ^2 - x^2)\), the following two cases are taken into account:

  • Case 1 \(|e_x(t)| \nrightarrow 0\). It follows from (21) that \(e_x(t) \in {\mathcal {L}}_{\infty } \Longrightarrow e_x^2(t) \in {\mathcal {L}}_{\infty }\). In this case, since \(|e_x(t)| \nrightarrow 0 \Longrightarrow e_x^2(t) \nrightarrow 0\), one has from \(e_x^2(t) \in {\mathcal {L}}_{\infty }\) and \(e_x^2/(\chi ^2 - x^2) \in {\mathcal {L}}_{\infty }\) that \(1/(\chi ^2 - x^2) \in {\mathcal {L}}_{\infty }\).

  • Case 2 \(|e_x(t)| \rightarrow 0\). By definition, it is implied that \(x(t) \rightarrow p_\mathrm{d}/2\), and in this case, \(1/(\chi ^2 - x^2) \rightarrow 1/(\chi ^2 - p_\mathrm{d}^2/4)\), which is a bounded constant.

Hence, by summarizing the two cases mentioned above, it is clearly known that

$$\begin{aligned} {} \frac{1}{\chi ^2 - x^2} \in {\mathcal {L}}_{\infty },\quad \forall t \ge 0. \end{aligned}$$
(23)

By collecting together the results shown by (21)–(23), it is not difficult to conclude from (11) that

$$\begin{aligned} {} F \in {\mathcal {L}}_{\infty }. \end{aligned}$$
(24)

In what follows, we will show the convergence of the closed-loop signals. It is deduced from (17) that

$$\begin{aligned} {} k_\mathrm{d} (1 + \kappa ) \int _{0}^{t} \dot{x}^2 d\tau + d \int _{0}^{t} \dot{\theta }^2 d\tau \le V(0) - V(t), \end{aligned}$$
(25)

which implies that

$$\begin{aligned} {} \dot{x}, \dot{\theta } \in {\mathcal {L}}_2. \end{aligned}$$
(26)

Due to \(ml > 0\), Eq. (2) can be arranged as follows:

$$\begin{aligned} {} \ddot{\theta } = - \frac{1}{l} \cos {\theta } \ddot{x} - \frac{g}{l} \sin {\theta } - \frac{d}{ml^2} \dot{\theta }. \end{aligned}$$
(27)

By substituting (27) into (1) and performing some arrangements, we are led to the following result:

$$\begin{aligned} {} \ddot{x}&= \frac{1}{M + m \sin ^2{\theta }} \bigg ( F - F_\mathrm{r} + \frac{d}{l} \cos {\theta } \dot{\theta } + ml \dot{\theta }^2 \sin {\theta }\nonumber \\&\quad + mg \sin {\theta } \cos {\theta } \bigg ) \in {\mathcal {L}}_{\infty }, \end{aligned}$$
(28)

where (21) and (24) have been employed. Then, by using \(\dot{\theta }(t) \in {\mathcal {L}}_{\infty }\) in (21) and \(\ddot{x}(t) \in {\mathcal {L}}_{\infty }\) in (28), it follows from (27) that

$$\begin{aligned} {} \ddot{\theta } \in {\mathcal {L}}_{\infty }. \end{aligned}$$
(29)

We know from (21), (26), (28), and (29) that \(\dot{x}(t), \dot{\theta }(t) \in {\mathcal {L}}_{\infty } \cap {\mathcal {L}}_2\) and \(\ddot{x}(t), \ddot{\theta }(t) \in {\mathcal {L}}_{\infty }\); hence, applying Barbalat’s lemma [38] shows that

$$\begin{aligned} {} \lim _{t \rightarrow \infty } \dot{x} = 0,\quad \lim _{t \rightarrow \infty } \dot{\theta } = 0, \end{aligned}$$
(30)

which further indicates from (3) that

$$\begin{aligned} {} \lim _{t \rightarrow \infty } F_\mathrm{r} = 0. \end{aligned}$$
(31)

By inserting \(F(t)\) of (11) into (28), Eq. (28) can be expressed in the following form:

$$\begin{aligned} {} \ddot{x} = \mu _{x1} + \mu _{x2}, \end{aligned}$$
(32)

where \(\mu _{x1}(t)\) and \(\mu _{x2}(t)\) are denoted by

$$\begin{aligned} \mu _{x1}&= \frac{1}{M + m \sin ^2{\theta }} \left[ - k_\mathrm{d}(1 + k_{\theta } \sin ^2{\theta }) \dot{x} - \varvec{\phi }_3^{\top } \hat{\varvec{\omega }}_3 \right. \nonumber \\&\quad \left. -\, F_\mathrm{r} + \frac{d}{l} \cos {\theta } \dot{\theta } + ml \dot{\theta }^2 \sin {\theta } \right] , \end{aligned}$$
(33)
$$\begin{aligned} \mu _{x2}&= \frac{1}{M + m \sin ^2{\theta }} \left\{ mg \sin {\theta } \cos {\theta } - \frac{k_\mathrm{p}}{1 + \kappa } e_x \right. \nonumber \\&\quad \left. -\, \frac{\kappa }{1 + \kappa } \widehat{mg} \sin {\theta } \cos {\theta }\right. \nonumber \\&\quad \left. -\, \frac{2 k_\mathrm{e} [ (\chi ^2 - x^2) + x e_x ] }{(\chi ^2 - x^2)^2} e_x \right\} , \end{aligned}$$
(34)

in which \(\widehat{mg}\) denotes the first entry in \(\hat{\varvec{\omega }}\), and \(\varvec{\phi }_3, \hat{\varvec{\omega }}_3\), respectively, represent

$$\begin{aligned} {\varvec{\phi }}_3 \triangleq&\, \frac{\kappa }{1 + \kappa } \big [ \sin {\theta } \dot{\theta }^2, \dot{x} \dot{\theta } \sin {\theta } \cos {\theta }, \cos {\theta } \dot{\theta },\\&-\,\tanh (\dot{x}/\epsilon ), |\dot{x}|\dot{x} \big ]^{\top }, \\ {\varvec{\omega }}_3&\triangleq \left[ ml, m, d/l , f_{\mathrm{r}0}, k_\mathrm{r} \right] ^{\top }. \end{aligned}$$

It is clear that

$$\begin{aligned} \frac{\kappa }{1 + \kappa } \widehat{mg} \sin {\theta } \cos {\theta } + \varvec{\phi }_3^{\top }\hat{\varvec{\omega }}_3 = \varvec{\phi }^{\top }\hat{\varvec{\omega }}, \end{aligned}$$
(35)

that is, we have decomposed \(\varvec{\phi }^{\top }\hat{\varvec{\omega }}\) in \(F(t)\) into two components, which are present in \(\mu _{x1}(t)\) and \(\mu _{x2}(t)\), respectively. By utilizing the results in (21), (30), and (31), one has

$$\begin{aligned} {} \lim _{t \rightarrow \infty } \mu _{x1} = 0,\quad \dot{\mu }_{x2} \in {\mathcal {L}}_{\infty }. \end{aligned}$$
(36)

Combining the results in (30), (32), and (36), we can invoke extended Barbalat’s lemma to yieldFootnote 2

$$\begin{aligned} {} \lim _{t \rightarrow \infty } \ddot{x} = 0. \end{aligned}$$
(37)

In a similar way, one can rearrange (27) into

$$\begin{aligned} {} \ddot{\theta } = \underbrace{- \frac{1}{l} \cos {\theta } \ddot{x} - \frac{d}{ml^2} \dot{\theta }}_{\mu _{\theta 1}} \underbrace{- \frac{g}{l} \sin {\theta }}_{\mu _{\theta 2}}. \end{aligned}$$
(38)

Using (21), (30), and (37), it is easily concluded that \(\lim _{t \rightarrow \infty } \mu _{\theta 1}(t) = 0, \dot{\mu }_{\theta 2}(t) = -g \dot{\theta } \cos {\theta }/l \in {\mathcal {L}}_{\infty }\). Again it follows from extended Barbalat’s lemma [39] that

$$\begin{aligned} {} \lim _{t \rightarrow \infty } \ddot{\theta } = 0. \end{aligned}$$
(39)

Based on (30), (37), and (39), we can take the time limit for both sides of (38) to obtainFootnote 3

$$\begin{aligned} {} \lim _{t \rightarrow \infty } - \frac{g}{l} \sin {\theta } = 0 \Longrightarrow \lim _{t \rightarrow \infty } \theta = 0, \end{aligned}$$
(40)

which, along with (30), indicates that

$$\begin{aligned} {} \lim _{t \rightarrow \infty } \varvec{\phi }^{\top }\hat{\varvec{\omega }} = 0. \end{aligned}$$
(41)

Inserting the conclusions in (30), (31), (37), and (39) into (1) yields

$$\begin{aligned} {} \lim _{t \rightarrow \infty } F = 0, \end{aligned}$$
(42)

which further indicates from (11) and (41) that the following implications are straightforward:

$$\begin{aligned} {}&\lim _{t \rightarrow \infty }\left\{ \frac{k_\mathrm{p}}{1 + \kappa } +\frac{2 k_\mathrm{e} [ (\chi ^2 - x^2) + x e_x ] }{(\chi ^2 - x^2)^2} \right\} e_x = 0 \nonumber \\&\quad \Longleftrightarrow \lim _{t \rightarrow \infty } \left\{ \frac{k_\mathrm{p}}{1 + \kappa } +\frac{2 k_\mathrm{e} [ (\chi ^2 - x^2) + x (x - p_\mathrm{d}/2) ] }{(\chi ^2 - x^2)^2} \right\} e_x = 0 \nonumber \\&\quad \Longleftrightarrow \lim _{t \rightarrow \infty } \left\{ \frac{k_\mathrm{p}}{1 + \kappa } +\frac{2 k_\mathrm{e} [ \chi ^2 - (x p_\mathrm{d})/2 ] }{(\chi ^2 - x^2)^2} \right\} e_x = 0, \end{aligned}$$
(43)

wherein the definition \(e_x = x - p_\mathrm{d}/2\) [see (7)] has been utilized. Owing to the fact that \(|x(t)| < \chi \) [see (19)] and \(p_\mathrm{d}/2 < \chi \) [see (6)], it is concluded that the bracketed term in (43) is always positive. Thus, one knows from (43) that

$$\begin{aligned} {} \lim _{t \rightarrow \infty } e_x = 0 \Longrightarrow \lim _{t \rightarrow \infty } x = p_\mathrm{d}/2. \end{aligned}$$
(44)

Putting together the conclusions in (30), (37), (39), (40), and (44), we conclude that the system state variables converge to the equilibrium point asymptotically. Along with (19), the results of this theorem are concluded. \(\square \)

4 Hardware experiments and analysis

To verify the performance of the presented method, a series of experimental tests are implemented on an overhead crane testbed [17, 23]. The descriptions for the experiment testbed can be found in [23].

Through experimental studies, we intend to verify the following points for the proposed method: (1) antiswing positioning control while guaranteeing the motion scope of the trolley; (2) being adaptive to parametric uncertainties; (3) robustness against disturbances. To do so, two groups of experiments will be implemented. More precisely, in the first group, the proposed method’s control performance will be experimentally compared with those of existing methods; in the second group, we will further verify the robustness of the presented controller with respect to uncertainties and disturbances.

For the crane experimental testbed, the trolley and payload masses are, respectively, \(M = 7 {\text {kg}}\) and \(m = 1 \mathrm{{kg}}\), and the wire length is \(l = 0.8 \mathrm{{m}}\). After experimental calibration, the friction parameter \(\epsilon \) is identified as \(\epsilon = 0.01\). The move distance \(p_\mathrm{d}\), the initial trolley position \(x_i\), the trolley destination \(x_f\), and the rail length limitation \(\chi \) are, respectively, set as

$$\begin{aligned} p_\mathrm{d} = 0.6 {\text {m}}, x_i = -0.3 {\text {m}}, x_f = 0.3 {\text {m}}, \chi = 0.302 {\text {m}}, \end{aligned}$$

which indicates that the trolley should move within the scope of \((-0.302, 0.302 {\text {m}})\).

Experiment 1

In this experiment, we verify the proposed method’s performance in terms of trolley positioning and swing suppression and then compare it with the sliding mode control (SMC) method in [36] and an active control approach.Footnote 4 To be self-contained, the expressions for the chosen comparative methods are provided here. In particular, the active controller takes the following form:

$$\begin{aligned} F = - k_1 e_x - k_2 \dot{x} + k_3 \theta + k_4 \dot{\theta } - \phi (x) e_x, \end{aligned}$$
(45)

where \(k_1, k_2, k_3, k_4\) are control gains and \(\phi (x) = (x/\chi )^{2 N + 1}\), with \(N = 40\), is the introduced term to restrict the trolley motion;

$$\begin{aligned} k_1 =&8.1650, k_2 = 16.2601,\\ k_3 =&-19.8502, k_4 = -4.2079 \end{aligned}$$

are solved by using the standard linear quadratic regulator (LQR) technique [that is, without considering the term \(- \phi (x) e_x\)], where the cost function is chosen as

$$\begin{aligned} J = \int _{0}^{\infty } \left( X^{\top } Q X + R F^2 \right) \mathrm{{d}}t \end{aligned}$$

with \(X = [e_x(t), \dot{x}(t), \theta (t), \dot{\theta }(t)]^{\top }\), and the weighted matrices \(Q, R\) are determined as \(Q = \mathrm{{diag}} \big \{ 10, 20, 150, 0 \big \}, R = 0.15\). The expression of the SMC controller in [36] is shown as follows:

$$\begin{aligned} F&= - \frac{(M + m \sin ^2{\theta })l}{ l - \alpha _{21} \cos {\theta }} k_\mathrm{s} \mathrm{{sgn}}(r)\\&\quad - m \sin {\theta } (g \cos {\theta } + l \dot{\theta }^2) \\&\quad - \frac{(M + m \sin ^2{\theta })l}{ l - \alpha _{21} \cos {\theta }} \left( \lambda _{11} \dot{x} + \lambda _{21} \dot{\theta } - \frac{\alpha _{21} g}{l} \sin {\theta } \right) , \end{aligned}$$

where \(r = \dot{x} + \lambda _{11} e_x + \alpha _{21} \dot{\theta } + \lambda _{21} \theta \) and \(\lambda _{11} = 0.9, \lambda _{21} = -2, \alpha _{21} = 0.2, k_\mathrm{s} = 1.1\). To avoid unexpected chattering, the discontinuous term \(\mathrm{{sgn}}(r)\) is replaced with \(\tanh (5r)\) in the experiment, as commonly done in the literature. The control gains/parameters for the proposed controller are tuned to be \(k_\mathrm{p} = 36, k_\mathrm{d} = 14, k_{\theta } = 11, \kappa = 1, k_\mathrm{e} = 0.00005, \gamma _1 = \gamma _2 = \gamma _3 = \gamma _4 = 0.5, \gamma _5 = \gamma _6 = 0.2\), and \(\hat{\varvec{\omega }}(0) = [ 0, 0, 0, 0, 0, 0]^{\top }\).

The curves in Figs. 2, 3, 4 record the corresponding experimental results, and some quantitative indices are presented in Table 1. The three methods drive the trolley to the desired location within 6 s, and the final positioning errors are \(<\)4 mm. It is clearly seen that the designed method can damp out the payload swing better than the comparative methods, in terms of small swing amplitude and almost no residual swing. In addition, as seen from the partially zoomed parts in the top plots of Figs. 2, 3, 4 and the provided data \(\max \{x(t)\}\) in Table 1, the proposed method and the active control controller (45) can successfully restrict the trolley within the preset range \((-0.302, 0.302~{\text {m}})\) as they have actively considered the state constraints; in contrast, the SMC method drives the trolley out of the prescribed range, resulting in mission failure. When compared to the other two methods, another benefit of the proposed scheme is that it does not require the exact model knowledge of the system parameters.

Fig. 2
figure 2

Experiment 1: the proposed method (solid line experimental results, dotted-dashed line model predictions, dashed line \(\pm \chi = \pm 0.302\,{\text {m}}\))

Fig. 3
figure 3

Experiment 1: the sliding mode control method in [36] (solid line experimental results, dashed line \(\pm \chi = \pm 0.302~{\text {m}}\))

Fig. 4
figure 4

Experiment 1: the active control method (45) (solid line experimental results, dashed line \(\pm \chi = \pm 0.302~{\text {m}}\))

Table 1 Quantitative performance indices

In addition, as shown by Fig. 2, the experimental results (solid line) and the model predictions (dotted-dashed line) are close to each other in general. The transient differences are caused by such factors as unmodeled dynamics, the motor’s actuating capacity, the mismatch between the actual friction and the used model (3), and so on. Thus, the robustness of the proposed method with respect to unmodeled dynamics has actually been examined.

Experiment 2

In order to demonstrate the robustness of the developed controller with regard to uncertainties and disturbances, the following three cases are further considered:

  • Case 1. Parameter change/uncertainties. The payload mass and wire length are changed to be \(m = 2~\mathrm{{kg}}, l = 0.7~\mathrm{{m}}\), respectively, while the nominal values are still \(m = 1~\mathrm{{kg}}, l = 0.8~\mathrm{{m}}\) (see Experiment 1).

  • Case 2. Nonzero initial swing disturbance. The initial swing angle is about 3.4\(^{\circ }\).

  • Case 3. External disturbances. Disturbances with amplitudes of approximately 2.5\(^{\circ }\) are added to the payload swing at about 5 and 8.5 s.

We keep the control gains/parameters the same as those in Experiment 1. The obtained results are plotted by Figs. 5, 6, 7.Footnote 5 By comparing the results in Fig. 5 and 2, it is found that the performance of the proposed method is almost the same, indicating its adaptive ability to parameter change. From Figs. 6 and 7, we can see that the disturbances are effectively attenuated by the designed controller, and the overall antiswing positioning performance is maintained satisfactorily. Additionally, in all three cases, the trolley displacement \(x(t)\) is within the prescribed range \((-0.302, 0.302~{\text {m}})\), in consistent with the theoretical derivations. These results directly demonstrate the effectiveness and feasibility of the new method.

5 Conclusions and current/future work

In this paper, a new nonlinear adaptive antiswing control strategy has been presented for underactuated crane systems in the presence of rail range limitation and parametric uncertainties. The presented controller can ensure the trolley motion to be always within the permitted range, while achieving simultaneous antiswing and positioning control. Lyapunov-based analysis is used to theoretically ensure the performance of the designed control system. We also include experimental results to show that the proposed method performs satisfactorily in the presence of uncertainties and disturbances. Presently, we are constructing a 32-ton, industrial-level automatic crane system in corporation with Tianjin Hoisting Equipment Co., Ltd.; when the large-scale crane is built, we will apply the proposed method to further validate its performance.