1 Introduction

With the continuous increase in orbit activity, control technique for space autonomous rendezvous and docking has become an important research topic. Typical applications that could use this include collecting and removing space debris, servicing a malfunctioning satellite, refueling a powerless satellite, or installing improved technology. In order to achieve control requirements of these missions with high precision of position and attitude tracking, the six degrees-of-freedom (6-DOF) relative kinematics and relative dynamics between pursuer and target spacecrafts with highly nonlinear and strongly coupled should be taken into account.

Several research works dealing with both relative position and relative attitude motions of orbiting spacecrafts have been conducted over the past decade. An output feedback structured model reference adaptive control law has been developed for spacecraft rendezvous and docking problems with integrated position and attitude relative motions [1], ultimate boundedness of the tracking errors is achieved in spite of parametric uncertainties, bounded disturbances, and measurement noises. Subbarao et al. [2] consider the problem of motion synchronization of free-flying robotic spacecraft and serviceable floating objects in space with unknown but bounded disturbances, and an adaptive control law is derived by feedback-linearization-based approaches to ensure asymptotic stability of the tracking errors. Based on the model presented in [3], several control schemes are proposed. Kristiansen et al. [4] utilize three nonlinear state feedback controllers, involving passivity-based PD+ controller, sliding surface controller, and integrator backstepping controller, to solve the problem of tracking relative 6-DOF motion in a leader-follower spacecraft formation. Zhang et al. [5] formulate a finite-time controller by using terminal sliding mode technique for spacecraft relative motion by designing a pre-determined trajectory, and the thruster installation misalignment is also modeled. Via backstepping theory, control input saturation problem [6] for spacecraft proximity operation with thruster installation misalignment [7] is solved by introducing a command filter. Shan [8] presents an adaptive synchronization control scheme for desired attitude and position tracking of spacecraft formation flying by introducing a synchronization error. Xin [9] presents a nonlinear optimal control solution of spacecraft to finish tumbling target approach by using the \(\theta \)-D technique, and a further research [10] derives an optimal controller with considering the modeling uncertainties. A sliding mode control strategy with the adaptive gain and neural networks for a 6-DOF spacecraft formation flying control problem is solved in [11]. A composite control scheme for the same problem is proposed in [12] with a feedforward compensator based on a nonlinear disturbance observer technique.

The robust controller in the above literature has a simple structure and low calculation which deals with the unknown parameters and uncertainties well, but it uses the upper bound of uncertainties which leads to larger control power. The neural networks controller can approximate uncertainties with arbitrary control accuracy. To satisfy the high accuracy, the neural networks have to add more nodes when the application range arises, which leads to a complex structure and high calculation, which leads to real-time computing burden of the controller. So constructing the neural network with a large active region is not necessary. Motivated by [1315], a robust switching controller is introduced which utilizes an nth-order smooth switching function to combine a conventional RBFNN with a robust control. The conventional RBFNN dominates in the neural active region, while the robust control retrieves the transient outside the active region. The controllers work together not only improving the control accuracy, but also reducing real-time computing burden of the controller.

In this paper, we consider the problem of driving a pursuer spacecraft to approximate a target spacecraft with respect to the target and synchronizing the spacecraft attitude with the attitude of the tumbling target. A nonlinear and coupled mechanical model for 6-DOF relative motion is expressed in the pursuer body-fixed frame. The uncertainties of the dynamics are compensated by using RBFNNs. A novel switching controller is developed by combining direct adaptive control approach and backstepping technique, which consists of a conventional adaptive neural controller dominating in the neural active region and an extra robust controller to pull back the transient outside the neural active region. The smaller approximate errors should be achieved by using RBFNNs in the active region than using only robust method. Globally uniformly ultimately bounded stability for the closed-loop system is proved, and the performance of proposed controller is demonstrated via a numerical example.

Through this paper, the main contributions are as follows: (1) robust RBFNNs are utilized to estimate and compensate for the uncertainties, so that the control accuracy is improved than only the robust method is used; (2) the traditional RBFNNs are enhanced with a robust control via an nth-order smooth switching function, which consists of a conventional adaptive neural controller dominating in the neural active region and an extra robust controller to pull back the transient outside the neural active region, so that the real-time computing burden of the controller is reduced and the stability region is ensured to global.

This paper is organized as follows. In Sect. 2, some preliminaries used throughout this paper are presented. The relative dynamic model and control problem are stated in Sect. 3. Then, a novel controller is developed in Sect. 4. Section 5 proposes a numerical simulation scenario. Finally, the conclusions are summarized in Sect. 6.

2 Preliminaries

2.1 Notations

Throughout this paper, the following notations are adopted. The skew symmetric matrix \(\varvec{R(\varvec{x})}\in R^{3\times 3}\) derived from a vector \(\varvec{x}=[x_1,x_2,x_3]^{T}\) is defined as

$$\begin{aligned} {\varvec{S}(\varvec{x})}= \left[ \begin{array}{c@{\quad }c@{\quad }c} 0 &{}-x_3 &{}x_2\\ x_3 &{}0 &{}-x_1\\ -x_2 &{}x_1 &{}0 \end{array}\right] . \end{aligned}$$

For any vector \(\varvec{x}=[x_1,x_2,\ldots ,x_n]^{T}\), \(|\varvec{x}|\) is defined as \(|\varvec{x}|=[|x_{1}|,|x_{2}|,\ldots ,|x_{n}|]^{T}\); and \(|\cdot |\) denotes the absolute value of a scalar; \(\Vert \cdot \Vert \) denotes the Euclidean norm of a vector or the Frobenius norm of a matrix; \(\lambda _\mathrm{min}(\varvec{A})\) and \(\lambda _\mathrm{max}(\varvec{A})\) denote the smallest and largest eigenvalues of a square matrix \(\varvec{A}\), respectively. For a matrix \(\varvec{X}\in R^{n\times n}\), \(\hbox {tr}(\varvec{X})\) denotes its trace with the property \(\hbox {tr}(\varvec{X}^T \varvec{X})=\Vert X\Vert ^2\).

2.2 RBFNNs approximation

Suppose\(f(\varvec{x})\): \(R^m\rightarrow R\) is an unknown smooth nonlinear functions and it can be approximated on a compact set \(\varOmega \subseteq R^m\) by the following RBFNNs

$$\begin{aligned} f(\varvec{x})=\varvec{w}^{T}\varPhi (\varvec{x})+\epsilon \end{aligned}$$

where \(\epsilon \) is the approximation error which is bounded over, namely \(|\epsilon |\le \bar{\epsilon }\), where \(\bar{\epsilon }\) is an unknown constant. \(\varvec{w}\subseteq R^l\) represents the weight vector, where the node number of the neural networks is l. More nodes means more accurate approximation [13]. \(\varvec{w}\) is defined by

$$\begin{aligned} \varvec{w}=\hbox {arg} \min \limits _{\hat{\varvec{w}}}\left\{ \sup \limits _{\varvec{x}\in \varOmega }|f(\varvec{x})-\hat{\varvec{w}}^{T}\varPhi (\varvec{x})|\right\} \end{aligned}$$

where \(\hat{\varvec{w}}\) is the estimate of \(\varvec{w}\), \(\varPhi (\varvec{x})=[\phi _1(\varvec{x}),\phi _2(\varvec{x}),\ldots ,\) \(\phi _l(\varvec{x})]^{T}\): \(\varOmega \rightarrow R^l\) represents the radial basis function vector, its elements are selected as the Gaussian functions

