EP3379366B1 - Methods and apparatus to minimize command dynamics of a satellite - Google Patents
Methods and apparatus to minimize command dynamics of a satellite Download PDFInfo
- Publication number
- EP3379366B1 EP3379366B1 EP18154398.4A EP18154398A EP3379366B1 EP 3379366 B1 EP3379366 B1 EP 3379366B1 EP 18154398 A EP18154398 A EP 18154398A EP 3379366 B1 EP3379366 B1 EP 3379366B1
- Authority
- EP
- European Patent Office
- Prior art keywords
- vector
- vectors
- satellite
- nominal
- attitude
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 53
- 239000013598 vector Substances 0.000 claims description 395
- 230000005484 gravity Effects 0.000 claims description 10
- 238000013459 approach Methods 0.000 claims description 7
- 230000015654 memory Effects 0.000 description 23
- 238000000926 separation method Methods 0.000 description 19
- 230000008685 targeting Effects 0.000 description 16
- 238000004891 communication Methods 0.000 description 15
- 239000011159 matrix material Substances 0.000 description 15
- 230000009466 transformation Effects 0.000 description 9
- 230000008859 change Effects 0.000 description 6
- 230000033001 locomotion Effects 0.000 description 6
- 238000012546 transfer Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000007704 transition Effects 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000037361 pathway Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 2
- 238000011967 cystometrography Methods 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- PEDCQBHIVMGVHV-UHFFFAOYSA-N Glycerine Chemical compound OCC(O)CO PEDCQBHIVMGVHV-UHFFFAOYSA-N 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000036461 convulsion Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000010304 firing Methods 0.000 description 1
- 239000002828 fuel tank Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012067 mathematical method Methods 0.000 description 1
- 230000000116 mitigating effect Effects 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 229910052724 xenon Inorganic materials 0.000 description 1
- FHNFHKCVQCLJFQ-UHFFFAOYSA-N xenon atom Chemical compound [Xe] FHNFHKCVQCLJFQ-UHFFFAOYSA-N 0.000 description 1
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B64—AIRCRAFT; AVIATION; COSMONAUTICS
- B64G—COSMONAUTICS; VEHICLES OR EQUIPMENT THEREFOR
- B64G1/00—Cosmonautic vehicles
- B64G1/22—Parts of, or equipment specially adapted for fitting in or to, cosmonautic vehicles
- B64G1/24—Guiding or controlling apparatus, e.g. for attitude control
- B64G1/244—Spacecraft control systems
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B64—AIRCRAFT; AVIATION; COSMONAUTICS
- B64G—COSMONAUTICS; VEHICLES OR EQUIPMENT THEREFOR
- B64G1/00—Cosmonautic vehicles
- B64G1/22—Parts of, or equipment specially adapted for fitting in or to, cosmonautic vehicles
- B64G1/24—Guiding or controlling apparatus, e.g. for attitude control
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/24—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for cosmonautical navigation
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B64—AIRCRAFT; AVIATION; COSMONAUTICS
- B64G—COSMONAUTICS; VEHICLES OR EQUIPMENT THEREFOR
- B64G1/00—Cosmonautic vehicles
- B64G1/22—Parts of, or equipment specially adapted for fitting in or to, cosmonautic vehicles
- B64G1/24—Guiding or controlling apparatus, e.g. for attitude control
- B64G1/244—Spacecraft control systems
- B64G1/245—Attitude control algorithms for spacecraft attitude control
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B64—AIRCRAFT; AVIATION; COSMONAUTICS
- B64G—COSMONAUTICS; VEHICLES OR EQUIPMENT THEREFOR
- B64G1/00—Cosmonautic vehicles
- B64G1/22—Parts of, or equipment specially adapted for fitting in or to, cosmonautic vehicles
- B64G1/40—Arrangements or adaptations of propulsion systems
- B64G1/405—Ion or plasma engines
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/08—Control of attitude, i.e. control of roll, pitch, or yaw
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B64—AIRCRAFT; AVIATION; COSMONAUTICS
- B64G—COSMONAUTICS; VEHICLES OR EQUIPMENT THEREFOR
- B64G1/00—Cosmonautic vehicles
- B64G1/22—Parts of, or equipment specially adapted for fitting in or to, cosmonautic vehicles
- B64G1/24—Guiding or controlling apparatus, e.g. for attitude control
- B64G1/26—Guiding or controlling apparatus, e.g. for attitude control using jets
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B64—AIRCRAFT; AVIATION; COSMONAUTICS
- B64G—COSMONAUTICS; VEHICLES OR EQUIPMENT THEREFOR
- B64G1/00—Cosmonautic vehicles
- B64G1/22—Parts of, or equipment specially adapted for fitting in or to, cosmonautic vehicles
- B64G1/24—Guiding or controlling apparatus, e.g. for attitude control
- B64G1/28—Guiding or controlling apparatus, e.g. for attitude control using inertia or gyro effect
- B64G1/283—Guiding or controlling apparatus, e.g. for attitude control using inertia or gyro effect using reaction wheels
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B64—AIRCRAFT; AVIATION; COSMONAUTICS
- B64G—COSMONAUTICS; VEHICLES OR EQUIPMENT THEREFOR
- B64G1/00—Cosmonautic vehicles
- B64G1/22—Parts of, or equipment specially adapted for fitting in or to, cosmonautic vehicles
- B64G1/24—Guiding or controlling apparatus, e.g. for attitude control
- B64G1/28—Guiding or controlling apparatus, e.g. for attitude control using inertia or gyro effect
- B64G1/286—Guiding or controlling apparatus, e.g. for attitude control using inertia or gyro effect using control momentum gyroscopes (CMGs)
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B64—AIRCRAFT; AVIATION; COSMONAUTICS
- B64G—COSMONAUTICS; VEHICLES OR EQUIPMENT THEREFOR
- B64G1/00—Cosmonautic vehicles
- B64G1/22—Parts of, or equipment specially adapted for fitting in or to, cosmonautic vehicles
- B64G1/24—Guiding or controlling apparatus, e.g. for attitude control
- B64G1/36—Guiding or controlling apparatus, e.g. for attitude control using sensors, e.g. sun-sensors, horizon sensors
- B64G1/361—Guiding or controlling apparatus, e.g. for attitude control using sensors, e.g. sun-sensors, horizon sensors using star sensors
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B64—AIRCRAFT; AVIATION; COSMONAUTICS
- B64G—COSMONAUTICS; VEHICLES OR EQUIPMENT THEREFOR
- B64G1/00—Cosmonautic vehicles
- B64G1/22—Parts of, or equipment specially adapted for fitting in or to, cosmonautic vehicles
- B64G1/40—Arrangements or adaptations of propulsion systems
- B64G1/411—Electric propulsion
- B64G1/413—Ion or plasma engines
Definitions
- This disclosure relates generally to orbital space vehicles and, more particularly, to methods and apparatus to minimize command dynamics of a satellite.
- EP 1526072 in the abstract states: "A method for yaw steering of a spacecraft is provided, where an attitude control law is applied which is designed such that any discontinuities for the yaw steering angle as well as for rate and angular acceleration are avoided for all sun elevation angles ( ⁇ )."
- a method for avoiding singularities in the movement of CMGs in an array of CMGs in a spacecraft includes a first step where a maneuver command to rotate a spacecraft orientation is received. Then, the torque needed to rotate the spacecraft's orientation is determined. Then, the torque is integrated to determine a momentum path.
- the momentum path is decomposed into a sequence of straight line segments. For each line segment, a unit vector along the straight line segments is determined. Then, it is determined if there is a continuous path connecting a start point and an end point of the line segment in a plane perpendicular to the unit vector. For each point along the path in the plane perpendicular to the unit vector, a set of gimbal angles is determined.”
- Space vehicles such as satellites or resident space objects (RSO) typically utilize actuators such as thrusters and/or momentum devices to maintain an orbit around a celestial body.
- actuators such as thrusters and/or momentum devices
- a satellite or an RSO orbiting the Earth employs deployable solar panels to power onboard electronics.
- the onboard electronics provide critical functionalities such as determining a position of a target of interest, determining a position of the satellite, etc.
- the onboard electronics control an ability of the satellite to simultaneously point to the target of interest while keeping the solar panels pointed toward a power source such as the Sun.
- attitude steering laws involve calculating two vectors to describe a full rotation representation for an orbit. As a satellite pursues an orbit, the two vectors may change with respect to each other, bringing the two vectors closer together in some instances, and pushing the two vectors farther apart in other instances. As the two vectors change with respect to each other, the attitude steering laws may generate commands that produce undesirable satellite behavior due to practical limitations of the satellite and various considerations that influence calculations of the two vectors.
- spacecraft or space vehicles such as satellites or resident space objects (RSO) utilize actuators such as thrusters and/or momentum devices to maintain an orbit around a celestial body such as the Earth.
- a satellite may maintain a geosynchronous orbit (GEO) around the Earth to transmit, relay, and/or repeat communications from another satellite to a target on the Earth (e.g., an antenna station in Los Angeles).
- GEO geosynchronous orbit
- the satellite may maintain the orbit by controlling the thrusters and/or the momentum devices of the satellite by using commands generated using attitude steering laws.
- an attitude steering law involves calculating two vectors (e.g., a set of nominal vectors) to describe a full rotation representation for a satellite to complete an orbit.
- the two vectors may be a primary vector (e.g., a nominal primary vector) and a secondary vector (e.g., a nominal secondary vector).
- Attitude steering laws may be used to generate commands to control an attitude of a satellite.
- the term "attitude” refers to an orientation and/or a position in space with respect to one or more celestial bodies (e.g., the Earth, the Sun, etc.).
- a primary vector may be a vector from a center of gravity of the satellite pointing towards a target (e.g., a point on the Earth).
- a secondary vector may be a vector from the center of gravity of the satellite pointing towards a power source (e.g., a light source from a celestial body, the Sun, etc.).
- a power source e.g., a light source from a celestial body, the Sun, etc.
- the two vectors may change with respect to each other, bringing the two vectors closer together in some instances, and pushing the two vectors farther apart in other instances.
- the attitude steering laws may be used to generate commands that produce undesirable satellite behavior due to practical limitations of the satellite and various considerations that enter calculations of the two vectors.
- an attitude steering law is used to calculate two vectors based on inertial reference frames.
- an attitude steering law may be used to calculate a primary vector and a secondary vector based on targets on the Earth and the Sun, where the Earth and the Sun are fixed in time (i.e., time-independent) and space (i.e., location-independent). For example, if an accelerometer were placed on the Earth and/or the Sun, the accelerometer would detect zero acceleration. Due to the inertial reference frames (e.g., the Earth, the Sun, etc.) and a cyclical nature of a satellite traveling along an orbit, an angle between the two vectors may produce a singularity condition.
- the term "singularity condition" may refer to a condition where two vectors (e.g., the primary vector and the secondary vector) are collinear to each other, and a vector cross-product of the two vectors produces a vector of magnitude zero.
- the satellite may be in line with the Earth and the Sun.
- the angle between the two vectors may be 0 degrees because the two vectors become collinear with respect to each other.
- the angle between the two vectors may be 180 degrees because the two vectors become collinear with respect to each other.
- the attitude steering law may be used to generate a vector of magnitude zero, thus producing a singularity condition.
- an attitude steering law of a satellite may produce a command (e.g., an attitude command) to slew the satellite 180 degrees about a primary vector of the satellite at an instantaneous rate.
- a command e.g., an attitude command
- the satellite slews 180 degrees twice per orbit, effectively forcing a rotation of 360 degrees per orbit about the primary vector of the satellite.
- a rate e.g., a command rate, a thrust rate, etc.
- the attitude steering law may quantitatively result in the calculation of a 180-degree rotation at an instantaneous rate.
- the instantaneous rate may exceed a maneuvering capability of the satellite and produce undesirable command dynamics.
- Example satellite controller apparatus disclosed herein are operative to minimize command dynamics of a satellite.
- command dynamics refers to one or more effects of a space vehicle performing a command generated using an attitude steering law.
- an effect may be a payload of the satellite that is not able to update a vector (e.g., a primary vector, a secondary vector, etc.) fast enough to compensate for a 180-degree rotation at an instantaneous rate.
- a vector e.g., a primary vector, a secondary vector, etc.
- an effect may be one or more bus attitude actuators of the satellite that are unable to drive attitude control error to zero at all times.
- Example satellite controller apparatus disclosed herein minimize command dynamics of a satellite by calculating and using a set of alternate vectors during a time period when a singularity takes place.
- the example satellite controller apparatus may use a combination (e.g., a blending) of the set of alternate vectors and the set of nominal vectors (e.g., the nominal primary vector and the nominal secondary vector).
- the example satellite controller apparatus may determine when a singularity occurs based on projecting a primary vector and a secondary vector of the satellite from a three-dimensional (3-D) plane to a two-dimensional (2-D) plane.
- the example satellite controller apparatus may calculate a vector normal to the projected vectors (e.g., the projected primary and secondary vectors) and an angle between the projected vectors.
- the example satellite controller apparatus may determine that a singularity occurs as the angle between the projected vectors approaches 0 degrees or 180 degrees.
- Example satellite controller apparatus disclosed herein calculate a set of alternate vectors to the set of nominal vectors. For example, in addition to the nominal primary vector, the nominal secondary vector, the nominal normal vector, etc., the satellite controller apparatus may calculate an alternate primary vector, an alternate secondary vector, an alternate normal vector, etc. Transitioning between the nominal set of vectors and the alternate set of vectors may result in smoothed maneuvers of the satellite by avoiding unplanned jerks, rotations, slews, etc. of the satellite. The example satellite controller apparatus may use the set of nominal vectors, the set of alternate vectors, and/or a combination thereof to minimize command dynamics of a satellite.
- FIG. 1 is an example satellite 100 in which the examples disclosed herein may be implemented.
- the satellite 100 of the illustrated example includes a satellite body 102, which includes on-board processors (e.g., a satellite controller 104), batteries and/or fuel tanks, antennas (e.g., communication antennas, etc.) 106, solar panels 108, and a propulsion system 110.
- the example propulsion system 110 includes thrusters 112 that have thrust cones 114.
- the solar panels 108 are in a deployed state (e.g., unfolded away from the satellite body 102), thereby altering the inertial/mass characteristics of the satellite 100 in contrast to an un-deployed state of the satellite 100 where the solar panels 108 are folded inward towards the satellite body 102.
- the satellite 100 may move to align an axis 116 of the solar panels 108 with a nominal primary vector, a nominal secondary vector, a nominal normal vector, etc.
- the satellite 100 further includes a sensor 118 (e.g., an optical sensor, a star tracker, etc.) to obtain sensor data related to a location, orientation, position, etc. of the satellite 100.
- a sensor 118 e.g., an optical sensor, a star tracker, etc.
- the satellite 100 may communicate with external systems (e.g., transmit as well as receive) via the antennas 106 to maneuver the satellite 100 between orbital paths and/or orbital heights and/or to provide data to external ground-based systems, for example.
- the satellite 100 of the illustrated example is maneuvered by activating (e.g., firing) the thrusters 112, which are electric (e.g., ion-based, an ion propulsion system, xenon-based thrusters, etc.).
- the satellite 100 may vary a duration and/or a pulse of different thrusters of the thrusters 112 to maneuver the satellite 100, and/or control an attitude of the example satellite 100 relative to a celestial body (e.g., a space body) that the satellite 100 orbits.
- a celestial body e.g., a space body
- a maneuvering frame of reference 120 of the example satellite 100 is shown.
- the maneuvering frame of reference 120 illustrates a thruster plume angle 122 that is depicted by the symbol, ⁇ T , a cant angle 124 that is depicted by the symbol, ⁇ C , and a slew angle 126 that is depicted by the symbol, ⁇ S .
- the frame of reference 120 depicts numerous degrees of rotational movement in which the satellite 100 may be oriented/rotated during an orbit or a movement between different orbits.
- a resultant vector 128 of the satellite 100 is shown.
- the example resultant vector 128 depicts a resulting direction of motion of the satellite 100 based on the vector sum of the activation and/or orientation of individual thrusters of the thrusters 112.
- the satellite 100 may use the example resultant vector 128 to align the axis 116 with the nominal primary vector, the nominal secondary vector, etc. of the satellite 100.
- FIG. 2 is an example satellite guidance system 200 that may be used to implement the examples disclosed herein.
- the satellite guidance system 200 includes the example satellite controller 104, which is implemented in a satellite (e.g., the satellite 100).
- the example satellite controller 104 includes a targeting module 202, an orientation module 204, a steering law module 206, an attitude controller 208, and a sensor interface 210.
- the example satellite guidance system 200 also includes communication lines 212 that communicatively couple the satellite controller 104, the attitude controller 208, and/or the sensor interface 210 to the satellite thruster(s) 112 shown in FIG. 1 .
- the satellite controller 104 is also communicatively coupled to the antenna 106 which, in turn, is in communication with a ground-based communication system 216 of a planet 218 (e.g., the Earth) around which the satellite orbits.
- the satellite controller 104 is communicatively coupled to and/or includes a database 214.
- the satellite controller 104 includes the targeting module 202 to target a point of interest on a celestial body (e.g., the planet 218).
- the example targeting module 202 may use an Earth-centered inertial (ECI) coordinate frame to determine a set of coordinates for the point of interest.
- ECI Earth-centered inertial
- the targeting module 202 may map a current date and time to a known location on the Earth (e.g., the equator) to determine a set of coordinates for the ground-based communication system 216.
- the example targeting module 202 may utilize the antennas 106 to obtain a position of the point of interest (e.g., communicate with the ground-based communication system 216 to obtain a set of coordinates).
- the targeting module 202 calculates an instant (e.g., a current) primary vector of the satellite 100. For example, the targeting module 202 may calculate a current vector from a center of gravity of the satellite 100 to a point of interest on the planet 218. In some instances, the targeting module 202 calculates an instant (e.g., a current) and/or a nominal boresight vector.
- the term "boresight vector" refers to a vector where maximum gain (e.g., maximum radiated power) of a directional antenna can be achieved. For example, the antennas 106 may achieve maximum gain when the antennas 106 align with a boresight vector.
- the example targeting module 202 may store data (e.g., targeting coordinates) in and/or retrieve data from the example database 214.
- the satellite controller 104 includes the orientation module 204 to determine a position of the satellite 100.
- the example orientation module 204 may utilize the sensor 118 of FIG. 1 to determine where the satellite 100 is located with respect to one or more navigational stars, the planet 218, the Sun, etc.
- the example orientation module 204 may utilize the sensor 118 to map sensor data to a look-up table (e.g., a star catalog) to determine a position of the satellite 100.
- the orientation module 204 calculates a vector to maximize an amount of light to which the solar panels 108 are exposed.
- the example orientation module 204 may calculate an instant (e.g., a current) secondary vector of the satellite 100.
- the orientation module 204 may calculate a vector from a center of gravity of the satellite 100 to the Sun.
- the orientation module 204 determines an orbital reference frame plane based on the current primary vector of the satellite 100. In some examples, the orientation module 204 calculates a principle sensitive axis (e.g., the axis 116) of the satellite 100. In other examples, the orientation module 204 accesses mass/inertia data and/or a pre-defined sensitive axis of the satellite 100 from the database 214. In yet other examples, the sensitive principle axis is assigned (e.g., received from, continuously received from, uploaded from, etc.) the ground-based communication system 216.
- a principle sensitive axis e.g., the axis 116
- the orientation module 204 accesses mass/inertia data and/or a pre-defined sensitive axis of the satellite 100 from the database 214.
- the sensitive principle axis is assigned (e.g., received from, continuously received from, uploaded from, etc.) the ground-based communication system 216.
- the orientation module 204 calculates an attitude shift (e.g., an attitude delta) of the satellite 100 required to orient the principle sensitive axis of the satellite 100 to the orbital reference frame plane. Additionally or alternatively, the example orientation module 204 may calculate an attitude of the satellite 100 in which the principle sensitive axis is oriented to the orbital reference frame plane and a thrust vector of the satellite 100 is perpendicular to the principle sensitive axis to move the satellite 100 into the higher orbit while reducing (e.g., minimizing) gravity gradient torques acting on the satellite. Alternatively, the example orientation module 204 may be a manually controlled interface via the ground-based communication system 216. The example orientation module 204 may store data (e.g., orientation coordinates) in and/or retrieve data from the example database 214.
- attitude shift e.g., an attitude delta
- the example orientation module 204 may calculate an attitude of the satellite 100 in which the principle sensitive axis is oriented to the orbital reference frame plane and a thrust vector of the satellite 100 is perpendicular to
- the satellite controller 104 includes the steering law module 206 to generate an attitude representation of a desired satellite position.
- attitude representation refers to a mathematical description of a desired satellite attitude.
- Example attitude representations may include a transformation matrix, a quaternion (e.g., a right-handed quaternion), an angle axis, Euler angles, Rodriguez parameters, etc.
- the steering law module 206 generates a nominal primary vector, a nominal secondary vector, and a nominal boresight vector, where the nominal vectors represent commanded or desired vectors of one or more axes, components, etc. of the satellite 100.
- the steering law module 206 may determine a nominal primary vector pointing from a center of gravity of the satellite 100 towards a target (e.g., a point on the Earth).
- the nominal vectors may be based on obtained vectors.
- the steering law module 206 may obtain an instant (e.g., a current) primary vector and/or an instant boresight vector from the targeting module 202.
- the example steering law module 206 may obtain an instant secondary vector from the orientation module 204.
- the example steering law module 206 may perform vector calculations on the obtained vectors to generate the nominal vectors.
- the example steering law module 206 may generate the attitude representation of the satellite 100 based on the nominal vectors.
- the steering law module 206 generates a nominal normal vector.
- the steering law module 206 may calculate a vector normal (e.g., a nominal normal vector) to both the nominal primary vector and the nominal secondary vector as described below in Equation (1):
- v ⁇ norm v ⁇ p ⁇ v ⁇ s
- the variable v norm represents a nominal normal vector
- the variable v p represents a nominal primary vector
- the variable v s represents a nominal secondary vector.
- the variable v ⁇ represents a nominal normal unit vector
- the variable v norm represents the nominal normal vector.
- the steering law module 206 creates an attitude representation triad for a target of interest (e.g., a point on the Earth) with respect to the inertial reference frame (e.g., the Earth).
- the variable v 3 represents a third vector of the attitude representation triad
- the variable v p represents the primary vector.
- the variable v norm represents the nominal normal vector as calculated above in Equation (1)
- the variable v p represents the primary vector.
- the variable v 1 represents a first vector of the attitude representation triad based on a vector cross-product between v norm and v p .
- the example steering law module 206 may calculate a second vector v 2 based on v 1 and v 3 as determined by Equation (3) and Equation (4) above.
- the example steering law module 206 may generate the attitude representation using a transformation matrix (e.g., a direction cosine matrix) as described below in Equation (6):
- C tI v ⁇ 1 1 v ⁇ 1 2 v ⁇ 1 3 v ⁇ 2 1 v ⁇ 2 2 v ⁇ 2 3 v ⁇ 3 1 v ⁇ 3 2 v ⁇ 3 3
- the variable C tI represents a direction cosine matrix that transforms vectors specified in an inertial frame I to a target frame t.
- the superscript of the vectors in the matrix represent the first,
- the boresight vector v bs is not aligned with a geometric body frame axis (e.g., an axis of the satellite body 102).
- the example steering law module 206 may perform a second rotation to derive a full rotation tensor that transforms vectors from the inertial frame to the body frame as described below in Equation (7):
- C BI C Bt C tI
- the variable C BI represents a direction cosine matrix of the body frame (e.g., the satellite body 102) with respect to the inertial frame (e.g., the target on the planet 218).
- the variable C Bt represents a direction cosine matrix of the body frame with respect to the boresight frame
- the variable C tI is described above in Equation (6).
- the example steering law module 206 may transmit the direction cosine matrices as described above in Equation (6) and Equation (7) to the example attitude controller 208 to maneuver the satellite 100.
- the steering law module 206 calculates a set of alternate vectors to minimize command dynamics due to a singularity.
- the steering law module 206 may calculate a nominal normal vector n nominal , and an adjusted normal vector n adjusted based on the set of nominal vectors, the set of alternate vectors, and/or a combination thereof.
- the nominal normal vector n nominal is equal to a cross-product of the nominal primary vector v p and the nominal secondary vector v s , or normal to v p and v s .
- n nominal is equal to the nominal normal vector v norm as described above in Equation (1).
- the nominal normal vector n nominal may be equal to a vector cross-product of a primary vector and a secondary vector not described above in Equation (1).
- the steering law module 206 calculates the alternate normal vector n alternate , which may be used as an alternative to the nominal normal vector n nominal.
- the example steering law module 206 may calculate n alternate , where n alternate is normal to the primary vector n p as described above in Equation (1), but not necessarily normal to the secondary vector n s as described above in Equation (1).
- n alternate may be normal to n s .
- the steering law module 206 calculates n alternate by determining an intersection of two planes (e.g., geometric planes) and a direction (e.g., a vector direction). In response to determining the intersection, the example steering law module 206 may determine an ideal n alternate , where the ideal n alternate produces minimum slew. For example, the steering law module 206 may define a first geometric plane that is normal to v p . The steering law module 206 may define a second geometric plane that is normal to the direction of v norm as vectors v p and v s approach a separation extremum or a singularity point.
- the example steering law module 206 may determine a direction of a vector along a line formed by the first and second geometric planes, where the direction is chosen to produce a minimum angle between n nominal and n alternate .
- the example steering law module 206 may use n alternate as an aid for producing n adjusted , therefore the steering law module 206 automatically projects n alternate to be perpendicular to n p .
- n alternate provides a midpoint between the attitudes equidistant in time before and after a separation extremum.
- the steering law module 206 determines that an exact calculation of n alternate is not necessary, as any vector that satisfies the first example criterion and is less than 90 degrees from the nominal normal vector n nominal is a satisfactory choice for n alternate . As a result, a sensitivity of n alternate may not be significant.
- the steering law module 206 calculates n alternate to provide a midpoint between a first attitude for the duration of time t prior to the singularity and a second attitude for the same duration of time t after the singularity. For example, the steering law module 206 may calculate n alternate to be a vector normal to an orbital plane of the satellite 100.
- the steering law module 206 estimates when a singularity occurs.
- a singularity may occur when an angular separation between the nominal primary vector n p and the nominal secondary vector n s is at a minimum angular separation (e.g., approximately 0 degrees), or at a maximum angular separation (e.g., approximately 180 degrees).
- calculating an angular separation extremum e.g., a minimum or a maximum angular separation
- n p may be a function of an orbit (e.g., a GEO), an orbital position, a random vector chosen at any time by a user, etc.
- n s may be a function of the orbit, the orbital position, a user chosen direction (e.g., a sun vector, a moon vector, a relay asset vector, etc.) of the satellite 100.
- the example steering law module 206 may determine that the angular separation extremum exists between any interval less than and including [0,180] degrees, therefore the minimum angular separation and/or the maximum angular separation cannot be hardcoded in the steering law module 206.
- the example steering law module 206 may simulate an orbit geometry, one or more nominal vectors (e.g., n p , n s , etc.), etc. prior to executing an attitude command.
- the example steering law module 206 performing a simulation prior to execution may impose implementation restrictions, introduce operation complexities, increase power consumption of the satellite controller 104, etc.
- the examples disclosed herein illustrate apparatus, methods, and articles of manufacture that do not require the example steering law module 206 to perform simulations prior to execution.
- the steering law module 206 calculates the angular separation extrema in real-time operation.
- the example steering law module 206 may calculate the angular separation extrema in non-real-time operation (e.g., an offline mode of operation).
- the example steering law module 206 may calculate the angular separation extrema in real-time operation by transforming n p and n s into transformed vectors corresponding to an orbit fixed frame plane defined via a position vector and/or a velocity vector of a space vehicle (e.g., the satellite 100).
- orbit fixed frame plane refers to a plane normal to a vector produced by a cross-product of a position vector and a velocity vector.
- the example steering law module 206 may choose an orbit fixed frame plane because it may be desirable to capture a motion of n p and n s with respect to the motion of the satellite 100.
- the example steering law module 206 may project the transformed vectors onto the orbit fixed frame plane subtended by the position vector and/or the velocity vector of the satellite 100.
- the transformed, projected vectors may include v ⁇ p proj and v ⁇ s proj , where v ⁇ p proj represents the transformed, projected primary vector onto the orbital fixed frame plane, and v ⁇ s proj represents the transformed, projected secondary vector onto the orbital fixed frame plane.
- the example steering law module 206 may compute a normal projected vector to the projected vectors via (1) a cross product of the projected vectors, and (2) an angle, ⁇ proj , between the projected vectors.
- the steering law module 206 determines to toggle a sign of the nominal normal vector n nominal when one or more components of the projected vectors (e.g., the normal projected vector) are outside the orbit fixed frame plane. For example, the steering law module 206 may toggle a positive sign of n nominal to a negative sign when a component of the normal projected vector is outside the orbit fixed frame plane. In some instances, a user (e.g., an operator) may manually toggle the sign of n nominal such that the user controls whether n nominal is above or below the orbit fixed frame plane. Additionally or alternatively, the user may override a change in sign of n nominal by the example steering law module 206. In some examples, the steering law module 206 flips the sign of n nominal precisely when the satellite 100 experiences an angular separation extremum to prevent the attitude controller 208 from generating a large, potentially unstable, step command (e.g., a step attitude command).
- a large, potentially unstable, step command e.g., a step attitude command
- the steering law module 206 calculates the adjusted normal vector n adjusted based on the set of nominal vectors, the set of alternate vectors, and/or a combination thereof. For example, the steering law module 206 may use a weight factor, ⁇ , to determine a contribution of the set of nominal vectors and/or a contribution of the set of alternate vectors to calculate n adjusted .
- ⁇ is limited to values within a range [0,1]. Alternatively, ⁇ may have a value outside the range [0,1].
- the variable n adjusted represents the adjusted normal vector
- the variable ⁇ represents the weight factor
- the variable n alternate represents the alternate normal vector
- the variable n nominal represents the nominal normal vector.
- each of the vectors described above in Equation (9) are unit vectors and/or are required to be specified in the same coordinate frame.
- the steering law module 206 renormalizes n adjusted after the steering law module 206 calculates n adjusted as described above in Equation (9).
- the example steering law module 206 may calculate n adjusted using any other method such as, for example, an exponential method, a random-value generation method, a sinusoidal method, etc.
- the example steering law module 206 may calculate ⁇ using various mathematical methods.
- the example steering law module 206 may determine to use a particular method or a combination of methods dependent on one or more factors such as, for example, processing power available to the steering law module 206, latency time requirements for updating parameters of the satellite controller 104, etc.
- the variable ⁇ represents the weight factor
- the variable ⁇ proj represents the angle between the projected vectors onto the orbit fixed frame plane (e.g., the angle between v ⁇ p proj and v ⁇ s proj ).
- the floor function truncates the decimal of the quantity indicated.
- the example steering law module 206 may utilize the linear method as described above in Equation (10) to minimize resulting command dynamics while still transitioning fully between the set of nominal vectors and the set of alternate vectors.
- the variable ⁇ represents the weight factor
- the variable ⁇ proj represents the angle between v ⁇ p proj and v ⁇ s proj .
- ⁇ changes sinusoidally within the range [0,1] based on ⁇ proj .
- the steering law module 206 utilizes the set of nominal vectors at 90 and 270 degrees, while utilizing the set of alternate vectors at 0 and 180 degrees.
- the variable ⁇ represents the weight factor
- the variable v ⁇ p proj represents the primary vector projected onto the orbit fixed frame plane
- the variable v ⁇ s proj represents the secondary vector projected onto the orbit fixed frame plane.
- the variable x represents a tuning parameter that determines a sharpness of the transition from the set of nominal vectors to the set of the alternate vectors.
- ⁇ is calculated based on the cross product between the projected vectors raised to the x power.
- the example steering law module 206 may utilize the exponential method to transition between the set of nominal vectors to the set of alternate vectors at an exact time that the set of nominal vectors are at or near a singularity condition.
- the steering law module 206 utilizes the exponential method to calculate a value of ⁇ that maximizes an alignment of an axis (e.g., the axis 116) of the satellite 100, the satellite body 102, etc. to the nominal secondary vector.
- the steering law module 206 may use the exponential method to maximize an amount of power generated by the solar panels 108 due to an alignment of one or more components of the satellite 100 to the nominal secondary vector.
- the example steering law module 206 may generate an attitude representation (e.g., a transformation matrix) using the exponential method that results in high command dynamics.
- the steering law module 206 assigns a value to ⁇ to disable flip prevention.
- the example steering law module 206 may turn off singularity handling in sun-synchronous orbits.
- the example steering law module 206 generates an attitude representation solely via n alternate .
- the steering law module 206 when the steering law module 206 calculates an ideal vector for n alternate (e.g., a vector normal to the orbital plane), the steering law module 206 generates an attitude representation corresponding to standard orbit normal steering, where an axis (e.g., the axis 116) of a space vehicle (e.g., the satellite 100) is aligned with the orbital frame. Additionally or alternatively, a user may flip a sign of n nominal prior to the example steering law module 206 calculating ⁇ using one or more methods such as, for example, the linear method, the sinusoidal method, and/or the exponential method as described above.
- a user may flip a sign of n adjusted to generate an attitude representation corresponding to a space vehicle rotating 180 degrees about a nominal primary vector of the space vehicle. Additionally or alternatively, a user may change a value of ⁇ as calculated by the example steering law module 206.
- a range of values for ⁇ is limited to a smaller range than [0,1].
- the example steering law module 206 may manipulate ⁇ to limit an angular displacement from a nominal normal vector solution with respect to an alternate normal vector solution, or vice versa.
- the steering law module 206 may manipulate ⁇ to enable a space vehicle to slew about a target vector (e.g., a nominal primary vector) by no more than 30 degrees away from orbit normal (e.g., an alternate normal vector).
- the example steering law module 206 may limit the range to reduce a maximum transition between the set of nominal vectors and the set of alternate vectors.
- the example steering law module 206 may calculate (e.g., iteratively calculate) a separation angle between a desired trajectory and a current trajectory of the space vehicle based on n adjusted including components from the set of nominal vectors, the set of alternate vectors, and/or a combination thereof.
- the example steering law module 206 may determine a value for ⁇ based on the separation angle, where the separation angle may be a minimum angle, a maximum angle, etc.
- an attitude quaternion e.g., a right-handed quaternion where a last element of the quaternion is a scalar element.
- the term "attitude quaternion" is a four-element vector that may be used to encode any rotation in a 3-D coordinate system.
- the example steering law module 206 may transmit the resulting attitude quaternion to the attitude controller 208 to issue one or more appropriate torque commands to slew a space vehicle.
- the example steering law module 206 may store data (e.g., components of vectors, weight factors, etc.) in and/or retrieve data from the example database 214.
- the satellite controller 104 includes the attitude controller 208 to generate a torque command to maneuver a space vehicle.
- the example attitude controller 208 may obtain an attitude representation such as, for example, a transformation matrix, an attitude quaternion, etc. from the example steering law module 206 and/or from the example database 214.
- the attitude controller 208 zeros an attitude error of a space vehicle.
- the attitude controller 208 may obtain (1) a current position of the satellite 100 from the orientation module 204, and (2) a desired position of the satellite 100 from the steering law module 206 (e.g., a desired position based on an attitude representation).
- the example attitude controller 208 may calculate a difference between the current position and the desired position, where the difference is the attitude error.
- the example attitude controller 208 may zero out the attitude error by generating a torque command and transmitting the torque command to the satellite thruster(s) 112 and/or a momentum device of the satellite 100 to achieve the desired position.
- the example attitude controller 208 may store data (e.g., attitude commands) in and/or retrieve data from the example database 214.
- the satellite controller 104 includes the sensor interface 210 to determine a position and/or an attitude of a space vehicle.
- the sensor interface 210 may determine a position, an attitude, an acceleration vector, and/or a velocity vector of the satellite 100 based on sensor data and/or received sensor data from the ground-based communication system 216 of the planet 218.
- the example sensor interface 210 may obtain sensor data from sensors monitoring the propulsion system 110, the thruster(s) 112, etc.
- the example sensor interface 210 may store data (e.g., sensor data) in and/or retrieve data from the example database 214.
- the satellite guidance system 200 includes the database 214 to record data (e.g., an attitude representation, sensor data, a weight factor, etc.).
- the example database 214 may respond to queries for information related to data in the database 214.
- the database 214 may respond to queries for additional data by providing the additional data (e.g., the one or more data points), by providing an index associated with the additional data in the database 214, etc.
- the example database 214 may additionally or alternatively respond to queries when there is no additional data in the database 214 by providing a null index, an end of database 214 identifier, etc.
- the example database 214 may be implemented by a volatile memory (e.g., a Synchronous Dynamic Random Access Memory (SDRAM), Dynamic Random Access Memory (DRAM), RAMBUS Dynamic Random Access Memory (RDRAM), etc.) and/or a non-volatile memory (e.g., flash memory).
- the example database 214 may additionally or alternatively be implemented by one or more double data rate (DDR) memories, such as DDR, DDR2, DDR3, mobile DDR (mDDR), etc.
- DDR double data rate
- the example database 214 may additionally or alternatively be implemented by one or more mass storage devices such as hard disk drive(s), compact disk drive(s) digital versatile disk drive(s), magnetic media, etc. While in the illustrated example the database 214 is illustrated as a single database, the database 214 may be implemented by any number and/or type(s) of databases.
- While an example manner of implementing the satellite controller 104 of FIG. 1 is illustrated in FIG. 2 , one or more of the elements, processes, and/or devices illustrated in FIG. 2 may be combined, divided, re-arranged, omitted, eliminated, and/or implemented in any other way. Further, the example targeting module 202, the example orientation module 204, the example steering law module 206, the example attitude controller 208, the example sensor interface 210 and/or, more generally, the example satellite controller 104 of FIG. 2 may be implemented by hardware, software, firmware, and/or any combination of hardware, software, and/or firmware.
- any of the example targeting module 202, the example orientation module 204, the example steering law module 206, the example attitude controller 208, the example sensor interface 210 and/or, more generally, the example satellite controller 104 of FIG. 2 could be implemented by one or more analog or digital circuit(s), logic circuits, programmable processor(s), application specific integrated circuit(s) (ASIC(s)), programmable logic device(s) (PLD(s)), and/or field programmable logic device(s) (FPLD(s)).
- ASIC application specific integrated circuit
- PLD programmable logic device
- FPLD field programmable logic device
- the example satellite controller 104 of FIG. 2 is/are hereby expressly defined to include a tangible computer-readable storage device or storage disk such as a memory, a digital versatile disk (DVD), a compact disk (CD), a Blu-ray disk, etc. storing the software, and/or firmware.
- the example satellite controller 104 of FIG. 2 may include one or more elements, processes, and/or devices in addition to, or instead of, those illustrated in FIG. 2 , and/or may include more than one of any or all of the illustrated elements, processes, and devices.
- FIGS. 3A, 3B, and 3C are schematic illustrations depicting example vectors and planes of an example orbit of the example satellite 100 of FIG. 1 in accordance with typical attitude steering laws.
- the satellite 100 of FIG. 1 orbits a planet 300 along an orbital path 302.
- the satellite 100 may align the axis 116 of the solar panels 108 of FIG. 1 along a vector to maximize exposure to a power source 304 (e.g., a star, the Sun, etc.).
- a power source 304 e.g., a star, the Sun, etc.
- 1-2 calculates a nominal primary vector 306 (e.g., v p ), a nominal secondary vector 308 (e.g., v s ), and a nominal normal vector 310 (e.g., n nominal ).
- the steering law module 206 may generate the nominal normal vector 310 by calculating a vector cross-product of the nominal primary vector 306 and the nominal secondary vector 308.
- an angle 312 between the nominal primary vector 306 and the nominal secondary vector 308 is not approximately 0 or 180 degrees.
- the example attitude controller 208 may generate an attitude command based on the nominal normal vector 310 when the satellite 100 is not experiencing a singularity condition. In the illustrated example of FIG. 3A , the attitude command does not instruct the satellite 100 to perform a rotation about the nominal primary vector 306 (e.g., perform a yaw flip).
- the satellite 100 of FIG. 1 orbits the planet 300 along the orbital path 302.
- the satellite controller 104 of FIGS. 1-2 calculates a nominal primary vector 314 (e.g., v p ), a nominal secondary vector 316 (e.g., v s ), and a nominal normal vector 318 (e.g., n nominal ).
- the steering law module 206 may generate the nominal normal vector 318 by calculating a vector cross-product of the nominal primary vector 314 and the nominal secondary vector 316.
- an angle 320 between the nominal primary vector 314 and the nominal secondary vector 316 is approximately 180 degrees.
- the example attitude controller 208 may generate an attitude command based on the nominal normal vector 318 when the satellite 100 is experiencing a singularity condition.
- the attitude command instructs the satellite 100 to perform a rotation about the nominal primary vector 306 (e.g., perform a yaw flip).
- the satellite 100 of FIG. 1 orbits the planet 300 along the orbital path 302.
- the satellite controller 104 of FIGS. 1-2 calculates a nominal primary vector 322 (e.g., v p ), a nominal secondary vector 324 (e.g., v s ), and a nominal normal vector 326 (e.g., n nominal ).
- the steering law module 206 may generate the nominal normal vector 326 by calculating a vector cross-product of the nominal primary vector 322 and the nominal secondary vector 324.
- the nominal normal vector 326 is opposite in direction to the nominal normal vector 310 of FIG. 3A due to the yaw flip performed in FIG. 3B .
- an angle 328 between the nominal primary vector 322 and the nominal secondary vector 324 is not approximately 0 or 180 degrees.
- the example attitude controller 208 may generate an attitude command based on the nominal normal vector 326 when the satellite 100 is not experiencing a singularity condition.
- the attitude command does not instruct the satellite 100 to perform a rotation about the nominal primary vector 322 (e.g., perform a yaw flip).
- FIGS. 4A, 4B, and 4C are schematic illustrations depicting example vectors and planes of an example orbit of the example satellite 100 of FIG. 1 in accordance with the example steering law module 206 calculating a set of alternate vectors.
- the satellite 100 of FIG. 1 orbits a planet 400 along an orbital path 402.
- the satellite 100 may align the axis 116 of the solar panels 108 of FIG. 1 along a vector to maximize exposure to a power source 404 (e.g., a star, the Sun, etc.).
- a power source 404 e.g., a star, the Sun, etc.
- 1-2 calculates a nominal primary vector 406 (e.g., v p ), a nominal secondary vector 408 (e.g., v s ), and an adjusted normal vector 410 (e.g., n adjusted ).
- the steering law module 206 may generate the adjusted normal vector 410 by a method as described above in accordance with Equations (9)-(12).
- the steering law module 206 may generate the adjusted normal vector 410 based on the weight factor ⁇ .
- the adjusted normal vector 410 is opposite in sign with respect to the nominal normal vector 310 of FIG. 3A .
- the steering law module 206 may have toggled a sign of a nominal normal vector based on a vector cross-product of the nominal primary vector 406 and the nominal secondary vector 408.
- an angle 412 between the nominal primary vector 406 and the nominal secondary vector 408 is not approximately 0 or 180 degrees.
- the example attitude controller 208 may generate an attitude command based on the adjusted normal vector 410 when the satellite 100 is not experiencing a singularity condition.
- the attitude command does not instruct the satellite 100 to perform a rotation about the nominal primary vector 406 (e.g., perform a yaw flip).
- the adjusted normal vector 410 may include the set of nominal vectors, the set of alternate vectors, and/or a combination thereof based on the weight factor ⁇ as described above.
- the adjusted normal vector 410 may be equal to a nominal normal vector (e.g., n nominal ) or an alternate normal vector (e.g., n alternate ).
- the satellite 100 of FIG. 1 orbits the planet 400 along the orbital path 402.
- the satellite controller 104 of FIGS. 1-2 calculates a nominal primary vector 414 (e.g., v p ), a nominal secondary vector 416 (e.g., v s ), and an adjusted normal vector 418 (e.g., n adjusted ).
- the steering law module 206 may generate the adjusted normal vector 418 by a method as described above in accordance with Equations (9)-(12).
- the steering law module 206 may generate the adjusted normal vector 418 based on the weight factor ⁇ .
- an angle 420 between the nominal primary vector 414 and the nominal secondary vector 416 is approximately 180 degrees.
- the example attitude controller 208 may generate an attitude command based on the adjusted normal vector 418 when the satellite 100 is experiencing a singularity condition.
- the attitude command does not instruct the satellite 100 to perform a rotation about the nominal primary vector 414 (e.g., perform a yaw flip).
- the adjusted normal vector 418 may include the set of nominal vectors, the set of alternate vectors, and/or a combination thereof based on the weight factor ⁇ as described above.
- the adjusted normal vector 418 may be equal to an alternate normal vector (e.g., n alternate ).
- the satellite 100 orients the axis 116 of the solar panels 108 along the adjusted normal vector 418 at an angle 422 from the adjusted normal vector 410 of FIG. 4A .
- the satellite 100 avoids performing an unintentional yaw flip as described above in FIG. 3B when the satellite 100 approaches or experiences a singularity condition (e.g., a minimum or maximum angular separation exists).
- the satellite 100 of FIG. 1 orbits the planet 400 along the orbital path 402.
- the satellite controller 104 of FIGS. 1-2 calculates a nominal primary vector 424 (e.g., v p ), a nominal secondary vector 426 (e.g., v s ), and an adjusted normal vector 428 (e.g., n adjusted ) .
- the steering law module 206 may generate the adjusted normal vector 428 by a method as described above in accordance with Equations (9)-(12).
- the steering law module 206 may generate the adjusted normal vector 428 based on the weight factor ⁇ .
- an angle 430 between the nominal primary vector 424 and the nominal secondary vector 426 is not approximately 0 or 180 degrees.
- the example attitude controller 208 may generate an attitude command based on the adjusted normal vector 428 when the satellite 100 is not experiencing a singularity condition.
- the attitude command does not instruct the satellite 100 to perform a rotation about the nominal primary vector 424 (e.g., perform a yaw flip).
- the adjusted normal vector 428 may include the set of nominal vectors, the set of alternate vectors, and/or a combination thereof based on the weight factor ⁇ as described above.
- the adjusted normal vector 428 may be equal to a nominal normal vector (e.g., n nominal ) or an alternate normal vector (e.g., n alternate ).
- FIG. 5 is an example orbital pathway diagram 500 of the example satellite 100 of FIG. 1 moving from an initial orbit 502 to a final orbit 504 via a transfer orbit 506.
- the satellite 100 orbits a celestial body or a planet (e.g., Earth, Mars, etc.) 508 in the initial orbit 502 and is proceeding to the final orbit 504.
- the satellite 100 begins its travel along the transfer orbit 506 by performing an initial maneuver using the thrusters 112.
- the satellite 100 moves along a path defined by the transfer orbit 506 and uses the thrusters 112 to perform a final maneuver to remain in the final orbit 504.
- the satellite 100 may proceed from the final orbit 504 to the lower/initial orbit 502. It will be appreciated that the satellite 100 may travel in the initial orbit 502, the final orbit 504, the transfer orbit 506, etc. by using a set of nominal vectors, a set of alternate vectors, and/or a combination thereof as calculated by the satellite controller 104 of FIGS. 1-2 . For example, the satellite 100 may travel in the initial orbit 502 using the set of alternate vectors as calculated by the example steering law module 206 of FIG. 2 .
- FIGS. 6-7 Flowcharts representative of example methods for implementing the example satellite controller 104 of FIGS. 1-2 are shown in FIGS. 6-7 .
- the methods may be implemented using machine-readable instructions that comprise a program for execution by a processor such as the processor 812 shown in the example processor platform 800 discussed below in connection with FIG. 8 .
- the program may be embodied in software stored on a tangible computer-readable storage medium such as a CD-ROM, a floppy disk, a hard drive, a digital versatile disk (DVD), a Blu-ray disk, or a memory associated with the processor 812, but the entire program and/or parts thereof could alternatively be executed by a device other than the processor 812, and/or embodied in firmware or dedicated hardware.
- example program is described with reference to the flowcharts illustrated in FIGS. 6-7 , many other methods of implementing the example satellite controller 104 may alternatively be used. For example, the order of execution of the blocks may be changed, and/or some of the blocks described may be changed, eliminated, or combined.
- FIGS. 6-7 may be implemented using coded instructions (e.g., computer and/or machine-readable instructions) stored on a tangible computer-readable storage medium such as a hard disk drive, a flash memory, a read-only memory (ROM), a compact disk (CD), a digital versatile disk (DVD), a cache, a random-access memory (RAM) and/or any other storage device or storage disk in which information is stored for any duration (e.g., for extended time periods, permanently, for brief instances, for temporarily buffering, and/or for caching of the information).
- a tangible computer-readable storage medium is expressly defined to include any type of computer-readable storage device and/or storage disk and to exclude propagating signals and to exclude transmission media.
- tangible computer-readable storage medium and “tangible machine-readable storage medium” are used interchangeably. Additionally or alternatively, the example methods of FIGS. 6-7 may be implemented using coded instructions (e.g., computer and/or machine-readable instructions) stored on a non-transitory computer and/or machine-readable medium such as a hard disk drive, a flash memory, a read-only memory, a compact disk, a digital versatile disk, a cache, a random-access memory and/or any other storage device or storage disk in which information is stored for any duration (e.g., for extended time periods, permanently, for brief instances, for temporarily buffering, and/or for caching of the information).
- coded instructions e.g., computer and/or machine-readable instructions
- a non-transitory computer and/or machine-readable medium such as a hard disk drive, a flash memory, a read-only memory, a compact disk, a digital versatile disk, a cache, a random-access memory and/or any other storage device or storage disk in which
- non-transitory computer-readable medium is expressly defined to include any type of computer-readable storage device and/or storage disk and to exclude propagating signals and to exclude transmission media.
- the phrase "at least” is used as the transition term in a preamble of a claim, it is open-ended in the same manner as the term “comprising” is open ended.
- Comprising and all other variants of "comprise” are expressly defined to be open-ended terms. Including and all other variants of "include” are also defined to be open-ended terms.
- the term consisting and/or other forms of consist are defined to be close-ended terms.
- FIG. 6 is a flowchart representative of an example method 600 that may be performed by the example satellite controller 104 of FIGS. 1-2 to maneuver a satellite based on an attitude command.
- the example method 600 begins at 602 when the example satellite controller 104 calculates a primary vector of a satellite.
- the steering law module 206 may calculate a nominal primary vector of the satellite 100 of FIG. 1 .
- the example steering law module 206 may determine that the nominal primary vector is a vector from a center of gravity of the satellite 100 pointing towards a target (e.g., a point on the Earth).
- the example satellite controller 104 calculates a secondary vector.
- the steering law module 206 may calculate a nominal secondary vector of the satellite 100.
- the example steering law module 206 may determine that the nominal secondary vector may be a vector from the center of gravity of the satellite 100 pointing towards a power source (e.g., a light source from a celestial body, the Sun, etc.).
- a power source e.g.,
- the example satellite controller 104 calculates a boresight vector.
- the targeting module 202 may calculate a boresight vector of the satellite 100.
- the example satellite controller 104 calculates a normal vector.
- the steering law module 206 may calculate a normal vector (e.g., n adjusted ) based on a set of nominal vectors, a set of alternate vectors, and/or a combination thereof.
- the example satellite controller 104 normalizes the normal vector.
- the steering law module 206 may normalize the adjusted normal vector n adjusted .
- the example satellite controller 104 generates an attitude representation triad.
- the steering law module 206 may generate the attitude representation triad (e.g., v 1, v 2 , and v 3 ).
- the example satellite controller 104 generates an attitude representation.
- the steering law module 206 may generate a transformation matrix (e.g., a direction cosine matrix), a quaternion, etc.
- the example satellite controller 104 generates an attitude command.
- the attitude controller 208 may generate an attitude command based on the transformation matrix.
- the example satellite controller 104 controls a thruster and/or a momentum device of the satellite.
- the attitude controller 208 may transmit a command to the thrusters 112 to maneuver the satellite 100.
- the example satellite controller 104 determines whether further attitude adjustment is necessary. For example, the attitude controller 208 may determine that an attitude zero is approximately zero. If, at block 620, the example satellite controller 104 determines that further attitude adjustment is necessary, control returns to block 602 to calculate another primary vector of the satellite, otherwise the example method 600 concludes.
- FIG. 7 is a flowchart representative of an example method 700 that may be performed by the example satellite controller 104 of FIGS. 1-2 to calculate a normal vector based on a set of alternate vectors.
- the example method 700 begins at block 702 when the example satellite controller 104 calculates a nominal normal vector.
- the steering law module 206 may generate a nominal normal vector based on a vector cross product between a nominal primary vector and a nominal secondary vector.
- the example satellite controller 104 calculates an alternate normal vector.
- the steering law module 206 may calculate an alternate normal vector that is normal to an orbital fixed frame plane.
- the example satellite controller 104 determines a sign of a nominal normal vector. For example, the steering law module 206 may determine to toggle a sign of the nominal normal vector based on projecting the nominal primary vector, the nominal secondary vector, etc. to an orbit fixed frame plane.
- the example satellite controller 104 calculates a weight factor. For example, the steering law module 206 may calculate a weight factor ⁇ based on the linear method, the sinusoidal method, the exponential method, etc. as described above.
- the satellite controller 104 determines an adjusted normal vector (e.g., n adjusted ). For example, the steering law module 206 may calculate an adjusted normal vector based on the nominal normal vector (e.g., n nominal ), the alternate normal vector (e.g., n alternate ), the weight factor ⁇ , etc.
- FIG. 8 is a block diagram of an example processor platform 800 capable of executing instructions to implement the methods of FIGS. 6-7 and the example satellite controller 104 of FIGS. 1-2 .
- the processor platform 800 can be, for example, a satellite control system, a satellite guidance system, a server, a personal computer, or any other type of computing device.
- the processor platform 800 of the illustrated example includes a processor 812.
- the processor 812 of the illustrated example is hardware.
- the processor 812 can be implemented by one or more integrated circuits, logic circuits, microprocessors or controllers from any desired family or manufacturer.
- the processor 812 of the illustrated example includes a local memory 813 (e.g., a cache).
- the processor 812 of the illustrated example executes the instructions to implement the example targeting module 202, the example orientation module 204, the example steering law module 206, the example attitude controller 208, the example sensor interface 210 and/or, more generally, the example satellite controller 104.
- the processor 812 of the illustrated example is in communication with a main memory including a volatile memory 814 and a non-volatile memory 816 via a bus 818.
- the volatile memory 814 may be implemented by Synchronous Dynamic Random Access Memory (SDRAM), Dynamic Random Access Memory (DRAM), RAMBUS Dynamic Random Access Memory (RDRAM), and/or any other type of random access memory device.
- the non-volatile memory 816 may be implemented by flash memory, and/or any other desired type of memory device. Access to the main memory 814, 816 is controlled by a memory controller.
- the processor platform 800 of the illustrated example also includes an interface circuit 820.
- the interface circuit 820 may be implemented by any type of interface standard, such as an Ethernet interface, a universal serial bus (USB), and/or a PCI express interface.
- one or more input devices 822 are connected to the interface circuit 820.
- the input device(s) 822 permit(s) a user to enter data and commands into the processor 812.
- the input device(s) can be implemented by, for example, an audio sensor, a microphone, a camera (still or video), a keyboard, a button, a mouse, a touchscreen, a track-pad, a trackball, isopoint, and/or a voice recognition system coupled to a ground communication system communicatively coupled to the processor platform 800.
- One or more output devices 824 are also connected to the interface circuit 820 of the illustrated example.
- the output devices 824 can be implemented, for example, by display devices (e.g., a light emitting diode (LED), an organic light emitting diode (OLED), a liquid crystal display, a cathode ray tube display (CRT), a touchscreen, a tactile output device, a printer and/or speakers) coupled to a ground communication system communicatively coupled to the processing platform 800.
- the interface circuit 820 of the illustrated example thus, typically includes a graphics driver card, a graphics driver chip, or a graphics driver processor.
- the interface circuit 820 of the illustrated example also includes a communication device such as a transmitter, a receiver, a transceiver, a modem and/or network interface card to facilitate exchange of data with external machines (e.g., computing devices of any kind) via a network 826 (e.g., an Ethernet connection, a digital subscriber line (DSL), a telephone line, coaxial cable, a cellular telephone system, a satellite communication system, etc.).
- a network 826 e.g., an Ethernet connection, a digital subscriber line (DSL), a telephone line, coaxial cable, a cellular telephone system, a satellite communication system, etc.
- the processor platform 800 of the illustrated example also includes one or more mass storage devices 828 for storing software, and/or data.
- mass storage devices 828 include floppy disk drives, hard drive disks, compact disk drives, Blu-ray disk drives, RAID systems, magnetic media, and digital versatile disk (DVD) drives.
- the example mass storage 828 implements the example database 214.
- Coded instructions 832 to implement the methods represented by the flowcharts of FIGS. 6-7 may be stored in the mass storage device 828, in the volatile memory 814, in the non-volatile memory 816, and/or on a removable tangible computer-readable storage medium such as a CD or DVD.
Landscapes
- Engineering & Computer Science (AREA)
- Remote Sensing (AREA)
- Radar, Positioning & Navigation (AREA)
- Aviation & Aerospace Engineering (AREA)
- Chemical & Material Sciences (AREA)
- Combustion & Propulsion (AREA)
- Automation & Control Theory (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Plasma & Fusion (AREA)
- Astronomy & Astrophysics (AREA)
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
Description
- This disclosure relates generally to orbital space vehicles and, more particularly, to methods and apparatus to minimize command dynamics of a satellite.
-
EP 1526072 in the abstract states: "A method for yaw steering of a spacecraft is provided, where an attitude control law is applied which is designed such that any discontinuities for the yaw steering angle as well as for rate and angular acceleration are avoided for all sun elevation angles (β)." -
US 6076774 in the abstract states: "A system and method for acquiring the Earth by a three-axis stabilized spacecraft in the presence of a significantly time-varying Sun-Earth angle including obtaining an Earth cone described by rotating the nadir vector about the Sun vector, slewing the spacecraft about an axis until the Earth sensor boresight touches an edge of the Earth cone, updating the Earth cone due to the changing Sun-Earth separation angle, performing a spiral coning maneuver about the updated Earth cone until the Earth sensor detects the Earth, and locking onto the Earth so as to hold the Earth sensor boresight coincident with the nadir vector. Additionally, the spacecraft may be rotated about the nadir vector so as to bring the spacecraft into a desired final attitude. -
US 7464899 in the abstract states: "A method for avoiding singularities in the movement of CMGs in an array of CMGs in a spacecraft includes a first step where a maneuver command to rotate a spacecraft orientation is received. Then, the torque needed to rotate the spacecraft's orientation is determined. Then, the torque is integrated to determine a momentum path. The momentum path is decomposed into a sequence of straight line segments. For each line segment, a unit vector along the straight line segments is determined. Then, it is determined if there is a continuous path connecting a start point and an end point of the line segment in a plane perpendicular to the unit vector. For each point along the path in the plane perpendicular to the unit vector, a set of gimbal angles is determined." - In an aspect there is provided an apparatus and a method as set out in the independent claims.
- Space vehicles such as satellites or resident space objects (RSO) typically utilize actuators such as thrusters and/or momentum devices to maintain an orbit around a celestial body. Typically, a satellite or an RSO orbiting the Earth employs deployable solar panels to power onboard electronics. The onboard electronics provide critical functionalities such as determining a position of a target of interest, determining a position of the satellite, etc. The onboard electronics control an ability of the satellite to simultaneously point to the target of interest while keeping the solar panels pointed toward a power source such as the Sun.
- Typical satellites maintain an orbit around a celestial body by controlling thrusters and/or momentum devices using commands generated using attitude steering laws. Typically, attitude steering laws involve calculating two vectors to describe a full rotation representation for an orbit. As a satellite pursues an orbit, the two vectors may change with respect to each other, bringing the two vectors closer together in some instances, and pushing the two vectors farther apart in other instances. As the two vectors change with respect to each other, the attitude steering laws may generate commands that produce undesirable satellite behavior due to practical limitations of the satellite and various considerations that influence calculations of the two vectors.
-
-
FIG. 1 is an example satellite in which the examples disclosed herein may be implemented. -
FIG. 2 is an example satellite guidance system that may be used to implement the examples disclosed herein. -
FIGS. 3A, 3B, and 3C illustrate example vectors and planes of an example orbit of the example satellite ofFIG. 1 in accordance with typical attitude steering laws. -
FIGS. 4A, 4B, and 4C illustrate example vectors and planes of an example orbit of the example satellite ofFIG. 1 in accordance with the teachings of this disclosure. -
FIG. 5 is an example orbital pathway diagram of the example satellite ofFIG. 1 moving from an initial orbit to a final orbit via a transfer orbit. -
FIG. 6 is a flowchart representative of an example method that may be used to implement the example satellite guidance system ofFIG. 2 . -
FIG. 7 is a flowchart representative of another example method that may be used to implement the example satellite guidance system ofFIG. 2 . -
FIG. 8 is a block diagram of an example processing platform structured to execute machine-readable instructions to implement the methods ofFIGS. 6-7 and/or the example satellite guidance system ofFIG. 2 . - Wherever possible, the same reference numbers will be used throughout the drawing(s) and accompanying written description to refer to the same or like parts. The figures are not to scale.
- Methods and apparatus to minimize command dynamics of a satellite are disclosed herein. Typically, spacecraft or space vehicles such as satellites or resident space objects (RSO) utilize actuators such as thrusters and/or momentum devices to maintain an orbit around a celestial body such as the Earth. For example, a satellite may maintain a geosynchronous orbit (GEO) around the Earth to transmit, relay, and/or repeat communications from another satellite to a target on the Earth (e.g., an antenna station in Los Angeles). The satellite may maintain the orbit by controlling the thrusters and/or the momentum devices of the satellite by using commands generated using attitude steering laws.
- Typically, an attitude steering law involves calculating two vectors (e.g., a set of nominal vectors) to describe a full rotation representation for a satellite to complete an orbit. The two vectors may be a primary vector (e.g., a nominal primary vector) and a secondary vector (e.g., a nominal secondary vector). Attitude steering laws may be used to generate commands to control an attitude of a satellite. As used herein, the term "attitude" refers to an orientation and/or a position in space with respect to one or more celestial bodies (e.g., the Earth, the Sun, etc.). A primary vector may be a vector from a center of gravity of the satellite pointing towards a target (e.g., a point on the Earth). A secondary vector may be a vector from the center of gravity of the satellite pointing towards a power source (e.g., a light source from a celestial body, the Sun, etc.). As the satellite moves along the orbit, the two vectors may change with respect to each other, bringing the two vectors closer together in some instances, and pushing the two vectors farther apart in other instances. As the two vectors change with respect to each other, the attitude steering laws may be used to generate commands that produce undesirable satellite behavior due to practical limitations of the satellite and various considerations that enter calculations of the two vectors.
- In some examples, an attitude steering law is used to calculate two vectors based on inertial reference frames. For example, an attitude steering law may be used to calculate a primary vector and a secondary vector based on targets on the Earth and the Sun, where the Earth and the Sun are fixed in time (i.e., time-independent) and space (i.e., location-independent). For example, if an accelerometer were placed on the Earth and/or the Sun, the accelerometer would detect zero acceleration. Due to the inertial reference frames (e.g., the Earth, the Sun, etc.) and a cyclical nature of a satellite traveling along an orbit, an angle between the two vectors may produce a singularity condition. As used herein, the term "singularity condition" may refer to a condition where two vectors (e.g., the primary vector and the secondary vector) are collinear to each other, and a vector cross-product of the two vectors produces a vector of magnitude zero. For example, twice during an orbit (e.g., twice during an orbit around the Earth), the satellite may be in line with the Earth and the Sun. Thus, once an orbit, the angle between the two vectors may be 0 degrees because the two vectors become collinear with respect to each other. Similarly, once an orbit, the angle between the two vectors may be 180 degrees because the two vectors become collinear with respect to each other. At these moments, the attitude steering law may be used to generate a vector of magnitude zero, thus producing a singularity condition.
- During a singularity condition, an attitude steering law of a satellite may produce a command (e.g., an attitude command) to slew the satellite 180 degrees about a primary vector of the satellite at an instantaneous rate. Further, as the satellite experiences two singularity conditions for every orbit, the satellite slews 180 degrees twice per orbit, effectively forcing a rotation of 360 degrees per orbit about the primary vector of the satellite. For example, as the primary vector and the secondary vector of the satellite move away from orthogonality, a rate (e.g., a command rate, a thrust rate, etc.) required to follow the commands generated by the attitude steering law may approach infinity. As the commands approach infinity, the attitude steering law may quantitatively result in the calculation of a 180-degree rotation at an instantaneous rate. The instantaneous rate may exceed a maneuvering capability of the satellite and produce undesirable command dynamics.
- Example satellite controller apparatus disclosed herein are operative to minimize command dynamics of a satellite. As used herein, the term "command dynamics" refers to one or more effects of a space vehicle performing a command generated using an attitude steering law. For example, an effect may be a payload of the satellite that is not able to update a vector (e.g., a primary vector, a secondary vector, etc.) fast enough to compensate for a 180-degree rotation at an instantaneous rate. In another example, an effect may be one or more bus attitude actuators of the satellite that are unable to drive attitude control error to zero at all times.
- Example satellite controller apparatus disclosed herein minimize command dynamics of a satellite by calculating and using a set of alternate vectors during a time period when a singularity takes place. Alternatively, the example satellite controller apparatus may use a combination (e.g., a blending) of the set of alternate vectors and the set of nominal vectors (e.g., the nominal primary vector and the nominal secondary vector). The example satellite controller apparatus may determine when a singularity occurs based on projecting a primary vector and a secondary vector of the satellite from a three-dimensional (3-D) plane to a two-dimensional (2-D) plane. The example satellite controller apparatus may calculate a vector normal to the projected vectors (e.g., the projected primary and secondary vectors) and an angle between the projected vectors. The example satellite controller apparatus may determine that a singularity occurs as the angle between the projected vectors approaches 0 degrees or 180 degrees.
- Example satellite controller apparatus disclosed herein calculate a set of alternate vectors to the set of nominal vectors. For example, in addition to the nominal primary vector, the nominal secondary vector, the nominal normal vector, etc., the satellite controller apparatus may calculate an alternate primary vector, an alternate secondary vector, an alternate normal vector, etc. Transitioning between the nominal set of vectors and the alternate set of vectors may result in smoothed maneuvers of the satellite by avoiding unplanned jerks, rotations, slews, etc. of the satellite. The example satellite controller apparatus may use the set of nominal vectors, the set of alternate vectors, and/or a combination thereof to minimize command dynamics of a satellite.
-
FIG. 1 is anexample satellite 100 in which the examples disclosed herein may be implemented. Thesatellite 100 of the illustrated example includes a satellite body 102, which includes on-board processors (e.g., a satellite controller 104), batteries and/or fuel tanks, antennas (e.g., communication antennas, etc.) 106,solar panels 108, and apropulsion system 110. Theexample propulsion system 110 includesthrusters 112 that have thrustcones 114. In this example, thesolar panels 108 are in a deployed state (e.g., unfolded away from the satellite body 102), thereby altering the inertial/mass characteristics of thesatellite 100 in contrast to an un-deployed state of thesatellite 100 where thesolar panels 108 are folded inward towards the satellite body 102. Thesatellite 100 may move to align anaxis 116 of thesolar panels 108 with a nominal primary vector, a nominal secondary vector, a nominal normal vector, etc. Thesatellite 100 further includes a sensor 118 (e.g., an optical sensor, a star tracker, etc.) to obtain sensor data related to a location, orientation, position, etc. of thesatellite 100. - In operation, the
satellite 100 may communicate with external systems (e.g., transmit as well as receive) via theantennas 106 to maneuver thesatellite 100 between orbital paths and/or orbital heights and/or to provide data to external ground-based systems, for example. In particular, thesatellite 100 of the illustrated example is maneuvered by activating (e.g., firing) thethrusters 112, which are electric (e.g., ion-based, an ion propulsion system, xenon-based thrusters, etc.). For example, thesatellite 100 may vary a duration and/or a pulse of different thrusters of thethrusters 112 to maneuver thesatellite 100, and/or control an attitude of theexample satellite 100 relative to a celestial body (e.g., a space body) that thesatellite 100 orbits. - In the illustrated example of
FIG. 1 , a maneuvering frame ofreference 120 of theexample satellite 100 is shown. The maneuvering frame ofreference 120 illustrates athruster plume angle 122 that is depicted by the symbol, θT , acant angle 124 that is depicted by the symbol, θC , and aslew angle 126 that is depicted by the symbol, θS. The frame ofreference 120 depicts numerous degrees of rotational movement in which thesatellite 100 may be oriented/rotated during an orbit or a movement between different orbits. In this example, aresultant vector 128 of thesatellite 100 is shown. In particular, the exampleresultant vector 128 depicts a resulting direction of motion of thesatellite 100 based on the vector sum of the activation and/or orientation of individual thrusters of thethrusters 112. Thesatellite 100 may use the exampleresultant vector 128 to align theaxis 116 with the nominal primary vector, the nominal secondary vector, etc. of thesatellite 100. -
FIG. 2 is an examplesatellite guidance system 200 that may be used to implement the examples disclosed herein. In the illustrated example, thesatellite guidance system 200 includes theexample satellite controller 104, which is implemented in a satellite (e.g., the satellite 100). Theexample satellite controller 104 includes a targetingmodule 202, anorientation module 204, asteering law module 206, anattitude controller 208, and asensor interface 210. The examplesatellite guidance system 200 also includescommunication lines 212 that communicatively couple thesatellite controller 104, theattitude controller 208, and/or thesensor interface 210 to the satellite thruster(s) 112 shown inFIG. 1 . In this example, thesatellite controller 104 is also communicatively coupled to theantenna 106 which, in turn, is in communication with a ground-basedcommunication system 216 of a planet 218 (e.g., the Earth) around which the satellite orbits. In the illustrated example, thesatellite controller 104 is communicatively coupled to and/or includes adatabase 214. - In the illustrated example of
FIG. 2 , thesatellite controller 104 includes the targetingmodule 202 to target a point of interest on a celestial body (e.g., the planet 218). Theexample targeting module 202 may use an Earth-centered inertial (ECI) coordinate frame to determine a set of coordinates for the point of interest. For example, the targetingmodule 202 may map a current date and time to a known location on the Earth (e.g., the equator) to determine a set of coordinates for the ground-basedcommunication system 216. Alternatively, theexample targeting module 202 may utilize theantennas 106 to obtain a position of the point of interest (e.g., communicate with the ground-basedcommunication system 216 to obtain a set of coordinates). In some examples, the targetingmodule 202 calculates an instant (e.g., a current) primary vector of thesatellite 100. For example, the targetingmodule 202 may calculate a current vector from a center of gravity of thesatellite 100 to a point of interest on theplanet 218. In some instances, the targetingmodule 202 calculates an instant (e.g., a current) and/or a nominal boresight vector. As used herein, the term "boresight vector" refers to a vector where maximum gain (e.g., maximum radiated power) of a directional antenna can be achieved. For example, theantennas 106 may achieve maximum gain when theantennas 106 align with a boresight vector. Theexample targeting module 202 may store data (e.g., targeting coordinates) in and/or retrieve data from theexample database 214. - In the illustrated example of
FIG. 2 , thesatellite controller 104 includes theorientation module 204 to determine a position of thesatellite 100. Theexample orientation module 204 may utilize thesensor 118 ofFIG. 1 to determine where thesatellite 100 is located with respect to one or more navigational stars, theplanet 218, the Sun, etc. Theexample orientation module 204 may utilize thesensor 118 to map sensor data to a look-up table (e.g., a star catalog) to determine a position of thesatellite 100. In some examples, theorientation module 204 calculates a vector to maximize an amount of light to which thesolar panels 108 are exposed. Theexample orientation module 204 may calculate an instant (e.g., a current) secondary vector of thesatellite 100. For example, theorientation module 204 may calculate a vector from a center of gravity of thesatellite 100 to the Sun. - In some examples, the
orientation module 204 determines an orbital reference frame plane based on the current primary vector of thesatellite 100. In some examples, theorientation module 204 calculates a principle sensitive axis (e.g., the axis 116) of thesatellite 100. In other examples, theorientation module 204 accesses mass/inertia data and/or a pre-defined sensitive axis of thesatellite 100 from thedatabase 214. In yet other examples, the sensitive principle axis is assigned (e.g., received from, continuously received from, uploaded from, etc.) the ground-basedcommunication system 216. In some examples, theorientation module 204 calculates an attitude shift (e.g., an attitude delta) of thesatellite 100 required to orient the principle sensitive axis of thesatellite 100 to the orbital reference frame plane. Additionally or alternatively, theexample orientation module 204 may calculate an attitude of thesatellite 100 in which the principle sensitive axis is oriented to the orbital reference frame plane and a thrust vector of thesatellite 100 is perpendicular to the principle sensitive axis to move thesatellite 100 into the higher orbit while reducing (e.g., minimizing) gravity gradient torques acting on the satellite. Alternatively, theexample orientation module 204 may be a manually controlled interface via the ground-basedcommunication system 216. Theexample orientation module 204 may store data (e.g., orientation coordinates) in and/or retrieve data from theexample database 214. - In the illustrated example of
FIG. 2 , thesatellite controller 104 includes thesteering law module 206 to generate an attitude representation of a desired satellite position. As used herein, the term "attitude representation" refers to a mathematical description of a desired satellite attitude. Example attitude representations may include a transformation matrix, a quaternion (e.g., a right-handed quaternion), an angle axis, Euler angles, Rodriguez parameters, etc. In some examples, thesteering law module 206 generates a nominal primary vector, a nominal secondary vector, and a nominal boresight vector, where the nominal vectors represent commanded or desired vectors of one or more axes, components, etc. of thesatellite 100. For example, thesteering law module 206 may determine a nominal primary vector pointing from a center of gravity of thesatellite 100 towards a target (e.g., a point on the Earth). The nominal vectors may be based on obtained vectors. For example, thesteering law module 206 may obtain an instant (e.g., a current) primary vector and/or an instant boresight vector from the targetingmodule 202. The examplesteering law module 206 may obtain an instant secondary vector from theorientation module 204. The examplesteering law module 206 may perform vector calculations on the obtained vectors to generate the nominal vectors. The examplesteering law module 206 may generate the attitude representation of thesatellite 100 based on the nominal vectors. - In some examples, the
steering law module 206 generates a nominal normal vector. For example, thesteering law module 206 may calculate a vector normal (e.g., a nominal normal vector) to both the nominal primary vector and the nominal secondary vector as described below in Equation (1):v norm represents a nominal normal vector, the variablev p represents a nominal primary vector, and the variablev s represents a nominal secondary vector. - In some examples, the
steering law module 206 normalizes the nominal normal vectorv norm as described below in Equation (2):v norm represents the nominal normal vector. In some instances, thesteering law module 206 creates an attitude representation triad for a target of interest (e.g., a point on the Earth) with respect to the inertial reference frame (e.g., the Earth). The examplesteering law module 206 may generate the attitude representation triad as described below in Equation (3) and Equation (4):v 3 represents a third vector of the attitude representation triad, and the variablev p represents the primary vector. In the illustrated example of Equation (4) above, the variablev norm represents the nominal normal vector as calculated above in Equation (1), and the variablev p represents the primary vector. In the illustrated example of Equation (4) above, the variablev 1 represents a first vector of the attitude representation triad based on a vector cross-product betweenv norm andv p . - To complete the attitude representation triad, the example
steering law module 206 may calculate a second vectorv 2 based onv 1 andv 3 as determined by Equation (3) and Equation (4) above. The examplesteering law module 206 may calculatev 2 as described below in Equation (5):steering law module 206 may generate the attitude representation using a transformation matrix (e.g., a direction cosine matrix) as described below in Equation (6):v 2. - In some examples, the boresight vector
v bs is not aligned with a geometric body frame axis (e.g., an axis of the satellite body 102). The examplesteering law module 206 may perform a second rotation to derive a full rotation tensor that transforms vectors from the inertial frame to the body frame as described below in Equation (7):steering law module 206 may transmit the direction cosine matrices as described above in Equation (6) and Equation (7) to theexample attitude controller 208 to maneuver thesatellite 100. - In some examples, the
steering law module 206 calculates a set of alternate vectors to minimize command dynamics due to a singularity. For example, thesteering law module 206 may calculate a nominal normal vectorn nominal , and an adjusted normal vectorn adjusted based on the set of nominal vectors, the set of alternate vectors, and/or a combination thereof. For example, thesteering law module 206 may calculate the nominal normal vectorn nominal of thesatellite 100 as described below in Equation (8):n nominal represents a nominal normal vector, the variablev p represents a nominal primary vector, and the variablev s represents a nominal secondary vector. In the illustrated example of Equation (8) above, the nominal normal vectorn nominal is equal to a cross-product of the nominal primary vectorv p and the nominal secondary vectorv s , or normal tov p andv s . In the illustrated example of Equation (8) above,n nominal is equal to the nominal normal vectorv norm as described above in Equation (1). Alternatively, the nominal normal vectorn nominal may be equal to a vector cross-product of a primary vector and a secondary vector not described above in Equation (1). - In some examples, the
steering law module 206 calculates the alternate normal vectorn alternate , which may be used as an alternative to the nominal normal vectorn nominal. The examplesteering law module 206 may calculaten alternate , wheren alternate is normal to the primary vectorn p as described above in Equation (1), but not necessarily normal to the secondary vectorn s as described above in Equation (1). Alternatively,n alternate may be normal ton s. - In some examples, the
steering law module 206 calculatesn alternate by determining an intersection of two planes (e.g., geometric planes) and a direction (e.g., a vector direction). In response to determining the intersection, the examplesteering law module 206 may determine an idealn alternate, where the idealn alternate produces minimum slew. For example, thesteering law module 206 may define a first geometric plane that is normal tov p . Thesteering law module 206 may define a second geometric plane that is normal to the direction ofv norm as vectorsv p andv s approach a separation extremum or a singularity point. The examplesteering law module 206 may determine a direction of a vector along a line formed by the first and second geometric planes, where the direction is chosen to produce a minimum angle betweenn nominal andn alternate. The examplesteering law module 206 may usen alternate as an aid for producingn adjusted, therefore thesteering law module 206 automatically projectsn alternate to be perpendicular ton p. Thus,n alternate provides a midpoint between the attitudes equidistant in time before and after a separation extremum. - In some examples, the
steering law module 206 determines that an exact calculation ofn alternate is not necessary, as any vector that satisfies the first example criterion and is less than 90 degrees from the nominal normal vectorn nominal is a satisfactory choice forn alternate. As a result, a sensitivity ofn alternate may not be significant. In some examples, thesteering law module 206 calculatesn alternate to provide a midpoint between a first attitude for the duration of time t prior to the singularity and a second attitude for the same duration of time t after the singularity. For example, thesteering law module 206 may calculaten alternate to be a vector normal to an orbital plane of thesatellite 100. - In some examples, the
steering law module 206 estimates when a singularity occurs. For example, a singularity may occur when an angular separation between the nominal primary vectorn p and the nominal secondary vectorn s is at a minimum angular separation (e.g., approximately 0 degrees), or at a maximum angular separation (e.g., approximately 180 degrees). However, calculating an angular separation extremum (e.g., a minimum or a maximum angular separation) may be difficult due to one or more considerations when calculatingn p ,n s , etc. For example,n p may be a function of an orbit (e.g., a GEO), an orbital position, a random vector chosen at any time by a user, etc. of thesatellite 100. In another example,n s may be a function of the orbit, the orbital position, a user chosen direction (e.g., a sun vector, a moon vector, a relay asset vector, etc.) of thesatellite 100. As a result, the examplesteering law module 206 may determine that the angular separation extremum exists between any interval less than and including [0,180] degrees, therefore the minimum angular separation and/or the maximum angular separation cannot be hardcoded in thesteering law module 206. - Alternatively, the example
steering law module 206 may simulate an orbit geometry, one or more nominal vectors (e.g.,n p ,n s , etc.), etc. prior to executing an attitude command. However, the examplesteering law module 206 performing a simulation prior to execution may impose implementation restrictions, introduce operation complexities, increase power consumption of thesatellite controller 104, etc. However, the examples disclosed herein illustrate apparatus, methods, and articles of manufacture that do not require the examplesteering law module 206 to perform simulations prior to execution. - In some examples, the
steering law module 206 calculates the angular separation extrema in real-time operation. Alternatively, the examplesteering law module 206 may calculate the angular separation extrema in non-real-time operation (e.g., an offline mode of operation). The examplesteering law module 206 may calculate the angular separation extrema in real-time operation by transformingn p andn s into transformed vectors corresponding to an orbit fixed frame plane defined via a position vector and/or a velocity vector of a space vehicle (e.g., the satellite 100). As used herein, the term "orbit fixed frame plane" refers to a plane normal to a vector produced by a cross-product of a position vector and a velocity vector. The examplesteering law module 206 may choose an orbit fixed frame plane because it may be desirable to capture a motion ofn p andn s with respect to the motion of thesatellite 100. The examplesteering law module 206 may project the transformed vectors onto the orbit fixed frame plane subtended by the position vector and/or the velocity vector of thesatellite 100. The transformed, projected vectors may includesteering law module 206 may compute a normal projected vector to the projected vectors via (1) a cross product of the projected vectors, and (2) an angle, θ proj, between the projected vectors. - In some examples, the
steering law module 206 determines to toggle a sign of the nominal normal vectorn nominal when one or more components of the projected vectors (e.g., the normal projected vector) are outside the orbit fixed frame plane. For example, thesteering law module 206 may toggle a positive sign ofn nominal to a negative sign when a component of the normal projected vector is outside the orbit fixed frame plane. In some instances, a user (e.g., an operator) may manually toggle the sign ofn nominal such that the user controls whethern nominal is above or below the orbit fixed frame plane. Additionally or alternatively, the user may override a change in sign ofn nominal by the examplesteering law module 206. In some examples, thesteering law module 206 flips the sign ofn nominal precisely when thesatellite 100 experiences an angular separation extremum to prevent theattitude controller 208 from generating a large, potentially unstable, step command (e.g., a step attitude command). - In some instances, the
steering law module 206 calculates the adjusted normal vectorn adjusted based on the set of nominal vectors, the set of alternate vectors, and/or a combination thereof. For example, thesteering law module 206 may use a weight factor, α, to determine a contribution of the set of nominal vectors and/or a contribution of the set of alternate vectors to calculaten adjusted. In some instances, α is limited to values within a range [0,1]. Alternatively, α may have a value outside the range [0,1]. In some examples, thesteering law module 206 calculatesn adjusted using a linear method as described below in Equation (9):n adjusted represents the adjusted normal vector, the variable α represents the weight factor, the variablen alternate represents the alternate normal vector, and the variablen nominal represents the nominal normal vector. In some examples, each of the vectors described above in Equation (9) are unit vectors and/or are required to be specified in the same coordinate frame. In some instances, thesteering law module 206 renormalizesn adjusted after thesteering law module 206 calculatesn adjusted as described above in Equation (9). Additionally or alternatively, the examplesteering law module 206 may calculaten adjusted using any other method such as, for example, an exponential method, a random-value generation method, a sinusoidal method, etc. - The example
steering law module 206 may calculate α using various mathematical methods. The examplesteering law module 206 may determine to use a particular method or a combination of methods dependent on one or more factors such as, for example, processing power available to thesteering law module 206, latency time requirements for updating parameters of thesatellite controller 104, etc. An example method to calculate α may be a linear method as described below in Equation (10):steering law module 206 may utilize the linear method as described above in Equation (10) to minimize resulting command dynamics while still transitioning fully between the set of nominal vectors and the set of alternate vectors. In the illustrated examples of Equation (9) and Equation (10) above, thesteering law module 206 utilizes the set of nominal vectors (e.g., utilizes the nominal normal vector) at 90 and 180 degrees, while utilizing the set of alternate vectors (e.g., utilizes the alternate normal vector) at 0 and 180 degrees. For example, α = 1 when θproj = 90 degrees, resulting inn adjusted =n nominal . - In some examples, the
steering law module 206 may calculate α using a sinusoidal method as described below in Equation (11):steering law module 206 utilizes the set of nominal vectors at 90 and 270 degrees, while utilizing the set of alternate vectors at 0 and 180 degrees. - In some instances, the
steering law module 206 calculates α using an exponential method as described below in Equation (12):steering law module 206 may utilize the exponential method to transition between the set of nominal vectors to the set of alternate vectors at an exact time that the set of nominal vectors are at or near a singularity condition. - In some examples, the
steering law module 206 utilizes the exponential method to calculate a value of α that maximizes an alignment of an axis (e.g., the axis 116) of thesatellite 100, the satellite body 102, etc. to the nominal secondary vector. For example, thesteering law module 206 may use the exponential method to maximize an amount of power generated by thesolar panels 108 due to an alignment of one or more components of thesatellite 100 to the nominal secondary vector. However, the examplesteering law module 206 may generate an attitude representation (e.g., a transformation matrix) using the exponential method that results in high command dynamics. - In some examples, the
steering law module 206 assigns a value to α to disable flip prevention. For example, thesteering law module 206 may assign α = 1 to turn off mitigating and/or preventative measures to a singularity (e.g., singularity handling). For example,n adjusted =n nominal as described above in Equation (9) when α = 1. The examplesteering law module 206 may turn off singularity handling in sun-synchronous orbits. In another example, thesteering law module 206 may assign α = 0 to turn off singularity handling. By assigning α = 0, the examplesteering law module 206 generates an attitude representation solely vian alternate . For example,n adjusted =n alternate as described above in Equation (9) when α = 0. In the illustrated example, when thesteering law module 206 calculates an ideal vector forn alternate (e.g., a vector normal to the orbital plane), thesteering law module 206 generates an attitude representation corresponding to standard orbit normal steering, where an axis (e.g., the axis 116) of a space vehicle (e.g., the satellite 100) is aligned with the orbital frame. Additionally or alternatively, a user may flip a sign ofn nominal prior to the examplesteering law module 206 calculating α using one or more methods such as, for example, the linear method, the sinusoidal method, and/or the exponential method as described above. Additionally or alternatively, a user may flip a sign ofn adjusted to generate an attitude representation corresponding to a space vehicle rotating 180 degrees about a nominal primary vector of the space vehicle. Additionally or alternatively, a user may change a value of α as calculated by the examplesteering law module 206. - In some instances, a range of values for α is limited to a smaller range than [0,1]. The example
steering law module 206 may manipulate α to limit an angular displacement from a nominal normal vector solution with respect to an alternate normal vector solution, or vice versa. For example, thesteering law module 206 may manipulate α to enable a space vehicle to slew about a target vector (e.g., a nominal primary vector) by no more than 30 degrees away from orbit normal (e.g., an alternate normal vector). The examplesteering law module 206 may limit the range to reduce a maximum transition between the set of nominal vectors and the set of alternate vectors. However, a prior simulation of a space vehicle or a constellation (i.e., a related group) of space vehicles for a given orbit may be required to determine an acceptable limited range for α. Alternatively, the examplesteering law module 206 may calculate (e.g., iteratively calculate) a separation angle between a desired trajectory and a current trajectory of the space vehicle based onn adjusted including components from the set of nominal vectors, the set of alternate vectors, and/or a combination thereof. The examplesteering law module 206 may determine a value for α based on the separation angle, where the separation angle may be a minimum angle, a maximum angle, etc. - In response to the example
steering law module 206 calculating a value forn adjusted , thesteering law module 206 determines an attitude representation as described above. For example, thesteering law module 206 may determine a transformation matrix representation based on settingv norm =n adjusted. The examplesteering law module 206 may convert the transformation matrix to another format (e.g., quaternion, Euler angles, etc.) based on a format or input requirement for theattitude controller 208. For example, thesteering law module 206 may convert the transformation matrix into an attitude quaternion (e.g., a right-handed quaternion where a last element of the quaternion is a scalar element). As used herein, the term "attitude quaternion" is a four-element vector that may be used to encode any rotation in a 3-D coordinate system. The examplesteering law module 206 may transmit the resulting attitude quaternion to theattitude controller 208 to issue one or more appropriate torque commands to slew a space vehicle. The examplesteering law module 206 may store data (e.g., components of vectors, weight factors, etc.) in and/or retrieve data from theexample database 214. - In the illustrated example of
FIG. 2 , thesatellite controller 104 includes theattitude controller 208 to generate a torque command to maneuver a space vehicle. Theexample attitude controller 208 may obtain an attitude representation such as, for example, a transformation matrix, an attitude quaternion, etc. from the examplesteering law module 206 and/or from theexample database 214. In some examples, theattitude controller 208 zeros an attitude error of a space vehicle. For example, theattitude controller 208 may obtain (1) a current position of thesatellite 100 from theorientation module 204, and (2) a desired position of thesatellite 100 from the steering law module 206 (e.g., a desired position based on an attitude representation). Theexample attitude controller 208 may calculate a difference between the current position and the desired position, where the difference is the attitude error. Theexample attitude controller 208 may zero out the attitude error by generating a torque command and transmitting the torque command to the satellite thruster(s) 112 and/or a momentum device of thesatellite 100 to achieve the desired position. Theexample attitude controller 208 may store data (e.g., attitude commands) in and/or retrieve data from theexample database 214. - In the illustrated example of
FIG. 2 , thesatellite controller 104 includes thesensor interface 210 to determine a position and/or an attitude of a space vehicle. For example, thesensor interface 210 may determine a position, an attitude, an acceleration vector, and/or a velocity vector of thesatellite 100 based on sensor data and/or received sensor data from the ground-basedcommunication system 216 of theplanet 218. Theexample sensor interface 210 may obtain sensor data from sensors monitoring thepropulsion system 110, the thruster(s) 112, etc. Theexample sensor interface 210 may store data (e.g., sensor data) in and/or retrieve data from theexample database 214. - In the illustrated example of
FIG. 2 , thesatellite guidance system 200 includes thedatabase 214 to record data (e.g., an attitude representation, sensor data, a weight factor, etc.). Theexample database 214 may respond to queries for information related to data in thedatabase 214. For example, thedatabase 214 may respond to queries for additional data by providing the additional data (e.g., the one or more data points), by providing an index associated with the additional data in thedatabase 214, etc. Theexample database 214 may additionally or alternatively respond to queries when there is no additional data in thedatabase 214 by providing a null index, an end ofdatabase 214 identifier, etc. Theexample database 214 may be implemented by a volatile memory (e.g., a Synchronous Dynamic Random Access Memory (SDRAM), Dynamic Random Access Memory (DRAM), RAMBUS Dynamic Random Access Memory (RDRAM), etc.) and/or a non-volatile memory (e.g., flash memory). Theexample database 214 may additionally or alternatively be implemented by one or more double data rate (DDR) memories, such as DDR, DDR2, DDR3, mobile DDR (mDDR), etc. Theexample database 214 may additionally or alternatively be implemented by one or more mass storage devices such as hard disk drive(s), compact disk drive(s) digital versatile disk drive(s), magnetic media, etc. While in the illustrated example thedatabase 214 is illustrated as a single database, thedatabase 214 may be implemented by any number and/or type(s) of databases. - While an example manner of implementing the
satellite controller 104 ofFIG. 1 is illustrated inFIG. 2 , one or more of the elements, processes, and/or devices illustrated inFIG. 2 may be combined, divided, re-arranged, omitted, eliminated, and/or implemented in any other way. Further, theexample targeting module 202, theexample orientation module 204, the examplesteering law module 206, theexample attitude controller 208, theexample sensor interface 210 and/or, more generally, theexample satellite controller 104 ofFIG. 2 may be implemented by hardware, software, firmware, and/or any combination of hardware, software, and/or firmware. Thus, for example, any of theexample targeting module 202, theexample orientation module 204, the examplesteering law module 206, theexample attitude controller 208, theexample sensor interface 210 and/or, more generally, theexample satellite controller 104 ofFIG. 2 could be implemented by one or more analog or digital circuit(s), logic circuits, programmable processor(s), application specific integrated circuit(s) (ASIC(s)), programmable logic device(s) (PLD(s)), and/or field programmable logic device(s) (FPLD(s)). When reading any of the apparatus or system claims of this patent to cover a purely software and/or firmware implementation, at least one of theexample targeting module 202, theexample orientation module 204, the examplesteering law module 206, theexample attitude controller 208, theexample sensor interface 210 and/or, more generally, theexample satellite controller 104 ofFIG. 2 is/are hereby expressly defined to include a tangible computer-readable storage device or storage disk such as a memory, a digital versatile disk (DVD), a compact disk (CD), a Blu-ray disk, etc. storing the software, and/or firmware. Further still, theexample satellite controller 104 ofFIG. 2 may include one or more elements, processes, and/or devices in addition to, or instead of, those illustrated inFIG. 2 , and/or may include more than one of any or all of the illustrated elements, processes, and devices. -
FIGS. 3A, 3B, and 3C are schematic illustrations depicting example vectors and planes of an example orbit of theexample satellite 100 ofFIG. 1 in accordance with typical attitude steering laws. In the illustrated example ofFIG. 3A , thesatellite 100 ofFIG. 1 orbits aplanet 300 along anorbital path 302. Thesatellite 100 may align theaxis 116 of thesolar panels 108 ofFIG. 1 along a vector to maximize exposure to a power source 304 (e.g., a star, the Sun, etc.). In the illustrated example, thesatellite controller 104 ofFIGS. 1-2 calculates a nominal primary vector 306 (e.g.,v p ), a nominal secondary vector 308 (e.g.,v s ), and a nominal normal vector 310 (e.g.,n nominal ). For example, thesteering law module 206 may generate the nominalnormal vector 310 by calculating a vector cross-product of the nominalprimary vector 306 and the nominalsecondary vector 308. As shown in the illustrated example, anangle 312 between the nominalprimary vector 306 and the nominalsecondary vector 308 is not approximately 0 or 180 degrees. Thus, theexample attitude controller 208 may generate an attitude command based on the nominalnormal vector 310 when thesatellite 100 is not experiencing a singularity condition. In the illustrated example ofFIG. 3A , the attitude command does not instruct thesatellite 100 to perform a rotation about the nominal primary vector 306 (e.g., perform a yaw flip). - In the illustrated example of
FIG. 3B , thesatellite 100 ofFIG. 1 orbits theplanet 300 along theorbital path 302. In the illustrated example, thesatellite controller 104 ofFIGS. 1-2 calculates a nominal primary vector 314 (e.g.,v p ), a nominal secondary vector 316 (e.g.,v s ), and a nominal normal vector 318 (e.g.,n nominal ). For example, thesteering law module 206 may generate the nominalnormal vector 318 by calculating a vector cross-product of the nominalprimary vector 314 and the nominalsecondary vector 316. As shown in the illustrated example, anangle 320 between the nominalprimary vector 314 and the nominalsecondary vector 316 is approximately 180 degrees. Thus, theexample attitude controller 208 may generate an attitude command based on the nominalnormal vector 318 when thesatellite 100 is experiencing a singularity condition. In the illustrated example ofFIG. 3B , the attitude command instructs thesatellite 100 to perform a rotation about the nominal primary vector 306 (e.g., perform a yaw flip). - In the illustrated example of
FIG. 3C , thesatellite 100 ofFIG. 1 orbits theplanet 300 along theorbital path 302. In the illustrated example, thesatellite controller 104 ofFIGS. 1-2 calculates a nominal primary vector 322 (e.g.,v p ), a nominal secondary vector 324 (e.g.,v s ), and a nominal normal vector 326 (e.g.,n nominal ). For example, thesteering law module 206 may generate the nominalnormal vector 326 by calculating a vector cross-product of the nominalprimary vector 322 and the nominalsecondary vector 324. The nominalnormal vector 326 is opposite in direction to the nominalnormal vector 310 ofFIG. 3A due to the yaw flip performed inFIG. 3B . As shown in the illustrated example, anangle 328 between the nominalprimary vector 322 and the nominalsecondary vector 324 is not approximately 0 or 180 degrees. Thus, theexample attitude controller 208 may generate an attitude command based on the nominalnormal vector 326 when thesatellite 100 is not experiencing a singularity condition. In the illustrated example ofFIG. 3C , the attitude command does not instruct thesatellite 100 to perform a rotation about the nominal primary vector 322 (e.g., perform a yaw flip). -
FIGS. 4A, 4B, and 4C are schematic illustrations depicting example vectors and planes of an example orbit of theexample satellite 100 ofFIG. 1 in accordance with the examplesteering law module 206 calculating a set of alternate vectors. In the illustrated example ofFIG. 4A , thesatellite 100 ofFIG. 1 orbits aplanet 400 along anorbital path 402. Thesatellite 100 may align theaxis 116 of thesolar panels 108 ofFIG. 1 along a vector to maximize exposure to a power source 404 (e.g., a star, the Sun, etc.). In the illustrated example, thesatellite controller 104 ofFIGS. 1-2 calculates a nominal primary vector 406 (e.g.,v p ), a nominal secondary vector 408 (e.g.,v s ), and an adjusted normal vector 410 (e.g.,n adjusted ). For example, thesteering law module 206 may generate the adjustednormal vector 410 by a method as described above in accordance with Equations (9)-(12). For example, thesteering law module 206 may generate the adjustednormal vector 410 based on the weight factor α. The adjustednormal vector 410 is opposite in sign with respect to the nominalnormal vector 310 ofFIG. 3A . For example, thesteering law module 206 may have toggled a sign of a nominal normal vector based on a vector cross-product of the nominalprimary vector 406 and the nominalsecondary vector 408. - In the illustrated example of
FIG. 4A , anangle 412 between the nominalprimary vector 406 and the nominalsecondary vector 408 is not approximately 0 or 180 degrees. Thus, theexample attitude controller 208 may generate an attitude command based on the adjustednormal vector 410 when thesatellite 100 is not experiencing a singularity condition. In the illustrated example ofFIG. 4A , the attitude command does not instruct thesatellite 100 to perform a rotation about the nominal primary vector 406 (e.g., perform a yaw flip). The adjustednormal vector 410 may include the set of nominal vectors, the set of alternate vectors, and/or a combination thereof based on the weight factor α as described above. Alternatively, the adjustednormal vector 410 may be equal to a nominal normal vector (e.g.,n nominal ) or an alternate normal vector (e.g.,n alternate ). - In the illustrated example of
FIG. 4B , thesatellite 100 ofFIG. 1 orbits theplanet 400 along theorbital path 402. In the illustrated example, thesatellite controller 104 ofFIGS. 1-2 calculates a nominal primary vector 414 (e.g.,v p ), a nominal secondary vector 416 (e.g.,v s ), and an adjusted normal vector 418 (e.g.,n adjusted ). For example, thesteering law module 206 may generate the adjustednormal vector 418 by a method as described above in accordance with Equations (9)-(12). For example, thesteering law module 206 may generate the adjustednormal vector 418 based on the weight factor α. - In the illustrated example of
FIG. 4B , anangle 420 between the nominalprimary vector 414 and the nominalsecondary vector 416 is approximately 180 degrees. Thus, theexample attitude controller 208 may generate an attitude command based on the adjustednormal vector 418 when thesatellite 100 is experiencing a singularity condition. However, in the illustrated example ofFIG. 4B , the attitude command does not instruct thesatellite 100 to perform a rotation about the nominal primary vector 414 (e.g., perform a yaw flip). The adjustednormal vector 418 may include the set of nominal vectors, the set of alternate vectors, and/or a combination thereof based on the weight factor α as described above. Alternatively, the adjustednormal vector 418 may be equal to an alternate normal vector (e.g.,n alternate ). As a result, thesatellite 100 orients theaxis 116 of thesolar panels 108 along the adjustednormal vector 418 at anangle 422 from the adjustednormal vector 410 ofFIG. 4A . By calculating a set of alternate vectors, thesatellite 100 avoids performing an unintentional yaw flip as described above inFIG. 3B when thesatellite 100 approaches or experiences a singularity condition (e.g., a minimum or maximum angular separation exists). - In the illustrated example of
FIG. 4C , thesatellite 100 ofFIG. 1 orbits theplanet 400 along theorbital path 402. In the illustrated example, thesatellite controller 104 ofFIGS. 1-2 calculates a nominal primary vector 424 (e.g.,v p ), a nominal secondary vector 426 (e.g.,v s ), and an adjusted normal vector 428 (e.g.,n adjusted ). For example, thesteering law module 206 may generate the adjustednormal vector 428 by a method as described above in accordance with Equations (9)-(12). For example, thesteering law module 206 may generate the adjustednormal vector 428 based on the weight factor α. - In the illustrated example of
FIG. 4C , anangle 430 between the nominalprimary vector 424 and the nominalsecondary vector 426 is not approximately 0 or 180 degrees. Thus, theexample attitude controller 208 may generate an attitude command based on the adjustednormal vector 428 when thesatellite 100 is not experiencing a singularity condition. In the illustrated example ofFIG. 4C , the attitude command does not instruct thesatellite 100 to perform a rotation about the nominal primary vector 424 (e.g., perform a yaw flip). The adjustednormal vector 428 may include the set of nominal vectors, the set of alternate vectors, and/or a combination thereof based on the weight factor α as described above. Alternatively, the adjustednormal vector 428 may be equal to a nominal normal vector (e.g.,n nominal ) or an alternate normal vector (e.g.,n alternate ). -
FIG. 5 is an example orbital pathway diagram 500 of theexample satellite 100 ofFIG. 1 moving from aninitial orbit 502 to afinal orbit 504 via atransfer orbit 506. In the illustrated example ofFIG. 5 , thesatellite 100 orbits a celestial body or a planet (e.g., Earth, Mars, etc.) 508 in theinitial orbit 502 and is proceeding to thefinal orbit 504. In this example, thesatellite 100 begins its travel along thetransfer orbit 506 by performing an initial maneuver using thethrusters 112. As thesatellite 100 moves from theinitial orbit 502 to thefinal orbit 504, thesatellite 100 moves along a path defined by thetransfer orbit 506 and uses thethrusters 112 to perform a final maneuver to remain in thefinal orbit 504. While the example shown in the orbital pathway diagram 500 depicts thesatellite 100 moving from the lowerinitial orbit 502 to the higherfinal orbit 504, in some examples, thesatellite 100 does not complete the final maneuver to move into the higherfinal orbit 504, thereby causing thesatellite 100 to orbit along thetransfer orbit 506. Alternatively, thesatellite 100 may proceed from thefinal orbit 504 to the lower/initial orbit 502. It will be appreciated that thesatellite 100 may travel in theinitial orbit 502, thefinal orbit 504, thetransfer orbit 506, etc. by using a set of nominal vectors, a set of alternate vectors, and/or a combination thereof as calculated by thesatellite controller 104 ofFIGS. 1-2 . For example, thesatellite 100 may travel in theinitial orbit 502 using the set of alternate vectors as calculated by the examplesteering law module 206 ofFIG. 2 . - Flowcharts representative of example methods for implementing the
example satellite controller 104 ofFIGS. 1-2 are shown inFIGS. 6-7 . In these examples, the methods may be implemented using machine-readable instructions that comprise a program for execution by a processor such as theprocessor 812 shown in theexample processor platform 800 discussed below in connection withFIG. 8 . The program may be embodied in software stored on a tangible computer-readable storage medium such as a CD-ROM, a floppy disk, a hard drive, a digital versatile disk (DVD), a Blu-ray disk, or a memory associated with theprocessor 812, but the entire program and/or parts thereof could alternatively be executed by a device other than theprocessor 812, and/or embodied in firmware or dedicated hardware. Further, although the example program is described with reference to the flowcharts illustrated inFIGS. 6-7 , many other methods of implementing theexample satellite controller 104 may alternatively be used. For example, the order of execution of the blocks may be changed, and/or some of the blocks described may be changed, eliminated, or combined. - As mentioned above, the example methods of
FIGS. 6-7 may be implemented using coded instructions (e.g., computer and/or machine-readable instructions) stored on a tangible computer-readable storage medium such as a hard disk drive, a flash memory, a read-only memory (ROM), a compact disk (CD), a digital versatile disk (DVD), a cache, a random-access memory (RAM) and/or any other storage device or storage disk in which information is stored for any duration (e.g., for extended time periods, permanently, for brief instances, for temporarily buffering, and/or for caching of the information). As used herein, the term tangible computer-readable storage medium is expressly defined to include any type of computer-readable storage device and/or storage disk and to exclude propagating signals and to exclude transmission media. As used herein, "tangible computer-readable storage medium" and "tangible machine-readable storage medium" are used interchangeably. Additionally or alternatively, the example methods ofFIGS. 6-7 may be implemented using coded instructions (e.g., computer and/or machine-readable instructions) stored on a non-transitory computer and/or machine-readable medium such as a hard disk drive, a flash memory, a read-only memory, a compact disk, a digital versatile disk, a cache, a random-access memory and/or any other storage device or storage disk in which information is stored for any duration (e.g., for extended time periods, permanently, for brief instances, for temporarily buffering, and/or for caching of the information). As used herein, the term non-transitory computer-readable medium is expressly defined to include any type of computer-readable storage device and/or storage disk and to exclude propagating signals and to exclude transmission media. As used herein, when the phrase "at least" is used as the transition term in a preamble of a claim, it is open-ended in the same manner as the term "comprising" is open ended. Comprising and all other variants of "comprise" are expressly defined to be open-ended terms. Including and all other variants of "include" are also defined to be open-ended terms. In contrast, the term consisting and/or other forms of consist are defined to be close-ended terms. -
FIG. 6 is a flowchart representative of anexample method 600 that may be performed by theexample satellite controller 104 ofFIGS. 1-2 to maneuver a satellite based on an attitude command. Theexample method 600 begins at 602 when theexample satellite controller 104 calculates a primary vector of a satellite. For example, thesteering law module 206 may calculate a nominal primary vector of thesatellite 100 ofFIG. 1 . The examplesteering law module 206 may determine that the nominal primary vector is a vector from a center of gravity of thesatellite 100 pointing towards a target (e.g., a point on the Earth). Atblock 604, theexample satellite controller 104 calculates a secondary vector. For example, thesteering law module 206 may calculate a nominal secondary vector of thesatellite 100. The examplesteering law module 206 may determine that the nominal secondary vector may be a vector from the center of gravity of thesatellite 100 pointing towards a power source (e.g., a light source from a celestial body, the Sun, etc.). - At
block 606, theexample satellite controller 104 calculates a boresight vector. For example, the targetingmodule 202 may calculate a boresight vector of thesatellite 100. Atblock 608, theexample satellite controller 104 calculates a normal vector. For example, thesteering law module 206 may calculate a normal vector (e.g.,n adjusted ) based on a set of nominal vectors, a set of alternate vectors, and/or a combination thereof. Atblock 610, theexample satellite controller 104 normalizes the normal vector. For example, thesteering law module 206 may normalize the adjusted normal vectorn adjusted. Atblock 612, theexample satellite controller 104 generates an attitude representation triad. For example, thesteering law module 206 may generate the attitude representation triad (e.g.,v 1,v 2, andv 3). Atblock 614, theexample satellite controller 104 generates an attitude representation. For example, thesteering law module 206 may generate a transformation matrix (e.g., a direction cosine matrix), a quaternion, etc. - At
block 616, theexample satellite controller 104 generates an attitude command. For example, theattitude controller 208 may generate an attitude command based on the transformation matrix. Atblock 618, theexample satellite controller 104 controls a thruster and/or a momentum device of the satellite. For example, theattitude controller 208 may transmit a command to thethrusters 112 to maneuver thesatellite 100. Atblock 620, theexample satellite controller 104 determines whether further attitude adjustment is necessary. For example, theattitude controller 208 may determine that an attitude zero is approximately zero. If, atblock 620, theexample satellite controller 104 determines that further attitude adjustment is necessary, control returns to block 602 to calculate another primary vector of the satellite, otherwise theexample method 600 concludes. -
FIG. 7 is a flowchart representative of anexample method 700 that may be performed by theexample satellite controller 104 ofFIGS. 1-2 to calculate a normal vector based on a set of alternate vectors. Theexample method 700 begins atblock 702 when theexample satellite controller 104 calculates a nominal normal vector. For example, thesteering law module 206 may generate a nominal normal vector based on a vector cross product between a nominal primary vector and a nominal secondary vector. Atblock 704, theexample satellite controller 104 calculates an alternate normal vector. For example, thesteering law module 206 may calculate an alternate normal vector that is normal to an orbital fixed frame plane. - At
block 706, theexample satellite controller 104 determines a sign of a nominal normal vector. For example, thesteering law module 206 may determine to toggle a sign of the nominal normal vector based on projecting the nominal primary vector, the nominal secondary vector, etc. to an orbit fixed frame plane. Atblock 708, theexample satellite controller 104 calculates a weight factor. For example, thesteering law module 206 may calculate a weight factor α based on the linear method, the sinusoidal method, the exponential method, etc. as described above. Atblock 710, thesatellite controller 104 determines an adjusted normal vector (e.g.,n adjusted ). For example, thesteering law module 206 may calculate an adjusted normal vector based on the nominal normal vector (e.g.,n nominal ), the alternate normal vector (e.g.,n alternate ), the weight factor α, etc. -
FIG. 8 is a block diagram of anexample processor platform 800 capable of executing instructions to implement the methods ofFIGS. 6-7 and theexample satellite controller 104 ofFIGS. 1-2 . Theprocessor platform 800 can be, for example, a satellite control system, a satellite guidance system, a server, a personal computer, or any other type of computing device. - The
processor platform 800 of the illustrated example includes aprocessor 812. Theprocessor 812 of the illustrated example is hardware. For example, theprocessor 812 can be implemented by one or more integrated circuits, logic circuits, microprocessors or controllers from any desired family or manufacturer. - The
processor 812 of the illustrated example includes a local memory 813 (e.g., a cache). Theprocessor 812 of the illustrated example executes the instructions to implement theexample targeting module 202, theexample orientation module 204, the examplesteering law module 206, theexample attitude controller 208, theexample sensor interface 210 and/or, more generally, theexample satellite controller 104. Theprocessor 812 of the illustrated example is in communication with a main memory including avolatile memory 814 and anon-volatile memory 816 via abus 818. Thevolatile memory 814 may be implemented by Synchronous Dynamic Random Access Memory (SDRAM), Dynamic Random Access Memory (DRAM), RAMBUS Dynamic Random Access Memory (RDRAM), and/or any other type of random access memory device. Thenon-volatile memory 816 may be implemented by flash memory, and/or any other desired type of memory device. Access to themain memory - The
processor platform 800 of the illustrated example also includes aninterface circuit 820. Theinterface circuit 820 may be implemented by any type of interface standard, such as an Ethernet interface, a universal serial bus (USB), and/or a PCI express interface. - In the illustrated example, one or
more input devices 822 are connected to theinterface circuit 820. The input device(s) 822 permit(s) a user to enter data and commands into theprocessor 812. The input device(s) can be implemented by, for example, an audio sensor, a microphone, a camera (still or video), a keyboard, a button, a mouse, a touchscreen, a track-pad, a trackball, isopoint, and/or a voice recognition system coupled to a ground communication system communicatively coupled to theprocessor platform 800. - One or
more output devices 824 are also connected to theinterface circuit 820 of the illustrated example. Theoutput devices 824 can be implemented, for example, by display devices (e.g., a light emitting diode (LED), an organic light emitting diode (OLED), a liquid crystal display, a cathode ray tube display (CRT), a touchscreen, a tactile output device, a printer and/or speakers) coupled to a ground communication system communicatively coupled to theprocessing platform 800. Theinterface circuit 820 of the illustrated example, thus, typically includes a graphics driver card, a graphics driver chip, or a graphics driver processor. - The
interface circuit 820 of the illustrated example also includes a communication device such as a transmitter, a receiver, a transceiver, a modem and/or network interface card to facilitate exchange of data with external machines (e.g., computing devices of any kind) via a network 826 (e.g., an Ethernet connection, a digital subscriber line (DSL), a telephone line, coaxial cable, a cellular telephone system, a satellite communication system, etc.). - The
processor platform 800 of the illustrated example also includes one or moremass storage devices 828 for storing software, and/or data. Examples of suchmass storage devices 828 include floppy disk drives, hard drive disks, compact disk drives, Blu-ray disk drives, RAID systems, magnetic media, and digital versatile disk (DVD) drives. Theexample mass storage 828 implements theexample database 214. -
Coded instructions 832 to implement the methods represented by the flowcharts ofFIGS. 6-7 may be stored in themass storage device 828, in thevolatile memory 814, in thenon-volatile memory 816, and/or on a removable tangible computer-readable storage medium such as a CD or DVD.
Claims (5)
- An apparatus comprising a space vehicle, the apparatus comprising:a steering law module (206) to:calculate a first set of vectors including a first nominal vector pointing from the space vehicle to a target in an inertial reference frame, and a second nominal vector from a center of gravity of the space vehicle to a power source, and wherein the inertial reference frame is an Earth-centered inertial coordinate frame and the power source is a light source from a celestial body;calculate a vector normal to the projected first and second nominal vectors and an angle between the projected vectors to determine when a singularity occurs as the angle between the projected nominal vectors approaches 0 degrees or 180 degrees; andcalculate, when the singularity occurs, a second set of vectors, based on projecting the first set of vectors onto an orbital fixed frame plane, including an alternate primary vector, an alternate secondary vector, and an alternate normal vector; andan attitude controller (208) configured to generate an attitude command (616) based on the first set of vectors when it is determined the singularity does not occur, and based on the second set of vectors when it is determined that the singularity occurs, the attitude controller configured to transmit the attitude command to actuators of the space vehicle to maneuver the space vehicle between space vehicle orbital paths and/or orbital heights, in which the attitude controller generates the attitude command based on the first and/or the second set of vectors to prevent an unplanned rotation by the space vehicle.
- The apparatus as claimed in claim 1, in which the space vehicle comprises a satellite.
- The apparatus as claimed in any one of claims 1 to 2, in which the light source is the sun.
- The apparatus as claimed in any one of claims 1 to 3, wherein the target is on Earth.
- A method comprising:calculating a first set of vectors to maneuver a space vehicle (100) including a first nominal vector pointing from the space vehicle to a target in an inertial reference frame, and a second nominal vector from a center of gravity of the space vehicle to a power source, and wherein the inertial reference frame is an Earth-centered inertial coordinate frame and the power source is a light source from a celestial body;calculating a vector normal to the projected first and second nominal vectors and an angle between the projected vectors to determine when a singularity occurs as the angle between the projected nominal vectors approaches 0 degrees or 180 degrees;calculating, when the singularity occurs, a second set of vectors, based on projecting the first set of vectors onto an orbital fixed frame plane, including an alternate primary vector,an alternate secondary vector, and an alternate normal vector; andgenerating an attitude command (616) based on the first set of vectors when it is determined the singularity does not occur, and based on the second set of vectors when it is determined that the singularity occurs, the attitude controller configured to transmit the attitude command to actuators of the space vehicle to maneuver the space vehicle between space vehicle orbital paths and/or orbital heights, in which the attitude controller generates the attitude command based on the first and/or the second set of vectors to prevent an unplanned rotation by the space vehicle.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/466,228 US10175700B2 (en) | 2017-03-22 | 2017-03-22 | Methods and apparatus to minimize command dynamics of a satellite |
Publications (2)
Publication Number | Publication Date |
---|---|
EP3379366A1 EP3379366A1 (en) | 2018-09-26 |
EP3379366B1 true EP3379366B1 (en) | 2024-04-10 |
Family
ID=61132139
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP18154398.4A Active EP3379366B1 (en) | 2017-03-22 | 2018-01-31 | Methods and apparatus to minimize command dynamics of a satellite |
Country Status (6)
Country | Link |
---|---|
US (1) | US10175700B2 (en) |
EP (1) | EP3379366B1 (en) |
JP (1) | JP7084168B2 (en) |
CN (1) | CN108627158B (en) |
CA (1) | CA2991997C (en) |
EA (1) | EA039190B1 (en) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10320073B2 (en) * | 2014-01-14 | 2019-06-11 | Viasat, Inc. | Mobile terminal antenna alignment using arbitrary orientation attitude |
US10005568B2 (en) * | 2015-11-13 | 2018-06-26 | The Boeing Company | Energy efficient satellite maneuvering |
US10291316B1 (en) * | 2017-12-11 | 2019-05-14 | Star Mesh LLC | Data transmission systems and methods using satellite-to-satellite radio links |
CN111319791B (en) * | 2020-02-28 | 2021-10-01 | 上海航天控制技术研究所 | Attitude control mode management method suitable for Mars detection |
CN111498150B (en) * | 2020-03-27 | 2021-10-15 | 中国科学院西安光学精密机械研究所 | Satellite-borne high-inertia rotation load angular momentum and moment compensation method and system |
CN112109924A (en) * | 2020-08-21 | 2020-12-22 | 北京控制工程研究所 | Three-dimensional vector direction array type micro-cathode discharge propulsion system |
CN113306747B (en) * | 2021-04-27 | 2022-12-20 | 上海卫星工程研究所 | Flexible spacecraft attitude stabilization control method and system based on SO (3) group |
CN113734468B (en) * | 2021-08-30 | 2023-02-03 | 北京宇航***工程研究所 | Orbital plane accurate control method based on iterative guidance |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5080307A (en) * | 1990-05-14 | 1992-01-14 | Hughes Aircraft Company | Spacecraft earth-pointing attitude acquisition method |
US5459669A (en) | 1994-02-14 | 1995-10-17 | Space Systems/Loral, Inc. | Control system and method for spacecraft attitude control |
US5791598A (en) * | 1996-01-16 | 1998-08-11 | Globalstar L.P. and Daimler-Benz Aerospace AG | Dynamic bias for orbital yaw steering |
FR2748721A1 (en) | 1996-05-17 | 1997-11-21 | Matra Marconi Space France | APPARATUS FOR ADJUSTING THE ROTATION OF A SPATIAL VESSEL AROUND A AXIS |
US6076774A (en) | 1998-08-12 | 2000-06-20 | Hughes Electronics Corporation | Fuel and thermal optimal spiral earth acquisition |
US6253125B1 (en) | 2000-03-01 | 2001-06-26 | Space Systems/Loral, Inc. | Method and apparatus for generating orbital data |
EP1526072B1 (en) | 2003-10-21 | 2008-07-23 | Astrium GmbH | Dynamic yaw steering method for spacecraft |
FR2861690B1 (en) * | 2003-11-04 | 2006-04-07 | Eads Astrium Sas | ATTITUDE CONTROL OF SATELLITES IN PARTICULAR AGILES WITH REDUCED NUMBER OF GYRODYNES |
US7464899B2 (en) | 2005-08-03 | 2008-12-16 | Honeywell International Inc. | Method and system for determining a singularity free momentum path |
US9332915B2 (en) * | 2013-03-15 | 2016-05-10 | The Regents Of The University Of California | System and method to identify sources associated with biological rhythm disorders |
JP5417391B2 (en) * | 2011-07-29 | 2014-02-12 | 新日本工機株式会社 | Numerical controller |
CN102426025B (en) * | 2011-08-19 | 2014-02-19 | 航天东方红卫星有限公司 | Simulation analysis method for drift correction angle during remote sensing satellite attitude maneuver |
US8543266B2 (en) * | 2011-10-03 | 2013-09-24 | The Boeing Company | Modified Kalman filter for generation of attitude error corrections |
WO2013111229A1 (en) * | 2012-01-23 | 2013-08-01 | 日本電気株式会社 | Camera calibration device, camera calibration method, and camera calibration program |
US8880246B1 (en) * | 2012-08-22 | 2014-11-04 | United States Of America As Represented By The Secretary Of The Navy | Method and apparatus for determining spacecraft maneuvers |
CN103983254B (en) * | 2014-04-22 | 2016-02-10 | 航天东方红卫星有限公司 | The motor-driven middle formation method of a kind of novel quick satellite |
CN104090612A (en) * | 2014-07-08 | 2014-10-08 | 上海新跃仪表厂 | Inclined orbit spacecraft energy obtaining method based on yaw steering |
US9764858B2 (en) * | 2015-01-07 | 2017-09-19 | Mitsubishi Electric Research Laboratories, Inc. | Model predictive control of spacecraft |
KR101688331B1 (en) * | 2015-09-10 | 2016-12-20 | 한국항공우주연구원 | Apparatus and method for controlling a satellite |
-
2017
- 2017-03-22 US US15/466,228 patent/US10175700B2/en active Active
-
2018
- 2018-01-12 CA CA2991997A patent/CA2991997C/en active Active
- 2018-01-16 EA EA201890077A patent/EA039190B1/en unknown
- 2018-01-31 EP EP18154398.4A patent/EP3379366B1/en active Active
- 2018-02-26 CN CN201810159804.4A patent/CN108627158B/en active Active
- 2018-03-09 JP JP2018042499A patent/JP7084168B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20180275683A1 (en) | 2018-09-27 |
EA201890077A2 (en) | 2018-09-28 |
JP2018184159A (en) | 2018-11-22 |
EA039190B1 (en) | 2021-12-15 |
EA201890077A3 (en) | 2018-11-30 |
CN108627158B (en) | 2023-10-27 |
CA2991997C (en) | 2023-05-16 |
CA2991997A1 (en) | 2018-09-22 |
EP3379366A1 (en) | 2018-09-26 |
US10175700B2 (en) | 2019-01-08 |
JP7084168B2 (en) | 2022-06-14 |
CN108627158A (en) | 2018-10-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3379366B1 (en) | Methods and apparatus to minimize command dynamics of a satellite | |
US10882640B2 (en) | Energy efficient satellite maneuvering | |
EP3225557B1 (en) | Systems and methods for satellite orbit and momentum control | |
Sah et al. | Design development of debris chaser small satellite with robotic manipulators for debris removal | |
US11292618B2 (en) | Nonlinear model predictive control of coupled celestial system | |
Aucoin | Real-time optimal slew maneuver planning for small satellites | |
Lee et al. | Integrated system for autonomous proximity operations and docking | |
Wie et al. | Attitude and orbit control systems | |
Ivanov et al. | Simulation and laboratory testing of the 3U CubeSat control in the proximity of space debris | |
Siena | Orbit/Attitude Control for Rendezvous and Docking at the Herschel Space Observatory | |
Kwok-Choon et al. | Modified sliding control for tumbling satellite capture with robotic arm | |
CN112208797B (en) | Attitude control method and system during calibration of two-dimensional antenna electric axis direction of deep space probe | |
Kasiri et al. | Nonlinear adaptive pose motion control of a servicer spacecraft in approximation with an accelerated tumbling target | |
Shuford | Feasibility of CubeSat formation flight using rotation to achieve differential drag | |
US20230391477A1 (en) | Eigenmotion Control for Near Rectilinear Halo Orbits | |
KIM et al. | Maneuverability Analysis-Based Attitude Control of Spacecraft with Two Pairs of Two-Parallel Control Moment Gyroscopes | |
Mengali et al. | Optimal solar sail interplanetary trajectories with constant cone angle | |
Lee et al. | Robust nonlinear full state feedback control for autonomous close range rendezvous and docking of spacecraft | |
Sintes García | Small satellite attitude and orbital control for precise pointing missions | |
WO2023234420A1 (en) | Eigenmotion control for near rectilinear halo orbits | |
Toraya et al. | Development of Total Orbital Real-time Attitude control Simulator for small satellites |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE |
|
17P | Request for examination filed |
Effective date: 20180131 |
|
AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
AX | Request for extension of the european patent |
Extension state: BA ME |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: EXAMINATION IS IN PROGRESS |
|
17Q | First examination report despatched |
Effective date: 20190527 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: EXAMINATION IS IN PROGRESS |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: EXAMINATION IS IN PROGRESS |
|
RAP3 | Party data changed (applicant data changed or rights of an application transferred) |
Owner name: THE BOEING COMPANY |
|
GRAP | Despatch of communication of intention to grant a patent |
Free format text: ORIGINAL CODE: EPIDOSNIGR1 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: GRANT OF PATENT IS INTENDED |
|
INTG | Intention to grant announced |
Effective date: 20231031 |
|
GRAS | Grant fee paid |
Free format text: ORIGINAL CODE: EPIDOSNIGR3 |
|
GRAA | (expected) grant |
Free format text: ORIGINAL CODE: 0009210 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE PATENT HAS BEEN GRANTED |
|
AK | Designated contracting states |
Kind code of ref document: B1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
REG | Reference to a national code |
Ref country code: GB Ref legal event code: FG4D |
|
REG | Reference to a national code |
Ref country code: CH Ref legal event code: EP |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R096 Ref document number: 602018067765 Country of ref document: DE |
|
P01 | Opt-out of the competence of the unified patent court (upc) registered |
Effective date: 20240321 |
|
REG | Reference to a national code |
Ref country code: IE Ref legal event code: FG4D |