This invention relates to the field of spacecraft vehicle control and, more specifically, to a method and system for controlling sets of collinear control moment gyroscopes.
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 CMG array, including a minimum of three CMGs may be arranged such that each CMG in the CMG array imparts torque about a linearly independent axis. Typically, additional CMGs are provided for redundancy purposes and to assist with singularity avoidance. A singularity can occur when the momentum vectors of the CMGs line up such that one or more components of the requested torque can not be provided. Rather than just ensuring that provided torque does not go to zero, this invention guarantees that provided torque equals requested torque, whenever requested torque values stay below some threshold.
Several different techniques have been developed to avoid singularities. In one method it is first noted that a Jacobian matrix 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 approach infinity. 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 the rank of the matrix AAT being two or less.
Different approaches have been devised to avoid singularities in the movement of CMGs. In one approach, to ensure that (AAT)−1 is never zero, (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 it 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. In one exemplary embodiment, depending on the CMG arrangement, by operating within 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 larger and heavier than needed.
In view of the foregoing, it is desirable to provide a method for controlling sets of collinear CMGs that addresses one or more of the foregoing deficiencies or other deficiencies not implicitly or expressly described. It is also desirable to provide a system for controlling sets of collinear CMGs that addresses one or more of the foregoing deficiencies or other deficiencies not implicitly or expressly described. Furthermore, other desirable factors and characteristics of the present invention will become apparent from the subsequent detailed description and the appended claims, taken in conjunction with the accompanying drawings and the foregoing technical field and background.
In an exemplary embodiment a method for controlling the movement of two or more sets of collinear control moment gyroscope (CMGs) in an array of CMGs in a spacecraft is disclosed. In a first step, an offset for each CMG set of the two or more sets of collinear CMGs to maximize available torque is determined. Next, a total torque to adjust the orientation of the spacecraft is calculated. The total torque is allocated to produce an allocated torque for each set of the two or more sets of collinear CMGs. Then, a required gimbal movement for each set of the CMGs in the two or more sets of collinear CMGs from the allocated torque is calculated.
A control system of a spacecraft for controlling two or more sets of collinear control moment gyroscopes (CMGs) comprises an attitude control system. The attitude control system is configured to receive a command to adjust an orientation of the spacecraft, determine an offset for a momentum disk for each of the two or more sets of CMGs that maximizes available torque, determine a momentum needed from the two or more sets of CMGs to adjust the orientation of the spacecraft, and calculate a total torque needed by taking the derivative of the momentum. The control system further comprises a momentum actuator control processor coupled to the attitude control system, the momentum actuator control processor configured to calculate a required gimbal movement for each of the CMGs in each of the two or more sets of collinear CMGs from total torque.
In another embodiment, a method for singularity-free movement of an array of control moment gyroscopes (CMGs) comprises a first step of allocating the array of CMGs as at least two sets of collinear CMGs. Next, an offset for a momentum ellipse for each of the two sets of CMGs that maximizes torque is calculated. Then, a momentum radius f(A) that defines a sphere of allowable momentum is determined. Next, it is determined whether a requested momentum to change the orientation of a spacecraft is within the sphere of allowable momentum. Then, a gimbal movement for each CMG to provide the requested momentum is determined if the requested momentum is within the sphere of allowable momentum.
The present invention will hereinafter be described in conjunction with the following drawing figures, wherein like numerals denote like elements, and:
a and 4b illustrate momentum ellipses for different solutions that maximize the ellipses in an annular region; and
The following detailed description is merely exemplary in nature and is not intended to limit the invention or the application and uses of the invention. Furthermore, there is no intention to be bound by any expressed or implied theory presented in the preceding technical field, background, brief summary or the following detailed description.
An exemplary control system 100 for implementing the present invention is illustrated in
The control system 100 includes an attitude control system 102 coupled to a momentum actuator control processor 104. CMGs 106 are coupled the momentum actuator control processor 104. Associated with each CMG 106 are one or more CMG sensors 108 for providing information concerning the state of the CMG 106 to the control system 100. Control system 100, in one embodiment, is mounted on a spacecraft such as an orbiting satellite.
Attitude control system 102 controls the positioning of a spacecraft. The attitude control system 102 receives data concerning a desired spacecraft maneuver and determines an appropriate torque command to complete the desired maneuver. The torque commands can be presented to the momentum actuator control processor 104. The momentum actuator control processor 104, in response to the torque commands, can calculate the gimbal rates necessary to produce the commanded torque. Additionally, the momentum actuator control processor 104 calculates gimbal movement from a momentum path determined by a steering law. The momentum actuator control processor 104, based on these calculations, provides the necessary commands to the CMGs 106 such that the CMG movement produces the commanded torque and, in accordance with the teachings of the present invention, provides the torque while avoiding singularities. This can be accomplished, in one exemplary embodiment, by changing the gimbal angles of the CMGs at a certain gimbal angle rate.
A single-gimbal CMG has constant momentum magnitude, and rotates about one axis. The constant gimbal axis of the ith CMG in a set of CMGs can be denoted with unit vector pi∈R3, and the momentum vector of the ith CMG in a set of CMGs can be denoted by vector hi∈R3. The gimbal angle of the ith CMG will be denoted by θi. Thus:
pi′*hi(θi)=0
pi′*pi=1 (3)
The torque of the ith CMG in a set of CMGs can be denoted by the vector τi∈R3:
The total momentum and torque of a system of n CMGs can be denoted by:
One way to arrange CMGs and achieve full attitude control of a spacecraft is to partition multiple CMGs into two or more sets of collinear CMGs. Each CMG in a set of collinear CMGs shares the same gimbal axis direction, but each set of collinear CMGs can have an arbitrary gimbal-axis orientation. In one exemplary embodiment, n CMGs are partitioned into k sets, Sk, with unit vectors {p1, p2, . . . , pk} different from each other. In an exemplary embodiment, eight (8) CMGs can be partitioned into three (3) sets, with {p1, p2, p3} different from each other:
S1={1,4,7} p1=p4=p7
S2={2,5,8} p2=p5=p8
S3={3,6} p3=p6
Each set of collinear CMGs produces a momentum space confined within a disc or annulus:
If the largest momentum magnitude of any CMG in a collinear set of CMGs is less than or equal to the sum of the momentum magnitudes of all other CMGs, then the total momentum of that set of collinear CMGs will be a disk, otherwise the total momentum will be an annulus. Therefore, a set of two or more collinear CMGs, where each of the CMGs have equal momentum magnitude, will have its total momentum on a disk, while a collinear set of two CMGs with one CMG having more momentum magnitude than the other, results in the total momentum lying within an annulus whose inner radius is the difference of the two momenta.
The momentum, hi with i∈Sj, of a ith CMG in a set of CMGs can be decomposed into one component in the hdisc
From Eqn. 4, and noting that pj×(pj×hdisc
Total torque from the total momentum of hdisc
Combining Eqns. 9 and 10 gives:
Since τdisc
giving τdisc
Noting that the above 3-by-2 matrix just to the right of the equal sign is orthogonal results in an inverse formula:
Since sufficient torque capabilities in all directions is desirable, for the above selection of gimbal rate constraints the following bound can be used:
This bound can be used to solve for a torque bound:
This can be expressed as:
In the special case where hdic
can be set equal to A and ∥hdisc
To control the sets of CMGs, in one exemplary embodiment, a controller can divide total momentum, h, amongst k individual discs according to the rule:
where αji=αij such that:
Since the momentum of hdisc
Lj=I−pj*pj′ (22)
The most general choice for Lj can be:
Lj=(I−pj*pj′)*Mj (23)
where Mj is any 3-by-3 matrix. The values of αji can be chosen to maximize the amount of torque available within any given momentum sphere. If each Lj and αji are constant, then:
Given a commanded torque, Eqn. 24 shows how to distribute that torque amongst the various discs. Gimbal controllers can take each of the τdisc
The above 3-by-2 matrix just to the right of the equal sign is orthogonal and provides an inverse formula:
Given any commanded total torque, τ, Eqn. 27 provides the required gimbal rates, using the additional formulas:
{dot over (θ)}ja=({dot over (θ)}jb+{dot over (θ)}ja)/2−({dot over (θ)}jb−{dot over (θ)}ja)/2
{dot over (θ)}jb=({dot over (θ)}jb+{dot over (θ)}ja)/2−({dot over (θ)}jb−{dot over (θ)}ja)/2
{dot over (θ)}jc=({dot over (θ)}jb+{dot over (θ)}ja)/2−coeff*[θjc−(θjb+θja)/2] (28)
where the small positive constant “coeff” corrects any small errors due to discrete integration.
In the special case where ∥hjb∥=∥hja∥, then hdisc
Examining
This reduces Eqn. 27 to:
Returning to the general case of Eqn. 27, if Lj=I−pj*p′j and P=[p1, p2, . . . pk] then the annulus in which hdisc
and the torque bound is:
Therefore, whenever total momentum stays within a ball with a momentum radius of f(A), the available torque should be above some threshold; i.e., for any value of A:
The momentum for each set of CMGs, as discussed previously, lies in an annulus of the form:
and from Eqn. 20:
The αji should be chosen to ensure that each hdisc
When there are three sets of collinear CMGs, there are three independent αji, i.e., (α12, α23, α31) and three ellipses whose origin must be adjusted to allow the ellipses to be as large as possible, while still being inside the three annuli. In embodiments where there are two sets of collinear CMGs, there is one independent αji, i.e. α=α12 and two ellipses whose origin must be moved to allow the two ellipses to be as large as possible, while still being inside the two annuli. As f(A) is optimized, the ellipses touch the annuli in two or three places.
In the exemplary embodiment of two sets of collinear CMGs, the earlier equations reduce to:
hdisc1=L1[L1+L2]−1h+α(p1×p2) (40)
hdisc2=L2[L1+L2]−1h−α(p1×p2) (41)
where the value of α can be chosen to maximize the torque that is available within any given size momentum ball.
If L1, L2 and α are constant, then:
In addition, singularities can exist at or near the origin, O, of each of the two momentum discs. Therefore, a first increased minimum boundary 312, and a second increased minimum boundary 310 can be defined. The radius of the first increased minimum boundary 312 and the second increased minimum boundary 310 can be denoted as r1(A). First reduced maximum boundary 308 and first increased minimum boundary 312 define an annulus for hdisk1 and the second reduced maximum boundary 304 and the second increased minimum boundary 310 define an annulus for hdisk2. A first ellipse 314 lies within the annulus defined by the first reduced maximum boundary 308 and first increased minimum boundary 312 and a second ellipse 316 lies within the annulus defined by the second reduced maximum boundary 304 and the second increased minimum boundary 310. The first ellipse 314 is where the hdisk1 lies and the second ellipse 316 is where the hdisk2 lies when ∥h∥=∥hdisc
To maximize the radius f(A), which will maximize the momentum for a given size torque limit, “A,” an ellipse offset function α(A) is calculated. If the normal vectors, p1 and p2, of the two momentum discs are chosen to be orthogonal, then p1′*p2=0, and the entire system of CMGs can be rotated until those two unit vectors line up with the first two coordinate axes:
This results in two ellipses with each ellipse representing the momentum of a set of CMGs.
To maximize the size, f(A), of the 3D momentum sphere, the function α(A)needs to be chosen such that it determines the two ellipse centers at ±[0;0;α], which will keep each ellipse within its annulus whose inner radius is r1 and outer radius is r2.
The maximum of f(A) is attained when each ellipse touches both the inner and outer radii of each corresponding annulus. Since each ellipse has a similar structure, the same value of α causes each ellipse to touch both inner and outer radii of its corresponding annulus. For each optimum value of α, the same optimum value would be achieved by changing the sign on α, so only positive values of α are considered. Consider the first ellipse, whose equation is:
The point [x,y,z]=[0,0,r1(A)] is where an ellipse just touches its annular boundaries at the smallest radius, r1(A). If the points [0,±y0,z0] are where the ellipse just touches its annular boundaries at the largest radius, r2(A), then the following equations for the values of α(A), f(A), y0(A) and z0(A) can be solved, using the known intermediate functions r1(A) and r2(A):
(y0)2+(z0)2=(r2(A))2 since [0±,y0, z0] lie on circle of radius r2(A) (51)
(y0)2+(2*(z0−α))2=f2 since [0,±y0,z0] lie on ellipse (52)
(2*(r1(A)−α))2=f2(A) since [0,0,r1(A)] lies on ellipse (54)
The two solutions of Eqn. 53 are:
y0=0or z0=4*(z0−α) where r1(A)<α<r2(A) (55)
Using these two solutions to solve the remaining three equations gives:
Solution 1:
Solution2: The z0=4*(z0−α) solution implies that z0=4α/3. Subtracting equations 51 and 52 eliminates y0, leaving:
3*(z0)2−(8α)*z0+(4α2+r2(A)2−f(A)2)=0 (60)
Substituting z0=4α/3 into this equation gives:
or
In order for the ellipse to be inside the annulus, α>r1(A). Given α>r1(A), Eqn. 54 is:
Substituting Eqn. 63 into Eqn. 62 results in:
Solving this quadratic equation for f, and keeping the positive solution gives the value of f for solution2:
Note that for any given value of r1(A)/r2(A), both solution 1 and solution 2′ will give an ellipse that is tangent to both the inner and outer radius of the annulus, but exactly one of the solutions will give an ellipse that is totally inside the annulus. Setting fsolution1(A)=fsolution2(A) gives r2(A)=2r1 (A) where the valid solution switches between solution 1 and solution 2. For r2(A)<2r1 (A), solution 1 gives an ellipse that is inside the annulus. For r2(A)>2r1 (A), solution 2 gives an ellipse that is inside the annulus. This is illustrated in
To complete the solutions, recall from earlier in this section that:
In the case where each of the two discs has three collinear CMGs, and all six ∥hi∥ are equal:
The maximum value of A with all six ∥hi∥ equal and or r1(A)<r2(A),
In the case where either or both of the two discs has lost one of its three collinear CMGs, label the lost CMG as ∥hjc∥ thus:
r1(A)=√{square root over (2)}A (70)
r2(A)=0+√{square root over ((2∥hi∥)2−2A2)} where all unfailed ∥hi∥ are equal. (71)
A<∥hi∥represents the maximum value of A after a failure.
In summary, to ensure that available torque is above some threshold, A, whenever total momentum stays within some ball of a given size, f(A):
we need f(A) to be given by:
Next, in step 504, a maneuvering command to rotate spacecraft orientation is received. In one exemplary embodiment, the maneuvering command is sent from a ground control station to the attitude control system 102 of the spacecraft. Alternatively, the maneuvering command may be generated by the spacecraft based, for example, on a preplanned movement schedule.
After the maneuvering command is received, the torque required for each set of CMGs is determined in step 506. In one embodiment, the needed torque for all sets of collinear CMGs to provide the required maneuver is determined. Then, in step 508, the total torque needed is split into the individual torque required for each set of CMGs which is determined using Eqn. 24. Alternatively, the momentum needed to maneuver the spacecraft can be determined and allocated between each set of CMGs. Torque can then be calculated by taking the derivative of the momentum. These calculations can be done at the attitude control system 102.
In step 510, gimbal rates for each CMG in a set of CMGs are determined. The gimbal rates can be determined by Eqns. 27-28. In one exemplary embodiment, the gimbal rates can be determined by the momentum actuator control processor.
In step 512, the gimbals for each of the collinear CMGs for each set of collinear CMGs are then moved to provide the proper momentum.
The exemplary embodiment or embodiments described herein are not intended to limit the scope, applicability, or configuration of the invention in any way. Rather, the foregoing detailed description will provide those skilled in the art with a convenient road map for implementing the described embodiment or embodiments. It should be understood that various changes can be made in the function and arrangement of elements without departing from the scope of the invention as set forth in the appended claims and the legal equivalents thereof.