In order to control the attitude of a spacecraft, various rotating inertia members can be used. One such inertia member is a control moment gyroscope (CMG). A CMG typically comprises a flywheel with a fixed or variable spin rate mounted to a gimbal assembly. The spin axis of the CMG can be tilted by moving the CMG using the gimbal assembly. This motion produces a gyroscopic torque orthogonal to the spin axis and gimbal axis.
To achieve full attitude control of a spacecraft, a minimum of three CMGs, arranged such that each CMG in the CMG array imparts torque about a linearly independent axis, can be used. Typically, additional CMGs are provided for redundancy purposes and to assist with singularity avoidance. A singularity occurs when the momentum vectors of the CMGs line up such that one or more components of the requested torque can not be provided.
Several different techniques have been developed to avoid singularities. In one method it is first noted that a Jacobian A maps the CMG gimbal rates into a three dimensional array torque:Aω=τ  (1)
where A is a 3×n Jacobian matrix, ω is a n×1 array of gimbal rates for the n gimbals, and τ is a 3×1 array of torque components to be imparted to the spacecraft. From the above equation and with a known torque command, τ, the individual gimbal rates for each CMG can be calculated. Using the known Moore-Penrose pseudoinverse to invert the Jacobian matrix, a set of possible gimbal rates is:ω=AT(AAT)−1τ  (2)
As discussed previously, inherent in the use of CMGs is the possibility that the CMGs' momentum vectors may line up in such a way that a singularity condition is reached. Mathematically, singularities can occur when the eigenvalues of AAT approach zero, causing (AAT)−1 to go to infinity. Or, equivalently, singularities occur when the determinant of the matrix AAT is equal to zero (expressed algebraically as det (AAT)=0). In the case of a 3×n matrix A, this is equivalent to saying the rank of the matrix AAT is two or less.
Different approaches have been devised to avoid singularities in the movement of CMGs. In one approach, to ensure that (AAT)−1 never is 0, (AAT)−1 is replaced by (AAT+εI)−1 where I is the identity matrix and ε is a small number. The use of a positive ε ensures that det (AAT+εI)−1 never becomes 0.
While useful in some instances, a drawback to this approach is that this approach changes the gimbal rate calculation. In the case of the Jacobian A, the use of the pseudoinverse means that gimbal rates are no longer exactly mapped into the commanded torques because of the error ε introduces. This resulting error steers the spacecraft in the wrong direction and can introduce significant, undesired torque, especially near the singularity.
A second approach is to limit the CMG array's momentum output to a smaller area within a momentum envelope. The momentum envelope is the momentum provided in all possible combinations of the CMGs in the CMG array. Depending on the CMG arrangement, by operating within, in one exemplary embodiment, one-third or less of the total momentum envelopes, singularities can be avoided. However, this approach wastes potential torque and results in systems that are much larger and heavier than needed.
Another approach is to utilize steering laws that avoid singularities. Steering laws allow a singularity free momentum path to be determined before moving the CMGs. The difficulty with steering laws is that determining the path is typically a computationally intensive undertaking that results in excessive delay between the command to rotate the spacecraft and the actual initiation of rotation. What is needed is a steering law that can efficiently and quickly determine a singularity free momentum path.