$$\begin{aligned} \phi _{i}(\varvec{x})=\exp \left( -\frac{{\Vert \varvec{x}-\varvec{\mu _i}\Vert }^2}{{\eta _i}^2}\right) ,\quad i=1,2,\ldots ,l \end{aligned}$$

where \(\varvec{\mu _i} \in R^m\) are the centers and \(\eta _i>0\) are the spreads of the Gaussian functions.

2.3 Definitions and lemmas

Definition 1

[14] For all \(\varvec{x}\in R^m\) and given constants a and b satisfying \(0<a<b\), the following nonlinear switching function \(\hbar _{a,b,n}(\varvec{x})\in C^n\) is defined as follow:

$$\begin{aligned}& \hbar _{a,b,n}(\varvec{x})\\& \quad = {\left\{ \begin{array}{ll} 0, &{}\Vert \varvec{x}\Vert \le a\\ 1-\cos ^{n}\left( \frac{\pi }{2}\sin ^{n}\left( \frac{\pi }{2}\frac{\Vert \varvec{x}\Vert ^2-a^2}{b^2-a^2}\right) \right) ,&{}a<\Vert \varvec{x}\Vert <b\\ 1, &{}\Vert \varvec{x}\Vert \ge b \end{array}\right. } \end{aligned}$$

In this paper, we choose \(n=2\), and if no confusion arises, we always use \(\hbar (\varvec{x})\) instead of \(\hbar _{a,b,n}(\varvec{x})\).

Definition 2

For any \(x\in R\), the hyperbolic tangent function \(\tanh (x)\): \(R\rightarrow R\) is defined as follows:

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

Lemma 1

[16] The following inequality holds for any \(\eta >0\) and \(x\in R\):

$$\begin{aligned} 0\le |x|-x\tanh \left( \frac{x}{\eta }\right) \le \delta \eta \end{aligned}$$

where \(\delta =0.2785\) is a constant satisfying \(\delta =\mathrm{e}^{-(\delta +1)}\).

Definition 3

For any \(\varvec{x}=[x_1,x_2,\ldots ,x_n]^{T}\in R^n\), the hyperbolic tangent function matrix \(\mathrm {Tanh}(\varvec{x})\): \(R^n \rightarrow R^{n \times n}\) is a diagonal matrix defined as

$$\begin{aligned} \mathrm {Tanh}(\varvec{x})=\mathrm {diag}(\tanh (x_1),\tanh (x_2),\ldots ,\tanh (x_n)). \end{aligned}$$

3 Problem formulation

3.1 Cartesian coordinate frames

The Earth-Centred Inertial (ECI) frame is denoted by \(\mathcal {F}_i=\left\{ O_i,x_i,y_i,z_i\right\} \) is fixed to the center of the Earth, \(x_i\) is along the direction of the vernal equinox, \(z_i\) points toward the north pole, and \(y_i\) completes a right-handed orthogonal frame. The spacecrafts are regarded as rigid bodies. The body frames of target spacecraft and pursuer spacecraft are denoted by \(\mathcal {F}_{tb}=\left\{ T,x_{tb},y_{tb},z_{tb}\right\} \) and \(\mathcal {F}_{pb}=\left\{ P,x_{pb},y_{pb},z_{pb}\right\} \), respectively. Body frame \(\mathcal {F}_{tb}\) is considered to coincide with the LVLH frame, i.e., \(x_{tb}\) is parallel to the vector \(\varvec{r}_t\) and points to the radial direction; \(y_{tb}\) is along the opposite direction of docking port, and \(z_{tb}\) is perpendicular to the target orbit and three mutually perpendicular axes complete the right-hand system; likewise, in frame \(\mathcal {F}_{pb}\), \(x_{pb}\) points toward the docking port on the pursuer spacecraft and three mutually perpendicular axes coincident with the principle axis of inertia. All the frames are shown in Fig. 1, where \(\varvec{r}_t\) is the inertial position of the target spacecraft represented in the frame \(\mathcal {F}_{tb}\), while \(\varvec{r}_p\) is the inertial position of the target spacecraft represented in the frame \(\mathcal {F}_{pb}\).

Fig. 1
figure 1

Reference frames

3.2 The dynamics of target spacecraft

Suppose the target spacecraft is flying in an elliptical orbit. According to [17], the target position signals are governed by

$$\begin{aligned} \dot{\varvec{v}}_t=-\frac{\mu }{r_t^3}\varvec{r}_t,\quad \varvec{r}_t=[r_t,0,0]^{T},\quad r_t=\frac{a(1-e^2)}{1+e\cos {\nu }}, \end{aligned}$$

where \(\varvec{v}_t\) is the velocity of the target spacecraft with respect to \(\mathcal {F}_i\) expressed in \(\mathcal {F}_{tb}\), \(\mu \) is the geocentric gravitational constant, \(a=r_{pa}/(1-e)\) is the semimajor axis, \(r_{pa}\) the perigee altitude, e is the eccentricity of the elliptical orbit, \(\nu \) is the true anomaly, and the rate of the true anomaly is given by [18]

$$\begin{aligned} \dot{\nu }=\frac{n(1+e\cos {\nu })^2}{(1-e^2)^{\frac{3}{2}}}, \end{aligned}$$

where \(n=\sqrt{\mu /a^3}\) is the mean motion of the target. The second-order derivative of \(\nu \) is

$$\begin{aligned} \ddot{\nu }=-\frac{2n^2e(1+e\cos {\nu })^3\sin {\nu }}{(1-e^2)^{3}}. \end{aligned}$$

\(\varvec{\omega }_t\) is the angular velocity of the target spacecraft with respect to \(\mathcal {F}_i\) expressed in \(\mathcal {F}_{tb}\) and its derivative \(\dot{\varvec{\omega }}_t\) can be obtained as

$$\begin{aligned} \varvec{\omega }_t=[0,0,\dot{\nu }]^T,\quad \dot{\varvec{\omega }}_t=[0,0,\ddot{\nu }]^T. \end{aligned}$$

Assumption 1

Consider cooperative rendezvous and docking, the information of the target spacecraft are known, so \(\varvec{r}_t\), \(\dot{\varvec{v}}_t\), \(\varvec{\omega }_t\), and \(\dot{\varvec{\omega }}_t\) are available.

3.3 Relative attitude dynamics

The relative attitude kinematics of the two spacecrafts can be expressed as [19]

$$\begin{aligned}&\dot{\varvec{\sigma }}=\varvec{G}(\varvec{\sigma })\varvec{\omega }, \end{aligned}$$
(1)
$$\begin{aligned}&\varvec{G}(\varvec{\sigma })=\frac{1}{4}\left[ (1-\varvec{\sigma }^{T}\varvec{\sigma })\varvec{I}_3+ 2\varvec{S}(\varvec{\sigma })+2\varvec{\sigma }\varvec{\sigma }^{T}\right] \end{aligned}$$
(2)

where \(\varvec{\sigma }=[\sigma _1,\sigma _2,\sigma _3]^{T} \in R^3\) is the modified Rodrigues parameters (MRP) vector used to denote the relative attitude between the pursuer spacecraft and the target spacecraft, and \(\varvec{\omega }=\varvec{\omega }_p-\varvec{R}_{t}^p\varvec{\omega }_t\) is the relative angular velocity between the frames \(\mathcal {F}_{tb}\) and \(\mathcal {F}_{pb}\); \(\varvec{\omega }_p\) denote the angular velocity of the pursuer with respect to \(\mathcal {F}_{i}\) expressed in frames \(\mathcal {F}_{pb}\). Then, the rotation matrix from \(\mathcal {F}_{tb}\) to \(\mathcal {F}_{pb}\) is

$$\begin{aligned} \varvec{R}_{t}^p=\varvec{I}_3-\frac{4(1-\varvec{\sigma }^{T}\varvec{\sigma })}{{(1+\varvec{\sigma }^{T}\varvec{\sigma })}^2}\varvec{S}(\varvec{\sigma })+ \frac{8{\varvec{S}(\varvec{\sigma })}^2}{{(1+\varvec{\sigma }^{T}\varvec{\sigma })}^2} \end{aligned}$$
(3)

Moreover, the relative attitude dynamics can be expressed in the frame \(\mathcal {F}_{pb}\) as

$$\begin{aligned} \varvec{J}\dot{\varvec{\omega }}+\varvec{C}_r\varvec{\omega }+\varvec{n}_r=\varvec{\tau }+\varvec{\tau }_d \end{aligned}$$
(4)

where \(\varvec{J}\) is the inertia matrix of the pursuer spacecraft; \(\varvec{\tau }=[\tau _x,\tau _y,\tau _z]^T\) is the control torque, and \(\varvec{\tau }_d\in R^3\) is disturbance torques; \(\varvec{C}_r\) is a skew-symmetric Coriolis-like matrix, \(\varvec{n}_r\) is a nonlinear term, and

$$\begin{aligned} \varvec{C}_r= & {} \varvec{JS}\left( \varvec{R}_{t}^p\varvec{\omega _t}\right) +\varvec{S}\left( \varvec{R}_{t}^p\varvec{\omega _t}\right) \varvec{J}- \varvec{S}\left( \varvec{J}\left( \varvec{\omega }+\varvec{R}_{t}^p\varvec{\omega _t}\right) \right) \\ \varvec{n}_r= & {} \varvec{S}\left( \varvec{R}_{t}^p\varvec{\omega _t}\right) \varvec{J}\varvec{R}_{t}^p\varvec{\omega _t}+ \varvec{J}\varvec{R}_{t}^p \dot{\varvec{\omega }}_t \end{aligned}$$

3.4 Relative position dynamics

The relative position vector between two frames \(\mathcal {F}_{tb}\) and \(\mathcal {F}_{pb}\) represented in the frame \(\mathcal {F}_{pb}\) is expressed as

$$\begin{aligned} \varvec{r}=\varvec{r}_p-\varvec{R}_{t}^p\varvec{r}_t \end{aligned}$$
(5)

From the fundamental equation of the two-body problem with an assumption of small spacecraft massed relative to the Earth, the nonlinear relative position dynamics can be represented in the frame \(\mathcal {F}_{pb}\) [5, 7]

$$\begin{aligned} \dot{\varvec{r}}= & {} \varvec{v}-\varvec{S}\left( \varvec{\omega }+\varvec{R}_{t}^p\varvec{\omega }_t\right) \varvec{r} \end{aligned}$$
(6)
$$\begin{aligned} m\dot{\varvec{v}}= & {} -m\varvec{S}\left( \varvec{\omega }+\varvec{R}_{t}^p\varvec{\omega }_t\right) \varvec{v}- \frac{m\mu \left( \varvec{r}+\varvec{R}_{t}^p\varvec{r}_t\right) }{\left\| \varvec{r}+\varvec{R}_{t}^p\varvec{r}_t\right\| ^3} \nonumber \\&-\,m\varvec{R}_{t}^p\dot{\varvec{v}_t}+\varvec{f}+\varvec{f}_d \end{aligned}$$
(7)

where \(\varvec{v}\) denotes the relative velocity between the pursuer spacecraft and the target spacecraft; m is the mass of the pursuer spacecraft; \(\varvec{f}=[f_x,f_y,f_z]^{T}\) is control force vector and \(\varvec{f}_d\in R^3\) is disturbance force vector.

3.5 Problem formulation

Define the state vectors as \(\varvec{x}_1=[\varvec{r}^{T},\varvec{\sigma }^{T}]^{T}\) and \(\varvec{x}_2=[\varvec{v}^{T},\varvec{\omega }^{T}]^{T}\). Based on (1), (4), (6) and (7), the coupled dynamics of the relative position and attitude for spacecraft rendezvous and docking can be expressed as

$$\begin{aligned}&\dot{\varvec{x}}_1=\varvec{\varLambda }\varvec{x}_1+\varvec{C}\varvec{x}_2 \end{aligned}$$
(8)
$$\begin{aligned}&\varvec{M}\dot{\varvec{x}}_2 =\varvec{D}\varvec{x}_2+\varvec{N}+\varvec{u}+\varvec{d} \end{aligned}$$
(9)

where

$$\begin{aligned}&\varvec{\varLambda }=\left[ \begin{array}{c@{\quad }c} -\varvec{S}(\varvec{\omega }+\varvec{R}_{t}^p\varvec{\omega }_t) &{}0 \\ 0 &{}0 \end{array}\right] ,\quad \varvec{C}=\left[ \begin{array}{c@{\quad }c} \varvec{I} &{}0 \\ 0 &{}\varvec{G}(\varvec{\sigma }) \end{array}\right] ,\\&\varvec{M}=\left[ \begin{array}{c@{\quad }c} m\varvec{I} &{}0 \\ 0 &{}\varvec{J} \end{array}\right] ,\\&\varvec{D}=\left[ \begin{array}{c@{\quad }c} -m\varvec{S}(\varvec{\omega }+\varvec{R}_{t}^p\varvec{\omega }_t) &{}0 \\ 0 &{}-\varvec{C}_r \end{array}\right] ,\\&\varvec{N}=\left[ \begin{array}{c} -\frac{m\mu (\varvec{r}+\varvec{R}_{t}^p\varvec{r}_t)}{\Vert \varvec{r}+\varvec{R}_{t}^p\varvec{r}_t\Vert ^3}-m\varvec{R}_{t}^p\dot{\varvec{v}}_t \\ -\varvec{S}(\varvec{R}_{t}^p\varvec{\omega _t})\varvec{J}\varvec{R}_{t}^p\varvec{\omega _t}- \varvec{J}\varvec{R}_{t}^p \dot{\varvec{\omega }}_t \end{array}\right] ,\\&\quad \varvec{u}=\left[ \begin{array}{c} \varvec{f} \\ \varvec{\tau } \end{array}\right] ,\\&\varvec{d}=\left[ \begin{array}{c} \varvec{f}_d \\ \varvec{\tau }_d \end{array}\right] . \end{aligned}$$

Assumption 2

The mass m, inertial momentum \(\varvec{J}\), and disturbances \(\varvec{d}\) of the pursuer spacecraft are unknown but bounded with unknown bounds.

The control objective in this paper is to design a controller based on the system formulated by (8) and (9) to drive the pursuer spacecraft to approximate the target and keep its docking port facing the docking port of the target. With the measurement information \(\varvec{r}\), \(\varvec{\sigma }\), \(\varvec{v}\), \(\varvec{\omega }\), \(\varvec{r}_t\), \(\dot{\varvec{v}}_t\), \(\varvec{\omega }_t\), and \(\dot{\varvec{\omega }}_t\), we design a controller to make the states \(\varvec{x}_1\), \(\varvec{x}_2\) globally uniformly ultimately bounded in the presence of the external disturbance and parameter uncertainties.

4 Controller design

In this subsection, detailed controller design procedures for spacecraft rendezvous and docking maneuver are presented. To achieve the control objective, a robust adaptive neural networks control law via backstepping technique is designed.

Step 1 Define auxiliary state variables

$$\begin{aligned} \varvec{z}_1= & {} \varvec{x}_1 \end{aligned}$$
(10)
$$\begin{aligned} \varvec{z}_2= & {} \varvec{x}_2-\varvec{\alpha } \end{aligned}$$
(11)

where \(\varvec{\alpha }\) is a virtual control input to be designed later. From (8) and (10), the derivative of \(\varvec{z}_1\) can be expressed as

$$\begin{aligned} \dot{\varvec{z}}_1=\dot{\varvec{x}}_1=\varvec{\varLambda }\varvec{x}_1+\varvec{C} \varvec{x}_2=\varvec{\varLambda }\varvec{z}_1+\varvec{C}\varvec{z}_2+\varvec{C}\varvec{\alpha } \end{aligned}$$
(12)

Choose a Lyapunov function

$$\begin{aligned} V_1=\frac{1}{2}{\varvec{z}_1}^T\varvec{z}_1 \end{aligned}$$
(13)

Taking its derivative along (12) and selecting the virtual control \(\varvec{\alpha }=-\varvec{K}_1\varvec{C}^T\varvec{z}_1\), where \(\varvec{K}_1>0\) is a symmetric matrix, we can obtain

$$\begin{aligned} \dot{V}_1= & {} {\varvec{z}_1}^T\dot{\varvec{z}}_1 \nonumber \\= & {} {\varvec{z}_1}^T(\varvec{\varLambda }\varvec{z}_1+\varvec{C}\varvec{z}_2+\varvec{C}\varvec{\alpha }) \nonumber \\= & {} {\varvec{z}_1}^T\varvec{\varLambda }\varvec{z}_1+{\varvec{z}_1}^T\varvec{C}\varvec{z}_2-{\varvec{z}_1}^T\varvec{C}\varvec{K}_1\varvec{C}^T\varvec{z}_1 \nonumber \\= & {} {\varvec{z}_1}^T\varvec{C}\varvec{z}_2-{\varvec{z}_1}^T\varvec{C}\varvec{K}_1\varvec{C}^T\varvec{z}_1 \end{aligned}$$
(14)

Step 2 Taking the derivative of (11), then from (9) and (12), we have

$$\begin{aligned} \varvec{M}\dot{\varvec{z}}_2= & {} \varvec{M}\dot{\varvec{x}}_2-\varvec{M}\dot{\varvec{\alpha }} \nonumber \\= & {} \varvec{D}\varvec{x}_2+\varvec{N}+\varvec{u}+\varvec{d}+\varvec{M}\varvec{K}_1\left( \dot{\varvec{C}}^T\varvec{z}_1\right. \nonumber \\&\left. +\,\varvec{C}^T\varvec{\varLambda }\varvec{z}_1+\varvec{C}^T\varvec{C}\varvec{z}_2+\varvec{C}^T\varvec{C}\varvec{\alpha }\right) \nonumber \\= & {} \varvec{D}\varvec{x}_2+\varvec{N}_1+\varvec{u}+\varvec{d} \end{aligned}$$
(15)

where \(\dot{\varvec{C}}^T\) is the derivative of \(\varvec{C}^T\), \(\varvec{N}_1=\varvec{M}\varvec{K}_1(\dot{\varvec{C}}^T\varvec{z}_1+ \varvec{C}^T\varvec{\varLambda }\varvec{z}_1+\varvec{C}^T\varvec{C}\varvec{z}_2- \varvec{C}^T\varvec{C}\varvec{K}_1\varvec{C}^T\varvec{z}_1)+\varvec{N}\).

Because m and \(\varvec{J}\) are not known exactly, we use \(\hat{\varvec{D}}\) and \(\hat{\varvec{N}}_1\) to denote the estimate of \(\varvec{D}\) and \(\varvec{N}_1\), and the estimate errors are \(\tilde{\varvec{D}}=\hat{\varvec{D}}-\varvec{D}\) and \(\tilde{\varvec{N}}_1=\hat{\varvec{N}}_1-\varvec{N}_1\), respectively. Then, Eq. (15) can be rewritten as

$$\begin{aligned} \varvec{M}\dot{\varvec{z}}_2=\hat{\varvec{D}}\varvec{x}_2+\hat{\varvec{N}}_1+\varvec{u}+\varvec{d}^{*} \end{aligned}$$
(16)

where \(\varvec{d}^{*}=\varvec{d}-\tilde{\varvec{D}}\varvec{x}_2-\tilde{\varvec{N}}_1\).

Assumption 3

Here we assume that each component of the uncertain dynamics \(\varvec{d}^{*}\) are bounded, namely \(|d^{*}_i|\le \bar{\gamma _i}, i=1,2,\ldots ,6\) and \(\bar{\varvec{\gamma }}=[\bar{\gamma _1},\bar{\gamma _2},\ldots ,\bar{\gamma _6}]^T\) is an unknown constant vector.

According to (16), \(\varvec{d}^{*}\) are mainly from the relative states \(\varvec{r}\), \(\varvec{\sigma }\), \(\varvec{v}\), \(\varvec{\omega }\), and the true anomaly \(\nu \). Define \(\varvec{\chi }=[\varvec{x}_1^T,\varvec{x}_2^T,\nu ]^T\) and the normalized input [20] vector \(\varvec{y}=\iota \frac{\varvec{\chi }}{\Vert \varvec{\chi }\Vert }\), where \(\iota \) is a positive scaling parameter. Consider \(\varvec{d}^{*}\) being approximately linear about \(\varvec{y}\), then \(\varvec{y}\) can be regarded as the input vector into the robust RBFNNs.

Remark 1

Both the estimation error and the calculation time of the RBFNN can be reduced via the normalized input [20, 21].

Employ an RBFNN with l nodes to approximate \(\varvec{d}^{*}\), namely

$$\begin{aligned} \varvec{d}^{*}=\varvec{W}^T\varvec{\varPhi }(\varvec{y})+\varvec{\epsilon } \end{aligned}$$
(17)

where \(\varvec{W}\) denotes the constant weight matrix with \(\hat{\varvec{W}}\) and \(\tilde{\varvec{W}}=\hat{\varvec{W}}-\varvec{W}\) as its estimate and estimate error, \(\varvec{\varPhi }(\varvec{y})\) is the radial basis function vector, \(\varvec{\epsilon }\in R^6\) is the error vector, each component of which is bounded, namely, \(|\epsilon _i|\le \bar{\epsilon _i}, i=1,2,\ldots ,6\) and \(\bar{\varvec{\epsilon }}=[\bar{\epsilon _1},\bar{\epsilon _2},\ldots ,\bar{\epsilon _6}]^T\) is an unknown constant vector.

Define \(\varvec{\varTheta }=[\bar{\varvec{\epsilon }}^T,\bar{\varvec{\gamma }}^T]^T\), its estimate \(\hat{\varvec{\varTheta }}=[\hat{\varvec{\epsilon }}^T,\hat{\varvec{\gamma }}^T]^T\) and estimate error \(\tilde{\varvec{\varTheta }}=[\tilde{\varvec{\epsilon }}^T,\tilde{\varvec{\gamma }}^T]^T =\hat{\varvec{\varTheta }}-\varvec{\varTheta }\), then a Lyapunov function is constructed as

$$\begin{aligned} V_2=V_1+\frac{1}{2}\varvec{z}_2^T\varvec{M}\varvec{z}_2+\frac{1}{2} \mathrm {tr}(\tilde{\varvec{W}}^T\varvec{\varGamma }_1^{-1}\tilde{\varvec{W}})+ \frac{1}{2}\tilde{\varvec{\varTheta }}^T\varvec{\varGamma }_2^{-1}\tilde{\varvec{\varTheta }} \end{aligned}$$
(18)

where \(\varvec{\varGamma }_1=\varvec{\varGamma }_1^T>0\), \(\varvec{\varGamma }_2=\varvec{\varGamma }_2^T>0\).

The derivative of (18) can be derived as

$$\begin{aligned} \dot{V}_2= & {} \dot{V}_1+\varvec{z}_2^T\varvec{M}\dot{\varvec{z}}_2+\mathrm {tr}(\tilde{\varvec{W}}^T\varvec{\varGamma }_1^{-1}\dot{\tilde{\varvec{W}}}) + \tilde{\varvec{\varTheta }}^T\varvec{\varGamma }_2^{-1}\dot{\tilde{\varvec{\varTheta }}} \nonumber \\= & {} {\varvec{z}_1}^T\varvec{C}\varvec{z}_2-{\varvec{z}_1}^T\varvec{C}\varvec{K}_1\varvec{C}^T\varvec{z}_1+\varvec{z}_2^T(\hat{\varvec{D}}\varvec{x}_2+ \hat{\varvec{N}}_1 \nonumber \\&+\,\varvec{u}+\varvec{d}^{*})+\mathrm {tr}(\tilde{\varvec{W}}^T\varvec{\varGamma }_1^{-1}\dot{\hat{\varvec{W}}})+ \tilde{\varvec{\varTheta }}^T\varvec{\varGamma }_2^{-1}\dot{\hat{\varvec{\varTheta }}} \end{aligned}$$
(19)

Design a control law

$$\begin{aligned} \varvec{u}= & {} -\varvec{C}^T\varvec{z}_1-\varvec{K}_2\varvec{z}_2-\hat{\varvec{D}}\varvec{x}_2-\hat{\varvec{N}}_1 \nonumber \\&+\,(1-\hbar (\varvec{y}))\varvec{\alpha }_{an}+\hbar (\varvec{y})\varvec{\alpha }_{r} \end{aligned}$$
(20)

where \(\varvec{K}_2>0\) is a symmetric matrix, \(\hbar (\varvec{y})\) is defined in Definition 1, \(\varvec{\alpha }_{an}=-\hat{\varvec{W}}^T\varvec{\varPhi }(\varvec{y})-\mathrm {Tanh} (\frac{\varvec{z}_2}{\varpi })\hat{\varvec{\epsilon }}\), \(\varvec{\alpha }_{r}=-\mathrm {Tanh}(\frac{\varvec{z}_2}{\varpi })\hat{\varvec{\gamma }}\). Substituting (20) into (19) yields

$$\begin{aligned} \dot{V}_2= & {} -{\varvec{z}_1}^T\varvec{C}\varvec{K}_1\varvec{C}^T\varvec{z}_1-{\varvec{z}_2}^T\varvec{K}_2\varvec{z}_2 \nonumber \\&+\,\varvec{z}_2^T[(1-\hbar (\varvec{y}))(\varvec{\alpha }_{an}+\varvec{d}^{*})+\hbar (\varvec{y})(\varvec{\alpha }_r+\varvec{d}^{*})] \nonumber \\&+\,\mathrm {tr}(\tilde{\varvec{W}}^T\varvec{\varGamma }_1^{-1}\dot{\hat{\varvec{W}}})+ \tilde{\varvec{\varTheta }}^T\varvec{\varGamma }_2^{-1}\dot{\hat{\varvec{\varTheta }}} \nonumber \\= & {} -{\varvec{z}_1}^T\varvec{C}\varvec{K}_1\varvec{C}^T\varvec{z}_1-{\varvec{z}_2}^T\varvec{K}_2\varvec{z}_2 \nonumber \\&+\,\varvec{z}_2^T\left[ (1-\hbar (\varvec{y}))\left( -\hat{\varvec{W}}^T\varvec{\varPhi }(\varvec{y})\right. \right. \nonumber \\&-\,\left. \mathrm {Tanh}\left( \frac{\varvec{z}_2}{\varpi }\right) \hat{\varvec{\epsilon }}+\varvec{d}^{*}\right) \nonumber \\&\left. +\,\hbar (\varvec{y})\left( -\mathrm {Tanh}\left( \frac{\varvec{z}_2}{\varpi }\right) \hat{\varvec{\gamma }}+ \varvec{d}^{*}\right) )\right] \nonumber \\&+\,\mathrm {tr}(\tilde{\varvec{W}}^T\varvec{\varGamma }_1^{-1}\dot{\hat{\varvec{W}}})+ \tilde{\varvec{\varTheta }}^T\varvec{\varGamma }_2^{-1}\dot{\hat{\varvec{\varTheta }}} \nonumber \\= & {} -{\varvec{z}_1}^T\varvec{C}\varvec{K}_1\varvec{C}^T\varvec{z}_1-{\varvec{z}_2}^T\varvec{K}_2\varvec{z}_2 \nonumber \\&+\,(1-\hbar (\varvec{y}))\varvec{z}_2^T\left( -\tilde{\varvec{W}}^T\varvec{\varPhi }(\varvec{y})-\mathrm {Tanh}\left( \frac{\varvec{z}_2}{\varpi }\right) \tilde{\varvec{\epsilon }}\right. \nonumber \\&\left. -\,\mathrm {Tanh}\left( \frac{\varvec{z}_2}{\varpi }\right) \bar{\varvec{\epsilon }}+\varvec{\epsilon }\right) +\hbar (\varvec{y})\varvec{z}_2^T\left( -\mathrm {Tanh}\left( \frac{\varvec{z}_2}{\varpi }\right) \tilde{\varvec{\gamma }}\right. \nonumber \\&\left. -\,\mathrm {Tanh}\left( \frac{\varvec{z}_2}{\varpi }\right) \bar{\varvec{\gamma }}+\varvec{d}^{*}\right) \nonumber \\&+\,\mathrm {tr}(\tilde{\varvec{W}}^T\varvec{\varGamma }_1^{-1}\dot{\hat{\varvec{W}}})+ \tilde{\varvec{\varTheta }}^T\varvec{\varGamma }_2^{-1}\dot{\hat{\varvec{\varTheta }}} \end{aligned}$$
(21)

