1 Introduction

Attitude control of a spacecraft has been a subject that has attracted considerable amounts of interest in the control community, as well as in the field of aerospace. It generally aims at designing feedback control laws to regulate the attitude of a spacecraft, and meanwhile to eliminate the effects of various kinds of system parameter uncertainties, disturbances, and vibrations.

In the presence of system parameter uncertainties, many approaches have been developed for rigid spacecraft systems, see for instance [1,2,3] for adaptive control approaches. To further cope with external disturbances, one of the popular approaches is the nonlinear \(\textrm{H}_{\infty }\) control approach, e.g., [4], and its variant \(\textrm{H}_{\infty }\) inverse optimal adaptive control [5]. By this kind of approach, it is possible to attenuate external disturbances to a certain level. Towards disturbance rejection of rigid spacecraft, a number of nonlinear control schemes have been proposed, such as sliding mode control in [1], extended observer-based control in [6], and internal model-based control in [7,8,9].

On the other hand, vibration suppression has become more significant as the appendages of modern spacecraft are lighter and more flexible than before. For spacecraft systems with flexible appendages (e.g., large solar arrays), the rigid hub excites elastic vibration of the flexible appendages during maneuvering, which in turn affects the attitude motion. For example, as pointed out in [10], the elasticity in the solar array of Hubble Space Telescope often cannot be neglected for precise pointing control. In this direction, significant attempts have been made under different assumptions and scenarios to enhance the system stability and the control performance. Many advanced control methods have been poured into vibration suppression and robust attitude control, such as sliding mode control (SMC) [11, 12], finite-time control [13], fixed-time control [14], iterative learning control [15], internal model-based control [16], and so on [17,18,19,20,21,22]. In particular, Xu et al. [11] proposed a control strategy combining the adaptive SMC with the component synthesis vibration suppression method, Azimi et al. [12] used a modified SMC and strain rate feedback control for simultaneous attitude and vibration control, and Zhang et al. [13] proposed an adaptive multivariable continuous twisting controller on the basis of integral-type sliding mode surface for finite-time attitude control and vibration suppression. Yao et al. [14] proposed a neural adaptive fixed-time control approach. The neural network was introduced to approximate the lumped unknown function (including unknown parameters, external disturbance, and elastic vibrations). Sun et al. [15] proposed a control method by combining iterative learning control and the contour of cosine jerk central angle interpolation. It can effectively reduce single-axis tracking error to improve contour accuracy. In [16], Zhong et al. developed an internal model principle based regulator for disturbance rejection and attitude control of flexible spacecraft. Di Gennaro [17] developed an output feedback controller for piezoelectric actuators to realize active vibration suppression. In [18], a rapid attitude control strategy was proposed to reduce vibrations based on passive vibration isolation technique. Azimi et al. applied the Homotopy Perturbation method to investigate the vibration behavior of the rotating cracked beam in [19] and proposed optimal controllers in [20]. Recently, some prescribed performance approaches were proposed in [21, 22] for attitude tracking and disturbance attenuation of flexible spacecraft.

The main objective of this study is to explore a general investigation of robust attitude regulation of flexible spacecraft with unknown system parameters and unknown frequency harmonic disturbances. The flexible spacecraft consists of a rigid hub and flexible appendages. The coupling of rigid and flexible motion leads to a complicated interconnection structure in the mathematical model of flexible spacecraft. Thus, although many disturbance rejection algorithms have been proposed for rigid spacecraft, they cannot be directly applied to the relevant disturbance rejection problem for flexible spacecraft.

The main contribution of the present study is two-fold. Firstly, we prove that the conventional mathematical model for flexible spacecrafts is transformable to an MIMO strict-feedback nonlinear normal form, being strongly minimum-phase and having a well-defined uniform vector relative degree. The normal form facilitates subsequent control design and stability analysis. To our knowledge, this would be the first work toward normal form transformation for flexible spacecrafts. What makes this idea important is that it is potential to further apply the celebrated nonlinear control methods for multivariable systems. Secondly, based on the normal form representation and by using adaptive output regulation techniques, we propose adaptive internal model-based controllers that are able to deal with uncertain system parameters, unknown frequency harmonic disturbances, and vibrations. We prove that asymptotic attitude regulation can be achieved, and the vibration of flexible appendages vanishes asymptotically. In comparison with existing work [16] which also incorporates internal models to counteract the effect of external disturbances, our work has the following novelties: (i) The frequencies of external disturbances are unknown in this study, whereas they are assumed to be known in [16]. (ii) We treat appendage vibration as dynamic uncertainties, while [16] takes the appendage dynamics into consideration in the controller design. The latter requires the exact knowledge of system parameters, while ours does not. Thus our proposed controller is robustness against uncertainties in system parameters.

1.1 Outline

The remainder of this article is organized as follows. Section 2 introduces the mathematical model of a flexible spacecraft, and presents relevant preliminaries. Section 3 presents the main result of this paper. Section 4 illustrates the effectiveness of the proposed controllers by numerical examples. Section 5 closes the paper with some concluding remarks.

1.2 Notation

\(\Vert \cdot \Vert \) is the Euclidean norm of a vector or the induced Euclidean norm of a matrix. \(I_{n}\) is the n-dimensional identity matrix, and I is an identity matrix with compatible dimension. \({\mathcal {K}}\) is the set of functions \(f:[0,\infty )\rightarrow [0,\infty )\) to be continuous, positive definite, and strictly increasing. \({\mathcal {K}}_{\infty }\) is the set of unbounded \({\mathcal {K}}\) functions.

Table 1 Table of notations

2 Modeling and preliminaries

The flexible spacecraft under investigation consists of a rigid hub with flexible appendages attached to it. The equations of attitude motion of a flexible spacecraft are given by the kinematic equation of the spacecraft and dynamic equations of the rigid hub and the flexible appendages. From [17, 23, 24] and the symbols defined in Table 1, the flexible spacecraft attitude model is

$$\begin{aligned}&{\dot{\sigma }} = G(\sigma )\omega , \end{aligned}$$
(1a)
$$\begin{aligned}&J{\dot{\omega }} = -\omega ^{\times }(J\omega + \delta {\dot{\eta }}) - \delta \ddot{\eta } + u + d, \end{aligned}$$
(1b)
$$\begin{aligned}&\ddot{\eta } = -2\zeta \varLambda {\dot{\eta }} - \varLambda ^{2}\eta - \delta ^{{\textrm{T}}}{\dot{\omega }}, \end{aligned}$$
(1c)

where (1a) is the kinematic equation of the rigid hub, and is described in terms of modified Rodriguez parameters [23]:

$$\begin{aligned} \sigma = {\varvec{e}}\tan \Big (\dfrac{\phi }{4}\Big )\in {\mathbb {R}}^{3},\,\, -2\pi< \phi <2\pi , \end{aligned}$$

where \({\varvec{e}}\) is the Euler axis of rotation in the body-fixed frame, and \(\phi \) is the Euler angle about axis \({\varvec{e}}\). The matrix \(G(\sigma )\) is given by

$$\begin{aligned} G(\sigma ) = \dfrac{1}{2}\left( \dfrac{1 - \sigma ^{{\textrm{T}}}\sigma }{2}I_{3} + \sigma ^{\times } + \sigma \sigma ^{{\textrm{T}}}\right) . \end{aligned}$$
(2)

Equation (1b) is the rigid dynamics of the total angular momentum \(\varOmega \), given as

$$\begin{aligned} \varOmega = J\omega + \delta {\dot{\eta }}, \end{aligned}$$

where J is the symmetric inertia matrix of the whole spacecraft, and \(\delta \) is the coupling matrix between the flexible and rigid structures. Equation (1c) describes the flexible dynamics using mode formulation \(\eta \in {\mathbb {R}}^{n}\) with n number of flexible modes considered. The natural frequency matrix \(\varLambda \) and the damping ratio matrix \(\zeta \) are of diagonal form

$$\begin{aligned} \varLambda = \textrm{diag}(\varLambda _{1},\ldots ,\varLambda _{n}),\,\,\zeta = \textrm{diag}(\zeta _{1},\ldots ,\zeta _{n}), \end{aligned}$$

where \(\varLambda _{i}\) are the natural frequencies and \(\zeta _{i}\) are the corresponding dampings.

Remark 1

For the \(\sigma \)-subsystem (1a), we have the following observations.

  1. 1.

    The matrix \(G(\sigma )\) in (2) is invertible for all \(\sigma \in {\mathbb {R}}^{3}\). In fact, the determinant amounts to \(G(\sigma )\) can be directly calculated: \(\det G(\sigma ) = \frac{1}{64}(1 + \sigma _{1}^{2} + \sigma _{2}^{2} + \sigma _{3}^{2})^{3}\), which implies the invertibility of \(G(\sigma )\).

  2. 2.

    The attitude \(\sigma \) of the rigid hub may be alternatively described by some other representations, such as unit quaternions or Euler angle vectors, leading to expressions formally similar to (1a).

The disturbance signal to be handled in this study is assumed to be a combination of finite numbers of sine waves and steps. Specifically, \(d = [d_{1},d_{2},d_{3}]^{{\textrm{T}}}\), and for each \(i=1,2,3\),

$$\begin{aligned} d_{i}(t) = \textstyle \sum \limits _{j=1}^{n_{i}}A_{ij}\sin (\sigma _{ij}^{d}t + \varUpsilon _{ij}) + A_{i0}, \end{aligned}$$
(3)

where \(A_{i0}\) is the unknown step magnitude, \(\sigma _{ij}^{d}\), \(A_{ij}\), and \(\varUpsilon _{ij},\) \(j=1,\ldots ,n_{i}\), are unknown frequencies, amplitudes, and phase angles, respectively.

The control objective of this study is to realize desired attitude regulation, and meanwhile to suppress the vibrations induced by the flexible appendages of the spacecraft, in spite of external disturbances and unknown system parameters.

For this purpose, we will give a normal form characterization of system (1). Then, based on the obtained normal form representation, we approach the disturbance rejection and attitude regulation problem in the framework of nonlinear output regulation for multivariable nonlinear systems.

