# Intersatellite and Downlink Agile Attitude Maneuvers
## 4 Actuation
### Singular-Direction-Avoidance Steering Law  
Equation (27) is simplified, for the purpose of deriving an effective, real-time steering law, by adopting the following assumptions:  
* the term \(\dot{J}_{C}^{(\underline{\theta})}\) is negligible, i.e., the overall inertia matrix is subject to modest time variations, due to the wheels rotation about their gimbal axes;
* the terms related to the second derivative of \(\theta_{1}^{(j)}\) are negligible;
* \(|\omega_{R}^{(j)}|\gg|\underline{\omega}|\), namely the rotor speeds are sufficiently high.  
In this way, the only terms responsible for generating \(\underline{T}_{a}\) are those not including the gyroscopic terms (i.e., terms with \(\underline{\omega}\) or \(\tilde{\omega}\)). Under the preceding assumptions, the approximate actual torque \(\underline{T}_{a}^{(A)}\) is along axis \(\hat{f}_{j}\) of each wheel and must equal \(\underline{T}_{C}\), the commanded torque supplied by Equation (9),  
\[\underline{T}_{a}^{(A)}=A\dot{\underline{\theta}}=\underline{T}_{c} \tag{28}\]  
The Moore-Penrose pseudoinverse provides a solution for \(\dot{\underline{\theta}}\) that minimizes \(|\dot{\underline{\theta}}|\),  
\[\dot{\underline{\theta}}=A^{T}(AA^{T})^{-1}\underline{T}_{c} \tag{29}\]  
However Equation (29) requires the inversion of matrix \(AA^{T}\), which could be singular in some cases. In order to overcome this issue, this steering law is modified using a singularity avoidance strategy based on the singular value decomposition (SVD) [29; 31]. To prevent \(AA^{T}\) from becoming singular, one can replace it with  
\[A^{\#}=(AA^{T}+X) \tag{30}\]  
where matrix \(X\) is properly chosen in order to keep the system far from the singularity. Matrix \(A\) can be factorized trough SVD,  
\[A=U\Sigma V^{T} \tag{31}\]  
where the columns of matrices \(U\) and \(V\) contain, respectively, the left-singular and the right-singular vectors of \(A\), whereas \(\Sigma\) is the rectangular diagonal matrix containing the singular values. This algorithm introduces an error component in the actuated torque, which allows avoiding the singularity. In particular, in this research SDA (Singularity DirectionAvoidance) is used, based on introducing an error only along the direction associated with the minimum singular value of \(A\). Matrix \(X\) is set to  
\[X=U\begin{bmatrix}0&0&0\\ 0&0&0\\ 0&0&\alpha\end{bmatrix}U^{T} \tag{32}\]  
where \(\alpha\) is given by  
\[\alpha=\alpha_{ref}e^{\left[-\mu_{0}\sqrt{\det A\,A^{T}}\right]},\quad\alpha_ {ref},\mu_{0}\in\mathbb{R}^{+} \tag{33}\]  
Symbols \(\alpha_{ref}\) and \(\mu_{0}\) denote two positive scalar quantities; \(\alpha\) becomes relevant when the system is near the singularity, i.e., \(\det(AA^{T})\approx 0\), whereas it is negligible when the system is far from singularity, i.e., \(\det(AA^{T})\gg 0\). Taking advantage of SVD, the computation of \(\dot{\underline{\theta}}\) does not require any inversion of \(A^{\#}\). Denoting with \(\sigma_{1}\), \(\sigma_{2}\), \(\sigma_{3}\) the singular values of \(A\) in decreasing order of magnitude, the gimbal angular rates \(\dot{\underline{\theta}}\) (i.e., the steering law) is finally provided by  
\[\dot{\underline{\theta}}=V\begin{bmatrix}\dfrac{1}{\sigma_{1}}&0&0\\ 0&\dfrac{1}{\sigma_{2}}&0\\ 0&0&\dfrac{\sigma_{3}}{\sigma_{3}^{2}+\alpha}\\ 0&0&0\end{bmatrix}U^{T}\underline{T}_{c} \tag{34}\]