1 Introduction

The studies on attitude synchronization for a group of spacecraft have received much attention over the past decade. In many space missions, such as monitoring of the Earth atmosphere, deep space exploration and in-orbit maintenance of spacecraft, a group of spacecraft need to accomplish some challenging tasks together, and all the spacecraft are required to align their attitudes to the desired attitude by sharing their information with their neighbors.

Many researchers have investigated various kinds of approaches for the attitude synchronization such as leader–follower approach [1,2,3,4,5,6,7,8,9], virtual structure approach [10,11,12,13] and behavior-based approach [14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37] in the past years. In the leader–follower approach, one spacecraft is chosen as leader, while the other spacecraft are treated as followers. The leader need to track the desired trajectories, and the followers are required to track the leaders. It is easy to implement, but there is no feedback from the followers to the leaders. Moreover, it makes the leader a single failure point for the formation due to its centralized structure. In the virtual structure approach, the formation is considered as a virtual and large body. It is easy to prescribe the behavior of formation. Also it performs well in maintaining the formation during the maneuvers. However, similar to leader–follower approach, the virtual structure approach is centralized, which results in a single failure point for the formation. In the behavior-based approach, only low bandwidth communication is required and the structure is decentralized. However, the group cannot maintain the formation during the maneuvers since its ability is limited for precise formation keeping.

It is worth noting that the continuous inter-spacecraft communication among spacecraft is required in the aforementioned works on synchronization problems. However, the spacecraft cannot obtain continuously information of their neighbors due to the restriction on the inter-spacecraft communication resources in many cases. For example, in the inter-spacecraft laser communication mission, the inter-spacecraft distance may reach thousands of kilometers, and the inter-spacecraft communication link to transmit the attitude information of spacecraft is radio frequency communication. In practice, the inter-spacecraft communication bandwidth decreases as the inter-spacecraft distance increases, which means that the inter-spacecraft communication bandwidth is quite limited for attitude synchronization in such a mission. Therefore, the unnecessary transmission of inter-spacecraft information can be avoided if the fluctuation is little between two successive instants, and the problem of attitude synchronization for multiple spacecraft in the presence of limited inter-spacecraft communication should be studied. During the past few years, event-triggered method has been investigated to reduce communication burden for networked control system [38,39,40,41,42,43,44,45]. Hu et al. in [40] investigated containment control for the first-order and second-order multi-agent systems with constant time delays under event-triggered conditions, which cannot be applied to nonlinear system straightforwardly. Hu et al. in [41] addressed the consensus issue for multi-agent systems via intermittent event-triggered control. Under the event-triggered strategy, triggered data only need to be transmitted at some discrete triggered times when a defined event-triggered error exceeds a given threshold. Therefore, the burden of inter-spacecraft communication will be significantly reduced in this method. However, there is few research available to investigate event-triggered attitude synchronization of a group of spacecraft with limited inter-spacecraft communication. Wu et al. in [43] investigated the problem of spacecraft attitude stabilization control based on event-triggered method, but it cannot be applied for the problem of attitude synchronization. Weng and Yue in [44] studied event-triggered cooperative attitude control of multiple rigid bodies with leader–follower architecture by use of modified Rodriguez parameters for attitude representation. Minimal representations of attitude dynamics, such as modified Rodriguez parameters or Euler angles, contain singularities, and it is hence not suited for the design global control algorithms. Furthermore, the event-triggered strategy in [44] is complicated to implement in practice.

This paper aims to provide a solution to the attitude synchronization tracking control problem of a group of spacecraft in the presence of limited inter-spacecraft communication, model uncertainties and external disturbances. A distributed adaptive sliding-mode event-triggered control scheme for attitude synchronization tracking of a group of spacecraft is proposed to align their attitudes, track the desired attitude trajectory and reduce the inter-spacecraft communication burden. Under the proposed event-triggered strategy, the attitude sliding mode vector of spacecraft only need to be transmitted to its neighboring spacecraft at some discrete triggered times when a defined event-triggered error exceeds a state-dependent threshold. The inter-spacecraft communication topology in the proposed control scheme is assumed to be undirected connected. The stability of the resulting closed-loop systems can be guaranteed by application of the Lyapunov function. No accumulation of triggering instants is also ensured for the event-triggered strategy. Finally, simulation results demonstrate the efficiency of the proposed event-triggered attitude synchronization control algorithm, and data to be sent over the communication channel among spacecraft under the proposed control scheme are greatly reduced.

2 Attitude dynamics and mathematical preliminaries

2.1 Spacecraft attitude dynamics

In this paper, the unit-quaternion representation is used to describe the orientation of a rigid spacecraft. The unit-quaternion \(\mathbf Q _i\) is defined as follows:

$$\begin{aligned} \mathbf{Q _i} = \left( {\begin{array}{c} {{\varvec{e}_i}\sin \left( {\frac{\theta _i }{2}} \right) }\\ {\cos \left( {\frac{\theta _i }{2}} \right) } \end{array}} \right) = \left( {\begin{array}{c} {\varvec{q}_i}\\ {{q_{0,i}}} \end{array}} \right) , \end{aligned}$$
(1)

where the subscript i denotes the ith spacecraft in a group of spacecraft, \({{\varvec{e}}}_i\) is the Euler axis, \(\theta _i \) is the Euler principal angle, \({\varvec{q}_i} \in {\mathbb {R}^3}\), \({q_{0,i}} \in \mathbb {R}\) are the vector part and the scalar part of unit-quaternion \({\varvec{Q}_i}\), respectively, and satisfies the following constraint:

$$\begin{aligned} {{\varvec{Q}_i^\mathrm{T}}}{\varvec{Q}_i} = {{\varvec{q}_i^\mathrm{T}}}{\varvec{q}_i} + {\left( {{q_{0,i}}} \right) ^2} = 1 \end{aligned}$$

To avoid the ambiguity in the quaternion representation that allows \({\varvec{Q}_i}\) and \(-{\varvec{Q}_i}\) to represent the same rotation, the canonical quaternion \({{\varvec{P}}_i}\) is used [38].

$$\begin{aligned} {\varvec{P}_i} = {\mathop {\mathrm{sgn}}} \left( {{q_{0,i}}} \right) {\varvec{Q}_i} \buildrel \over = \left( {\begin{array}{c} {\varvec{p}_i}\\ {{p_{0,i}}} \end{array}} \right) , \end{aligned}$$
(2)

where \(\varvec{p}_{i} \in {\mathbb {R}^3}\) and \({p_{0,i} } \in {\mathbb {R}} \) denote the vector part and scalar part of the canonical quaternion, respectively.

