US-12617554-B2 - Systems and methods for combined control moment gyroscope and thruster control
Abstract
Systems and methods disclosed provide for attitude control of a body, the body including a plurality of thrusters and a plurality of gimballed rotors. Operations performed include: receiving a command vector representing a desired torque on the body, generating a Jacobian matrix that, when applied to a combined gimbal rate and thrust command vector, generates the command vector, generating components of a weighted pseudo inverse of the Jacobian matrix and using the components with the command vector in order to generate the combined gimbal rate and thrust command vector. Generating components of the weighted pseudo inverse of the Jacobian matrix can include generating a weighting matrix including a plurality of diagonal elements, the plurality of diagonal elements representing at least the plurality of gimballed rotors and the plurality of thrusters.
Inventors
- Christopher J. Heiberg
Assignees
- THE BOEING COMPANY
Dates
- Publication Date
- 20260505
- Application Date
- 20230308
Claims (20)
- 1 . A system for attitude control of a body, the system comprising: a module for controlling at least one control moment gyroscope array and a plurality of thrusters, wherein the at least one control moment gyroscope array comprises a plurality of gimballed rotors, and wherein the at least one control moment gyroscope array and the plurality of thrusters are configured to provide said attitude control to the body, the module being responsive to a gimbal rate command and a thruster command; a processor; and a non-transitory computer storage medium storing instructions that when executed by the processor cause the processor to perform operations comprising: receiving a command vector representing a desired torque vector on said body associated with said attitude control; generating a Jacobian matrix Ā that, when applied to a combined gimbal rate and thrust command vector, generates said command vector; generating components of a weighted pseudo inverse of said Jacobian matrix Ā and using said components with said command vector in order to generate said combined gimbal rate and thrust command vector; providing said gimbal rate command to said module based on said generated combined gimbal rate and thrust command vector; and providing said thrust command to said module based on said generated combined gimbal rate and thrust command vector; wherein said generating components of said weighted pseudo inverse of said Jacobian matrix Ā comprises generating a weighting matrix W comprising a plurality of diagonal elements, said plurality of diagonal elements representing at least said plurality of gimballed rotors and said plurality of thrusters.
- 2 . The system of claim 1 , wherein said plurality of gimballed rotors includes N gimballed rotors (CMG 1 , . . . . CMG N ), said plurality of thrusters includes M thrusters (TH 1 , . . . . TH M ), said Jacobian matrix Ā is a 3×(M+N) matrix, and said weighting matrix W is an (M+N)×(M+N) matrix characterized by a matrix form: W _ = [ w ( CMG 1 ) … η 1 N η 1 N + 1 … η 1 N + M ⋮ ⋱ ⋮ ⋮ ⋱ ⋮ η N 1 … w ( CMG N ) η N N + 1 … η N N + M η N + 1 1 … η N + 1 N w ( TH 1 ) … η N + 1 N + M ⋮ ⋱ ⋮ ⋮ ⋱ ⋮ η N + M 1 … η N + M N η N + M N + 1 … w ( TH M ) ] ; wherein said diagonal elements w(CMG 1 ), . . . w(CMG N ), w(TH 1 ), . . . w(TH M ) and the values η IJ with I∈{1, . . . , N+M} and J∈{1, . . . , N+M} are configured to modulate authority among the plurality of gimballed rotors and the plurality of thrusters.
- 3 . The system of claim 2 , wherein the values η IJ are selected from a set of: η IJ =0 and η IJ ˜0 in comparison to said diagonal elements w(CMG 1 ), . . . w(CMG N ), w(TH 1 ), . . . w(TH M ).
- 4 . The system of claim 3 , wherein said diagonal elements w(CMG 1 ), . . . w(CMG N ), w(TH 1 ), . . . w(TH M ) are non-zero.
- 5 . The system of claim 2 , wherein said generating components of said weighted pseudo inverse of said Jacobian matrix Ā comprises: transposing said Jacobian matrix Ā to obtain an (M+N)×3 matrix ; inverting a first matrix product Ā W Ā T to obtain a 3×3 matrix [Ā W Ā T ] −1 ; and generating a second matrix product: W Ā T [Ā W Ā T ] −1 .
- 6 . The system of claim 5 , wherein said command vector is characterized by a vector form: [ h . ( 1 ) h . ( 2 ) h . ( 3 ) ] ; and wherein [ h . ( 1 ) h . ( 2 ) h . ( 3 ) ] denotes a desired torque associated with the body, the parenthetical subscripts (1), (2), and (3) denoting orthonormal components in three-dimensional momentum space; and wherein said generating components of said weighted pseudo inverse of said Jacobian matrix Ā and using said components with said command vector in order to generate said combined gimbal rate and thrust command vector comprises determining a product: W Ā T [Ā W Ā T ] −1 W _ A _ T [ A _ W _ A _ T ] - 1 [ h . ( 1 ) h . ( 2 ) h . ( 3 ) ] .
- 7 . The system of claim 2 , wherein said at least one control moment gyroscope array has an associated momentum envelope representing a bound on momentum values that can be accessed by said at least one control moment gyroscope array; wherein an inverse of a first matrix product, [Ā W Ā T ] −1 exhibits a singularity at and/or near a portion of said associated momentum envelope; and wherein said generating components of said weighted pseudo inverse of said Jacobian matrix Ā comprises: transposing said Jacobian matrix Ā to obtain an (M+N)×3 matrix Ā T ; and applying a singularity avoidance technique to provide a second matrix product corresponding to W Ā T [Ā W Ā T ] −1 .
- 8 . The system of claim 7 , wherein said singularity avoidance technique comprises: inverting a sum of the first matrix product Ā W Ā T and λ ∈ to obtain a 3×3 matrix [Ā W Ā T +λ ∈ ] −1 ; and generating the second matrix product: W Ā T [Ā W Ā T +λ ∈ ] −1 ; wherein ∈ is characterized by a second matrix form: [ 1 ϵ ( 12 ) ( t ) ϵ ( 13 ) ( t ) ϵ ( 21 ) ( t ) 1 ϵ ( 23 ) ( t ) ϵ ( 31 ) ( t ) ϵ ( 32 ) ( t ) 1 ] wherein each of ∈ (12) (t), ∈ (13) (t), ∈ (21) (t), ∈ (23) (t) ∈ (31) (t), and ∈ (32) (t) are small compared to 1, and are time-varying; and wherein λ is a constant.
- 9 . The system of claim 8 , wherein said at least one control moment gyroscope array is operating at or substantially near said portion of said associated momentum envelope; wherein said portion of said associated momentum envelope is associated with a saturation singularity; and wherein the constant λ is scaled to singular values associated with said saturation singularity.
- 10 . A method for attitude control of a body using at least one control moment gyroscope array and a plurality of thrusters, wherein the at least one control moment gyroscope array comprises a plurality of gimballed rotors, and wherein the at least one control moment gyroscope array and the plurality of thrusters provide said attitude control of said body in response to an attitude control instruction set, the method comprising: acquiring a command vector representing a desired torque vector on said body associated with said attitude control; generating a Jacobian matrix Ā that, when applied to a combined gimbal rate and thrust command vector, generates said command vector; generating components of a weighted pseudo inverse of said Jacobian matrix Ā and using said components with said command vector in order to generate said combined gimbal rate and thrust command vector; determining said attitude control instruction set based on said generated combined gimbal rate and thrust command vector; and providing said attitude control instruction set to said at least one control moment gyroscope array and said plurality of thrusters; wherein said generating components of said weighted pseudo inverse of said Jacobian matrix Ā comprises generating a weighting matrix W comprising a plurality of diagonal elements, said plurality of diagonal elements representing at least said plurality of gimballed rotors and said plurality of thrusters.
- 11 . The method of claim 10 , wherein said plurality of gimballed rotors includes N gimballed rotors (CMG 1 , . . . . CMG N ), said plurality of thrusters includes M thrusters (TH 1 , . . . . TH M ), said Jacobian matrix Ā is a 3×(M+N) matrix, and said weighting matrix W is an (M+N)×(M+N) matrix characterized by a matrix form: W _ = [ w ( CMG 1 ) … η 1 N η 1 N + 1 … η 1 N + M ⋮ ⋱ ⋮ ⋮ ⋱ ⋮ η N 1 … w ( CMG N ) η N N + 1 … η N N + M η N + 1 1 … η N + 1 N w ( TH 1 ) … η N + 1 N + M ⋮ ⋱ ⋮ ⋮ ⋱ ⋮ η N + M 1 … η N + M N η N + M N + 1 … w ( TH M ) ] ; wherein said diagonal elements w(CMG 1 ), . . . w(CMG N ), w(TH 1 ), . . . w(TH M ) and the values η IJ with I∈{1, . . . , N+M} and J∈{1, . . . , N+M} are configured to modulate authority among the plurality of gimballed rotors and the plurality of thrusters.
- 12 . The method of claim 11 , wherein the values η IJ are selected from a set of: η IJ =0 and η IJ ˜0 in comparison to said diagonal elements w(CMG 1 ), . . . w(CMG N ), w(TH 1 ), . . . w(TH M ).
- 13 . The method of claim 12 , wherein said diagonal elements w(CMG 1 ), . . . w(CMG N ), w(TH 1 ), . . . w(TH M ) are non-zero.
- 14 . The method of claim 11 , wherein said generating components of said weighted pseudo inverse of said Jacobian matrix Ā comprises: transposing said Jacobian matrix Ā to obtain an (M+N)×3 matrix Ā T ; inverting a first matrix product Ā to obtain a 3×3 matrix [Ā W Ā T ] −1 ; and generating a second matrix product: W Ā T [Ā W Ā T ] −1 .
- 15 . The method of claim 14 , wherein said command vector is characterized by a vector form: [ h . ( 1 ) h . ( 2 ) h . ( 3 ) ] ; and wherein [ h . ( 1 ) h . ( 2 ) h . ( 3 ) ] denotes a desired torque associated with the body, the parenthetical subscripts (1), (2), and (3) denoting orthonormal components in three-dimensional momentum space; and wherein said generating components of said weighted pseudo inverse of said Jacobian matrix Ā and using said components with said command vector in order to generate said combined gimbal rate and thrust command vector comprises determining a product: W Ā T [Ā W Ā T ] −1 W _ A _ T [ A _ W _ A _ T ] - 1 [ h . ( 1 ) h . ( 2 ) h . ( 3 ) ] .
- 16 . The method of claim 11 , wherein said at least one control moment gyroscope array has an associated momentum envelope representing a bound on momentum values that can be accessed by said at least one control moment gyroscope array; wherein an inverse of a first matrix product [Ā W Ā T ] −1 exhibits a singularity at and/or near a portion of said associated momentum envelope; and wherein said generating components of said weighted pseudo inverse of said Jacobian matrix à comprises: transposing said Jacobian matrix Ā to obtain an (M+N)×3 matrix Ā T ; and applying a singularity avoidance technique to provide a second matrix product corresponding to W Ā T [Ā W Ā T ] −1 .
- 17 . The method of claim 16 , wherein said singularity avoidance technique comprises: inverting a sum of the first matrix product Ā W Ā T and λ ∈ to obtain a 3×3 matrix [Ā W Ā T +λ ∈ ] −1 ; and generating the second matrix product: W Ā T [Ā W Ā T +λ ∈ ] −1 ; wherein ∈ is characterized by a second matrix form: [ 1 ϵ ( 12 ) ( t ) ϵ ( 13 ) ( t ) ϵ ( 21 ) ( t ) 1 ϵ ( 23 ) ( t ) ϵ ( 31 ) ( t ) ϵ ( 32 ) ( t ) 1 ] wherein each of ∈ (12) (t), ∈ (13) (t), ∈ (21) (t), ∈ (23) (t) ∈ (31) (t), and ∈ (32) (t) are small compared to 1, and are time-varying; and wherein λ is a constant.
- 18 . The method of claim 17 , wherein said at least one control moment gyroscope array is operating at or substantially near said portion of said associated momentum envelope; wherein said portion of said associated momentum envelope is associated with a saturation singularity; and wherein the constant λ is scaled to singular values associated with said saturation singularity.
- 19 . A non-transitory computer-readable medium storing instructions that when executed by a system for attitude control of a body cause the system to perform a method for attitude control using at least one control moment gyroscope array and a plurality of thrusters, wherein the at least one control moment gyroscope array comprises a plurality of gimballed rotors, the method comprising: acquiring a command vector representing a desired torque vector on said body associated with said attitude control; generating a Jacobian matrix Ā that, when applied to a combined gimbal rate and thrust command vector, generates said command vector; generating components of a weighted pseudo inverse of said Jacobian matrix Ā and using said components with said command vector in order to generate said combined gimbal rate and thrust command vector; determining an attitude control instruction set based on said generated combined gimbal rate and thrust command vector; and providing said attitude control instruction set to said at least one control moment gyroscope array and said plurality of thrusters; wherein said generating components of said weighted pseudo inverse of said Jacobian matrix Ā comprises generating a weighting matrix W comprising a plurality of diagonal elements, said plurality of diagonal elements representing at least said plurality of gimballed rotors and said plurality of thrusters.
- 20 . The non-transitory computer-readable medium of claim 19 , wherein said plurality of gimballed rotors includes N gimbals (CMG 1 , . . . . CMG N ), said plurality of thrusters includes M thrusters (TH 1 , . . . . TH M ), said Jacobian matrix Ā is a 3×(M+N) matrix, and said weighting matrix W is an (M+N)×(M+N) matrix characterized by a matrix form: W _ = [ w ( CMG 1 ) … η 1 N η 1 N + 1 … η 1 N + M ⋮ ⋱ ⋮ ⋮ ⋱ ⋮ η N 1 … w ( CMG N ) η N N + 1 … η N N + M η N + 1 1 … η N + 1 N w ( TH 1 ) … η N + 1 N + M ⋮ ⋱ ⋮ ⋮ ⋱ ⋮ η N + M 1 … η N + M N η N + M N + 1 … w ( TH M ) ] ; wherein said diagonal elements w(CMG 1 ), . . . w(CMG N ), w(TH 1 ), . . . w(TH M ) and the values η IJ with I∈{1, . . . , N+M} and J∈{1, . . . , N+M} are configured to modulate authority among the plurality of gimballed rotors and the plurality of thrusters.
Description
FIELD Systems, methods, and computer-readable media consistent with the present disclosure relate to the operation of both a control moment gyroscope (CMG) array and thrusters according to a weighted control Jacobian. BACKGROUND CMG arrays and thrusters can be used for spacecraft attitude control, where “attitude” refers to the orientation of one set of coordinates (such as those fixed to a spacecraft) relative to another (say, a set of coordinates associated with the “fixed stars” or some other body). Spacecraft attitude control generally refers to systems and methods that drive spacecraft orientation towards a particular commanded value. A commanded value, for example, may seek to align a large telescopic boresight (effectively fixed with a spacecraft body, such as the Hubble Telescope) with a target on the ground or in space. Thrusters affixed to a body operate by controllably expelling propellant, where the expelled propellant acts as a reaction mass and alters the external momentum of the body. CMG arrays affixed to a body can be configured to exchange internal momentum with the body, thereby providing a desired attitude for the body. CMG arrays have proven to provide both a smoother and more accurate form of attitude control for spacecraft than reaction jets or thrusters. In addition, because the propellant used in thrusters can take up payload space, is a finite resource, and is expended during thruster-based attitude control, the use of CMG arrays for attitude control-rather than thrusters—is an efficient way to extend spacecraft mission life. One difficulty associated with the use of CMG arrays is the occurrence of “singularities” in the available momentum space that can be accessed by the CMG array for momentum exchange. For example, a “saturation” singularity occurs when the CMG array is at the limit of the available momentum it can access. A simple picture of a “saturation” singularity is to envision each CMG rotor or flywheel (say the ith CMG rotor) in an array of N single-gimballed CMG rotors as contributing a fixed-size angular momentum vector {right arrow over (h)}i—but with a variable orientation under the control of the ith CMG gimbal (gimbal CMGi). If all N single-gimballed CMG rotors are configured to provide their respective angular momentum vectors in a single plane (which would maximize the total angular momentum accessed by the CMG array in any one direction), the largest angular momentum state attainable by the system is N {right arrow over (h)}i. If the gimballed CMG rotors in a CMG array are in such a state, the state is referred to as a “saturation singularity.” In practice, because an array of single-gimballed CMG rotors is generally not configured to access only co-planar angular momentum vectors {right arrow over (h)}i,—although an individual single gimbal CMG rotor in an array is generally configured to access angular momentum vectors confined to an individual, distinct, plane—the “saturation singularity” associated with a given CMG array is generally represented as a complicated two-dimensional surface (or manifold) in three-dimensional momentum space—referred to here as a “saturation surface.” The saturation surface in three-dimensional momentum space associated with a given CMG array can be considered to define the momentum “envelope” that the CMG array can access for exchanging internal momentum with a body the CMG array is affixed to. Ideally, one would prefer to construct a CMG array for a given spacecraft body such that the “surface” defining the saturation singularity of the CMG array extends well beyond the momentum space the spacecraft body is expected to operate in for attitude control. That is, ideally one would desire the expected momentum space for attitude control of a spacecraft to lie entirely within the momentum envelope that the CMG array can access. However, for massive spacecraft bodies and/or for rapid attitude control, the inertial mass required of a CMG array in order to “size” the momentum envelope of the CMG array so as to encompass a relatively large desired attitude control momentum space can be a limiting factor, and can make a desired momentum envelope impractical or unattainable due to practical limits on the inertial mass of the CMG array as part of the body to be controlled. In order to extend an effective momentum envelope beyond the momentum envelope available from a CMG array, one can consider adding momentum from another source beyond the CMG array, say from thrusters. However, adding momentum beyond the capability provided by momentum exchange with a CMG array can cause control issues. For example, to conventionally operate thrusters to extend a three-dimensional momentum space for attitude control beyond the momentum that can be exchanged with a CMG array, the plurality of gimballed momentum wheels (or gimballed rotors) in the CMG array will have to operate near or at a saturation singularity. At a saturation singularity, however, as dis