## 3 Control Algorithm Design
### Rate Filter Design  
In this paper, a fast and rough rate filter is used to estimate the 3-axis angular rates of the satellite, which is a classical angular rate information estimation method [28]. The rate filter belongs to a class of the extended Kalman filter (EKF), which uses the measured value of the TAM as input to estimate the 3-axis angular rates of the satellite. The rate filter is widely used in the aerospace field because of its advantages of less computation and stable operation [29]. We next present the details of the rate filter. The state vector \(x_{Rate}\in\Re^{3}\) of the rate filter is taken as the angular rate \(\mathbf{\omega}_{bi}^{b}\) of the satellite relative to the inertial space [30]:  
\[x_{Rate}=\mathbf{\omega}_{bi}^{b}= \begin{bmatrix}\omega_{x}\\ \omega_{y}\\ \omega_{z}\end{bmatrix} , \tag{6}\]  
where \(\omega_{x}\), \(\omega_{y}\), and \(\omega_{z}\) are the components of \(\mathbf{\omega}_{bi}^{b}\) along \(O_{b}X_{b}\), \(O_{b}Y_{b}\), and \(O_{b}Z_{b}\) axes, respectively. Expanding the dynamics model (3) into component expression gives:  
\[ \begin{cases}\dot{\omega}_{x}=\frac{T_{MT,x}+d_{x}}{\bar{I}_{x}}+\frac{I_{y}- \bar{I}_{x}}{I_{x}}\omega_{y}\omega_{z}\\ \dot{\omega}_{y}=\frac{T_{MT,y}+d_{y}}{\bar{I}_{y}}+\frac{I_{y}-\bar{I}_{x}}{ I_{x}}\omega_{x}\,,\\ \dot{\omega}_{z}=\frac{T_{MT,x}+d_{z}}{\bar{I}_{z}}+\frac{I_{x}-\bar{I}_{y}}{ \bar{I}_{x}}\omega_{x}\omega_{y}\end{cases}  \tag{7}\]  
where, \(T_{MT,x}\), \(T_{MT,y}\), and \(T_{MT,z}\) are the components of \(T_{MT}\) along \(O_{b}X_{b}\), \(O_{b}Y_{b}\), and \(O_{b}Z_{b}\) axes, respectively, and \(d_{x}\), \(d_{y}\), and \(d_{z}\) are the components of \(\mathbf{d}\) along \(O_{b}X_{b}\), \(O_{b}Y_{b}\), and \(O_{b}Z_{b}\) axes, respectively [27]. Discretizing the above equation by first-order accuracy schemes, the transition matrix \(\mathbf{\Phi}_{Rate}\in\Re^{3\times 3}\) can be obtained:  
\[\mathbf{\Phi}_{Rate}= \begin{bmatrix}1&\frac{I_{y}-\bar{I}_{x}}{I_{x}}\omega_{z} \Delta T&\frac{I_{y}-\bar{I}_{x}}{I_{x}}\omega_{y}\Delta T\\ \frac{I_{y}-\bar{I}_{x}}{I_{x}}\omega_{z}\Delta T&1&\frac{I_{y}-\bar{I}_{y}}{ I_{x}}\omega_{z}\Delta T\\ \frac{I_{y}-\bar{I}_{x}}{I_{x}}\omega_{y}\Delta T&\frac{I_{x}-\bar{I}_{y}}{I_{ x}}\omega_{x}\Delta T&1\end{bmatrix} , \tag{8}\]  
where \(\Delta T\) is the sampling period of the filter. Denote the measured value obtained by the TAM at the current sampling time as \(\mathbf{B}^{b}= \begin{bmatrix}B_{x}^{b}&B_{y}^{b}&B_{z}^{b}\end{bmatrix} ^{\mathsf{ T}}\in\Re^{3}\), and denote the measured value obtained by the TAM at the  
Figure 2: Sketch of the sun-oriented spin-stabilized attitude control method. previous sampling time as \(\mathbf{B}^{b}_{prev}= \begin{bmatrix}B^{b}_{px}&B^{b}_{py}&B^{b}_{pz}\end{bmatrix} ^{ \mathsf{T}}\in\Re^{3}\). Then, the measurement vector \(\mathbf{Z}_{Rate}\in\Re^{3}\) of the rate filter is taken as the difference between two adjacent measured values of the TAM:  
\[\mathbf{Z}_{Rate}=\mathbf{B}^{b}-\mathbf{B}^{b}_{prev}= \begin{bmatrix}B^{b}_{x}-B^{b}_{ px}\\ B^{b}_{y}-B^{b}_{py}\\ B^{b}_{z}-B^{b}_{pz}\end{bmatrix} . \tag{9}\]  
Because the sampling period \(\Delta T\) is small relative to the orbital period, the variation of the geomagnetic field vector at the location of the satellite in \(\Delta T\) can be ignored. Therefore, it can be approximated that the difference between \(\mathbf{B}^{b}\) and \(\mathbf{B}^{b}_{prev}\) is only affected by the attitude motion of the satellite. Let \(\mathbf{\Theta}_{\Delta}=\Delta T\cdot\mathbf{\omega}^{b}_{bi}\in\Re^{3}\) be the vector expression of the rotation angle of the satellite in \(\Delta T\). Because the rotation angle is relatively small during \(\Delta T\), the direction cosine matrix \(\mathbf{C}_{\Delta}\in\Re^{3\times 3}\) corresponding to \(\mathbf{\Theta}_{\Delta}\) can be approximated as [31]:  
\[\mathbf{C}_{\Delta}\approx\mathbf{I}_{3}-\Delta T \begin{bmatrix}\mathbf{\omega}^{b}_{bi} \end{bmatrix} ^{\times}, \tag{10}\]  
where \(\mathbf{I}_{3}\in\Re^{3\times 3}\) is an identity matrix, and \(