1 Introduction

A satellite mainly consists of attitude and orbit control subsystem, structural subsystem, thermal control subsystem, power supply subsystem, monitoring and control subsystem, and so on. Among them, attitude control system (ACS) is an important subsystem of a satellite. High-precision attitude control has been a difficult and vital problem especially in communication, navigation, remote sensing, and other space-related missions (see [27]). To date anti-disturbance PD (proportional-derivative) control [17], robust control [30], finite-time control technique [14], adaptive control [19] and sliding mode control (SMC) [9] have been proposed and applied to the ACS of satellites.

The actuator types of the attitude control system for a satellite include the mechanical and electrical actuator, thruster and the environmental force actuator. Due to the limitation of the physical characteristics, actuator saturation is often encountered, which effects the performance and stability of a control system [10]. Anti-windup compensator and one-step approach are commonly applied to solve the saturation problem in practical systems (see [4, 33, 36] and references therein). In [26], an anti-disturbance control approach based on disturbance observer was proposed for a class of nonlinear system with actuator saturation, which ensures that asymptotically stable of the closed-loop system can be obtained. In [25], a composite disturbance observer-based control (DOBC) and \(H_\infty \) control scheme was presented for a discrete time-delay system subject to multiple disturbances and input saturation, where disturbances can be rejected and attenuated simultaneously. In [8], a velocity-free feedback controller was presented for a rigid spacecraft subject to external disturbance and input saturation. A sliding mode attitude tracking controller based on backstepping and extended state observer (ESO) was designed for a rigid spacecraft with actuator saturation in [18]. In addition, fault-tolerant control (FTC) for dynamic systems has been an effective method to improve the system reliability (see [5, 13, 16, 21, 28, 32, 35] and references therein). Many elegant FTC approaches have been proposed to the ACS of satellites, such as adaptive FTC based on DOBC [2], robust FTC [34], robust FTC based on SMC [29], time-delay FTC based on dynamic inversion [12], adaptive backstepping FTC [11], and so on. The anti-windup attitude control is a challenging problem due to the existence of multiple disturbances and actuator failure simultaneously in satellites. In [37], a composite hierarchical controller was studied for a flexible satellite with actuator saturation, where disturbance observer and fault diagnosis observer were designed to estimate the vibration of flexible appendage and the actuator fault, respectively. In [22], an adaptive finite-time FTC scheme was developed for a rigid spacecraft with failures, disturbances and input saturation. An anti-windup FTC scheme based on SMC was addressed for a flexible spacecraft under partial loss of actuator failure in [29], where neural network and adaptive estimator were used to approximate unknown nonlinear dynamic and actuator fault, respectively. Anti-disturbance control has become a hot topic of control field (see [6, 7, 15, 23, 24, 31] and references therein). A robust fault diagnosis approach based on disturbance observer was firstly proposed in [3] with disturbance rejection and attenuation performances. For a nonlinear system with multiple disturbances, [1] investigated a robust FTC algorithm with disturbance rejection and attenuation performances, where the multiple disturbances were divided into a modeled disturbance and a norm-bounded disturbance.

In this paper, an anti-windup fault-tolerant attitude control approach is proposed for a satellite with multiple disturbances. Different from literatures [22, 29, 34], the multiple disturbances are divided into an exogenous system and a norm-bounded equivalent disturbance. Different from literatures [25, 37], disturbance compensator, fault accommodation and state feedback controller are considered as a whole for input saturation. Firstly, the polytopic is applied to represent the input saturation. Secondly, disturbance observer and fault diagnosis observer are constructed to estimate the modeled disturbance and actuator fault. Based on the estimations of the modeled disturbance and actuator fault, a new anti-windup composite FTC is investigated in this paper. The proposed fault-tolerant controller design can guarantee the closed-loop system to be quadratically stable with a prescribed upper bound of the cost function. Finally, simulation results are demonstrated to show the efficiency.

This paper is organized as follows. The attitude dynamics and kinematics equation of a satellite is modeled with multiple disturbances, actuator fault and input saturation in Sect. 2. In Sect. 3, disturbance observer and fault diagnosis observer are designed to estimate the modeled disturbance and actuator fault simultaneously. Then, a composite fault-tolerant controller is constructed for a satellite subject to actuator fault and multiple disturbances. A simple example is given in Sect. 4 to demonstrate the efficiency of the proposed method. The concluding remarks are given in Sect. 5.