Using \(0\le \hbar (\varvec{y})\le 1\), \(\varvec{z}_2^T\varvec{\epsilon }\le |\varvec{z}_2|^T\bar{\varvec{\epsilon }}\) and \(\varvec{z}_2^T\varvec{d}^{*}\le |\varvec{z}_2|^T\bar{\varvec{\gamma }}\), we can have the following inequality

$$\begin{aligned} \dot{V}_2\le & {} -{\varvec{z}_1}^T\varvec{C}\varvec{K}_1\varvec{C}^T\varvec{z}_1-{\varvec{z}_2}^T\varvec{K}_2\varvec{z}_2 \nonumber \\&+\,(1-\hbar (\varvec{y}))\varvec{z}_2^T\left( -\tilde{\varvec{W}}^T\varvec{\varPhi }(\varvec{y})- \mathrm {Tanh}\left( \frac{\varvec{z}_2}{\varpi }\right) \tilde{\varvec{\epsilon }}\right) \nonumber \\&+\,(1-\hbar (\varvec{y}))\left( |\varvec{z}_2|^T-\varvec{z}_2^T\mathrm {Tanh}\left( \frac{\varvec{z}_2}{\varpi }\right) \right) \bar{\varvec{\epsilon }} \nonumber \\&+\,\hbar (\varvec{y})(|\varvec{z}_2|^T-\varvec{z}_2^T\mathrm {Tanh}\left( \frac{\varvec{z}_2}{\varpi }\right) )\bar{\varvec{\gamma }} \nonumber \\&-\,\hbar (\varvec{y})\varvec{z}_2^T\mathrm {Tanh}\left( \frac{\varvec{z}_2}{\varpi }\right) \tilde{\varvec{\gamma }}+ \mathrm {tr}(\tilde{\varvec{W}}^T\varvec{\varGamma }_1^{-1}\dot{\hat{\varvec{W}}}) \nonumber \\&+\,\tilde{\varvec{\varTheta }}^T\varvec{\varGamma }_2^{-1}\dot{\hat{\varvec{\varTheta }}} \nonumber \\= & {} -{\varvec{z}_1}^T\varvec{C}\varvec{K}_1\varvec{C}^T\varvec{z}_1-{\varvec{z}_2}^T\varvec{K}_2\varvec{z}_2 \nonumber \\&-\,(1-\hbar (\varvec{y}))\varvec{z}_2^T\tilde{\varvec{W}}^T\varvec{\varPhi }(\varvec{y})-\tilde{\varvec{\varTheta }}^T\varvec{\Psi } \nonumber \\&+\,[|\varvec{z}_2|-\mathrm {Tanh}\left( \frac{\varvec{z}_2}{\varpi }\right) \varvec{z}_2]^T [(1-\hbar (\varvec{y}))\bar{\varvec{\epsilon }}+\hbar (\varvec{y})\bar{\varvec{\gamma }}] \nonumber \\&+\,\mathrm {tr}(\tilde{\varvec{W}}^T\varvec{\varGamma }_1^{-1}\dot{\hat{\varvec{W}}})+ \tilde{\varvec{\varTheta }}^T\varvec{\varGamma }_2^{-1}\dot{\hat{\varvec{\varTheta }}} \nonumber \\= & {} -{\varvec{z}_1}^T\varvec{C}\varvec{K}_1\varvec{C}^T\varvec{z}_1-{\varvec{z}_2}^T\varvec{K}_2\varvec{z}_2 \nonumber \\&+\,[|\varvec{z}_2|-\mathrm {Tanh}\left( \frac{\varvec{z}_2}{\varpi }\right) \varvec{z}_2]^T [(1-\hbar (\varvec{y}))\bar{\varvec{\epsilon }}+\hbar (\varvec{y})\bar{\varvec{\gamma }}] \nonumber \\&-\,\mathrm {tr}(\tilde{\varvec{W}}^T((1-\hbar (\varvec{y}))\varvec{\varPhi }(\varvec{y}) \varvec{z}_2^T-\varvec{\varGamma }_1^{-1}\dot{\hat{\varvec{W}}})) \nonumber \\&-\,\tilde{\varvec{\varTheta }}^T(\varvec{\Psi } -\varvec{\varGamma }_2^{-1}\dot{\hat{\varvec{\varTheta }}}) \end{aligned}$$
(22)

