## 2 Materials and Methods
### Design of Proposed Control System  
#### 2.3.1 Design of the SGCMG-Integrated Satellite Model (SISM)  
In this section, we formulate the SISM [19] proposed by authors. The SISM is possible through the design of an optimal gimbal angular velocity input considering the attitude maneuver and singularity avoidance with gimbal angle guidance at the same time. To realize the SISM, the gimbal angle and gimbal angular velocity are added to the state vector to design an SDLR by error dynamics. To design the SISM, we rewrite Equation (7) into an error representation, as follows:  
\[\left[ \begin{array}{c}\dot{\mathbf{q}}_{e}(t)\\ \dot{\mathbf{\omega}}_{e}(t)\end{array} \right]=\left[ \begin{array}{c}\frac{1}{2 }\mathbf{Z}_{e}(t)\mathbf{\omega}_{e}(t)\\ -\mathbf{I}^{-1}\{\mathbf{\omega}_{e}(t)\times(\mathbf{I}\mathbf{\omega}_{e}(t)+\mathbf{h}_{e}( \mathbf{\delta}))\}\end{array} \right]+\left[ \begin{array}{c}\mathbf{0}\\ -\mathbf{I}^{-1}\end{array} \right]\mathbf{T}_{c}(t) \tag{15}\]  
where \(\dot{\mathbf{q}}_{e}\) is the quaternion error vector, \(\mathbf{\omega}_{e}\) is the satellite angular velocity error vector, \(\mathbf{h}_{e}\) is the angular momentum error of the SGCMGs, and \(\mathbf{Z}_{e}\) is the error matrix of the quaternion. \(\mathbf{\omega}_{e}\), \(\mathbf{h}_{e}\), and \(\mathbf{Z}_{e}\) are expressed as  
\[\mathbf{\omega}_{e}(t) =\mathbf{\omega}(t)-\mathbf{\omega}_{r} \tag{16}\] \[\mathbf{h}_{e}(\mathbf{\delta}) =\mathbf{h}(\mathbf{\delta})-\mathbf{h}_{r} \tag{17}\]  
Figure 5: Overview of state-dependent Riccati equation (SDRE) method. \[\mathbf{Z}_{e}(t)=\left[ \begin{array}{ccc}-q_{e1}(t)&-q_{e2}(t)&-q_{e3}(t)\\ q_{e0}(t)&-q_{e3}(t)&q_{e2}(t)\\ q_{e3}(t)&q_{e0}(t)&-q_{e1}(t)\\ -q_{e2}(t)&q_{e1}(t)&q_{e0}(t)\end{array} \right] \tag{18}\]  
where target angular velocity of satellite \(\mathbf{\omega}_{r}\) and SGCMGs angular momentum \(\mathbf{h}_{r}\) are constant values because agile observation satellite is usually operated as a rest-to-rest maneuver. Such a maneuver depends on all states being in a steady state at the initial and terminal state of the maneuver. Therefore, Equation (15) is rewritten by Equation (12) as follows:  
\[\left[ \begin{array}{c}\dot{\mathbf{q}}_{e}\\ \dot{\mathbf{\omega}}_{e}\end{array} \right]=\left[ \begin{array}{cc}\kappa\mathbf{U} &\frac{1}{2}\mathbf{Z}_{e}\\ \mathbf{0}_{3\times 4}&-\mathbf{I}^{-1}\big{(}\mathbf{W}+\mathbf{H}\big{)}\end{array}  \right]\left[ \begin{array}{c}\mathbf{q}_{e}\\ \mathbf{\omega}_{e}\end{array} \right]+\left[ \begin{array}{c}\mathbf{0}_{4\times 3 }\\ -\mathbf{I}^{-1}\end{array} \right]\mathbf{T}_{c} \tag{19}\]  
where \(\mathbf{U}\) is a \(4~{}\times~{}4\) unit matrix, \(\kappa\) is a very small negative scalar for the stability of the SDRE controller [20], \(\mathbf{W}\) is a coupling matrix between the satellite angular velocity and the moment of inertia of the satellite, and \(\mathbf{H}\) is a coupling matrix between the satellite angular velocity and the angular momentum of the SGCMG. \(\mathbf{W}\) and \(\mathbf{H}\) are defined as  
\[\mathbf{W}=\left[ \begin{array}{ccc}0&-\omega_{e3}&\omega_{e2}\\ \omega_{e3}&0&-\omega_{e1}\\ -\omega_{e2}&\omega_{e1}&0\end{array} \right]\mathbf{I} \tag{20}\]  
\[\mathbf{H}=\left[ \begin{array}{ccc}0&h_{e3}&-h_{e2}\\ -h_{e3}&0&h_{e1}\\ h_{e2}&-h_{e1}&0\end{array} \right] \tag{21}\]  
To explicitly consider the singularity of SGCMGs, control torque input \(\mathbf{T}_{c}\) needs to be converted to gimbal angular velocity \(\dot{\delta}_{c}\). Assuming that a gimbal motor is a first-order lag system with time constant \(\tau\), the gimbal angle error is \(\delta_{e}=\delta-\delta_{r}\) and \(\ddot{\delta}_{e}\) is defined as follows:  
\[\ddot{\delta}_{e}=\frac{\dot{\delta}_{c}-\dot{\delta}_{e}}{\tau} \tag{22}\]  
Therefore, the state equation of the gimbal motor of SGCMGs is expressed as  
\[\left[ \begin{array}{c}\dot{\delta}_{e}\\ \ddot{\delta}_{e}\end{array} \right]=\left[ \begin{array}{cc}\mathbf{0}_{4\times 4 }&\mathbf{U}\\ \mathbf{0}_{4\times 4}&-\frac{1}{\tau}\mathbf{U}\end{array} \right]\left[