To be self-contained, let us revisit some basic concepts involved in geometric control [25]. Consider a multivariable nonlinear system as follows:

$$\begin{aligned} \left\{ \begin{array}{l} {\dot{x}} = f(x) + \textstyle \sum \limits _{i=1}^{m}g_{i}(x)u_{i},\\ y_{1} = h_{1}(x), \ldots , y_{m} = h_{m}(x), \end{array}\right. \end{aligned}$$
(4)

where \(f:{\mathbb {R}}^{n}\rightarrow {\mathbb {R}}^{n}\), \(g_{i}:{\mathbb {R}}^{n}\rightarrow {\mathbb {R}}^{n}\), \(i=1,\ldots ,m\) are smooth vector fields, and \(h_{i}:{\mathbb {R}}^{n}\rightarrow {\mathbb {R}}\), \(i=1,\ldots ,m\) are smooth functions.

Definition 1

[25] System (4) has a vector relative degree \(\{r_{1},\cdots ,r_{m}\}\) at a point \(x^{0}\) if

  1. (i)

    \(L_{g_{j}}L_{f}^{k}h_{i}(x) = 0\), for all \(j=1,\ldots ,m\), \(k= 1,\ldots ,r_{i}-2\), \(i=1,\ldots ,m\), and for all x in a neighborhood of \(x^{0}\);

  2. (ii)

    the matrix

    $$\begin{aligned} D(x) = \begin{bmatrix} L_{g_{1}}L_{f}^{r_{1} - 1}h_{1}(x) &{} \cdots &{} L_{g_{m}}L_{f}^{r_{1} - 1}h_{1}(x) \\ L_{g_{1}}L_{f}^{r_{2} - 1}h_{2}(x) &{} \cdots &{} L_{g_{m}}L_{f}^{r_{2} - 1}h_{2}(x) \\ \vdots &{} &{} \vdots \\ L_{g_{1}}L_{f}^{r_{m} - 1}h_{m}(x) &{} \cdots &{} L_{g_{m}}L_{f}^{r_{m} - 1}h_{m}(x) \end{bmatrix} \end{aligned}$$

    is nonsingular at \(x = x^{0}\).

Moreover, system (4) is said to have uniform vector relative degree if there are integers \(r_{1},\ldots ,r_{m}\) such that system (4) has vector relative degree \(\{r_{1},\ldots ,r_{m}\}\) at each \(x^{0}\in {\mathbb {R}}^{n}\).

If system (4) has a well-defined vector relative degree \(\{r_{1},\ldots ,r_{m}\}\), then it can be diffeomorphically transformed into the following strict-feedback normal form [25, pp. 224–225]

$$\begin{aligned} \left\{ \begin{array}{l} {\dot{z}} = f(z,\xi ),\\ {\dot{\xi }}_{i,j} = \xi _{i,j+1},~\quad ~ j=1,\ldots ,r_{i}-1,\\ {\dot{\xi }}_{i,r_{i}} = q_{i}(z,\xi ) + b_{i}(z,\xi )u,\\ y_{i} = \xi _{i,1},~\quad ~ i=1,\ldots ,m, \end{array}\right. \end{aligned}$$
(5)

where \(z\in {\mathbb {R}}^{n-(r_{1}+\cdots +r_{m})}\), \(u\in {\mathbb {R}}^{m}\), the vector \(\xi \in {\mathbb {R}}^{r_{1}+\cdots +r_{m}}\) is defined as

$$\begin{aligned} \begin{array}{l} \xi = [\xi _{1}^{{\textrm{T}}}, \ldots , \xi _{m}^{{\textrm{T}}}]^{{\textrm{T}}},\\ \xi _{i} = [\xi _{i,1}, \ldots , \xi _{i,r_{i}}]^{{\textrm{T}}},\quad i=1,\ldots ,m, \end{array} \end{aligned}$$

and \(q_{i}(z,\xi )\), \(b_{i}(z,\xi )\), \(i=1,\ldots ,m\) are smooth functions.

As we will see in the subsequent section, the property of the z-subsystem plays an important role in control design. In this context, we introduce the following definition.

Definition 2

[26] System (5) is strongly minimum-phase if the z-subsystem is input-to-state stable (ISS) w.r.t. state z and input \(\xi \) in the sense of [27].

3 Main result

3.1 Normal form

The multivariable nonlinear system (1) has a complicated interconnection structure. The attitude dynamics of rigid hub (1b) and the appendages’ vibration (1c) are coupled by the first and second time derivative of modal coordinate \({\dot{\eta }},\ddot{\eta }\) and angular acceleration \({\dot{\omega }}\). The excitation source of the vibration dynamics (1c) is \({\dot{\omega }}\). In turn, the excited vibrations are coupled in the attitude dynamics (1b) via \({\dot{\eta }}\) and \(\ddot{\eta }\).

To derive a more tractable system, we rewrite system (1) in some other representation to be of normal form [25, pp. 224–225] as follows.

Proposition 1

Suppose \(J - \delta \delta ^{{\textrm{T}}}\) is nonsingular. Then there exists a map \((z_{1},z_{2},x_{1},x_{2}):= T(\eta ,{\dot{\eta }},\sigma ,\omega )\) to be a diffeomorphism that defines a global change of coordinates that transforms system (1) into the normal form (5), specified as follows:

$$\begin{aligned} \left\{ \begin{aligned}&{\dot{z}}= Az + f_{0}(x_{1},x_{2}), \\&{\dot{x}}_{1}= x_{2}, \\&\begin{array}{ll} {\dot{x}}_{2}=&{} H^{-1}(x_{1})\big [-C(x_{1},x_{2})x_{2} - g(x_{1},x_{2},z)\big ] \\ &{} + H^{-1}(x_{1})G^{-{\textrm{T}}}(x_{1})(u + d) \end{array} \end{aligned} \right. \end{aligned}$$
(6)

with output \(y=x_{1}\), where \(z=[z_{1}^{{\textrm{T}}},z_{2}^{{\textrm{T}}}]^{{\textrm{T}}}\), matrix A is Hurwitz, function G is defined by replacing the argument \(\sigma \) in (2) with \(x_{1}\), and functions \(f_{0}:{\mathbb {R}}^{3}\times {\mathbb {R}}^{3}\rightarrow {\mathbb {R}}^{2n}\), \(H:{\mathbb {R}}^{3}\rightarrow {\mathbb {R}}^{3\times 3}\), \(C:{\mathbb {R}}^{3}\times {\mathbb {R}}^{3}\rightarrow {\mathbb {R}}^{3\times 3}\), and \(g:{\mathbb {R}}^{3}\times {\mathbb {R}}^{3}\times {\mathbb {R}}^{2n}\rightarrow {\mathbb {R}}^{3}\) are smooth and satisfy the following properties:

P1:

For each \(x_{1}\in {\mathbb {R}}^{3}\), \(H(x_{1})\) is positive definite.

P2:

\(\frac{\textrm{d}\hbox {}H(x_{1})}{\textrm{d}\hbox {}t} - 2C(x_{1},x_{2})\) is skew-symmetric.

Proof

The coordinate transformation can be constructed in two steps.

  • Firstly, to eliminate \({\dot{\omega }}\) in (1c), we define the following change of coordinate:

    $$\begin{aligned} (z_{1},z_{2}):=(\eta ,{\dot{\eta }} + \delta ^{{\textrm{T}}}\omega ),\ z = [z_{1}^{{\textrm{T}}},z_{2}^{{\textrm{T}}}]^{{\textrm{T}}}. \end{aligned}$$
    (7)

    Then, direct calculation gives the following expressions:

    $$\begin{aligned} {\dot{z}}_{1}&= z_{2} - \delta ^{{\textrm{T}}}\omega , \\ {\dot{z}}_{2}&= -2\zeta \varLambda {\dot{\eta }} - \varLambda ^{2}\eta - \delta ^{{\textrm{T}}}{\dot{\omega }} + \delta ^{{\textrm{T}}}{\dot{\omega }} \\&= -2\zeta \varLambda {\dot{\eta }} - \varLambda ^{2}\eta \\&= - \varLambda ^{2}z_{1} - 2\zeta \varLambda z_{2} + 2\zeta \varLambda \delta ^{{\textrm{T}}}\omega . \end{aligned}$$

    In short,

    $$\begin{aligned} {\dot{z}} = Az + f_{z}(\omega ), \end{aligned}$$
    (8)

    where

    $$\begin{aligned} A = \begin{bmatrix} 0 &{} I \\ -\varLambda ^{2} &{} -2\zeta \varLambda \end{bmatrix},\ f_{z}(\omega ) = \begin{bmatrix} - \delta ^{{\textrm{T}}}\omega \\ 2\zeta \varLambda \delta ^{{\textrm{T}}}\omega \end{bmatrix}. \end{aligned}$$
    (9)
  • Secondly, we eliminate \(\ddot{\eta }\) in (1b). By submitting (1c) into (1b), we have

    $$\begin{aligned} J{\dot{\omega }}&= -\omega ^{\times }(J\omega + \delta {\dot{\eta }}) + \delta (2\zeta \varLambda {\dot{\eta }} + \varLambda ^{2}\eta + \delta ^{{\textrm{T}}}{\dot{\omega }}) \\&\quad + u + d \\&= -\omega ^{\times }(J\omega + \delta {\dot{\eta }}) + \delta (2\zeta \varLambda {\dot{\eta }} +\varLambda ^{2}\eta ) + \delta \delta ^{{\textrm{T}}}{\dot{\omega }} \\&\quad + u + d. \end{aligned}$$

    By merging terms \(J{\dot{\omega }}\) and \(\delta \delta ^{{\textrm{T}}}{\dot{\omega }}\), we have

    $$\begin{aligned} (J-\delta \delta ^{{\textrm{T}}}){\dot{\omega }}&= -\omega ^{\times }(J\omega + \delta {\dot{\eta }}) + \delta (2\zeta \varLambda {\dot{\eta }} + \varLambda ^{2}\eta ) \nonumber \\&\quad + u + d. \end{aligned}$$
    (10)

    Denote a new constant matrix \(J_{\delta }\) by

    $$\begin{aligned} J_{\delta } = J - \delta \delta ^{{\textrm{T}}}. \end{aligned}$$
    (11)

    Substituting (11) into (10) gives

    $$\begin{aligned} J_{\delta }{\dot{\omega }}&= -\omega ^{\times }(J_{\delta } + \delta \delta ^{{\textrm{T}}})\omega -\omega ^{\times }\delta {\dot{\eta }} \nonumber \\&\quad + \delta (2\zeta \varLambda {\dot{\eta }} + \varLambda ^{2}\eta ) + u + d \nonumber \\&= -\omega ^{\times }J_{\delta }\omega - \omega ^{\times }\delta z_{2} + \delta [2\zeta \varLambda (z_{2} - \delta ^{{\textrm{T}}}\omega ) \nonumber \\&\quad + \varLambda ^{2}z_{1}] + u + d \nonumber \\&= -\omega ^{\times }J_{\delta }\omega - 2\delta \zeta \varLambda \delta ^{{\textrm{T}}}\omega - \omega ^{\times }\delta z_{2} + 2\delta \zeta \varLambda z_{2} \nonumber \\&\quad + \delta \varLambda ^{2}z_{1} + u + d, \end{aligned}$$
    (12)

    where we have used the new coordinate \((z_{1},z_{2})\) defined in (7).

Based on (1a) and (12), the attitude dynamics of rigid hub can be formulated in Lagrangian form

$$\begin{aligned} H(x)\ddot{x} + C(x,{\dot{x}}){\dot{x}} + g(x,{\dot{x}},z) = G^{-{\textrm{T}}}(x)(u + d), \end{aligned}$$
(13)

where \(x = \sigma \), and

$$\begin{aligned} \left\{ \begin{array}{l} H(x)= G^{-{\textrm{T}}}(x)J_{\delta }G^{-1}(x),\\ \begin{array}{ll} C(x,{\dot{x}})=&{} -G^{-{\textrm{T}}}(x)J_{\delta }G^{-1}(x){\dot{G}}(x)G^{-1}(x)\\ &{} - G^{-{\textrm{T}}}(x)[J_{\delta }G^{-1}(x){\dot{x}}]^{\times }G^{-1}(x), \end{array} \\ \begin{array}{ll} g(x,{\dot{x}},z)\\ = 2G^{-{\textrm{T}}}(x)\delta \zeta \varLambda z_{2} - 2G^{-{\textrm{T}}}(x)\delta \zeta \varLambda \delta ^{{\textrm{T}}}G^{-1}(x){\dot{x}}\\ \quad - G^{-{\textrm{T}}}(x)[G(x){\dot{x}}]^{\times }\delta z_{2} + G^{-{\textrm{T}}}(x)\delta \varLambda ^{2}z_{1}. \end{array} \end{array}\right. \end{aligned}$$
(14)

By combining (8) and (13), and further choosing

$$\begin{aligned} (x_{1},x_{2}):= (x,{\dot{x}}) \end{aligned}$$
(15)

as the state, system (6) can be obtained with \(f_{0}(x_{1},x_{2}) = f_{z}(G^{-1}(x_{1})x_{2})\), and functions \(H(x_{1})\) and \(C(x_{1},x_{2})\) are defined by replacing the arguments \(x,{\dot{x}}\) in (14) with \(x_{1},x_{2}\), respectively. Thus, in view of (7) and (15), the change of coordinates from system (1) to (6) is given by

$$\begin{aligned} (z_{1},z_{2},x_{1},x_{2})&:= T(\eta ,{\dot{\eta }},x,\omega ) \\&= \big (\eta , {\dot{\eta }}+\delta ^{{\textrm{T}}}\omega ,\sigma ,G(\sigma )\omega \big ). \end{aligned}$$

Finally, under the condition that \(J_{\delta }\) is nonsingular, the properties P1 and P2 can be verified directly from (14). \(\square \)

Remark 2

The following remarks concerning system (6) are in order.

  1. 1.

    System (6) is strongly minimum-phase in the sense of Definition 2, i.e., the inverse dynamics of (6) is ISS. It can be checked by taking a Lyapunov function \(V_{0}(z) = z^{{\textrm{T}}}P_{0}z\) where \(P_{0}\) is a positive definite matrix satisfying \(A^{{\textrm{T}}}P_{0} + P_{0}A = -I\), whose time derivative, along the trajectories of (6), satisfies \({\dot{V}}_{0} \le -\frac{1}{2}\Vert z\Vert ^{2} + \gamma _{01}(\Vert x_{1}\Vert ) + \gamma _{02}(\Vert x_{2}\Vert )\) for some \({\mathcal {K}}_{\infty }\) functions \(\gamma _{01}\) and \(\gamma _{02}\).

  2. 2.

    System (6) has uniform vector relative degree \(\{2,2,2\}\) in the sense of Definition 1. From Remark 1 and the condition that \(J_{\delta }\) is nonsingular, it follows that the high-frequency gain matrix \(B(x_{1}):= H^{-1}(x_{1})G^{-{\textrm{T}}}(x_{1})\) is nonsingular at each \(x_{1}\in {\mathbb {R}}^{3}\).

With the obtained normal form representation (6), we define the concerned disturbance rejection and attitude regulation problem as follows.

Problem 1

Consider system (6). Given any desired attitude \(x_{d}\in {\mathbb {R}}^{3}\), design a smooth controller of the form

$$\begin{aligned} u = h_{c}(x_{c},x_{1},x_{2},x_{d}),\ {\dot{x}}_{c} = f_{c}(x_{c},x_{1},x_{2},x_{d}), \end{aligned}$$
(16)

where \(x_{c}\in {\mathbb {R}}^{n_{c}}\) for some positive integer \(n_{c}\), such that for any initial conditions \(z(0)\in {\mathbb {R}}^{2n},x_{1}(0)\in {\mathbb {R}}^{3},x_{2}(0)\in {\mathbb {R}}^{3},x_{c}(0)\in {\mathbb {R}}^{n_{c}}\) and any disturbance (3), the trajectory of the closed-loop system (6) and (16) exists and is bounded for all \(t\ge 0\), and

$$\begin{aligned} \lim _{t\rightarrow \infty }(x_{1}(t) - x_{d}) = 0,~~ \lim _{t\rightarrow \infty }(x_{2}(t),z(t)) = (0,0). \end{aligned}$$

3.2 Control of Lagrangian equation

Let us first consider the disturbance rejection control of rigid hub. That is, we set \(g(x,{\dot{x}},z)\) in (13) to zero. Then, the Lagrangian equation (13) turns to

$$\begin{aligned} H(x)\ddot{x} + C(x,{\dot{x}}){\dot{x}} = G^{-{\textrm{T}}}(x)(u + d), \end{aligned}$$
(17)

where functions H, C, and G are the same as that in (13), and d is the external disturbance signal (3).

As in [28] for output regulation of nonlinear systems, the external disturbance d in (3) can be modeled as the output of a linear exosystems of the form

$$\begin{aligned} {\dot{v}} = S(\sigma ^{d})v, \,\, d = Dv,\,\, v\in {\mathbb {R}}^{n_{v}}, \end{aligned}$$
(18)

where \(S(\sigma ^{d}) = \textrm{block diag}(0,S_{1}(\sigma _{1}^{d}),\ldots ,S_{N}(\sigma _{N}^{d}))\), \(N=n_{1}+n_{2}+n_{3}\), \(S_{i}(\sigma _{i}^{d})=[0,~ \sigma _{i}^{d}; -\sigma _{i}^{d},~ 0 ]\), and \(\sigma _{i}^{d}\) is the ith component of the stacked vector \(\sigma ^{d} {=} [\sigma _{11}^{d},\ldots ,\sigma _{1n_{1}}^{d},\sigma _{21}^{d},\ldots ,\sigma _{2n_{2}}^{d},\sigma _{31}^{d},\ldots ,\sigma _{3n_{3}}^{d}]^{{\textrm{T}}}\). The initial value v(0) contains the information about the unknown amplitudes, phases, and biases \((A_{ij},\phi _{ij},\) \(A_{i0}),\) \(i=1,2,3,\) \(j=1,\ldots ,n_{i}\). With no loss of generality, we assume \(v(0)\in {\mathcal {V}}\) where \({\mathcal {V}}\subset {\mathbb {R}}^{n_{v}}\) is a known compact set and is invariant for (18).

Solving the associated regulator equations [28] for systems (17) and (18) gives the following zero-error constraint input function [28, pp. 83]

$$\begin{aligned} {\varvec{u}}(v) = -Dv. \end{aligned}$$
(19)

For each component of the steady-state input \({\varvec{u}}(v) = [{\varvec{u}}_{1}(v), {\varvec{u}}_{2}(v),{\varvec{u}}_{3}(v)]^{{\textrm{T}}}\), there exist an integer \(l_{i}\), and real numbers \(a_{i1},\ldots ,a_{il_{i}}\), \(i=1,2,3\), such that

$$\begin{aligned} \dfrac{\textrm{d}\hbox {}^{l_{i}} {\varvec{u}}_{i}(v)}{\textrm{d}\hbox {}t^{l_{i}}}&= a_{i1}(\sigma ^{d}){\varvec{u}}_{i}(v) + a_{i2}(\sigma ^{d})\dfrac{\textrm{d}\hbox {}{\varvec{u}}_{i}(v)}{\textrm{d}\hbox {}t} + \cdots \\&\quad + a_{il_{i}}(\sigma ^{d})\dfrac{\textrm{d}\hbox {}^{l_{i}-1} {\varvec{u}}_{i}(v)}{\textrm{d}\hbox {}t^{l_{i}-1}} \end{aligned}$$

holds for all \(v\in {\mathcal {V}}\). Let

$$\begin{aligned} \tau _{i}(v) = \Big [\begin{matrix} {\varvec{u}}_{i}(v)&\dfrac{\textrm{d}\hbox {}{\varvec{u}}_{i}(v)}{\textrm{d}\hbox {}t}&\cdots&\dfrac{\textrm{d}\hbox {}^{l_{i}-1} {\varvec{u}}_{i}(v)}{\textrm{d}\hbox {}t^{l_{i}-1}} \end{matrix}\Big ]^{{\textrm{T}}},\ i=1,2,3. \end{aligned}$$

Let \((\varPhi _{i}(\sigma ^{d}),\varPsi _{i})\), \(i=1,2,3\), be observable pairs in the companion form

$$\begin{aligned}&\varPhi _{i}(\sigma ^{d})= \begin{bmatrix} 0 &{} 1 &{} \cdots &{} 0 \\ \vdots &{} \vdots &{} &{} \vdots \\ 0 &{} 0 &{} \cdots &{} 1 \\ a_{i1}(\sigma ^{d}) &{} a_{i2}(\sigma ^{d}) &{} \cdots &{} a_{il_{i}}(\sigma ^{d}) \end{bmatrix},\\&\varPsi _{i}= \begin{bmatrix} 1&0&\cdots&0 \end{bmatrix}. \end{aligned}$$

Then, for each \(i=1,2,3\), \(\tau _{i}(v)\) satisfies

$$\begin{aligned} \dfrac{\partial \tau _{i}(v)}{\partial v}S(\sigma ^{d})v = \varPhi _{i}(\sigma ^{d})\tau _{i}(v),~~ {\varvec{u}}_{i}(v) = \varPsi _{i}\tau _{i}(v). \end{aligned}$$

Let \((M_{i},N_{i})\) be any controllable pair with \(M_{i}\in {\mathbb {R}}^{l_{i}\times l_{i}}\) being Hurwitz and \(N_{i}\in {\mathbb {R}}^{l_{i}}\). Since the eigenvalues of \(M_{i}\) and \(\varPhi _{i}(\sigma ^{d})\) are distinct, by [29, Theorem 2], the Sylvester equation \(T_{i}(\sigma ^{d})\varPhi _{i}(\sigma ^{d}) = M_{i}T_{i}(\sigma ^{d}) + N_{i}\varPsi _{i}\) has a unique solution \(T_{i}(\sigma ^{d})\) which is invertible. Let \(\vartheta _{i}(\sigma ^{d},v) = T_{i}(\sigma ^{d})\tau _{i}(v)\). Then, we have a steady-state input generator as follows:

$$\begin{aligned} \left\{ \begin{array}{l} \dfrac{\partial \vartheta _{i}}{\partial v}S(\sigma ^{d})v = \big (M_{i} + N_{i}\varPsi _{i}T_{i}^{-1}(\sigma ^{d})\big )\vartheta _{i}(\sigma ^{d},v),\\ {\varvec{u}}_{i}(v) = \varGamma _{i}(\sigma ^{d})\vartheta _{i}(\sigma ^{d},v) \end{array}\right. \end{aligned}$$
(20)

where \(\varGamma _{i}(\sigma ^{d}) = \varPsi _{i}T_{i}^{-1}(\sigma ^{d})\).

It gives rise to a canonical linear internal model

$$\begin{aligned} {\dot{\xi }}_{i} = M_{i}\xi _{i} + N_{i}u_{i} \end{aligned}$$
(21)

with output \(u_{i}\) in the sense of [28, Definition 6.6]. Define

$$\begin{aligned} \begin{aligned}&\xi = [\xi _{1}^{{\textrm{T}}},\xi _{2}^{{\textrm{T}}},\xi _{3}^{{\textrm{T}}}]^{{\textrm{T}}}, \\&\vartheta (\sigma ^{d},v) = [\vartheta _{1}^{{\textrm{T}}}(\sigma ^{d},v),\vartheta _{2}^{{\textrm{T}}}(\sigma ^{d},v),\vartheta _{3}^{{\textrm{T}}}(\sigma ^{d},v)]^{{\textrm{T}}}, \\&M = \textrm{block diag}(M_{1},M_{2},M_{3}),\\&N = \textrm{block diag}(N_{1},N_{2},N_{3}), \\&\varPsi = \textrm{block diag}(\varPsi _{1},\varPsi _{2},\varPsi _{3}), \\&\varPhi (\sigma ^{d}) = \textrm{block diag}(\varPhi _{1}(\sigma ^{d}),\varPhi _{2}(\sigma ^{d}),\varPhi _{3}(\sigma ^{d})), \\&T(\sigma ^{d}) = \textrm{block diag}(T_{1}(\sigma ^{d}),T_{2}(\sigma ^{d}),T_{3}(\sigma ^{d})), \\&\varGamma (\sigma ^{d}) = \textrm{block diag}(\varGamma _{1}(\sigma ^{d}),\varGamma _{2}(\sigma ^{d}),\varGamma _{3}(\sigma ^{d})). \end{aligned} \end{aligned}$$

Then, the steady-state generator (20) and internal model (21) can be written in compact form as

$$\begin{aligned}&\dfrac{\partial \vartheta (\sigma ^{d},v)}{\partial v}S(\sigma ^{d})v = \big (M + N\varPsi T^{-1}(\sigma ^{d})\big )\vartheta (\sigma ^{d},v),\\&{\varvec{u}}(v) = \varGamma (\sigma ^{d})\vartheta (\sigma ^{d},v), \end{aligned}$$

and

$$\begin{aligned} {\dot{\xi }} = M\xi + Nu, \end{aligned}$$
(22)

respectively.

By attaching (22) to (17), and using the coordinates defined in (15), we obtain an augmented system as follows:

$$\begin{aligned} \left\{ \begin{aligned}&{\dot{x}}_{1} = x_{2},\\&{\dot{\xi }} = M\xi + Nu,\\&H(x_{1}){\dot{x}}_{2} = G^{-{\textrm{T}}}(x_{1})(u + d)-C(x_{1},x_{2})x_{2}. \end{aligned} \right. \end{aligned}$$
(23)

Define the following coordinate and input transformations

$$\begin{aligned} \left\{ \begin{aligned}&{\tilde{x}}_{1} = x_{1} - x_{d},\\&{\bar{\xi }} = \xi - \vartheta (\sigma ^{d},v) - NG^{{\textrm{T}}}(x_{1})H(x_{1})x_{2},\\&{\bar{u}} = u - \varGamma (\sigma ^{d})\xi . \end{aligned} \right. \end{aligned}$$
(24)

Then, we obtain a translated augmented system of the form

$$\begin{aligned} \left\{ \begin{aligned}&\dot{{\tilde{x}}}_{1} = x_{2},\\&\dot{{\bar{\xi }}} = M{\bar{\xi }} + \varphi _{1}(x_{1},x_{2},\mu ),\\&{\dot{x}}_{2} = H^{-1}(x_{1})G^{-{\textrm{T}}}(x_{1}){\bar{u}} + f_{1}(x_{1},x_{2},{\bar{\xi }},\mu ), \end{aligned} \right. \end{aligned}$$
(25)

where vector \(\mu \) collects all the unknown parameters in \(J,\delta ,\zeta ,\varLambda ,\sigma ^{d}\) and is called the static uncertainty, and

$$\begin{aligned}&\begin{array}{ll} \varphi _{1}(x_{1},x_{2},\mu ) =&{} MNG^{{\textrm{T}}}(x_{1})H(x_{1})x_{2} \\ &{} - N{\dot{G}}^{{\textrm{T}}}(x_{1},x_{2})H(x_{1})x_{2} \\ &{} + NG^{{\textrm{T}}}(x_{1})C(x_{1},x_{2})x_{2} \\ &{} - NG^{{\textrm{T}}}(x_{1}){\dot{H}}(x_{1},x_{2})x_{2}, \end{array} \\&\begin{array}{l} f_{1}(x_{1},x_{2},{\bar{\xi }},\mu ) \\ = H^{-1}(x_{1})\Big [ - C(x_{1},x_{2})x_{2} + G^{-{\textrm{T}}}(x_{1})\varGamma (\sigma ^{d})\big ({\bar{\xi }} \\ \quad + NG^{{\textrm{T}}}(x_{1})H(x_{1})x_{2}\big ) \Big ], \end{array} \\&{\dot{H}}(x_{1},x_{2}) = \textstyle \sum \limits _{i=1}^{3}\dfrac{\partial H}{\partial x_{1i}}x_{2i}, \ {\dot{G}}(x_{1},x_{2}) = \textstyle \sum \limits _{i=1}^{3}\dfrac{\partial G}{\partial x_{1i}}x_{2i}, \end{aligned}$$

where \(x_{1} \!=\! [x_{11},x_{12},x_{13}]^{{\textrm{T}}}\) and \(x_{2} \!=\! [x_{21},x_{22},x_{23}]^{{\textrm{T}}}\).

For the translated augmented system (25), we have the following two remarks. Firstly, the precise value of vector \(\mu \) is unknown due to parameter uncertainties. It is supposed that \(\mu \) ranges in a known compact set \({\mathcal {D}}\). Secondly, the stabilizability of (25) at origin implies the solvability of the disturbance rejection and attitude regulation problem for systems (17) and (18).

Lemma 1

For the translated augmented system (25), there exists a stabilization law in the form of

$$\begin{aligned} {\bar{u}} = - G^{{\textrm{T}}}(x_{1})\rho ({\tilde{x}}_{2}){\tilde{x}}_{2},\quad {\tilde{x}}_{2} = x_{2} +\alpha {\tilde{x}}_{1}, \end{aligned}$$
(26)

where constant \(\alpha > 0\) and \(\rho (\cdot )\) is some smooth positive function, such that for any initial state, the trajectory of the closed-loop system (25) and (26) exists and is bounded for all \(t\ge 0\), and \(\lim _{t\rightarrow \infty }{\tilde{x}}_{1}(t) = 0\).

Proof

Firstly, consider the subsystem \({\tilde{x}}_{1}\) of (25). Design a Lyapunov function candidate \(V_{1}({\tilde{x}}_{1}) = \frac{1}{2}{\tilde{x}}_{1}^{{\textrm{T}}}{\tilde{x}}_{1}\), whose time derivative, along the trajectories of (25) and (26), satisfies

$$\begin{aligned} {\dot{V}}_{1}&= -\alpha \Vert {\tilde{x}}_{1}\Vert ^{2} + {\tilde{x}}_{1}^{{\textrm{T}}}{\tilde{x}}_{2} \le -\dfrac{1}{2}\alpha \Vert {\tilde{x}}_{1}\Vert ^{2} + \dfrac{1}{2\alpha }\Vert {\tilde{x}}_{2}\Vert ^{2}. \end{aligned}$$

Using [30, Theorem 2] on changing supply functions, for any smooth function \(\alpha _{1}(\cdot ) > 0\), there exist \({\mathcal {K}}_{\infty }\) functions \({\bar{\alpha }}_{1}\), \({\underline{\alpha }}_{1}\), and Lyapunov function \({\bar{V}}_{1}\), such that along the trajectories of (25) and (26),

$$\begin{aligned} \left\{ \begin{aligned}&{\underline{\alpha }}_{1}(\Vert {\tilde{x}}_{1}\Vert ) \le {\bar{V}}_{1}({\tilde{x}}_{1}) \le {\bar{\alpha }}_{1}(\Vert {\tilde{x}}_{1}\Vert ),\\&\dot{{\bar{V}}}_{1} \le - \alpha _{1}({\tilde{x}}_{1})\Vert {\tilde{x}}_{1}\Vert ^{2} + \gamma _{1}({\tilde{x}}_{2})\Vert {\tilde{x}}_{2}\Vert ^{2} \end{aligned}\right. \end{aligned}$$
(27)

hold for some positive function \(\gamma _{1}(\cdot )>0\).

Next, consider the subsystem \(({\bar{\xi }},x_{2})\) of (25). Let P be the unique solution to \(M^{{\textrm{T}}}P +PM = -I\) which is positive definite. Define

$$\begin{aligned} V_{2}({\tilde{x}}_{2},{\bar{\xi }}) = {\bar{\xi }}^{{\textrm{T}}}P{\bar{\xi }} + \dfrac{1}{2}{\tilde{x}}_{2}^{{\textrm{T}}}H(x_{1}){\tilde{x}}_{2}, \end{aligned}$$
(28)

whose time derivative, along the trajectories of (25), satisfies

$$\begin{aligned} {\dot{V}}_{2}&= -\Vert {\bar{\xi }}\Vert ^{2} + 2{\bar{\xi }}^{{\textrm{T}}}P\varphi (x_{1},x_{2},\mu ) + {\tilde{x}}_{2}^{{\textrm{T}}}G^{-{\textrm{T}}}(x_{1}){\bar{u}} \nonumber \\&\quad + {\tilde{x}}_{2}^{{\textrm{T}}}G^{-{\textrm{T}}}(x_{1})\varGamma (\sigma ^{d})[{\bar{\xi }} \nonumber \\&\quad + NG^{{\textrm{T}}}(x_{1})H(x_{1})({\tilde{x}}_{2} - \alpha {\tilde{x}}_{1})] \nonumber \\&= -\Vert {\bar{\xi }}\Vert ^{2} + 2{\bar{\xi }}^{{\textrm{T}}}P{\bar{\varphi }}_{1}({\tilde{x}}_{1},{\tilde{x}}_{2},\mu ) + {\tilde{x}}_{2}^{{\textrm{T}}}G^{-{\textrm{T}}}(x_{1}){\bar{u}} \nonumber \\&\quad + {\tilde{x}}_{2}^{{\textrm{T}}}{\bar{\varphi }}_{2}({\tilde{x}}_{1},{\tilde{x}}_{2},{\bar{\xi }},\mu ), \end{aligned}$$
(29)

where

$$\begin{aligned}&{\bar{\varphi }}_{1}({\tilde{x}}_{1},{\tilde{x}}_{2},\mu ) = \varphi _{1}({\tilde{x}}_{1} + x_{d},{\tilde{x}}_{2}-\alpha {\tilde{x}}_{1},\mu ), \\&{\bar{\varphi }}_{2}({\tilde{x}}_{1},{\tilde{x}}_{2},{\bar{\xi }},\mu ) = \varphi _{2}({\tilde{x}}_{1} + x_{d},{\tilde{x}}_{2}-\alpha {\tilde{x}}_{1},{\bar{\xi }},\mu ), \\&\varphi _{2}(x_{1},x_{2},{\bar{\xi }},\mu ) \\&= G^{-{\textrm{T}}}(x_{1})\varGamma (\sigma ^{d})[{\bar{\xi }} + NG^{{\textrm{T}}}(x_{1})H(x_{1})x_{2}]. \end{aligned}$$

It can be verified that functions \({\bar{\varphi }}_{1}\) and \({\bar{\varphi }}_{2}\) are smooth and satisfy \({\bar{\varphi }}_{1}(0,0,\mu ) = 0\) and \({\bar{\varphi }}_{2}(0,0,0,\mu )\) = 0 for all \(\mu \). By [28, Lemma 7.8], there are functions \(\psi _{ij}(\cdot )>1\), \(i=1,2\), \(j=1,2\), such that

$$\begin{aligned}&\Vert {\bar{\varphi }}_{1}({\tilde{x}}_{1},{\tilde{x}}_{2},\mu )\Vert ^{2} \le \psi _{11}({\tilde{x}}_{1})\Vert {\tilde{x}}_{1}\Vert ^{2} + \psi _{12}({\tilde{x}}_{2})\Vert {\tilde{x}}_{2}\Vert ^{2}, \\&\begin{aligned} \Vert {\bar{\varphi }}_{2}({\tilde{x}}_{1},{\tilde{x}}_{2},{\bar{\xi }},\mu )\Vert ^{2} \le&\psi _{21}({\tilde{x}}_{1})\Vert {\tilde{x}}_{1}\Vert ^{2} + \psi _{22}({\tilde{x}}_{2})\Vert {\tilde{x}}_{2}\Vert ^{2} \\&+ \dfrac{\Vert {\bar{\xi }}\Vert ^{2} }{2} \end{aligned} \end{aligned}$$

hold for all \(({\tilde{x}}_{1},{\tilde{x}}_{2},{\bar{\xi }},\mu )\).

Using Young’s inequality, we have

$$\begin{aligned} \left\{ \begin{aligned}&2{\bar{\xi }}^{{\textrm{T}}}P{\bar{\varphi }}_{1}({\tilde{x}}_{1},{\tilde{x}}_{2},\mu )\\&\le \dfrac{1}{4}\Vert {\bar{\xi }}\Vert ^{2} + \Vert P\Vert ^{2} \Vert {\bar{\varphi }}_{1}({\tilde{x}}_{1},{\tilde{x}}_{2},\mu )\Vert ^{2} \\&\le \dfrac{1}{4}\Vert {\bar{\xi }}\Vert ^{2} + {\bar{\psi }}_{11}({\tilde{x}}_{1})\Vert {\tilde{x}}_{1}\Vert ^{2} + {\bar{\psi }}_{12}({\tilde{x}}_{2})\Vert {\tilde{x}}_{2}\Vert ^{2}, \\&{\tilde{x}}_{2}^{{\textrm{T}}}{\bar{\varphi }}_{2}({\tilde{x}}_{1},{\tilde{x}}_{2},{\bar{\xi }},\mu ) \\&\le \dfrac{1}{2}\Vert {\tilde{x}}_{2}\Vert ^{2} + \dfrac{1}{2}\Vert {\bar{\varphi }}_{2}({\tilde{x}}_{1},{\tilde{x}}_{2},{\bar{\xi }},\mu ) \Vert ^{2} \\&\le \dfrac{1}{4}\Vert {\bar{\xi }}\Vert ^{2} + {\bar{\psi }}_{21}({\tilde{x}}_{1})\Vert {\tilde{x}}_{1}\Vert ^{2} + {\bar{\psi }}_{22}({\tilde{x}}_{2})\Vert {\tilde{x}}_{2}\Vert ^{2}, \end{aligned}\right. \end{aligned}$$
(30)

where \({\bar{\psi }}_{11}({\tilde{x}}_{1}) \!=\! \Vert P\Vert ^{2}\psi _{11}({\tilde{x}}_{1})\), \({\bar{\psi }}_{12}({\tilde{x}}_{2}) \!=\! \Vert P\Vert ^{2}\psi _{12}({\tilde{x}}_{2})\), \({\bar{\psi }}_{21}({\tilde{x}}_{1}) = \frac{1}{2}\psi _{21}({\tilde{x}}_{1})\), and \({\bar{\psi }}_{22}({\tilde{x}}_{1}) = \frac{1}{2}\psi _{22}({\tilde{x}}_{2}) + \frac{1}{2}\).

Substituting (30) and (26) in (29), we have

$$\begin{aligned} {\dot{V}}_{2}&\le - \dfrac{1}{2}\Vert {\bar{\xi }}\Vert ^{2} - \big [\rho ({\tilde{x}}_{2}) - {\bar{\psi }}_{2}({\tilde{x}}_{2}) \big ]\Vert {\tilde{x}}_{2}\Vert ^{2} \nonumber \\&\quad + {\bar{\psi }}_{1}({\tilde{x}}_{1})\Vert {\tilde{x}}_{1}\Vert ^{2}, \end{aligned}$$
(31)

where \({\bar{\psi }}_{1}({\tilde{x}}_{1}) = {\bar{\psi }}_{11}({\tilde{x}}_{1}) + {\bar{\psi }}_{12}({\tilde{x}}_{1})\) and \({\bar{\psi }}_{2}({\tilde{x}}_{2}) = {\bar{\psi }}_{21}({\tilde{x}}_{2}) + {\bar{\psi }}_{22}({\tilde{x}}_{2})\).

To sum up, let us define a Lyapunov function

$$\begin{aligned} V({\tilde{x}}_{1},{\tilde{x}}_{2},{\bar{\xi }}) = {\bar{V}}_{1}({\tilde{x}}_{1}) + V_{2}({\tilde{x}}_{2},{\bar{\xi }}), \end{aligned}$$
(32)

where \({\bar{V}}_{1}\) and \(V_{2}\) are given in (27) and (28), respectively. Using (27) and (31), the time derivative of V, along the trajectories of the closed-loop system (25), (26), satisfies

$$\begin{aligned} {\dot{V}}&\le - \dfrac{1}{2}\Vert {\bar{\xi }}\Vert ^{2} - \big [\alpha _{1}({\tilde{x}}_{1}) - {\bar{\psi }}_{1}({\tilde{x}}_{1})\big ]\Vert {\tilde{x}}_{1}\Vert ^{2} \nonumber \\&\quad - \big [\rho ({\tilde{x}}_{2}) - {\bar{\psi }}_{2}({\tilde{x}}_{2}) - \gamma _{1}({\tilde{x}}_{2}) \big ]\Vert {\tilde{x}}_{2}\Vert ^{2}. \end{aligned}$$
(33)

Further letting \(\alpha _{1}({\tilde{x}}_{1}) \ge {\bar{\psi }}_{1}({\tilde{x}}_{1}) + \frac{1}{2}\) gives

$$\begin{aligned} {\dot{V}}&\le - \dfrac{1}{2}\Vert {\bar{\xi }}\Vert ^{2} - \dfrac{1}{2}\Vert {\tilde{x}}_{1}\Vert ^{2} \nonumber \\&\quad - \big [\rho ({\tilde{x}}_{2}) - {\bar{\psi }}_{2}({\tilde{x}}_{2}) - \gamma _{1}({\tilde{x}}_{2}) \big ]\Vert {\tilde{x}}_{2}\Vert ^{2}. \end{aligned}$$
(34)

In (34), by choosing \(\rho ({\tilde{x}}_{2})\) such that

$$\begin{aligned} \rho ({\tilde{x}}_{2}) - {\bar{\psi }}_{2}({\tilde{x}}_{2}) - \gamma _{1}({\tilde{x}}_{2}) > \dfrac{1}{2}, \end{aligned}$$
(35)

we obtain

$$\begin{aligned} {\dot{V}} \le - \dfrac{1}{2}\Vert {\bar{\xi }}\Vert ^{2} - \dfrac{1}{2}\Vert {\tilde{x}}_{1}\Vert ^{2} - \dfrac{1}{2}\Vert {\tilde{x}}_{2}\Vert ^{2}. \end{aligned}$$

Finally, since V is positive definite and radially unbounded, and \({\dot{V}}\) is negative definite, we can conclude that \(({\tilde{x}}_{1},{\tilde{x}}_{2},{\bar{\xi }})\) tends to (0, 0, 0) as \(t\rightarrow \infty \). \(\square \)

As a result, the disturbance rejection problem for system (17) and (18) can be solved by a feedback controller composed of (22) and (26).

3.3 Vibration suppression

Let us now investigate the effect of the controller proposed in (22) and (26) on system (6), in the presence of vibrations induced by flexible appendages.

This subsection aims to redesign the stabilization law (26) to make it robust against the effect of the vibration. We will design an additional control \(\upsilon = -{\bar{\rho }}({\tilde{x}}_{2}){\tilde{x}}_{2}\) such that the overall control \({\bar{u}} = - G^{{\textrm{T}}}(x_{1})\big (\rho ({\tilde{x}}_{2}){\tilde{x}}_{2} + \upsilon \big ) =: -G^{{\textrm{T}}}(x_{1})\varrho ({\tilde{x}}_{2}){\tilde{x}}_{2}\) stabilizes system (25) in the presence of vibration induced by the flexible appendages.

Proposition 2

Consider system (6) and (18). Suppose \(\sigma ^{d}\) is known. Then there exists a smooth function \(\varrho (\cdot )\) such that the following controller

$$\begin{aligned} \left\{ \begin{array}{l} u = - G^{{\textrm{T}}}(x_{1})\varrho ({\tilde{x}}_{2}){\tilde{x}}_{2} + \varGamma (\sigma ^{d})\xi ,\\ {\dot{\xi }} = M\xi + Nu,\ {\tilde{x}}_{2} = x_{2} +\alpha {\tilde{x}}_{1},\ {\tilde{x}}_{1} = x_{1} - x_{d}, \end{array}\right. \end{aligned}$$
(36)

where constant \(\alpha >0\), solves the disturbance rejection and attitude regulation Problem 1.

Proof

By substituting law (36) in (6), and using the coordinate transformation in (24), we can write the closed-loop system in a compact form as follows:

$$\begin{aligned} \left\{ \begin{array}{l} {\dot{z}} = Az + {\bar{f}}_{0}({\varvec{x}},\mu ),\\ \dot{{\varvec{x}}} = F({\varvec{x}},\mu ) + \varDelta ({\varvec{x}},z,\mu ), \end{array}\right. \end{aligned}$$
(37)

where

$$\begin{aligned}&{\varvec{x}} = [{\tilde{x}}_{1}^{{\textrm{T}}},{\bar{\xi }}^{{\textrm{T}}},{\tilde{x}}_{2}^{{\textrm{T}}}]^{{\textrm{T}}}, \\&{\bar{f}}_{0}({\varvec{x}},\mu ) = f_{0}({\tilde{x}}_{1}+x_{d},- \alpha {\tilde{x}}_{1} + {\tilde{x}}_{2}), \\&{\bar{f}}_{1}({\varvec{x}},\mu ) = f_{1}({\tilde{x}}_{1}+x_{d},- \alpha {\tilde{x}}_{1} + {\tilde{x}}_{2},{\bar{\xi }},\mu ), \\&F({\varvec{x}},\mu ) = \begin{bmatrix} - \alpha {\tilde{x}}_{1} + {\tilde{x}}_{2} \\ M{\bar{\xi }} + {\bar{\varphi }}_{1}({\tilde{x}}_{1},{\tilde{x}}_{2},\mu ) \\ -H^{-1}({\tilde{x}}_{1}+x_{d})\varrho ({\tilde{x}}_{2}){\tilde{x}}_{2} + {\bar{f}}_{1}({\varvec{x}},\mu ) \end{bmatrix}, \\&\varDelta ({\varvec{x}},z,\mu ) = \begin{bmatrix} 0 \\ \varDelta _{1}({\varvec{x}},z,\mu ) \\ - H^{-1}({\tilde{x}}_{1}+x_{d})\varDelta _{2}({\varvec{x}},z,\mu ) \end{bmatrix}, \\&\varDelta _{1}({\varvec{x}},z,\mu ) = NG^{{\textrm{T}}}({\tilde{x}}_{1}+x_{d})\varDelta _{2}({\tilde{x}}_{1},{\tilde{x}}_{2},z,\mu ), \\&\varDelta _{2}({\varvec{x}},z,\mu ) = g({\tilde{x}}_{1}+x_{d},- \alpha {\tilde{x}}_{1} + {\tilde{x}}_{2},z) \end{aligned}$$

with functions \({\bar{f}}_{0}({\varvec{x}},\mu )\) and \(\varDelta ({\varvec{x}},z,\mu )\) satisfying \({\bar{f}}_{0}(0,\mu ) = 0\) and \(\varDelta (0,0,\mu ) = 0\) for all \(\mu \in {\mathcal {D}}\).

For system (37), we state the following three results.

  • Consider z-subsystem of (37). By item 1 of Remark 2 and the changing supply function technique [30, Theorem 2], for any smooth function \(\alpha _{3}(\cdot )>0\), there is a Lyapunov function \(V_{3}\), such that, along the trajectories of (37),

    $$\begin{aligned} \left\{ \begin{array}{l} {\underline{\alpha }}_{3}(\Vert z\Vert ) \le V_{3}(z) \le {\bar{\alpha }}_{3}(\Vert z\Vert ),\\ \begin{array}{ll} {\dot{V}}_{3} \le &{} - \alpha _{3}(z)\Vert z\Vert ^{2} + \gamma _{31}({\tilde{x}}_{1})\Vert {\tilde{x}}_{1}\Vert ^{2}\\ &{}+ \gamma _{32}({\tilde{x}}_{2})\Vert {\tilde{x}}_{2}\Vert ^{2}, \end{array} \end{array}\right. \end{aligned}$$
    (38)

    where \({\underline{\alpha }}_{3},{\bar{\alpha }}_{3}\in {\mathcal {K}}_{\infty }\), \(\gamma _{31}(\cdot )>0\), and \(\gamma _{32}(\cdot )>0\).

  • Consider \({\varvec{x}}\)-subsystem of (37). Following the derivation from (32) to (33), the time derivative of V in (32) along the trajectories of \({\varvec{x}}\)-subsystem of (37), satisfies

    $$\begin{aligned} {\dot{V}}&\le - \dfrac{1}{2}\Vert {\bar{\xi }}\Vert ^{2} - \big [\alpha _{1}({\tilde{x}}_{1}) - {\bar{\psi }}_{1}({\tilde{x}}_{1})\big ]\Vert {\tilde{x}}_{1}\Vert ^{2} \nonumber \\&\quad - \big [\varrho ({\tilde{x}}_{2}) - {\bar{\psi }}_{2}({\tilde{x}}_{2}) - \gamma _{1}({\tilde{x}}_{2}) \big ]\Vert {\tilde{x}}_{2}\Vert ^{2} \nonumber \\&\quad + 2{\bar{\xi }}^{{\textrm{T}}}P\varDelta _{1} + {\tilde{x}}_{2}^{{\textrm{T}}}\varDelta _{2}. \end{aligned}$$
    (39)
  • By [28, Lemma 7.8], the functions \(\varDelta _{1}({\varvec{x}},z,\mu )\) and \(\varDelta _{2}({\varvec{x}},z,\mu )\) satisfy the following growth condition: There are functions \(\phi _{ij}(\cdot )>1\), \(i=0,1,2\), \(j=1,2,3\), such that

    $$\begin{aligned} \left\{ \begin{aligned} \Vert \varDelta _{1}({\varvec{x}},z,\mu )\Vert ^{2}\le&\phi _{11}({\tilde{x}}_{1})\Vert {\tilde{x}}_{1}\Vert ^{2} + \phi _{12}({\tilde{x}}_{2})\Vert {\tilde{x}}_{2}\Vert ^{2} \\&+ \phi _{13}(z)\Vert z\Vert ^{2},\\ \Vert \varDelta _{2}({\varvec{x}},z,\mu )\Vert ^{2}\le&\phi _{21}({\tilde{x}}_{1})\Vert {\tilde{x}}_{1}\Vert ^{2} + \phi _{22}({\tilde{x}}_{2})\Vert {\tilde{x}}_{2}\Vert ^{2} \\&+ \phi _{23}(z)\Vert z\Vert ^{2}. \end{aligned}\right. \end{aligned}$$
    (40)

To sum up, let us define a Lyapunov function

$$\begin{aligned} {\bar{V}}(z,{\varvec{x}}) = V({\tilde{x}}_{1},{\tilde{x}}_{2},{\bar{\xi }}) + V_{3}(z), \end{aligned}$$
(41)

where V and \(V_{3}\) are defined in (32) and (38), respectively.

Using (38) and (39), the time derivative of \({\bar{V}}\), along the trajectories of (37), satisfies

$$\begin{aligned} \dot{{\bar{V}}}&\le - \alpha _{3}(z)\Vert z\Vert ^{2} - \dfrac{1}{2}\Vert {\bar{\xi }}\Vert ^{2} \nonumber \\&\quad - \big [\alpha _{1}({\tilde{x}}_{1}) - {\bar{\psi }}_{1}({\tilde{x}}_{1}) - \gamma _{31}({\tilde{x}}_{1})\big ]\Vert {\tilde{x}}_{1}\Vert ^{2} \nonumber \\&\quad - \big [\varrho ({\tilde{x}}_{2}) - {\bar{\psi }}_{2}({\tilde{x}}_{2}) - \gamma _{1}({\tilde{x}}_{2}) - \gamma _{32}({\tilde{x}}_{2})\big ]\Vert {\tilde{x}}_{2}\Vert ^{2} \nonumber \\&\quad + 2{\bar{\xi }}^{{\textrm{T}}}P\varDelta _{1}({\varvec{x}},z,\mu ) + {\tilde{x}}_{2}^{{\textrm{T}}}\varDelta _{2}({\varvec{x}},z,\mu ). \end{aligned}$$
(42)

By completing the squares, we have

$$\begin{aligned}&2{\bar{\xi }}^{{\textrm{T}}}P\varDelta _{1}({\varvec{x}},z,\mu ) \le \dfrac{1}{4}\Vert {\bar{\xi }}\Vert ^{2} + \Vert P\Vert ^{2}\Vert \varDelta _{1}({\varvec{x}},z,\mu )\Vert ^{2}, \\&{\tilde{x}}_{2}^{{\textrm{T}}}\varDelta _{2}({\varvec{x}},z,\mu ) \le \dfrac{1}{2}\Vert {\tilde{x}}_{2}\Vert ^{2} + \dfrac{1}{2}\Vert \varDelta _{2}({\varvec{x}},z,\mu )\Vert ^{2}. \end{aligned}$$

Further using (40) gives

$$\begin{aligned}&2{\bar{\xi }}^{{\textrm{T}}}P\varDelta _{1}({\varvec{x}},z,\mu ) + {\tilde{x}}_{2}^{{\textrm{T}}}\varDelta _{2}({\varvec{x}},z,\mu ) \nonumber \\&\le \dfrac{1}{4}\Vert {\bar{\xi }}\Vert ^{2} + \phi _{1}({\tilde{x}}_{1})\Vert {\tilde{x}}_{1}\Vert ^{2} + \phi _{2}({\tilde{x}}_{2})\Vert {\tilde{x}}_{2}\Vert ^{2} \nonumber \\&\quad + \phi _{3}(z)\Vert z\Vert ^{2}. \end{aligned}$$
(43)

where \(\phi _{1}({\tilde{x}}_{1}) \!=\! \Vert P\Vert ^{2}\phi _{11}({\tilde{x}}_{1}) \!+\! \frac{1}{2}\phi _{21}({\tilde{x}}_{2}),\) \(\phi _{2}({\tilde{x}}_{2}) \)\( = \) \( \Vert P\Vert ^{2}\phi _{12}({\tilde{x}}_{2}) + \frac{1}{2}\phi _{22}({\tilde{x}}_{2}) + \frac{1}{2}\), and \(\phi _{3}(z) =\) \( \Vert P\Vert ^{2}\phi _{13}(z) + \frac{1}{2}\phi _{23}(z)\).

Let \(\alpha _{1}({\tilde{x}}_{1}) \ge {\bar{\psi }}_{1}({\tilde{x}}_{1}) + \gamma _{31}({\tilde{x}}_{1}) + \phi _{1}({\tilde{x}}_{1}) + \frac{1}{4}\), and \(\alpha _{3}(z) \ge \phi _{3}(z) + \frac{1}{4}\). Then, substituting (43) in (42) yields

$$\begin{aligned} \dot{{\bar{V}}}&\le - \big [\varrho ({\tilde{x}}_{2}) - {\bar{\psi }}_{2}({\tilde{x}}_{2}) - \gamma _{1}({\tilde{x}}_{2}) - \gamma _{32}({\tilde{x}}_{2}) - \phi _{2}({\tilde{x}}_{2})\big ] \nonumber \\&\quad \times \Vert {\tilde{x}}_{2}\Vert ^{2} - \dfrac{1}{4}\Vert z\Vert ^{2} - \dfrac{1}{4}\Vert {\bar{\xi }}\Vert ^{2} - \dfrac{1}{4}\Vert {\tilde{x}}_{1}\Vert ^{2}. \end{aligned}$$
(44)

At this place, if we insist on applying gain \(\rho ({\tilde{x}}_{2})\) (defined in (35)) in (44), the Lyapunov function \({\bar{V}}\) may not be decreasing. Thus, we redesign the gain function \(\varrho ({\tilde{x}}_{2})\) as follows:

$$\begin{aligned} \varrho ({\tilde{x}}_{2}) = \rho ({\tilde{x}}_{2}) + \upsilon \end{aligned}$$
(45)
$$\begin{aligned}\text {with}\ \upsilon = {\bar{\rho }}({\tilde{x}}_{2}) \ge \gamma _{32}({\tilde{x}}_{2}) + \phi _{2}({\tilde{x}}_{2}), \end{aligned}$$

where \(\rho ({\tilde{x}}_{2})\) is given in (35).

By substituting (45) to (44), we obtain

$$\begin{aligned} \dot{{\bar{V}}} \le -\dfrac{1}{4}\Vert z\Vert ^{2} - \dfrac{1}{4}\Vert {\bar{\xi }}\Vert ^{2} - \dfrac{1}{4}\Vert {\tilde{x}}_{1}\Vert ^{2} - \dfrac{1}{2}\Vert {\tilde{x}}_{2}\Vert ^{2}. \end{aligned}$$
(46)

Therefore, since \({\bar{V}}\) is positive definite and radially unbounded, \(\dot{{\bar{V}}}\) is negative definite, we can conclude that if \(\varrho ({\tilde{x}}_{2})\) satisfies (45), the closed-loop system (37) is globally asymptotically stable at the equilibrium point, that is, \(\lim _{t\rightarrow \infty }(z(t),{\bar{\xi }}(t),{\tilde{x}}_{1}(t),{\tilde{x}}_{2}(t)) = (0,0,0,0)\). \(\square \)

The controller (36) proposed in Proposition 2 relies on a prior knowledge of disturbance frequencies \(\sigma ^{d}\). When \(\sigma ^{d}\) is unknown, adaptive control technique can further be incorporated in our design to solve the problem. To this end, define

$$\begin{aligned} \left\{ \begin{aligned}&\varXi (\xi ) = \textrm{block diag}(\xi _{1},\xi _{2},\xi _{3}),\\&\theta = [\varGamma _{1}(\sigma ^{d}),\varGamma _{2}(\sigma ^{d}),\varGamma _{3}(\sigma ^{d})]^{{\textrm{T}}}, \end{aligned}\right. \end{aligned}$$
(47)

which satisfies

$$\begin{aligned} \varXi ^{{\textrm{T}}}(\xi )\theta = \varGamma (\sigma ^{d})\xi . \end{aligned}$$
(48)

Now, we are ready to present the main result of this study.

Theorem 1

The disturbance rejection and attitude regulation Problem 1 is solvable by a controller of the following form

$$\begin{aligned} \left\{ \begin{aligned}&u= - G^{{\textrm{T}}}(x_{1})\varrho ({\tilde{x}}_{2}){\tilde{x}}_{2} + \varXi ^{{\textrm{T}}}(\xi ){\hat{\theta }},\\&{\dot{\xi }}= M\xi + Nu,\ {\tilde{x}}_{2} = x_{2} +\alpha {\tilde{x}}_{1},\ {\tilde{x}}_{1} = x_{1} - x_{d},\\&\dot{{\hat{\theta }}}= - \lambda \varXi (\xi )G^{-1}(x_{1}){\tilde{x}}_{2}, \end{aligned}\right. \end{aligned}$$
(49)

where constant \(\alpha >0\), \(\lambda \) is a symmetric positive definite matrix, \(\varXi (\xi )\) is defined in (47), and \(\varrho ({\tilde{x}}_{2})\) is the same as that in Proposition 2.

Proof

Define a Lyapunov function

$$\begin{aligned} U(z,{\varvec{x}},{\tilde{\theta }})&= {\bar{V}}(z,{\varvec{x}}) + \dfrac{1}{2}{\tilde{\theta }}^{{\textrm{T}}}\lambda ^{-1}{\tilde{\theta }} \nonumber \\&= {\bar{V}}_{1}({\tilde{x}}_{1}) + V_{2}({\tilde{x}}_{2},{\bar{\xi }}) + V_{3}(z) + \dfrac{1}{2}{\tilde{\theta }}^{{\textrm{T}}}\lambda ^{-1}{\tilde{\theta }}, \end{aligned}$$
(50)

where \({\bar{V}}_{1}\), \(V_{2}\), \(V_{3}\), and \({\bar{V}}\) are given in (27), (28), (38), and (41), respectively, and \({\tilde{\theta }} = {\hat{\theta }} - \theta \). By (48), the input transformation in (24) satisfies \({\bar{u}} = u - \varGamma (\sigma ^{d})\xi = u - \varXi ^{{\textrm{T}}}(\xi ){\hat{\theta }} + \varXi ^{{\textrm{T}}}(\xi ){\tilde{\theta }}\).

Following the derivation from (41) to (46), the time derivative of U, along the trajectories of the closed-loop system (6) and (49), satisfies

$$\begin{aligned} {\dot{U}}&= \dot{{\bar{V}}} + {\tilde{x}}_{2}^{{\textrm{T}}}G^{-{\textrm{T}}}(x_{1})\varXi ^{{\textrm{T}}}(\xi ){\tilde{\theta }} + {\tilde{\theta }}^{{\textrm{T}}}\lambda ^{-1}\dot{{\tilde{\theta }}} \nonumber \\&\le -\dfrac{1}{4}\Vert z\Vert ^{2} - \dfrac{1}{4}\Vert {\bar{\xi }}\Vert ^{2} - \dfrac{1}{4}\Vert {\tilde{x}}_{1}\Vert ^{2} - \dfrac{1}{2}\Vert {\tilde{x}}_{2}\Vert ^{2}. \end{aligned}$$
(51)

Since U is positive definite and \({\dot{U}}\) is negative semi-definite, U is bounded for \(t\ge 0\). Thus, (50) implies that states \(z,{\varvec{x}},{\tilde{\theta }}\) are all bounded for \(t\ge 0\). From (51), the time derivative of \({\dot{U}}\), along the trajectories of (6) and (49), is also a function of \(z,{\varvec{x}},{\tilde{\theta }}\), and thus is bounded. Therefore, by applying Barbalat’s lemma [31, pp. 323], we can conclude that \({\dot{U}}\) tends to 0 as time goes to infinity, which implies \(\lim _{t\rightarrow \infty }(z(t),{\bar{\xi }}(t),{\tilde{x}}_{1}(t),{\tilde{x}}_{2}(t)) = (0,0,0,0)\). \(\square \)

In comparison with the current results derived directly from the conventional mathematical model for flexible spacecrafts, e.g., [11, 16, 17], a distinguishing feature of the present study is the transformation to the normal form with specific properties. To our knowledge, this is the first attempt toward systematic normal form transformation for flexible spacecrafts. The advantages of the transformation is that it is potential to further apply the celebrated nonlinear control methods, and moreover the theoretical stability analysis can also be more easily carried out based on the normal form representation.

Based on the normal form representation, we develop internal model-based controllers that do not require prior knowledge of system parameters (including inertia matrix, coupling matrix, natural frequency matrix, and modal damping matrix) and disturbances frequencies. In contrast, most of the aforementioned existing controllers require all or partial system parameters. For example, the robust controller recently proposed in [16], which also uses an internal model to make compensation for external disturbances, requires the exact knowledge of all system parameters and disturbances frequencies. The sliding mode controller proposed in [11] requires the knowledge of damping and coupling matrices to actively suppress the vibration.The output feedback controller proposed in [17] uses all system parameters, and it can only guarantee practical stability when there are parameter variations rather than asymptotic stability.

Remark 3

Note that the proposed adaptive controller (49) belongs to the category of direct adaptive control [32], because the estimated parameters are those of the controller. The matrix \(G(x_{1})\) in \({\hat{\theta }}\)-subsystem is introduced for the purpose of adaptively canceling the nonlinear term. It can be shifted from the parameter estimation law to the compensation part in input, as stated in the following result.

Theorem 2

There exists a smooth function \(\varrho '(\cdot )\) such that the disturbance rejection and attitude regulation Problem 1 is solvable by a controller of the following form

$$\begin{aligned} \left\{ \begin{array}{l} u = - G^{{\textrm{T}}}(x_{1})\varrho '({\tilde{x}}_{2}){\tilde{x}}_{2} + G^{{\textrm{T}}}(x_{1})\varXi ^{{\textrm{T}}}(\xi ){\hat{\theta }},\\ {\dot{\xi }} = M\xi + Nu,\ {\tilde{x}}_{2} = x_{2} +\alpha {\tilde{x}}_{1},\ {\tilde{x}}_{1} = x_{1} - x_{d},\\ \dot{{\hat{\theta }}} = - \lambda \varXi (\xi ){\tilde{x}}_{2}, \end{array}\right. \end{aligned}$$
(52)

where constant \(\alpha >0\), \(\lambda \) is a symmetric positive definite matrix, and \(\varXi (\xi )\) is defined in (47).

The proof of Theorem 2 is the same as the derivation in the proof of Theorem 1, and thus is omitted here.

Remark 4

We observe that the effect of the modeled harmonic disturbances (3) has been fully compensated by controller (49), i.e., disturbance rejection is achieved. Note that when there are disturbances to be unmodeled amounted in (1b), this issue is of great interest in practice. In this direction, we further note that the proposed control law can be further modified to cope this circumstance. It is not expanded in the present study.

4 Simulation example

In this section, a numerical example is given to demonstrate the effectiveness of the proposed control law (49). Adopted from [17], we consider a flexible spacecraft (1), whose inertia matrix is given as

$$\begin{aligned} J = \begin{bmatrix} 350 &{} 3 &{} 4 \\ 3 &{} 280 &{} 10 \\ 4 &{} 10 &{} 190 \end{bmatrix}\,\text {kg}\,\,\text {m}^{2}. \end{aligned}$$

The coupling matrix \(\delta \) (\(\sqrt{\text {kg}} \, \text {m}/\text {s}^{2}\)) between the flexible appendages and the hub is given by

$$\begin{aligned} \delta = \begin{bmatrix} 6.45637 &{} -1.25619 &{} 1.11687 &{} 1.23637 \\ 1.27814 &{} 0.91756 &{} 2.48901 &{} -2.6581 \\ 2.15629 &{} -1.67264 &{} -0.83674 &{} -1.12503 \end{bmatrix}. \end{aligned}$$

The natural frequencies in matrix \(\varLambda \) of the flexible appendages are \(\varLambda _{1} = 0.7681\), \(\varLambda _{2} = 1.1038\), \(\varLambda _{3} = 1.8733\), \(\varLambda _{4} = 2.5496\) rad/s. The damping factors in \(\zeta \) are \(\zeta _{1} = 0.0056\), \(\zeta _{2} = 0.0086\), \(\zeta _{3} = 0.013\), \(\zeta _{4} = 0.025\). The external disturbance is

$$\begin{aligned} d = 0.1[\sin (0.01 t), \sin (0.02 t), \sin (0.03 t)]^{{\textrm{T}}}\,\text {N}\, \text {m}. \end{aligned}$$

The control task is to maneuver the spacecraft from initial attitude to desired attitude: yaw \(30^{\circ }\), pitch \(0^{\circ }\), roll \(45^{\circ }\). This desired attitude corresponds to a modified Rodriguez parameterization \(x_{d} = [0.1953, \) \(0.0523, 0.1264]^{{\textrm{T}}}\). The initial attitude and angular velocity of the spacecraft are all zero.

Fig. 1
figure 1

Attitude \(\sigma = [\sigma _{1},\sigma _{2},\sigma _{3}]^{{\textrm{T}}}\)

Fig. 2
figure 2

Flexible modes \(\eta = [\eta _{1},\eta _{2},\eta _{3},\eta _{4}]^{{\textrm{T}}}\)

For simulation, we consider the case where all system parameters are unknown and apply Theorem 1. The internal model in (49) is constructed with matrices

$$\begin{aligned}&M_{i} = \begin{bmatrix} 0 &{} 1 \\ -1 &{} -1.414 \end{bmatrix},~~ N_{i} = \begin{bmatrix} 0 \\ 1 \end{bmatrix},~~ i=1,2,3, \\&M = \textrm{block diag}(M_{1},M_{2},M_{3}), \\&N = \textrm{block diag}(N_{1},N_{2},N_{3}). \end{aligned}$$

We set the other parameters in (49) to

$$\begin{aligned} \alpha = 1, ~~\lambda = 0.001I,~~ \varrho ({\tilde{x}}_{2}) = 300 + 2\Vert {\tilde{x}}_{2}\Vert ^{2}. \end{aligned}$$

The initial states of internal model and estimated parameters are all set to zero.

Fig. 3
figure 3

Attitude angular velocity \(\omega = [\omega _{1},\omega _{2},\omega _{3}]^{{\textrm{T}}}\)

Fig. 4
figure 4

Estimated parameters \({\hat{\theta }}\)

Fig. 5
figure 5

Control input u

We run the simulation 300 s until all states converge. Simulation results of the closed-loop system are presented in Figs. 1, 2, 3, 4 and 5. Figure 1 shows that the attitude asymptotically converges to the desired attitude over time, and Fig. 2 shows that the states of the flexible dynamics vanishes asymptotically as time grows. Figure 3 presents the angular velocity of the spacecraft over time, which also tends to zero asymptotically. The evolution of estimated parameters is given in Fig. 4. It can be seen that the values of the estimated parameters do not necessarily converge to their real values. Figure 5 is the plot of control input. Thus, precision attitude regulation is achieved despite the presence of parameter uncertainties and external disturbances, and meanwhile the vibration of the flexible appendages is suppressed.

5 Conclusion

We have presented an internal model based approach for solving the disturbance rejection and attitude regulation problem of flexible spacecraft. The proposed controller does not rely on the knowledge of system parameters and disturbances frequencies. Both attitude error and vibration of flexible appendages vanish asymptotically as time grows.