where \(\varvec{\Psi }=\left[ \begin{array}{c} (1-\hbar (\varvec{y}))\mathrm {Tanh}(\frac{\varvec{z}_2}{\varpi })\varvec{z}_2 \\ \hbar (\varvec{y})\mathrm {Tanh}(\frac{\varvec{z}_2}{\varpi })\varvec{z}_2 \end{array}\right] \). Design adaptation laws for \(\hat{\varvec{W}}\) and \(\hat{\varvec{\varTheta }}\) as

$$\begin{aligned}&\dot{\hat{\varvec{W}}}=\varvec{\varGamma }_1((1-\hbar (\varvec{y}))\varvec{\varPhi }(\varvec{y}) \varvec{z}_2^T-\vartheta \hat{\varvec{W}}) \nonumber \\&\dot{\hat{\varvec{\varTheta }}}=\varvec{\varGamma }_2(\varvec{\Psi }-\vartheta \hat{\varvec{\varTheta }}) \end{aligned}$$
(23)

where \(\vartheta >0\) is a parameter to be designed.

Fig. 2
figure 2

Relative position, relative velocity, and control forces with controller gains (29)

Fig. 3
figure 3

Relative attitude, relative angular velocity, and control torques with controller gains (29)

Fig. 4
figure 4

RBFNN approximate errors