$$\begin{aligned} {\mathop {\mathrm{sgn}}} \left( {q_{0,i}} \right) = \left\{ {\begin{array}{cc} 1&{}{{\mathrm{if}}\;{q_{0,i}} \ge 0}\\ { - 1}&{}{{\mathrm{if}}\;{q_{0,i}} < 0} \end{array}} \right. \end{aligned}$$
(3)

The dynamics of rigid spacecraft is described as

$$\begin{aligned}&{\varvec{J}_i}{\dot{\varvec{\omega }}_i} = -\,\varvec{\omega }_i^ \times {\varvec{J}_i}{\varvec{\omega }_i} + {\varvec{u}_i}+ {\varvec{d}_i} \end{aligned}$$
(4)
$$\begin{aligned}&{\dot{\varvec{p}}_i} = \frac{1}{2}\left( {\varvec{p}_i^ \times + {p_{0,i}}{{\varvec{I}}_3}} \right) {\varvec{\omega }_i} \end{aligned}$$
(5)
$$\begin{aligned}&{\dot{p}_{0,i}} = - \frac{1}{2}\varvec{p}_i^{\mathrm{T}}{\varvec{\omega }_i} \end{aligned}$$
(6)

where \({\varvec{\omega }_i} \in {\mathbb {R}^3}\) denotes the angular velocity of the ith spacecraft with respect to the reference frame \(\varvec{{\mathcal {D}}}\), \({\varvec{J}_i}{ = }\varvec{J}_i^{\mathrm{T}} \in {\mathbb {R}^{3 \times 3}}\) denotes the positive definite inertia matrix of the ith spacecraft, \({\varvec{u}_i} \in {\mathbb {R}^3}\) denotes the control torque of the ith spacecraft, and \({{\varvec{I}}_3}\) denotes a \(3 \times 3\) identity matrix. The notation \({\varvec{a}^ \times }\) associated with the vector \(\varvec{a} = {[\begin{array}{ccc} {{a_1}}&{{a_2}}&{{a_3}} \end{array}]^\mathrm{T}}\) is employed to denote the skew-symmetric matrix as below:

$$\begin{aligned} {\varvec{a}^ \times } = \left[ {\begin{array}{ccc} 0&{}{ - {a_3}}&{}{{a_2}}\\ {{a_3}}&{}0&{}{ - {a_1}}\\ { - {a_2}}&{}{{a_1}}&{}0 \end{array}} \right] \end{aligned}$$

Let the canonical quaternion \({{\varvec{P}}_d} = {\left[ {\begin{array}{cc}{{\varvec{p}}_d^\mathrm{T}},&{{p_{0,d}}}\end{array}} \right] ^\mathrm{T}}\) and \({{\varvec{\omega }}_d} \in {\mathbb {R}^3}\) denotes the desired attitude and angular velocity, respectively. The canonical quaternion error \({{\varvec{P}}_{ei}} = {\left[ {\begin{array}{cc}{{\varvec{p}}_{ei}^\mathrm{T}},&{{p_{0,ei}}}\end{array}} \right] ^\mathrm{T}}\) describes the discrepancy between the actual canonical quaternion \({{\varvec{P}}_i}\) and the desired canonical quaternion \({{\varvec{P}}_d}\). The canonical quaternion error \({{\varvec{P}}_{ei}}\) can be given by [48]

$$\begin{aligned} {{\varvec{P}}_{ei}} = {\varvec{P}}_d {{\varvec{P}}_i} = \left( {\begin{array}{c} {{p_{0,d}}{{\varvec{p}}_i} - {p_{0,i}}{{\varvec{p}}_d} + {\varvec{p}}_d^ \times {{\varvec{p}}_i}}\\ {{p_{0,d}}{p_{0,i}} + {\varvec{p}}_d^\mathrm{T}{{\varvec{p}}_i}} \end{array}} \right) \end{aligned}$$
(7)

where \({\varvec{P}}_d^ * = {\left[ {\begin{array}{cc} { - {\varvec{p}}_d^\mathrm{T}}&{{p_{0,d}}} \end{array}} \right] ^\mathrm{T}}\) is the conjugate of the canonical quaternion \({\varvec{P}}_d\).

The rigid spacecraft attitude tracking error dynamics is described as follows:

$$\begin{aligned}&{\varvec{J}_i}{\dot{\varvec{\omega }}_{ei}} = - \varvec{\omega }_i^ \times {\varvec{J}_i}{\varvec{\omega }_i} + {\varvec{J}_i}\left( \varvec{\omega }_{ei}^ \times {\varvec{R}}\left( {{{\varvec{p}}_{ei}}} \right) {\varvec{\omega }_d} \right. \nonumber \\&\quad - \left. {\varvec{R}}\left( {{{\varvec{p}}_{ei}}} \right) {{\dot{\varvec{\omega }}}_d} \right) + {\varvec{u}_i} + {{\varvec{d}}_i} \end{aligned}$$
(8)
$$\begin{aligned}&{\dot{\varvec{p}}_{ei}} = \frac{1}{2}\left( {{{\varvec{p}}_{ei}}^ \times + {p_{0,ei}}{{\varvec{I}}_3}} \right) {\varvec{\omega }_{ei}} \end{aligned}$$
(9)
$$\begin{aligned}&{\dot{p}_{0.ei}} = - \frac{1}{2}\varvec{p}_{ei}^{\mathrm{T}}{\varvec{\omega }_{ei}} \end{aligned}$$
(10)

where \({{\varvec{\omega }}_{ei}} ={{\varvec{\omega }}_i} - {\varvec{R}}\left( {{{\varvec{p}}_{ei}}} \right) {{\varvec{\omega }}_d}\), \({\varvec{R}}\left( {{{\varvec{p}}_{ei}}} \right) \) is the rotation matrix from the reference frame \(\varvec{{\mathcal {D}}}\) to the body-fixed frame \(\varvec{{\mathcal {B}}}\) and is given by

$$\begin{aligned} {\varvec{R}}\left( {{{\varvec{p}}_{ei}}} \right) =\left( {p_{0,ei}^2 - {\varvec{p}}_{ei}^\mathrm{T}{{\varvec{p}}_{ei}}} \right) {{\varvec{I}}_3} + 2{{\varvec{p}}_{ei}}{\varvec{p}}_{ei}^\mathrm{T} - 2{p_{0,ei}}{\varvec{p}}_{ei}^ \times \end{aligned}$$

The following assumptions are made about attitude dynamics systems:

Assumption 1

The inertia matrix \({{\varvec{J}}_i} = {{\bar{\varvec{J}}}_i} + \varDelta {{\varvec{J}}_i}\), where \({{\bar{\varvec{J}}}_i}\), \(\varDelta {{\varvec{J}}_i}\) are the nominal part and uncertain part of inertia matrix, respectively. \(\varDelta {{\varvec{J}}_i}\) satisfies that \(\left\| {\varDelta {{\varvec{J}}_i}} \right\| \le {c_J}\), where \({c_J}\) is an unknown positive constant, and \(\left\| . \right\| \) denotes the standard Euclidean vector norm and induced matrix norm.

Assumption 2

The external disturbances \({{\varvec{d}}_i}\) are assumed to be bounded, i.e., \(\left\| {{{\varvec{d}}_i}} \right\| \le {d_m}\), where \({d_m}\) is an unknown positive constant.

Assumption 3

The desired angular velocity of spacecraft \({{\varvec{\omega }}_d}\) and its time derivative \({{\dot{\varvec{\omega }}}_d}\) are assumed to be bounded, that is \(\left\| {{{\varvec{\omega }}_d}} \right\| \le {c_\omega }\) and \(\left\| {{{{\dot{\varvec{\omega }}}}_d}} \right\| \le {c_{d\omega }}\), where \({c_\omega }\) and \({c_{d\omega }}\) are unknown positive constants.

Assumption 4

The control torque \({{\varvec{u}}_i}\) provided by actuator is assumed to be bounded, i.e., \(\left\| {{{\varvec{u}}_i}} \right\| \le {u_m}\), where \(u_m\) is an unknown positive constant.

Fig. 1
figure 1

Structure of the event-triggered control system for attitude synchronization

2.2 Algebraic graph theory

A directed graph \({{\varvec{G}}}\) consists of a finite nonempty set of vertices \({\varvec{N}} = \left\{ {{n_1},{n_2},...,{n_n}} \right\} \), a set of edges \({\varvec{E}} \subseteq {\varvec{N}} \times {\varvec{N}}\) and a weighted adjacency matrix \({\varvec{A}} = \left[ {{{{a}}_{ij}}} \right] \in {\mathbb {R}^{n \times n}}\). \(({{{n}}_i},{{{n}}_j}) \in {\varvec{E}}\) denotes that the node \({{{n}}_i}\) can obtain the information of the node \({{{n}}_j}\). In the spacecraft attitude synchronization application, \(({{{n}}_i},{{{n}}_j}) \in {\varvec{E}}\) denotes that the ith spacecraft can obtain the information of the jth spacecraft, and \({N_i}\) denotes the set of the neighboring spacecraft, which the ith spacecraft can communicate with. A graph is defined to be undirected with the property that for any \(({{{n}}_i},{{{n}}_j}) \in {\varvec{E}}\), the corresponding arc \(({{{n}}_j},{{{n}}_i}) \in {\varvec{E}}\) exists, \(i \ne j,\;\;i,\;{{j}} = 1,2, \ldots ,n\). An undirected graph is connected if any two distinct nodes of the graph can be connected via a path that follows the edges of the graph. The Laplacian matrix \({\varvec{L}} = {\left[ {{l_{ij}}} \right] _{n \times n}}\) is defined as \({l_{ii}} = \sum \nolimits _{j = 1,j \ne i}^n {{a_{ij}}} \) and \({l_{ij}} = - {a_{ij}}\), \(i \ne j\). All eigenvalues of L are nonnegative if \({{\varvec{G}}_n}\) is undirected.

The weighted parameter \({a_{ij}}\) can be given by

$$\begin{aligned} \left\{ \begin{array}{ll} {a_{ij}} > 0&{}\quad {{\mathrm{if} }} \ ({n_i},{n_j}) \in {\varvec{E}}\\ {a_{ij}} = 0&{}\quad {{\mathrm{otherwise}}} \end{array} \right. , \quad i,\;j = 1,2, \ldots ,n \end{aligned}$$
(11)

The following assumption is made about the communication topology in a group of spacecraft.

Assumption 5

The communication topology in the group of spacecraft is assumed to be undirected and connected.

3 Problem formulation

The objective of this paper is to propose an event-triggered control scheme for attitude synchronization tracking to reduce the information to be transmitted over the inter-spacecraft communication channel and ensure that all the spacecraft can align their attitudes and track the desired attitude trajectory simultaneously.

The structure of the proposed event-triggered control scheme with communication network among the spacecraft is shown in Fig. 1. In the proposed scheme, a trigger mechanism is included in the spacecraft to determine the event-triggered instants by evaluating the event-triggered condition. In the event of the violation of the event-triggered condition, the sliding mode vector \({\varvec{s}_i}\) defined in (12) of the ith spacecraft is transmitted to its neighboring spacecraft. When the neighboring spacecraft of the ith spacecraft receive the new sliding mode vector \({\varvec{s}_i}(t_{{k_i}}^i)\), they update their own control input. The zero-order holds are used to hold the last transmitted sliding mode vector \({\varvec{s}_i}(t_{{k_i}}^i)\) for the neighboring spacecraft of the ith spacecraft at the controller until the next transmission is received.

Let \(\left\{ {t_{{k_i}}^i} \right\} _{{k_i} = 1}^\infty \) be the sequence of triggering instants of the ith spacecraft at which the sliding mode vector \({\varvec{s}_i}\) is transmitted. The classical periodic implementation or sampled-data system updates the control inputs in a periodic manner with execution instant \(t_{{k_i+1}}^i = t_{{k_i}}^i + \delta t\) for the constant time period \(\delta t > 0\). However, in event-triggered control system, the sampling period is not constant and it is denoted by \(T_{{k_i}}^i \buildrel \varDelta \over = t_{{k_i} + 1}^i - t_{{k_i}}^i\) which is called as inter -event time. Once the control inputs are updated, it is held constant till the next instant. The event-triggering instants \(t_{{k_i}}^i\) are decided by comparing the event-triggered error \({\varvec{\delta }_i}\left( t \right) \) for all \(t \in {\mathbb {R}^ + }\) to the state-dependent threshold.

4 Event-triggered controller design

In this section, an event-triggered controller is proposed for the attitude synchronization tracking system described in (810) to reduce inter-spacecraft communication pressure.

To design the event-triggered attitude synchronization control scheme, the sliding mode vector is defined as follows:

$$\begin{aligned} \varvec{s}_i^{} = \varvec{\omega }_{ei}^{} + k{{\varvec{p}}_{ei}} \end{aligned}$$
(12)

where k is a positive constant.

In view of (810) and Assumption 1, it is obtained that

$$\begin{aligned} \bar{\varvec{J}}_i^{}\dot{\varvec{s}}_i^{} = {{\varvec{L}}_i} + {\varvec{u}_i} + {{\varvec{\varepsilon }}_i} \end{aligned}$$
(13)

with

$$\begin{aligned} {{\varvec{L}}_i}= & {} - \,\varvec{\omega }_i^ \times {\bar{\varvec{J}}_i}{\varvec{\omega }_i} + \bar{\varvec{J}}_i^{}\left( {\varvec{\omega }_{ei}^ \times {\varvec{R}}\left( {{{\varvec{p}}_{ei}}} \right) {\varvec{\omega }_d} - {\varvec{R}}\left( {{{\varvec{p}}_{ei}}} \right) {{\dot{\varvec{\omega }}}_d}} \right) \nonumber \\&+ \frac{1}{2} k{\bar{\varvec{J}}_i} \left( {{{\varvec{p}}_{ei}}^ \times + {p_{0,ei}}{{\varvec{I}}_3}} \right) {\varvec{\omega }_{ei}} \end{aligned}$$
(14)
$$\begin{aligned} {{\varvec{\varepsilon }}_i}= & {} {{\varvec{d}}_i} - \varDelta {\varvec{J}_i}\varvec{\dot{\omega }}_{ei} - \varvec{\omega }_i^ \times \varDelta {\varvec{J}_i}{\varvec{\omega }_i} \nonumber \\&+ \varDelta {\varvec{J}_i}\left( {\varvec{\omega }_{ei}^ \times {\varvec{R}}\left( {{{\varvec{p}}_{ei}}} \right) {\varvec{\omega }_d} - {\varvec{R}}\left( {{{\varvec{p}}_{ei}}} \right) {{\dot{\varvec{\omega }}}_d}} \right) \end{aligned}$$
(15)

\({{\varvec{\varepsilon }}_i}\) is a lumped term consisting of two parts: system uncertainties and external disturbances. Note that\(\left\| {{{\varvec{p}}_{ei}}^ \times + {p_{0,ei}}{{\varvec{I}}_3}} \right\| =1\) and \(\left\| {{\varvec{R}}\left( {{{\varvec{p}}_{ei}}} \right) } \right\| =1\). Then, under Assumptions 14, it is obtained that

$$\begin{aligned} \left\| {{{\varvec{\varepsilon }}_i}} \right\| \le {c_{i,0}} + {c_{i,1}}\left\| {{\varvec{\omega }_i}} \right\| + {c_{i,2}}\left\| {{\varvec{\omega }_i}} \right\| _{}^2 \le {c_i}{\varPhi _i} \end{aligned}$$
(16)

where \({c_{i,0}}\) is the upper bound of constant term, \({c_{i,1}}\) is the upper bound of first-order coefficient of \(\left\| {{\varvec{\omega }_i}} \right\| \), \({c_{i,2}}\) is the upper bound of second-order coefficient of \(\left\| {{\varvec{\omega }_i}} \right\| \), \({c_i}={\mathrm{max}}[{c_{i,0}},\;{c_{i,1}},\;{c_{i,2}}]\) and \({\varPhi _i} = 1 + \left\| {{\varvec{\omega }_i}} \right\| + \left\| {{\varvec{\omega }_i}} \right\| _{}^2\).

Let \({\hat{c}_i}\) denote the estimate of \({c_i}\). Then, the estimate errors are defined as \({\tilde{c}_i} = {\hat{c}_i} - {c_i}\).

The adaptation law is defined as

$$\begin{aligned} {\dot{\hat{c}}}_i= & {} - {\alpha _{i,1}}{\hat{c}_i} + {\alpha _{i,2}}\frac{{{\varPhi _i}{{\left\| {{{\varvec{s}}_i}} \right\| }^2}}}{{\left\| {{{\varvec{s}}_i}} \right\| + {\upsilon _i}}} \end{aligned}$$
(17)
$$\begin{aligned} \upsilon _i= & {} \frac{{{\mu _i}}}{{1 + {\varPhi _i}}} \end{aligned}$$
(18)

where \({\alpha _{i,1}}\), \({\alpha _{i,2}}\) and \({\mu _i}\) are positive constants and chosen by designer.

Event-triggered error is defined as

$$\begin{aligned} {\varvec{\delta }_i}\left( t \right) ={\varvec{s}_i}\left( {t_{{k_i}}^i} \right) - {\varvec{s}_i}\left( t \right) ,\quad t \in \left[ {t_{{k_i}}^i,\;t_{{k_i} + 1}^i} \right) \end{aligned}$$
(19)

The triggering function for the ith spacecraft in a group of spacecraft is given by

$$\begin{aligned} {f_i}\left( {t,{\varvec{\delta }_i}\left( t \right) } \right) = \left\| {{\varvec{\delta }_i}\left( t \right) } \right\| - h \left\| {{\varvec{s}_i}\left( t \right) } \right\| \end{aligned}$$
(20)

where h is a positive constant and chosen by designer.

According to the proposed event-triggered strategy, the event-triggered function (20) should be kept as

$$\begin{aligned} \left\| {{\varvec{\delta }_i}\left( t \right) } \right\| < h \left\| {{\varvec{s}_i}\left( t \right) } \right\| \end{aligned}$$
(21)

The sequence of event-triggered time, \(0< t_0^i< t_1^i< t_2^i < \cdots \), is defined iteratively as

$$\begin{aligned}&t_{{k_i} + 1}^i = \min \left\{ {\left. {t> t_{{k_i}}^i} \right| \;\left\| {{\varvec{\delta }_i}\left( t \right) } \right\| \ge h \left\| {{\varvec{s}_i}\left( t \right) } \right\| \;\; > 0} \right\} ,\;\;\nonumber \\&\quad {k_i} = 0,1,2, \ldots \end{aligned}$$
(22)

Remark 1

Compared with the general event-triggered condition, such as \(\left\| \varvec{\delta }_i(t) \right\| > \left\| \sum _{j=1}^N a_{ij} [ s_j(t_{k_j}^j)\right. \left. - s_i(t_{k_i}^i)]\right\| \), which uses the information of neighbors, the proposed event-triggered condition for each spacecraft only uses attitude information of itself to determine the event-triggered time. The information of neighbors transmitted among spacecraft will introduce errors due to the event-triggered inter-spacecraft communication. The use of inaccurate neighbors information will introduce the error of the event-triggered condition. As a result, the attitude synchronization control performance will be affected. The problem can be avoided by the proposed event-triggered condition.

The control law for attitude synchronization and tracking is proposed as

$$\begin{aligned}&{\varvec{u}_i}\left( t \right) = - {{\varvec{L}}_i} - {b_i}{\varvec{s}_i} \nonumber \\&\qquad \qquad - \sum \limits _{j = 1}^n {a_{ij}^{}\left[ {{\varvec{s}_i} - \varvec{s}_j^{}\left( {t_{{k_j}}^j} \right) } \right] } - \frac{{{{\hat{c}}_i}{\varPhi _i}{\varvec{s}_i}}}{{\left\| {{{\varvec{s}}_i}} \right\| + {\upsilon _i}}} \end{aligned}$$
(23)

where \({b_i} > \sum \nolimits _{j = {\mathrm{1}}}^n {{a_{ij}}h } \) is a positive constant, \({\varvec{s}_j}\left( {t_{{k_j}}^j} \right) \) is the latest broadcast sliding mode vector of the jth spacecraft, and \(t_{{k_j}}^j\) is the latest event-triggered time of the jth spacecraft, \({k_j} = 0,1,2, \ldots \).

Remark 2

When the event-triggered condition of the jth spacecraft is violated, the jth spacecraft broadcasts its current sliding mode vector \(\varvec{s}_j^{}\left( {t_{{k_j}}^j} \right) \) to its neighboring spacecraft. When the neighbors of the jth spacecraft, such as the ith spacecraft, receive the sliding mode vector \(\varvec{s}_j^{}\left( {t_{{k_j}}^j} \right) \), they update their own control input immediately. If the event-triggered condition is not violated, there will be no inter-spacecraft communication among spacecraft until the next triggering instant.

Remark 3

The control law in (23) contains four parts: \({{\varvec{L}}_i}\), \({b_i}{\varvec{s}_i}\), \(\sum \nolimits _{j = 1}^n {a_{ij}^{}\left[ {{\varvec{s}_i} - \varvec{s}_j^{}\left( {t_{{k_j}}^j} \right) } \right] } \) and \(\frac{{{{\hat{c}}_i}{\varPhi _i}{\varvec{s}_i}}}{{\left\| {{{\varvec{s}}_i}} \right\| + {\upsilon _i}}}\). \({{\varvec{L}}_i}\) is the equivalent control to ensure \({\dot{\varvec{s}}_i} \rightarrow 0\) for the nominal system with the assumption that system model is known accurately and external disturbances are zero. \({b_i}{\varvec{s}_i}\) determines the dynamic response of attitude tracking error of the system. Similarly, \(\sum \nolimits _{j = 1}^n {a_{ij}^{}\left[ {{\varvec{s}_i} - \varvec{s}_j^{}\left( {t_{{k_j}}^j} \right) } \right] } \) determines the dynamic response of attitude synchronization error of the system. \(\frac{{{{\hat{c}}_i}{\varPhi _i}{\varvec{s}_i}}}{{\left\| {{{\varvec{s}}_i}} \right\| + {\upsilon _i}}}\) ensures the robustness of attitude control system against the event-triggered error, model uncertainties and external disturbances.

The following theorem is obtained for the resulting closed-loop system.

Theorem 1

Consider multi-spacecraft attitude synchronization tracking systems described by (810). If Assumptions 15 and \({b_i} > \sum \nolimits _{j = 1}^n {{a_{ij}}h } ,\;i = 1, \ldots ,n\) are valid, then the attitude synchronization errors and tracking errors will converge to a small set containing the origin under the parameter adaptation law (17) and the distributed adaptive sliding mode control law (23), that is,

$$\begin{aligned} \mathop {{\mathrm{lim}}}\limits _{t \rightarrow \infty } \left\| {{\varvec{\omega }}_{ei}^{}} \right\|\le & {} 2{\varDelta _i}, \mathop {{\mathrm{lim}}}\limits _{t \rightarrow \infty } \left\| {{\varvec{p}}_{ei}^{}} \right\| \le {\varDelta _i},\mathop {{\mathrm{lim}}}\limits _{t \rightarrow \infty } \left\| {{\varvec{\omega }}_{ij}^{}} \right\| \\\le & {} 4{\varDelta _i}, \mathop {{\mathrm{lim}}}\limits _{t \rightarrow \infty } \left\| {{\varvec{p}}_{ij}^{}} \right\| \le 2{\varDelta _i},\;\;\;i = 1, \ldots ,n \end{aligned}$$

where \({\varDelta _i}\) is an adjustable positive constant. Moreover, the inter-execution time \(T_{{k_i}}^i\) is lower bounded by a positive value.

Proof

The candidate Lyapunov function is chosen as

$$\begin{aligned} V = {V_1} + {V_2} \end{aligned}$$
(24)

with

$$\begin{aligned} {V_1}= & {} \frac{1}{2}\sum \limits _{i = 1}^n {{\varvec{s}}_i^\mathrm{T}{{{\bar{\varvec{J}}}}_i}{{\varvec{s}}_i}} \end{aligned}$$
(25)
$$\begin{aligned} {V_2}= & {} \frac{1}{2}\sum \limits _{i = 1}^n {\alpha _{i,2}^{ - 1}\tilde{c}_i^2} \end{aligned}$$
(26)

Substituting (13) into the time derivative of \({V_1}\) leads to

$$\begin{aligned} \begin{aligned} {{\dot{V}}_1}&= \sum \limits _{i = 1}^n {{\varvec{s}}_i^\mathrm{T}{{{\bar{\varvec{J}}}}_i}{{{\dot{\varvec{s}}}}_i}} \\&= \sum \limits _{i = 1}^n {{\varvec{s}}_i^\mathrm{T}\left( {{{\varvec{L}}_i} + {{\varvec{u}}_i} + {{\varvec{\varepsilon }}_i}} \right) } \end{aligned} \end{aligned}$$
(27)

Substituting (23) into the above equation yields

$$\begin{aligned} \begin{aligned} {{\dot{V}}_1}&= \sum \limits _{i = 1}^n {{\varvec{s}}_i^\mathrm{T}\left( {{{\varvec{L}}_i} + {{\varvec{u}}_i} + {{\varvec{\varepsilon }}_i}} \right) } \\&= \sum \limits _{i = 1}^n {\varvec{s}}_i^\mathrm{T}\left( - {b_i}{{\varvec{s}}_i} - \sum \limits _{j = 1}^n {a_{ij}^{}\left[ {{{\varvec{s}}_i} - {\varvec{s}}_j^{}\left( {t_{{k_j}}^j} \right) } \right] } \right. \\&\quad \left. +\, {{\varvec{\varepsilon }}_i} - \frac{{{{\hat{c}}_i}{\varPhi _i}{{\varvec{s}}_i}}}{{\left\| {{{\varvec{s}}_i}} \right\| + {\upsilon _i}}} \right) \end{aligned} \end{aligned}$$
(28)

From the definition of event-triggered error (19), it follows that

$$\begin{aligned} \begin{aligned} {{\dot{V}}_1}&= \sum \limits _{i = 1}^n {\varvec{s}}_i^\mathrm{T}\left( - {b_i}{{\varvec{s}}_i} - \sum \limits _{j = 1}^n {a_{ij}^{}\left[ {{{\varvec{s}}_i} - {\varvec{s}}_j^{}\left( {t_{{k_j}}^j} \right) } \right] }\right. \\&\quad \left. + {{\varvec{\varepsilon }}_i} - \frac{{{{\hat{c}}_i}{\varPhi _i}{{\varvec{s}}_i}}}{{\left\| {{{\varvec{s}}_i}} \right\| + {\upsilon _i}}} \right) \\&= \sum \limits _{i = 1}^n {\varvec{s}}_i^\mathrm{T}\left( - {b_i}{{\varvec{s}}_i} - \sum \limits _{j = 1}^n {a_{ij}^{}\left[ {{{\varvec{s}}_i} - \left( {{{\varvec{e}}_j} + {{\varvec{s}}_j}} \right) } \right] } \right. \\&\quad \left. + {{\varvec{\varepsilon }}_i} - \frac{{{{\hat{c}}_i}{\varPhi _i}{{\varvec{s}}_i}}}{{\left\| {{{\varvec{s}}_i}} \right\| + {\upsilon _i}}} \right) \\&=\sum \limits _{i = 1}^n \left( - \left( {{b_i} + \sum \limits _{j = 1}^n {a_{ij}^{}} } \right) {\varvec{s}}_i^\mathrm{T}{{\varvec{s}}_i} \right. \\&\quad + \sum \limits _{j = 1}^n {a_{ij}^{}\left( {{\varvec{s}}_i^\mathrm{T}{{\varvec{e}}_j} + {\varvec{s}}_i^\mathrm{T}{{\varvec{s}}_j}} \right) } \\&\quad \left. + {\varvec{s}}_i^\mathrm{T}{{\varvec{\varepsilon }}_i} - \frac{{{{\hat{c}}_i}{\varPhi _i}{\varvec{s}}_i^\mathrm{T}{{\varvec{s}}_i}}}{{\left\| {{{\varvec{s}}_i}} \right\| + {\upsilon _i}}} \right) \\&\le \sum \limits _{i = 1}^n \left( - \left( {{b_i} + \sum \limits _{j = 1}^n {a_{ij}^{}} } \right) {\varvec{s}}_i^\mathrm{T}{{\varvec{s}}_i} \right. \\&\quad + \sum \limits _{j = 1}^n {a_{ij}^{}\left\| {{{\varvec{s}}_i}} \right\| \left( {\left\| {{{\varvec{e}}_j}} \right\| + \left\| {{{\varvec{s}}_j}} \right\| } \right) } \\&\quad \left. + {\varvec{s}}_i^\mathrm{T}{{\varvec{\varepsilon }}_i} - \frac{{{{\hat{c}}_i}{\varPhi _i}{\varvec{s}}_i^\mathrm{T}{{\varvec{s}}_i}}}{{\left\| {{{\varvec{s}}_i}} \right\| + {\upsilon _i}}} \right) \end{aligned} \end{aligned}$$
(29)

From event-triggered function (21), it follows that

$$\begin{aligned}&{{\dot{V}}_1} \le \sum \limits _{i = 1}^n \left( - \left( {{b_i} + \sum \limits _{j = 1}^n {a_{ij}^{}} } \right) {\varvec{s}}_i^\mathrm{T}{{\varvec{s}}_i}\right. \nonumber \\&\qquad + \sum \limits _{j = 1}^n {a_{ij}^{}\left\| {{{\varvec{s}}_i}} \right\| \left( {\left\| {{{\varvec{e}}_j}} \right\| + \left\| {{{\varvec{s}}_j}} \right\| } \right) } \nonumber \\&\qquad \left. +\, {\varvec{s}}_i^\mathrm{T}{{\varvec{\varepsilon }}_i} - \frac{{{{\hat{c}}_i}{\varPhi _i}{\varvec{s}}_i^\mathrm{T}{{\varvec{s}}_i}}}{{\left\| {{{\varvec{s}}_i}} \right\| + {\upsilon _i}}} \right) \nonumber \\&\quad \le \sum \limits _{i = 1}^n \left( - \left( {{b_i} + \sum \limits _{j = 1}^n {a_{ij}^{}} } \right) {\varvec{s}}_i^\mathrm{T}{{\varvec{s}}_i}\right. \nonumber \\&\qquad + \sum \limits _{j = 1}^n {a_{ij}^{}\left( {1 + h } \right) \left\| {{{\varvec{s}}_i}} \right\| \left\| {{{\varvec{s}}_j}} \right\| } \nonumber \\&\qquad \left. + \left\| {{{\varvec{s}}_i}} \right\| \left\| {{{\varvec{\varepsilon }}_i}} \right\| - \frac{{{{\hat{c}}_i}{\varPhi _i}{\varvec{s}}_i^\mathrm{T}{{\varvec{s}}_i}}}{{\left\| {{{\varvec{s}}_i}} \right\| + {\upsilon _i}}} \right) \end{aligned}$$
(30)

Note that

$$\begin{aligned} \begin{aligned}&\sum \limits _{i = 1}^n \left( - \left( {{b_i} + \sum \limits _{j = 1}^n {a_{ij}^{}} } \right) {\varvec{s}}_i^\mathrm{T}{{\varvec{s}}_i} \right. \\&\qquad \left. + \sum \limits _{j = 1}^n {a_{ij}^{}\left( {1 + h } \right) \left\| {{{\varvec{s}}_i}} \right\| \left\| {{{\varvec{s}}_j}} \right\| } \right) \\&\quad \le - \sum \limits _{i = 1}^n {\left( {{b_i} + \sum \limits _{j = 1}^n {a_{ij}^{}} } \right) \left\| {{{\varvec{s}}_i}} \right\| _{}^2}\\&\qquad + \frac{1}{2}\sum \limits _{i = 1}^n {\sum \limits _{j = 1}^n {a_{ij}^{}\left( {1 + h } \right) \left( {\left\| {{{\varvec{s}}_i}} \right\| _{}^2 + \left\| {{{\varvec{s}}_j}} \right\| _{}^2} \right) } } \end{aligned} \end{aligned}$$
(31)

where \(\left\| {{{\varvec{s}}_i}} \right\| \left\| {{{\varvec{s}}_j}} \right\| \le \frac{1}{2}\left( {\left\| {{{\varvec{s}}_i}} \right\| _{}^2 + \left\| {{{\varvec{s}}_j}} \right\| _{}^2} \right) \) is applied.

According to Assumption 5, it follows that

$$\begin{aligned} \sum \limits _{i = 1}^n {\sum \limits _{j = 1}^n {a_{ij}^{}\left\| {{{\varvec{s}}_i}} \right\| _{}^2} } = \sum \limits _{i = 1}^n {\sum \limits _{j = 1}^n {a_{ij}^{}\left\| {{{\varvec{s}}_j}} \right\| _{}^2} } \end{aligned}$$
(32)

Substituting (32) into (31) yields

$$\begin{aligned}&- \sum \limits _{i = 1}^n {\left( {{b_i} + \sum \limits _{j = 1}^n {a_{ij}^{}} } \right) \left\| {{{\varvec{s}}_i}} \right\| _{}^2} \nonumber \\&\qquad + \frac{1}{2}\sum \limits _{i = 1}^n {\sum \limits _{j = 1}^n {a_{ij}^{}\left( {1 + h } \right) \left( {\left\| {{{\varvec{s}}_i}} \right\| _{}^2 + \left\| {{{\varvec{s}}_j}} \right\| _{}^2} \right) } } \nonumber \\&\quad = - \sum \limits _{i = 1}^n {\left( {{b_i} + \sum \limits _{j = 1}^n {a_{ij}^{}} } \right) \left\| {{{\varvec{s}}_i}} \right\| _{}^2} \nonumber \\&\qquad + \sum \limits _{i = 1}^n {\sum \limits _{j = 1}^n {a_{ij}^{}\left( {1 + h } \right) \left\| {{{\varvec{s}}_i}} \right\| _{}^2} } \nonumber \\&\quad = - \sum \limits _{i = 1}^n {\left( {{b_i} - \sum \limits _{j = 1}^n {h a_{ij}^{}} } \right) \left\| {{{\varvec{s}}_i}} \right\| _{}^2} \end{aligned}$$
(33)

Substituting (31) and (33) into (30) yields

$$\begin{aligned} \begin{aligned}&{\dot{V}_1} \le - \sum \limits _{i = 1}^n {\left( {{b_i} - \sum \limits _{j = 1}^n {h a_{ij}^{}} } \right) \left\| {{{\varvec{s}}_i}} \right\| _{}^2} \\&\quad + \sum \limits _{i = 1}^n {\left( {\left\| {{{\varvec{s}}_i}} \right\| \left\| {{{\varvec{\varepsilon }}_i}} \right\| - \frac{{{{\hat{c}}_i}{\varPhi _i}\left\| {{{\varvec{s}}_i}} \right\| _{}^2}}{{\left\| {{{\varvec{s}}_i}} \right\| + {\upsilon _i}}}} \right) } \end{aligned} \end{aligned}$$
(34)

Substituting (16) into the above equation yields

$$\begin{aligned} \begin{aligned}&{{\dot{V}}_1} \le - \sum \limits _{i = 1}^n {\left( {{b_i} - \sum \limits _{j = 1}^n {h a_{ij}^{}} } \right) \left\| {{{\varvec{s}}_i}} \right\| _{}^2} \\&\quad + \sum \limits _{i = 1}^n {\left( {{c_i}{\varPhi _i}\left\| {{{\varvec{s}}_i}} \right\| - \frac{{{{\hat{c}}_i}{\varPhi _i}\left\| {{{\varvec{s}}_i}} \right\| _{}^2}}{{\left\| {{{\varvec{s}}_i}} \right\| + {\upsilon _i}}}} \right) } \\&= - \sum \limits _{i = 1}^n {\left( {{b_i} - \sum \limits _{j = 1}^n {h a_{ij}^{}} } \right) \left\| {{{\varvec{s}}_i}} \right\| _{}^2} \\&\quad + \sum \limits _{i = 1}^n {\left( {\frac{{{c_i}{\varPhi _i}\left\| {{{\varvec{s}}_i}} \right\| _{}^2 + {c_i}{\upsilon _i}{\varPhi _i}\left\| {{{\varvec{s}}_i}} \right\| - {{\hat{c}}_i}{\varPhi _i}\left\| {{{\varvec{s}}_i}} \right\| _{}^2}}{{\left\| {{{\varvec{s}}_i}} \right\| + {\upsilon _i}}}} \right) } \\&= - \sum \limits _{i = 1}^n {\left( {{b_i} - \sum \limits _{j = 1}^n {h a_{ij}^{}} } \right) \left\| {{{\varvec{s}}_i}} \right\| _{}^2} \\&\quad + \sum \limits _{i = 1}^n {\left( {\frac{{ - {{\tilde{c}}_i}{\varPhi _i}\left\| {{{\varvec{s}}_i}} \right\| _{}^2 + {c_i}{\upsilon _i}{\varPhi _i}\left\| {{{\varvec{s}}_i}} \right\| }}{{\left\| {{{\varvec{s}}_i}} \right\| + {\upsilon _i}}}} \right) } \end{aligned} \end{aligned}$$
(35)

Substituting (18) into the above equation yields

$$\begin{aligned} {\dot{V}_1}= & {} - \sum \limits _{i = 1}^n {\left( {{b_i} - \sum \limits _{j = 1}^n {h a_{ij}^{}} } \right) \left\| {{{\varvec{s}}_i}} \right\| _{}^2} \nonumber \\&\qquad + \sum \limits _{i = 1}^n {\left( {\frac{{ - {{\tilde{c}}_i}{\varPhi _i}\left\| {{{\varvec{s}}_i}} \right\| _{}^2 + {c_i}{\mu _i}\frac{{{\varPhi _i}}}{{1 + {\varPhi _i}}}\left\| {{{\varvec{s}}_i}} \right\| }}{{\left\| {{{\varvec{s}}_i}} \right\| + {\upsilon _i}}}} \right) } \nonumber \\ \end{aligned}$$
(36)

Note that \(\frac{{{\varPhi _i}}}{{{\varPhi _i} + 1}} \le 1\), it can be obtained from (36) that

$$\begin{aligned} \begin{aligned} {{\dot{V}}_1}&\le - \sum \limits _{i = 1}^n {\left( {{b_i} - \sum \limits _{j = 1}^n {h a_{ij}^{}} } \right) \left\| {{{\varvec{s}}_i}} \right\| _{}^2} \\&\quad + \sum \limits _{i = 1}^n {\left( {\frac{{ - {{\tilde{c}}_i}{\varPhi _i}\left\| {{{\varvec{s}}_i}} \right\| _{}^2 + {c_i}{\mu _i}\left\| {{{\varvec{s}}_i}} \right\| }}{{\left\| {{{\varvec{s}}_i}} \right\| + {\upsilon _i}}}} \right) } \\&\le - \sum \limits _{i = 1}^n {\left( {{b_i} - \sum \limits _{j = 1}^n {h a_{ij}^{}} } \right) \left\| {{{\varvec{s}}_i}} \right\| _{}^2} \\&\quad + \sum \limits _{i = 1}^n {\left( {{c_i}{\mu _i} - \frac{{{{\tilde{c}}_i}{\varPhi _i}\left\| {{{\varvec{s}}_i}} \right\| _{}^2}}{{\left\| {{{\varvec{s}}_i}} \right\| + {\upsilon _i}}}} \right) } \end{aligned} \end{aligned}$$
(37)

Taking the time derivative of \({V_2}\) and applying the adaptive law (17) yields

$$\begin{aligned} \begin{aligned} {{\dot{V}}_2}&= \frac{1}{2}\sum \limits _{i = 1}^n {\alpha _{i2}^{ - 1}{{\tilde{c}}_i}{{\dot{\tilde{c}}}_i}} \\&= \sum \limits _{i = 1}^n {\left( { - \frac{{{\alpha _{i,1}}}}{{{\alpha _{i,2}}}}{{\tilde{c}}_i}{{\hat{c}}_i} + \frac{{{\varPhi _i}{{\tilde{c}}_i}{{\left\| {{{\varvec{s}}_i}} \right\| }^2}}}{{\left\| {{{\varvec{s}}_i}} \right\| + {\upsilon _i}}}} \right) } \end{aligned} \end{aligned}$$
(38)

Adding the above equation and (37) to (27) leads to

$$\begin{aligned}&\dot{V} \le - \sum \limits _{i = 1}^n {\left( {{b_i} - \sum \limits _{j = 1}^n {h a_{ij}^{}} } \right) \left\| {{{\varvec{s}}_i}} \right\| _{}^2} \nonumber \\&\quad + \sum \limits _{i = 1}^n {\left( {{c_i}{\mu _i} - \frac{{{\alpha _{i,1}}}}{{{\alpha _{i,2}}}}{{\tilde{c}}_i}{{\hat{c}}_i}} \right) } \end{aligned}$$
(39)

Note that

$$\begin{aligned} \begin{aligned} \frac{{{\alpha _{i,1}}}}{{{\alpha _{i,2}}}}{{\tilde{c}}_i}{{\hat{c}}_i}&=\frac{{{\alpha _{i,1}}}}{{{\alpha _{i,2}}}}\left( {{{\hat{c}}_i} - {c_i}} \right) {{\hat{c}}_i}\\&= \frac{{{\alpha _{i,1}}}}{{2{\alpha _{i,2}}}}\left[ {{{\left( {{{\hat{c}}_i} - {c_i}} \right) }^2} + \left( {\hat{c}_i^2 - c_i^2} \right) } \right] \\&\ge \frac{{{\alpha _{i,1}}}}{{2{\alpha _{i,2}}}}\tilde{c}_i^2 - \frac{{{\alpha _{i,1}}}}{{2{\alpha _{i,2}}}}c_i^2 \end{aligned} \end{aligned}$$
(40)

Substituting the above equation into (39) leads to

$$\begin{aligned} \begin{aligned} \dot{V}&\le \sum \limits _{i = 1}^n \left( - \left( {{b_i} - \sum \limits _{j = 1}^n {h a_{ij}^{}} } \right) \left\| {{{\varvec{s}}_i}} \right\| _{}^2 \right. \\&\quad \left. - \frac{{{\alpha _{i,1}}}}{{2{\alpha _{i,2}}}}\tilde{c}_i^2 + \frac{{{\alpha _{i,1}}}}{{2{\alpha _{i,2}}}}c_i^2 + {c_i}{\mu _i} \right) \\&\le - \eta V + \rho \end{aligned} \end{aligned}$$
(41)

or

$$\begin{aligned} \dot{V} \le - \sum \limits _{i = 1}^n {\left( {{b_i} - \sum \limits _{j = 1}^n {h a_{ij}^{}} } \right) \left\| {{{\varvec{s}}_i}} \right\| _{}^2} + \rho \end{aligned}$$
(42)

with

$$\begin{aligned} \begin{array}{l} \eta = {\mathrm{min}}\left\{ {{\eta _1}, \ldots ,{\eta _n}} \right\} \\ {\eta _i} = {\mathrm{min}}\left\{ {\frac{{{b_i} - \sum \limits _{j = 1}^n {h a_{ij}^{}} }}{{{\lambda _{{\mathrm{max}}}}\left( {{{{\bar{\varvec{J}}}}_i}} \right) }},\;{\alpha _{i,1}}} \right\} \\ \rho = \sum \limits _{i = 1}^n {\left( {\frac{{{\alpha _{i,1}}}}{{2{\alpha _{i,2}}}}c_i^2 + {c_i}{\mu _i}} \right) } < \infty \end{array} \end{aligned}$$

where \({\lambda _{{\mathrm{max}}}}\left( {{{{\bar{\varvec{J}}}}_i}} \right) \) is the maximum eigenvalue of matrix \({{\bar{\varvec{J}}}_i}\).

From (42), it shows that \(\dot{V} < 0\) is valid when the sliding mode vector \({{\varvec{s}}_i}\) is outside of the set

$$\begin{aligned} {\varvec{F}} = \left\{ {{{\varvec{s}}_i}{\mathrm{:}}\;\left\| {{{\varvec{s}}_i}} \right\| \le \sqrt{\frac{\rho }{{\left( {{b_i} - \sum \limits _{j = 1}^n {h a_{ij}^{}} } \right) }}} \buildrel \varDelta \over = {\varDelta _i}} \right\} \end{aligned}$$

which guarantees that the sliding mode vector eventually converges to the set F.

As proven in [47], the attitude synchronization and tracking errors will converge to a small set containing the origin when the sliding mode vector converges to a small set containing the origin, that is, \(\mathop {{\mathrm{lim}}}\limits _{t \rightarrow \infty } \left\| {{\varvec{\omega }}_{ei}^{}} \right\| \le 2{\varDelta _i}, \mathop {{\mathrm{lim}}}\limits _{t \rightarrow \infty } \left\| {{\varvec{p}}_{ei}^{}} \right\| \le {\varDelta _i},\mathop {{\mathrm{lim}}}\limits _{t \rightarrow \infty } \left\| {{\varvec{\omega }}_{ij}^{}} \right\| \le 4{\varDelta _i}, \mathop {{\mathrm{lim}}}\limits _{t \rightarrow \infty } \left\| {{\varvec{p}}_{ij}^{}} \right\| \le 2{\varDelta _i},\;\;\;i = 1, \ldots ,n\).

Consider the event-triggered error function (19). As \(t \in \left[ {t_{{k_i}}^i,\;t_{{k_i} + 1}^i} \right) \), it is obtained that

$$\begin{aligned} \begin{aligned} \left\| {{\varvec{\delta }_i}\left( t \right) } \right\| =&\left\| {{\varvec{s}_i}\left( t \right) - {\varvec{s}_i}\left( {t_{{k_i}}^i} \right) } \right\| \\ {{= }}&\left\| {\int _{t_{{k_i}}^i}^t {{\dot{\varvec{s}}_i}\left( \tau \right) {\mathrm{d}}\tau } } \right\| \\ \le&\int _{t_{{k_i}}^i}^t {\left\| {{\dot{\varvec{s}}_i}\left( \tau \right) } \right\| {\mathrm{d}}\tau } \end{aligned} \end{aligned}$$
(43)

Since \({\varvec{s}_i}\left( t \right) \) converges to a small set containing the origin, it follows that

$$\begin{aligned} \left\| {{\varvec{\delta }_i}\left( t \right) } \right\| \le \int _{t_{{k_i}}^i}^t {{b_s}{\mathrm{d}}\tau } = {b_s}\left( {t - t_{{k_i}}^i} \right) \end{aligned}$$
(44)

where \({b_s}\) is the upper bound of \(\left\| {\dot{\varvec{s}}_i}\left( t \right) \right\| \).

From (22), the triggering condition satisfies that

$$\begin{aligned} \mathop {\lim }\limits _{t \rightarrow t_{{k_{i + 1}}}^i} \left\| {{\varvec{\delta }_i}\left( t \right) } \right\| = h \left\| {{\varvec{s}_i}\left( {t_{{k_i} + 1}^i} \right) } \right\| > 0 \end{aligned}$$
(45)

It follows from (44) and (45) that

$$\begin{aligned} t_{{k_i} + 1}^i - t_{{k_i}}^i \ge \frac{{h \left\| {{\varvec{s}_i}\left( {t_{{k_i} + 1}^i} \right) } \right\| }}{{{b_s}}} > 0 \end{aligned}$$
(46)

Thus, the inter-event time intervals are strictly greater than zero. So the closed-loop system does not exhibit the Zeno behavior under the proposed event-triggered attitude synchronization control law. \(\square \)

5 Illustrative example

In this section, simulation results are presented to validate the performance of the propose event-triggered attitude synchronization control scheme. A formation with four spacecraft is chosen in the simulation, and the undirected inter-spacecraft communication topology is shown in Fig. 2.

Fig. 2
figure 2

Inter-spacecraft communication topology

Two cases are considered in this section for comparison. In Case A, the event-triggered attitude synchronization control in (23) is applied. In case B, traditional attitude synchronization control without event-triggered strategy as below is applied [46].

$$\begin{aligned} {\varvec{u}_i}\left( t \right) = - {\varvec{L}_i}\left( \cdot \right) - {b_i}{\varvec{s}_i} - \sum \limits _{j = 1}^n {{\varvec{a}_{ij}}\left( {{\varvec{s}_i}\left( t \right) - {\varvec{s}_j}\left( t \right) } \right) } \end{aligned}$$
(47)

In Case A, the parameters are chosen as \({h _i} = 0.2,{b_i} = 2,\;k = 1,\;{\alpha _{i,1}} = 0.0001,{\alpha _{i,2}} = 0.1\), \(\;{\mu _i} = 0.1,\;i = 1, \ldots ,4\). In Case B, the parameters are chosen as \({b_i} = 2,\;k = 1\). The other simulation parameters in two cases are identical and given as below.

Fig. 3
figure 3

Event-triggered error \(\left\| {{{\varvec{\delta }}_1}({{t}})} \right\| \) and threshold \(h \left\| {{\varvec{s}_1}\left( t \right) } \right\| \) of the first spacecraft in Case A

Fig. 4
figure 4

Control torques of the first spacecraft in Case A and B

Fig. 5
figure 5

Attitude tracking errors of the first spacecraft in Case A and B

Fig. 6
figure 6

Relative attitude errors of the second spacecraft with respect to the first spacecraft in Case A and B

Fig. 7
figure 7

Angular velocity tracking errors of the first spacecraft in Case A and B

Fig. 8
figure 8

Adaptive parameter \({\hat{c}_1}\) of the first spacecraft in Case A

The actual inertia matrix of spacecraft \({{\varvec{J}}_i}\) is assumed to be as follows (the unit is kg m\(^2\)):

$$\begin{aligned} {{\varvec{J}}_1}&= \left[ {\begin{array}{ccc} {115}&{}6&{}6\\ 6&{}{130}&{}7\\ 6&{}7&{}{175} \end{array}} \right] ,\; \\ {{\varvec{J}}_2}&= \left[ {\begin{array}{ccc} {113.3}&{}{6.18}&{}{6.18}\\ {6.18}&{}{133.9}&{}{7.21}\\ {6.18}&{}{7.21}&{}{180.25} \end{array}} \right] ,\;\\ {{\varvec{J}}_3}&= \left[ {\begin{array}{ccc} {108.9}&{}{5.94}&{}{5.94}\\ {5.94}&{}{128.7}&{}{6.93}\\ {5.94}&{}{6.93}&{}{173.25} \end{array}} \right] ,\;\\ {{\varvec{J}}_4}&= \left[ {\begin{array}{ccc} {112.2}&{}{6.12}&{}{6.12}\\ {6.12}&{}{132.6}&{}{7.14}\\ {6.12}&{}{7.14}&{}{178.5} \end{array}} \right] \end{aligned}$$

To validate the robustness of the proposed control laws, the nominal inertia matrices of the spacecraft are assumed to be as follows (the unit is kg m\(^2\)):

$$\begin{aligned} {{\bar{\varvec{J}}}_i} = {\mathrm{diag}}\left( {\begin{array}{ccc} {125}&{145}&{155} \end{array}} \right) ,\;i = 1, \ldots ,4 \end{aligned}$$

The initial values of attitude quaternion and angular velocity (the unit of which is deg/s) are assumed to be as follows:

$$\begin{aligned}&{{\varvec{P}}_1} = {\left[ {\begin{array}{cccc} 0&{ - 0.1}&{0.2}&{0.9747} \end{array}} \right] ^\mathrm{T}},\;{{\varvec{\omega }}_1} = {\left[ {\begin{array}{ccc} 0&0&0 \end{array}} \right] ^\mathrm{T}}\\&{{\varvec{P}}_2} = {\left[ {\begin{array}{cccc} {0.1}&0&{0.1}&{0.9899} \end{array}} \right] ^\mathrm{T}},\;{{\varvec{\omega }}_2} = {\left[ {\begin{array}{ccc} 0&0&0 \end{array}} \right] ^\mathrm{T}}\\&{{\varvec{P}}_3} = {\left[ {\begin{array}{cccc} 0&{0.1}&{ - 0.1}&{0.9899} \end{array}} \right] ^\mathrm{T}},\;{{\varvec{\omega }}_3} = {\left[ {\begin{array}{ccc} 0&0&0 \end{array}} \right] ^\mathrm{T}}\\&{{\varvec{P}}_4} = {\left[ {\begin{array}{cccc} { - 0.1}&0&{ - 0.2}&{0.9747} \end{array}} \right] ^\mathrm{T}},\;{{\varvec{\omega }}_4} = {\left[ {\begin{array}{ccc} 0&0&0 \end{array}} \right] ^\mathrm{T}}\\&{{\varvec{P}}_d} = {\left[ {\begin{array}{cccc} {\mathrm{0}}&{\mathrm{0}}&{\mathrm{0}}&{\mathrm{1}} \end{array}} \right] ^\mathrm{T}},\; \\&\quad {{\varvec{\omega }}_d} = {\mathrm{0}}{\mathrm{.01}}{\left[ {\begin{array}{ccc} {\cos \left( t/40 \right) }&- \sin \left( t/50 \right)&{ - \cos \left( t/60\right) } \end{array}} \right] ^\mathrm{T}} \end{aligned}$$

The corresponding Laplacian matrix L is given below:

$$\begin{aligned} {\varvec{L}} = \left[ {\begin{array}{cccc} 1&{}{ -\,0.5}&{}{ -\,0.5}&{}0\\ { -\,0.5}&{}1&{}{ -\,0.5}&{}0\\ { -\,0.5}&{}{ -\,0.5}&{}{1.5}&{}{ -\,0.5}\\ 0&{}0&{}{ -\,0.5}&{}{0.5} \end{array}} \right] \end{aligned}$$

For ease of interpretation, attitude errors are expressed by Euler angles converted from canonical quaternion. Moreover, due to space constraint, the closed-loop system responses of the other three spacecraft are not plotted here, and they are similar to those of the first spacecraft.

Figure 3 shows the event-triggered error \(\left\| {{{\varvec{\delta }}_1}\left( t \right) } \right\| \) and the threshold of the first spacecraft in Case A. The control torques of the first spacecraft in two cases are plotted in Fig. 4. It is clear that control torques in Case B are smoother than those in Case A due to the presence of event-triggered error in Case A. The attitude tracking errortive attitude errors of the second spacecraft with respect to the first spacecraft in two cases are plotted in Fig. 6. The state-steady relative attitude errors between other pairs of spacecraft are similar to those of the above. It can be observed from Figs. 5, 6 and 7 that the convergence speeds in Case A are faster than those in Case B, and state-steady attitude tracking errors and angular velocity tracking errors in Case A are smaller than those in Case B. Consequently, the performance of the proposed controller in Case A is better than the controller in Case B since the model uncertainties and external disturbances are not taken into consideration in Case B, though the frequency of the data to be sent over the inter-spacecraft communication channel among spacecraft in Case A is reduced greatly. The attitude tracking and attitude synchronization in Case A are achieved in the presence of event-triggered errors, model uncertainties and external disturbances. As shown in Fig. 8, the adaptive parameter \({\hat{c}_1}\) in Case A is bounded, which verifies the effectiveness of the proposed adaptation law in (17). Figure 9 shows the inter-event time of four spacecraft in Case A.

Fig. 9
figure 9

Inter-event time of four spacecraft in Case A

In Case A and B, the simulation time is chosen as 800 s and the storage size of each data in practice is usually 4 bytes. In traditional attitude synchronization control system without using event-triggered method, the sample time is chosen as 0.5 s, which means that the size of the data to be sent over the communication channel is up to 51,200 bytes during the whole simulation time. When the event-triggered method is used in Case A, the data to be sent over the communication channel just are 4608 bytes during the whole simulation time. As a result, the size of communication data is greatly reduced by 91%.

6 Conclusions

In this paper, the problem of attitude synchronization tracking control with limited communication, model uncertainties and external disturbances is addressed using canonical quaternion parameterization. A decentralized event-triggered adaptive sliding mode control method is investigated for attitude synchronization tracking of a group of spacecraft to align their attitudes, track the desired attitude trajectory and reduce the inter-spacecraft communication burden. In the proposed event-triggered control scheme, a trigger mechanism is employed to decide the event-trigger instants by evaluating the event-trigger condition. Finally, simulation results demonstrate the efficiency of the proposed event-triggered attitude synchronization tracking control scheme, and data to be sent over the communication channel among spacecraft under the proposed control scheme are greatly reduced.