Notation In this paper, the Euclidean norm of a vector s(t) is defined by \(\Vert s(t)\Vert ^2=s^T(t)s(t)\), for any given t. \(R^{m\times n}\) represents the \(m\times n\) dimensional real matrix. A real symmetric matrix \(P>(\ge )0\) denotes P being a positive definite (positive semi-definite) matrix. The superscripts “T” and “\(-1\)” stand for matrix transposition and matrix inverse, respectively. I is used to denote an identity matrix with proper dimension. Matrices, if not explicitly stated, are supposed to have compatible dimensions. The symmetric terms in a symmetric matrix are denoted by \(*\). The symbol sym() represents \(sym(\varTheta ){:=}\varTheta +\varTheta ^T\).

2 Mathematical models

Attitude dynamics and kinematics equation of a rigid satellite can be obtained with the assumption that euler angles between orbit coordinate and body coordinate are very small (see [2, 17]).

$$\begin{aligned} \left\{ \begin{array}{ll} I_x\ddot{\varphi }-(I_x- I_y+I_z)n_0\dot{\psi }+4(I_y-I_z)n_0^2\varphi =u_x+T_{x} \\ I_y\ddot{\phi }+3(I_x-I_z)n_0^2\phi =u_y+T_{y}\\ I_z\ddot{\psi }+(I_x- I_y+I_z)n_0\dot{\varphi }+(I_y-I_x)n_0^2\psi =u_z+T_{z} \end{array} \right. \end{aligned}$$
(1)

where \(I_x,~I_y\) and \(I_z\) represent three-axis inertia moments. \(\varphi ,~\phi \) and \(\psi \) are three-axis Euler angles between the body coordinate and orbit coordinate, \(n_0\) is angular velocity of the satellite orbit. \(u_x,~u_y,~u_z\) are three-axis control torques. \(T_x,~T_y,~T_z\) represent three-axis environmental disturbance torques.

The attitude dynamics and kinematics equation (1) can be rewritten as the following matrix form.

$$\begin{aligned} I_0\ddot{p}(t)+M\dot{p}(t)+Np(t)=u(t)+T(t) \end{aligned}$$
(2)

where attitude angle variable is \(p(t)=\left[ \begin{array}{ccc} \varphi (t)&\phi (t)&\psi (t) \end{array}\right] ^T\). Disturbance torque is \(T(t)=\left[ \begin{array}{ccc} T_x(t)\quad&T_y(t)\quad&T_z(t) \end{array}\right] ^T\). System control input is \(u(t)=\left[ \begin{array}{ccc} u_x(t)\quad&u_y(t)\quad&u_z(t) \end{array}\right] ^T\).

$$\begin{aligned} I_0= & {} \left[ \begin{array}{ccc} I_x\quad &{}0\quad &{}0\\ 0\quad &{}I_y\quad &{}0\\ 0\quad &{}0\quad &{}I_z \end{array} \right] \\ M= & {} \left[ \begin{array}{ccc} 0\quad &{}0\quad &{}-n_0(I_x-I_y+I_z)\\ 0\quad &{}0\quad &{}0\\ n_0(I_x-I_y+I_z)\quad &{}0\quad &{}0 \end{array} \right] \\ N= & {} \left[ \begin{array}{ccc} 4n_0^2(I_y-I_z)\quad &{}0\quad &{}0\\ 0\quad &{}3n_0^2(I_x-I_z)\quad &{}0\\ 0\quad &{}0\quad &{}n_0^2(I_y-I_x) \end{array} \right] \end{aligned}$$

Reaction wheels are widely used in the ACS of a three-axis stabilized satellite. The reaction wheel will generate a periodic vibration in the operating process, such as a harmonic disturbance [20].

$$\begin{aligned} g(t)=\sum _{i=1}^q M_iv^2\hbox {sin}(2\pi h_iv t+\chi _i) \end{aligned}$$
(3)

where g(t) is the disturbance force. \(M_i\) is the amplitude of the ith harmonic. v is the wheel speed. \(h_i\) is the ith harmonic number and \(\chi _i\) represents a random phase. Then, the modeled disturbance of actuator can be denoted by an exo-system

$$\begin{aligned} \left\{ \begin{array}{rcl} \dot{w}(t)&{}=&{}Ww(t)\\ d(t)&{}=&{}Vw(t) \end{array}\right. \end{aligned}$$
(4)

where w(t) is the state variable of the exogenous system, \(W\in R^{p\times p}\), V are the known parameter matrices. For a satellite subject to modeling error, multiple disturbances and additive actuator failure, the system model (2) can be further described as follows

$$\begin{aligned}&I_0\ddot{p}(t)+M\dot{p}(t)+Np(t)\nonumber \\&\quad =u(t)+d(t)+F(t)+d_1(t) \end{aligned}$$
(5)

where \(F(t)=\left[ \begin{array}{ccc} F_x(t)&F_y(t)&F_z(t) \end{array}\right] ^T\) is time-varying faults of the reaction wheels. Environmental disturbance torque, modeling error and measurement noise are merged into \(d_1(t)\) as an equivalent disturbance, which is supposed to be norm bounded.

In control systems, input saturation is an ubiquitous problem due to the constraints of physical characteristic. Meanwhile, input saturation has a negative impact on the performance and stability of a control system. Because of the input saturation in actuators, the dynamic model (5) can be further described as follows

$$\begin{aligned}&I_0\ddot{p}(t)+M\dot{p}(t)+Np(t)\nonumber \\&\quad =sat[u(t)+d(t)+F(t)]+d_1(t) \end{aligned}$$
(6)

sat(u) is the saturation function defined as

$$\begin{aligned} sat(u)=[\begin{array}{ccc} sat(u_x)&sat(u_y)&sat(u_z) \end{array}]^T \end{aligned}$$

where \(sat(u_i)=sign(u_i)\cdot min\{|u_i|,\bar{u}_i\}\) and \(sign(u_i)\) (\(i=x,~y,~z\)) is the signum function.

Define \(e_p(t)=p_d(t)-p(t)\), \(p_d(t)\) is the desired attitude angles. Equation (6) can be rewritten as follows

$$\begin{aligned} \dot{x}(t)= & {} Ax(t)+Bsat[u(t)+d(t)+F(t)]+Bd_1(t)\nonumber \\ \end{aligned}$$
(7)

where

$$\begin{aligned} x(t)= & {} \left[ \begin{array}{ccc} \int _0^t e_p(\tau )d\tau \\ e_p(t)\\ \dot{e}_p(t) \end{array} \right] , \\ A= & {} \left[ \begin{array}{ccc} 0\quad &{}I\quad &{}0\\ 0\quad &{}0\quad &{}I\\ 0\quad &{}-I_0^{-1}M\quad &{}-I_0^{-1}N \end{array} \right] , B=\left[ \begin{array}{c} 0\\ 0\\ I_0^{-1}\end{array} \right] \end{aligned}$$

Remark 1

Multiple disturbances widely exist in the ACS of a satellite, such as modeling uncertainties, environmental disturbance torque, measurement noise, actuator failure and periodic vibration disturbance of an actuator, etc. Compared with [22, 29, 34], in this paper, the multiple disturbances are divided into two parts, which are a modeled exogenous disturbance and a norm-bounded uncertain disturbance. In addition, compared with [25, 37], the modeled disturbance, actuator fault and feedback controller are considered as a whole for input saturation.

3 Anti-windup fault-tolerant controller design

Firstly, in this section, we will use the polytopic bounding to represent the input saturation [10]. \(D\in R^{m\times m}\) is supposed to be a diagonal matrix with elements being either 0 or 1. Then there are \(2^m\) elements in matrix D. Suppose that each basic element of D is labeled as \(D_i\), \(i\in Q=\{1,\ldots ,2^m\}\), and denote \(\bar{D}_i=I-D_i\). The scalars \(\eta _i\) satisfy \(0\le \eta _i \le 1\) and \(\sum _{i=1}^{2^m}\eta _i=1\), it can be concluded that

$$\begin{aligned} \sum _{i=1}^{2^m}\eta _i(D_i+\bar{D}_i)=I, \forall D_i\in D, i=1,\ldots ,2^m \end{aligned}$$
(8)

An ellipsoid of a positive definite matrix \(P\in R^{n\times n}\) can be denoted as

$$\begin{aligned} \varOmega (P)=\{x\in R^n: x^TPx\le 1\} \end{aligned}$$
(9)

and a symmetric polyhedron is

$$\begin{aligned} L(H)=\{x\in R^n: \Vert H^lx\Vert \le 1, l\in Q_m\} \end{aligned}$$
(10)

where \(Q_m=\{1,\ldots ,m\}\) and \(H^l\) is the lth row of the matrix \(H\in R^{m\times n}\). Now let us borrow the following lemma to represent the saturation function.

Lemma 1

([10, 26]) Let \(K, H\in R^{m\times n}\) be given. For an \(x\in R^n\), if \(x\in L(H)\), then

$$\begin{aligned} sat(Kx)\in co\{D_iKx+\bar{D}_i Hx, i\in Q\} \end{aligned}$$
(11)

where \(co(\cdot )\) denotes the convex hull of a set.

3.1 Disturbance observer

In this subsection, a disturbance observer will be presented to estimate the modeled external disturbance d(t). The reduced-order disturbance observer is designed as

$$\begin{aligned} \left\{ \begin{array}{rcl} \dot{r}(t)&{}=&{}(W+L_1BV)(r(t)-L_1x(t))\\ &{}&{}+\,L_1(Ax(t)+Bu(t)+B\hat{F}(t))\\ \hat{w}(t)&{}=&{}r(t)-L_1x(t)\\ \hat{d}(t)&{}=&{}V\hat{w}(t)\end{array}\right. \end{aligned}$$
(12)

where \(\hat{w}(t)\) is the estimation of w(t). \(\hat{F}(t)\) is the estimation of F(t). Matrix \(L_1\) is the observer gain to be determined later. r(t) is an auxiliary variable. For the time varying actuator fault, the fault estimation observer is designed as

$$\begin{aligned} \left\{ \begin{array}{rcl} \dot{s}(t)&{}=&{}L_2B(s(t)-L_2x(t))+L_2(A(t)\\ &{}&{}+Bu(t)+B\hat{d}(t))\\ \hat{F}(t)&{}=&{}s(t)-L_2x(t) \end{array}\right. \end{aligned}$$
(13)

where s(t) is another auxiliary variable. Matrix \(L_2\) is the observer gain to be determined later.

The estimation errors of disturbance and fault are defined as \(e_w(t)=w(t)-\hat{w}(t)\) and \(e_F(t)=F(t)-\hat{F}(t)\). From the observers (12) and (13), the fault-tolerant controller is constructed as follows.

$$\begin{aligned} u(t)=Kx(t)-\hat{d}(t)-\hat{F}(t) \end{aligned}$$
(14)

According to Lemma 1, for \(\bar{x}(t)\in L(H)\) and \(H=\left[ \begin{array}{cc} H_1&V_1 \end{array} \right] \in R^{m\times (n+r)}\), input saturation \(sat(u(t)+F(t)+d(t))\) can be denoted as follows.

$$\begin{aligned} sat(u(t)+F(t)+d(t))= & {} sat([K V_1]\bar{x}(t))\nonumber \\= & {} \sum _{i=1}^{2^m}\eta _i[D_i[K V_1]\bar{x}(t)\nonumber \\&+\bar{D}_iH\bar{x}(t)]\nonumber \\= & {} \sum _{i=1}^{2^m}\eta _i[D_i(Kx(t)+V_1e(t))\nonumber \\&+\bar{D}_i(H_1x(t)+V_1e(t))]\nonumber \\= & {} \sum _{i=1}^{2^m}\eta _i[D_iKx(t)\nonumber \\&+\bar{D}_iH_1x(t)]+V_1e(t)\nonumber \\ \end{aligned}$$
(15)

where

$$\begin{aligned} \sum _{i=1}^{2^m}\eta _i= & {} 1,0\le \eta _i\le 1\\ e(t)= & {} \left[ \begin{array}{c} e_w(t)\\ e_F(t) \end{array} \right] , \bar{x}(t)=\left[ \begin{array}{c}x(t)\\ e(t) \end{array} \right] , V_1=\left[ \begin{array}{cc} V&I \end{array} \right] \end{aligned}$$

From Eqs. (7), (12) and (15), the disturbance estimation error equation satisfies

$$\begin{aligned} \dot{e}_w(t)= & {} \dot{w}(t)-\dot{\hat{w}}(t)\nonumber \\= & {} (W+L_1BV)e_w(t)\nonumber \\&+L_1B\sum _{i=1}^{2^m}\eta _i\bar{D}_i(H_1-K)x(t)\nonumber \\&+\,L_1Be_F(t)+L_1Bd_1(t) \end{aligned}$$
(16)

From Eqs. (7, 13, 15), the fault estimation error equation satisfies

$$\begin{aligned} \dot{e}_F(t)= & {} \dot{F}(t)-\dot{\hat{F}}(t)\nonumber \\= & {} \dot{F}(t)+L_2B\sum _{i=1}^{2^m}\eta _i\bar{D}_i(H_1-K)x(t)\nonumber \\&+\,L_2BVe_w(t)+L_2Bd_1(t) \end{aligned}$$
(17)

The time-varying faults of actuators are considered in this paper. The fault derivative is assumed to be bounded, which is reasonable in most practical processes [1].

By augmenting the state equation (7) with the estimation error equations of disturbance and fault, the composite system is given by

$$\begin{aligned} \left\{ \begin{array}{rcl} \dot{\bar{x}}(t)&{}=&{}\bar{A}\bar{x}(t)+\bar{B}\bar{d}(t)\\ z_\infty (t)&{}=&{}C\bar{x}(t)\end{array}\right. \end{aligned}$$
(18)

where \(z_\infty (t)\) is the \(H_\infty \) reference output.

$$\begin{aligned}&\bar{A}=\left[ \begin{array}{cc} A+B\sum _{i=1}^{2^m}\eta _i[D_iK+\bar{D}_iH_1]\quad &{}BV_1\\ LB\sum _{i=1}^{2^m}\eta _i\bar{D}_i(H_1-K)\quad &{}W_1+LBV_1 \end{array} \right] ,\\&\bar{B}=\left[ \begin{array}{cc} B\quad &{}\quad 0\\ LB\quad &{}I_{10} \end{array} \right] , C=\left[ \begin{array}{cc} C_1\quad&C_2 \end{array} \right] ,\\&\bar{x}(t)=\left[ \begin{array}{cc} x(t)\\ e(t) \end{array} \right] , \bar{d}(t)=\left[ \begin{array}{cc} d_1(t)\\ \dot{F}(t) \end{array} \right] \\&L=\left[ \begin{array}{cc} L_1\\ L_2 \end{array} \right] ,W_1=\left[ \begin{array}{cc} W\quad &{}0\\ 0\quad &{}0 \end{array} \right] , I_{10}=\left[ \begin{array}{cc} 0 \\ I \end{array} \right] \end{aligned}$$

The designed approach of the anti-windup FTC can be further formulated as follows.

Theorem 1

For \(\gamma _1>0\), \(\gamma _2>0\), if there exist matrices \(P_0>0\), \(P_2>0\), \(R_1,R_2,R_3\) satisfying

$$\begin{aligned}&\left[ \begin{array}{ccccc} \varOmega _{11} \quad &{} BV_1+[R_3B\bar{D}_i(R_2-R_1)]^T \quad &{} B \quad &{} 0 \quad &{} P_0 \\ *\quad &{} sym(P_2W_1+R_3BV_1) \quad &{} R_3B \quad &{} P_2I_{10} \quad &{} 0 \\ *\quad &{} *\quad &{} -\gamma _1^2I \quad &{} 0 \quad &{} 0 \\ *\quad &{} *\quad &{} *\quad &{} -\gamma _2^2I \quad &{} 0 \\ *\quad &{} *\quad &{} *\quad &{} *\quad &{} -I \\ \end{array}\right] \;<0 \end{aligned}$$
(19)
$$\begin{aligned}&\left[ \begin{array}{ccc} 1 \quad &{} R_2^l \quad &{} V_1^l \\ *\quad &{} P_0 \quad &{} 0 \\ *\quad &{} *\quad &{} P_2 \end{array}\right] \ge 0 \end{aligned}$$
(20)

where \(R_2^l,V_1^l\) are the \(l{-}\hbox {th}\) elements of matrices \(R_2,V_1\), respectively.

$$\begin{aligned} \varOmega _{11}=sym(AP_0+B(D_iR_1+\bar{D}_iR_2)) \end{aligned}$$
(21)

then, with gains \(L=P_2^{-1}R_3\) and \(K=P_0^{-1}R_1\), the estimation error system (18) is stable and satisfies

$$\begin{aligned} \Vert z_\infty (t)\Vert _2^2\le \gamma _1^2\Vert d_2(t)\Vert _2^2+\gamma _2^2\Vert \dot{F}(t)\Vert _2^2 \end{aligned}$$

Proof

Denote \(P=diag\{P_1,P_2\}>0\). The Lyapunov function candidate for system (18) is chosen as

$$\begin{aligned} V(t)=\bar{x}^T(t)P\bar{x}(t) \end{aligned}$$
(22)

For \(\bar{x}\in L(H)\) and \(H=[\begin{array}{cc}H_1&V_1\end{array}]\), along with the trajectories of (18), it can be shown that

$$\begin{aligned} \dot{V}\left( t\right)= & {} 2\bar{x}^T\left( t\right) P\dot{\bar{x}}\left( t\right) \\= & {} 2\bar{x}^T\left( t\right) P\bar{A}\bar{x}\left( t\right) +2\bar{x}^T\left( t\right) P\bar{B}\bar{d}\left( t\right) \end{aligned}$$

For the constants \(\gamma _1>0\) and \(\gamma _2>0\), the \(H_\infty \) performance index is defined as

$$\begin{aligned} J_\infty= & {} \int _0^\infty z_\infty ^T\left( t\right) z_\infty \left( t\right) -\gamma _1^2d_1^T\left( t\right) d_1\left( t\right) \nonumber \\&-\gamma _2^2\dot{F}^T\left( t\right) \dot{F}\left( t\right) dt+V\left( t\right) \end{aligned}$$
(23)

Define an auxiliary function as follows

$$\begin{aligned} J_{aux}\left( t\right)= & {} z_\infty ^T\left( t\right) z_\infty \left( t\right) -\gamma _1^2d_1^T\left( t\right) d_1\left( t\right) \\&-\gamma _2^2\dot{F}^T\left( t\right) \dot{F}\left( t\right) +\dot{V}\left( t\right) \\= & {} \left[ \begin{array}{c} x\left( t\right) \\ e\left( t\right) \\ d_1\left( t\right) \\ \dot{F}\left( t\right) \end{array}\right] ^T \left[ \begin{array}{cccc} \varPi _{11} \quad &{} \varPi _{12} \quad &{} P_1B \quad &{} 0\\ *\quad &{} \varPi _{13} \quad &{} P_2LB \quad &{} P_2I_{10} \\ *\quad &{} *\quad &{} -\gamma _1^2I\quad &{}0\\ *\quad &{} *\quad &{} *\quad &{} -\gamma _2^2I \end{array}\right] \left[ \begin{array}{c} x\left( t\right) \\ e\left( t\right) \\ d_1\left( t\right) \\ \dot{F}\left( t\right) \end{array}\right] \\\le & {} \max _{i\in Q}\{\eta _i \left[ \begin{array}{c} x\left( t\right) \\ e\left( t\right) \\ d_1\left( t\right) \\ \dot{F}\left( t\right) \end{array}\right] ^T\varTheta _i \left[ \begin{array}{c} x\left( t\right) \\ e\left( t\right) \\ d_1\left( t\right) \\ \dot{F}\left( t\right) \end{array}\right] \} \end{aligned}$$

where

$$\begin{aligned} \varPi _{11}= & {} sym\left[ P_1\left( A+B\sum _{i=1}^{2^m}\eta _i\left[ D_iK+\bar{D}_iH_1\right] \right) \right] \\&+\,C_1^TC_1\\ \varPi _{12}= & {} P_1BV_1+\left[ P_2LB\sum _{i=1}^{2^m}\eta _i\bar{D}_i\left( H_1-K\right) \right] ^T\\&+\,C_1^TC_2\\ \varPi _{13}= & {} sym\left( P_2W_1+P_2LBV_1\right) +C_2^TC_2 \end{aligned}$$

Define

$$\begin{aligned} \varTheta _i=\left[ \begin{array}{cccc} \varPi _{11} \quad &{} \varPi _{12} \quad &{} P_1B \quad &{} 0\\ *\quad &{} \varPi _{13} \quad &{} P_2LB \quad &{} P_2I_{10} \\ *\quad &{} *\quad &{} -\gamma _1^2I \quad &{} 0\\ *\quad &{} *\quad &{} *\quad &{} -\gamma _2^2I \end{array}\right] \end{aligned}$$
(24)

If \(\varTheta _i\) is left and right multiplied by \(diag\{P_1^{-1},I,I,I\}\), and define \(P_0=P_1^{-1}\), \(R_1=KP_0\), \(R_2=H_1P_0\), \(R_3=P_2L\), it can be seen that \(J_{aux}(t)<0\) when \(\varTheta _i<0\) satisfies. Furthermore, \(J_\infty <0\), \(\dot{V}(t)<0\) and

$$\begin{aligned} J_\infty= & {} \int _0^\infty z_\infty ^T(t)z_\infty (t)-\gamma _1^2d_1^T(t)d_1(t)\\&-\gamma _2^2\dot{F}^T(t)\dot{F}(t)dt+V(t) \end{aligned}$$

From the Schur’s complement theorem, inequality (19) satisfies.

The next step is to prove \(\varOmega (P)\subset L(H)\). If inequality (20) holds, (20) is left and right multiplied by \(diag\{I,P_1,I\}\). It can be seen that

$$\begin{aligned} \left[ \begin{array}{ccc} 1 \quad &{} H_1^l \quad &{} V_1^l \\ *\quad &{} P_1 \quad &{} 0 \\ *\quad &{} *\quad &{} P_2 \end{array}\right] \ge 0 \end{aligned}$$
(25)

From the reference [26], (25) is equal to \(\varOmega (P)\subset L(H)\). That is to say that \(\bar{x}(t)\in L(H)\) holds for any \(\bar{x}(t)\in \varOmega (P)\).

Finally, it can be seen that the estimation error system (18) is stable in the domain of attraction range \(\varOmega (P)\) and satisfies the \(H_\infty \) performance. This completes the proof.

Remark 2

Generally speaking, one-step approach and anti-windup compensator are two main methods to deal with the saturation problem. In this paper, the polytopic is used to represent the input saturation. In addition, different from [25, 37], modeled disturbance, actuator fault and controller are considered as a whole for input saturation, which increases the difficulty in the controller design procedures.

Fig. 1
figure 1

The responses of modeled disturbance and its estimation

Fig. 2
figure 2

The estimation error of modeled disturbance

Fig. 3
figure 3

The responses of actuator fault and its estimation

Fig. 4
figure 4

The estimation error of actuator fault

Fig. 5
figure 5

The responses of pitch angle

Fig. 6
figure 6

The responses of pitch angle rate

Fig. 7
figure 7

The responses of control torque

Fig. 8
figure 8

The responses of slope fault and its estimation

Fig. 9
figure 9

The estimation error of slope fault

Fig. 10
figure 10

The responses of time-varying fault and its estimation

Fig. 11
figure 11

The estimation error of time-varying fault

4 Simulation examples

This section considers a microsatellite operating in a circular orbit with the altitude of \(900~\hbox {km}\) given in [2, 17]. The orbital angular velocity is \(n_0=0.0011~\hbox {rad/s}\). Three-axis inertia moments are

$$\begin{aligned} I_0=\left[ \begin{array}{ccc} 5.5 \quad &{} 0 \quad &{} 0 \\ 0\quad &{} 6.14 \quad &{} 0 \\ 0 \quad &{} 0 \quad &{} 2.18 \end{array} \right] \end{aligned}$$
(26)

Including sunlight pressure moments, aerodynamic moment and gravity gradient torque, the environmental torque T(t) is supposed to be

$$\begin{aligned} \left\{ \begin{array}{rcl} T_x(t)&{}=&{}1.5\times 10^{-5}(3\hbox {cos}n_0t+1)\\ T_y(t)&{}=&{}1.5\times 10^{-5}(3\hbox {cos}n_0t+1.5\hbox {sin}n_0t)\\ T_z(t)&{}=&{}1.5\times 10^{-5}(3\hbox {sin}n_0t+1) \end{array}\right. \end{aligned}$$
(27)

Take pitch axis of the satellite as an example.

$$\begin{aligned} A=\left[ \begin{array}{ccc} 0 \quad &{} 1 \quad &{} 0\\ 0\quad &{} 0\quad &{}1\\ 0\quad &{} -3\times 10^{-6}\quad &{} 0 \end{array} \right] ,~B=\left[ \begin{array}{c} 0\\ 0 \\ 0.1818\end{array} \right] \end{aligned}$$

The initial angular velocity is \(\dot{\phi }(0)=0.001~\hbox {rad/s}\), and the initial attitude is \(\phi (0)=0.08~\hbox {rad}\). The maximum output moment of wheel is supposed to be \(0.05~\hbox {N\,m}\). The frequency and amplitude of the modeled disturbance are known. The parameters of modeled disturbance are as follows

$$\begin{aligned} W=\left[ \begin{array}{cc} 0 \quad &{} 6\\ -6\quad &{} 0 \end{array} \right] ,~V=\left[ \begin{array}{cc} 5&0 \end{array} \right] \end{aligned}$$

For \(H_\infty \) attenuation indices \(\gamma _1=2.15\) and \(\gamma _2=2.82\), from theorem 1, the gains of fault diagnosis observer, disturbance observer and PID controller are

$$\begin{aligned} L_1= & {} \left[ \begin{array}{ccc} 0 \quad &{} 0\quad &{} -0.0292 \\ 0 \quad &{} 0\quad &{}-0.1952 \end{array} \right] ,\\ L_2= & {} \left[ \begin{array}{ccc} 0&0&-4.1661 \end{array} \right] ,\\ K= & {} \left[ \begin{array}{ccc} -1.0764\quad&-3.9138\quad&-6.0558 \end{array} \right] . \end{aligned}$$

The wheel failure is supposed to occur at 50 s, and its value is \(0.02~\hbox {N\,m}.\)

Figure 1 demonstrates the responses of modeled disturbance d(t) and its estimation. Figure 2 shows the estimation error of modeled disturbance. From Figs. 1 and 2, the disturbance observer has a good estimation accuracy for a satellite subject to input saturation. The actuator fault and its estimation are shown in Fig. 3. Figure 4 shows the fault estimation error. It can be seen that the fault diagnosis observer has a good estimation ability from Figs. 3 and 4. Figures 5 and  6 show the responses of pitch angle and pitch angle rate for satellite subject to multiple disturbances and actuator faults. The solid line represents the anti-windup FTC proposed in this paper, and dash line is robust FTC based on DOBC in [2] without input saturation. From Figs. 5 and 6, it can be seen that the proposed anti-windup FTC also has an anti-disturbance and fault accommodation ability even if the actuator is input constrained, and the stability of the closed-loop system can be guaranteed. Figure 7 demonstrates the response curve of control torque input for a satellite. The solid line represents the anti-windup FTC proposed in this paper, and dash line is robust FTC based on DOBC in [2] without input saturation. From Fig. 7, it can be seen that the actuator is limited within \(0.05\hbox {N\,m}\). In Fig. 8, a ramp fault is assumed to occur from 50 to \(70~\hbox {s}\) with slope 0.001. Figure 9 is the estimation error of the ramp fault. In Fig. 10, it is shown that time-varying fault \(F=0.02+0.002\hbox {sin}(4t)\) can also be well estimated. Figure 11 shows the estimation error of the time-varying fault. From Figs. 8, 9, 10, and 11, it can be seen that the proposed fault diagnosis observer can estimate the time-varying actuator faults with high accuracy.

5 Conclusion

In this paper, an anti-windup attitude FTC approach is proposed for satellites with multiple disturbances, actuator failure and input saturation. The multiple disturbances are supposed to include a modeled disturbance and a norm-bounded disturbance. Different from the previous results, state feedback controller, fault accommodation and disturbance rejection are considered as a whole. Polytopic representation is applied to denote the input saturation. Disturbance observer and fault diagnosis observer are designed to estimate modeled disturbance and actuator fault, respectively. Therefore, the proposed anti-windup attitude FTC approach is with disturbance rejection and attenuation performance. Finally, simulations are given to show the efficiency of the proposed approach.