By substituting (23) into (22), we can have the following inequality

$$\begin{aligned} \dot{V}_2\le & {} -{\varvec{z}_1}^T\varvec{C}\varvec{K}_1\varvec{C}^T\varvec{z}_1 -{\varvec{z}_2}^T\varvec{K}_2\varvec{z}_2 \nonumber \\&+\,\left[ |\varvec{z}_2|-\mathrm {Tanh}\left( \frac{\varvec{z}_2}{\varpi }\right) \varvec{z}_2\right] ^T [(1-\hbar (\varvec{y}))\bar{\varvec{\epsilon }}+\hbar (\varvec{y})\bar{\varvec{\gamma }}] \nonumber \\&-\,\vartheta \mathrm {tr}(\tilde{\varvec{W}}^T\hat{\varvec{W}})- \vartheta \tilde{\varvec{\varTheta }}^T\hat{\varvec{\varTheta }} \end{aligned}$$
(24)

From Schwartz inequality, the following inequalities can be obtained

$$\begin{aligned}&-\vartheta \mathrm {tr}(\tilde{\varvec{W}}^T\hat{\varvec{W}})\le -\frac{\vartheta \Vert \tilde{\varvec{W}}\Vert ^2}{2}+\frac{\vartheta \Vert \varvec{W}\Vert ^2}{2} \nonumber \\&-\vartheta \tilde{\varvec{\varTheta }}^T\hat{\varvec{\varTheta }}\le -\frac{\vartheta \Vert \tilde{\varvec{\varTheta }}\Vert ^2}{2}+ \frac{\vartheta \Vert \varvec{\varTheta }\Vert ^2}{2} \end{aligned}$$
(25)

Hence, substituting (25) into (24), with Lemma 1, one has the following inequality

$$\begin{aligned} \dot{V}_2\le & {} -{\varvec{z}_1}^T\varvec{C}\varvec{K}_1\varvec{C}^T\varvec{z}_1-{\varvec{z}_2}^T\varvec{K}_2\varvec{z}_2 \nonumber \\&-\,\frac{\vartheta \tilde{\Vert \varvec{W}\Vert }^2}{2}-\frac{\vartheta \tilde{\Vert \varvec{\varTheta }\Vert }^2}{2}+\zeta \end{aligned}$$
(26)

where \(\zeta =\delta \varpi \sum _{i=1,\ldots ,6}{[(1-\hbar (\varvec{y})) \bar{\epsilon }_i+\hbar (\varvec{y})\bar{\gamma }_i]} +\frac{\vartheta \Vert \varvec{W}\Vert ^2}{2}+\frac{\vartheta \Vert \varvec{\varTheta }\Vert ^2}{2}\).

Let \(\varvec{z}=[\varvec{z}_1^T,\varvec{z}_2^T]^T\) and \(\lambda _1=\lambda _\mathrm{min}\left( \left[ \begin{array}{cc} \varvec{C}\varvec{K}_1\varvec{C}^T &{}0 \\ 0 &{}\varvec{K}_2 \end{array}\right] \right) \), inequality (26) can be rewritten as

$$\begin{aligned} \dot{V}_2\le & {} -\varvec{z}^T\left[ \begin{array}{c@{\quad }c} \varvec{C}\varvec{K}_1\varvec{C}^T &{}0 \\ 0 &{}\varvec{K}_2 \end{array}\right] \varvec{z}-\frac{\vartheta \tilde{\Vert \varvec{W}\Vert }^2}{2}-\frac{\vartheta \tilde{\Vert \varvec{\varTheta }\Vert }^2}{2} +\zeta \nonumber \\\le & {} -\lambda _1\varvec{z}^T\varvec{z}-\frac{\vartheta \tilde{\Vert \varvec{W}\Vert }^2}{2}- \frac{\vartheta \tilde{\Vert \varvec{\varTheta }\Vert }^2}{2}+\zeta \nonumber \\\le & {} -k^{*}V_2+\zeta \end{aligned}$$
(27)

where \(k^{*}=\mathrm {min}\left( \lambda _1,\frac{\vartheta }{2\lambda _{\mathrm {max}}(\varGamma _1^{-1})}, \frac{\vartheta }{2\lambda _{\mathrm {max}}(\varGamma _2^{-1})}\right) \). From (19) and (27), it can be easily shown that

$$\begin{aligned} \frac{\underline{\lambda }^{*}}{2}\varvec{z}^T\varvec{z}\le V_2(t)\le \left( V_2(0)-\frac{\zeta }{k^{*}}\right) e^{-k^{*}t}+\frac{\zeta }{k^{*}} \end{aligned}$$
(28)

where \(\underline{\lambda }^{*}=\lambda _\mathrm{min}\left( \left[ \begin{array}{cc} \varvec{I} &{}0 \\ 0 &{}\varvec{M} \end{array}\right] \right) \). So \(\varvec{z}\) will eventually converge to

$$\begin{aligned} \varOmega ^{*}=\left\{ \varvec{z}|\Vert \varvec{z}\Vert \le \sqrt{ \frac{2\zeta }{\underline{\lambda }^{*}k^{*}}}\right\} . \end{aligned}$$

From (10) and (11), with the properties \(0\le \varvec{\sigma }^T\varvec{\sigma }\le 1\) and \(\Vert \varvec{G}(\varvec{\sigma })^T\Vert =\frac{1+\varvec{\sigma }^T\varvec{\sigma }}{4}\), the following inequality can be obtained

$$\begin{aligned} \Vert \varvec{x}_1\Vert= & {} \Vert \varvec{z}_1\Vert \le \Vert \varvec{z}\Vert \le \sqrt{\frac{2\zeta }{\underline{\lambda }^{*}k^{*}}},\\ \Vert \varvec{x}_2\Vert= & {} \Vert \varvec{z}_2+\varvec{\alpha }\Vert =\Vert \varvec{z}_2-\varvec{K}_1\varvec{C}^T\varvec{z}_1\Vert \\\le & {} (1+\Vert -\varvec{K}_1\varvec{C}^T\Vert )\Vert \varvec{z}\Vert \le \left( 1+\frac{3}{2}\lambda _2\right) \sqrt{\frac{2\zeta }{\underline{\lambda }^{*}k^{*}}} \end{aligned}$$

where \(\lambda _2=\lambda _\mathrm{max}(\varvec{K}_1)\). The states \(\varvec{x}_1\) and \(\varvec{x}_2\) will ultimately converge to the following regions, respectively

$$\begin{aligned} \varOmega _1^{*}= & {} \left\{ \varvec{x}_1|\Vert \varvec{x}_1\Vert \le \sqrt{\frac{2\zeta }{\underline{\lambda }^{*}k^{*}}}\right\} , \\ \varOmega _2^{*}= & {} \left\{ \varvec{x}_2|\Vert \varvec{x}_2\Vert \le (1+\frac{3}{2}\lambda _2)\sqrt{\frac{2\zeta }{\underline{\lambda }^{*}k^{*}}}\right\} . \end{aligned}$$

Which implies that the states \(\varvec{x}_1\) and \(\varvec{x}_2\) are bounded. Then, the previous conclusions can be summarized as the following theorem.

Fig. 5
figure 5

Relative position, relative velocity, and control forces with controller gains (30)

Fig. 6
figure 6

Relative attitude, relative angular velocity, and control torques with controller gains (30)

Fig. 7
figure 7

Comparison of \(\varvec{r}\) between different controller gains

Fig. 8
figure 8

Comparison of \(\varvec{\sigma }\) between different controller gains

Fig. 9
figure 9

Comparison of \(\varvec{v}\) between different controller gains

Fig. 10
figure 10

Comparison of \(\varvec{\omega }\) between different controller gains

Theorem 1

For spacecraft rendezvous and docking dynamic system (8) and (9) with Assumptions 1–3, the proposed control law (20) and adaptation laws (23) guarantee the relative states \(\varvec{x}_1\) and \(\varvec{x}_2\) globally uniformly converge to regions \(\varOmega _1^{*}\) and \(\varOmega _2^{*}\), respectively.

Remark 2

The switching function \(\hbar (\varvec{y})\) plays an important role in the control approach design, since it combines the conventional RBFNN and a robust control to avoid the invalidation of the RBFNN destroying the stability of the closed-loop system outside the neural active region. When \(\hbar (\varvec{y})=0\), it can be seen that only the neural controller works inside the neural active region, whereas only the robust controller works can pull back the states from outside into the neural active region. Since the smaller approximate errors should be achieved by using RBFNNs in the active region than using only robust method. The controllers work together inside the neural active region not only improving the control accuracy, but also reducing real-time computing burden of the controller.

Remark 3

With appropriate controller parameters, the ultimate convergent sets of relative states \(\varvec{x}_1\) and \(\varvec{x}_2\) can be tuned. Careful analysis indicates that increasing \(\varvec{K}_1\) and \(\varvec{K}_2\) lead to larger \(k^{*}\) and which contributes to smaller ultimate bounds of \(\varvec{x}_1\). So the ultimate bound of \(\varvec{x}_1\) can be arbitrarily small. Then choose the appropriate \(\lambda _2\), sufficiently small ultimate bound of \(\varvec{x}_2\) can also be obtained. We can know that the ultimate bounds of \(\varvec{\sigma }\) and \(\varvec{\omega }\) can be tuned according to the requirements of the control accuracy. Moreover, larger controller gains could contribute to faster convergence rate but larger control power. So a compromise among the control objectives should be made in practical problem.

5 Numerical simulations

In this section, a simulation scenario is considered to show the effectiveness of the proposed control strategy. The scenario describes a particular autonomous rendezvous and docking maneuver in orbit. The target spacecraft is in an elliptical orbit with a perigee altitude of 400 km and eccentricity \(e=0.3\). The geocentric gravitational constant \(\mu =3.986\times 10^{14}\,\mathrm {N}\,\mathrm {m}^2/\mathrm {kg}\). The pursuer spacecraft has mass \(m=60\,\hbox {kg}\), and moments of inertia \(\varvec{J}=\mathrm {diag}(4.350,4.337,3.664)\,\hbox {kg}\,\hbox {m}^{2}\) [4, 7]. And we use the estimate values of mass \(\hat{m}=52\)kg and inertial moments \(\hat{\varvec{J}}=\mathrm {diag}(3,6,3)\,\hbox {kg}\,\hbox {m}^{2}\) in this simulations. The disturbance force \(\varvec{f}_d\) and disturbance torque \(\varvec{\tau }_d\) are chosen as

$$\begin{aligned} \varvec{f}_d= & {} \left[ \begin{array}{c} (1+\sin {(nt)}+\cos {(nt)})\times 0.1 \\ (1+\sin {(nt)}+\cos {(nt)})\times 0.2 \\ (1+\sin {(nt)}+\cos {(nt)})\times 0.15 \end{array}\right] \mathrm {N},\\ \varvec{\tau }_d= & {} \left[ \begin{array}{c} (1+\sin {(nt)}+\cos {(nt)})\times 0.1 \\ (1+\sin {(nt)}+\cos {(nt)})\times 0.2 \\ (1+\sin {(nt)}+\cos {(nt)})\times 0.15 \end{array}\right] \mathrm {N}\,\mathrm {m}. \end{aligned}$$

The initial relative position, relative velocity, relative attitude, and relative angular velocity are given as

$$\begin{aligned} \varvec{r}(0)= & {} [20,10,-10]^T\mathrm {m},\quad \varvec{v}(0)=[0.5,-0.5,0.1]^T\mathrm {m/s}, \\ \varvec{\sigma }(0)= & {} [-0.3,-0.4,0.2]^T,\quad \varvec{\omega }(0)=[0,0,0]^T\mathrm {rad/m}. \end{aligned}$$

The neural networks active region is defined as \(\varOmega _{n1}\)

$$\begin{aligned}&\varOmega _{n1}=\left\{ \varvec{r},\varvec{v},\varvec{\sigma },\varvec{\omega },\nu | \Vert \varvec{r}\Vert \in [0,15],\Vert \varvec{v}\Vert \in [0,1.5], \right. \\&\quad \left. \Vert \varvec{\sigma }\Vert \in [0,0.2],\Vert \varvec{\omega } \Vert \in [0,0.15],|\nu |\in [0,0.8\pi ]\right\} . \end{aligned}$$

And only the neural networks controller works in the following region defined as \(\varOmega _{n2}\)

$$\begin{aligned}&\varOmega _{n2}=\left\{ \varvec{r},\varvec{v},\varvec{\sigma },\varvec{\omega },\nu | \Vert \varvec{r}\Vert \in [0,5],\Vert \varvec{v}\Vert \in [0,0.5], \right. \\&\quad \left. \Vert \varvec{\sigma }\Vert \in [0,0.1],\Vert \varvec{\omega }\Vert \in [0,0.1], |\nu |\in [0,0.3\pi ]\right\} . \end{aligned}$$

The neural networks controller and the robust controller work together in \(\varOmega _{n1}-\varOmega _{n2}\). While the robust controller works alone outside the neural networks active region \(\varOmega _{n1}\).

The parameters of RBFNNs are given as follow

$$\begin{aligned} \varpi= & {} 0.01,l=200,\varvec{\varGamma }_1\\= & {} \mathrm {diag}(0.01\varvec{I}_{100\times 100},0.1\varvec{I}_{100\times 100}),\\ \varvec{\varGamma }_2= & {} 0.2\varvec{I}_{12\times 12},\vartheta =0.01, a=5, b=28,\iota =30. \end{aligned}$$

In this maneuver, we use the controller given by (20) with controller gains firstly

$$\begin{aligned}&\varvec{K}_1 = \mathrm {diag}(0.1,0.1,0.1,5,5,5)\nonumber \\&\varvec{K}_2 = \mathrm {diag}(1.25,1.25,1.25,5,5,5) \end{aligned}$$
(29)

Figure 2 shows the time histories of relative position, velocity, and control force signals. Figure 3 illustrates the relative attitude, relative angular velocities, and control torques. It can be seen that relative position and relative attitude converge to a small neighbor of zero within 60 s with a good performance. The relative attitude converging to zero indicates the attitude of pursuer is synchronized with the target’s. Small oscillations forces and torques are maintained as seen in figures, because tracking the target motions and suppressing the uncertainties require continuous control efforts. In addition, Fig. 4 describes robust RBFNNs approximation errors on each axis. It can be observed that the robust RBFNNs are well adaptive to the uncertain dynamics with boundedness.

To demonstrate the analysis shown in Remark 4, we use the larger controller gains in this maneuver

$$\begin{aligned}&\varvec{K}_1 = \mathrm {diag}(0.2,0.2,0.2,10,10,10) \nonumber \\&\varvec{K}_2 = \mathrm {diag}(2.5,2.5,2.5,10,10,10) \end{aligned}$$
(30)

Figure 5 shows the time histories of relative position, velocity, and control force signals. Figure 6 illustrates the relative attitude, relative angular velocities, and control torques. Compared with the simulation results with smaller \(\varvec{K}_1\) and \(\varvec{K}_2\), we can conclude that larger feedback gains \(\varvec{K_1}\) and \(\varvec{K_2}\) in the proposed controller (20) yield smaller relative errors, shorter transient response time but larger control efforts.

Thus, we can observe that the system states converge to the equilibrium with a good performance. This concludes that the coupled relative position and attitude maneuver is successfully completed by the proposed control strategy, despite of external disturbances and uncertainties of mass and inertial moments (Figs. 7, 8, 9, 10).

6 Conclusion

This paper has presented a robust adaptive switching controller for spacecraft rendezvous and docking with the coupled position and attitude dynamics. In the backstepping framework, RBFNNs are introduced to estimate and compensate the uncertainties of the relative dynamics. The robust RBFNNs controller consists of a conventional adaptive neural networks controller dominating in the neural networks active region combined with an extra robust controller to avoid the invalidation of the RBFNNs destroying the stability of the system outside the neural active region. The controllers work together can improve the control accuracy and reduce real-time computing burden of the controller. It has been proven that with the proposed control approach, the relative states of the closed-loop system are globally uniformly ultimately bounded. Numerical simulations demonstrate the validity of the proposed controller.