Abstract:
A method and apparatus for refining a spacecraft state estimate, such as an attitude estimate or an angular velocity estimate, is disclosed. The method computes a plurality equations using residuals describing the difference between observed star positions and predicted positions based on inertial measurements, and solves those equations to generate refined estimates of the spacecraft state estimates.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS  
       [0001]     This application claims benefit of U.S. Provisional Patent Application No. 60/507,315, entitled “REFINEMENT OF ANGULAR VELOCITY BIAS AND ATTITUDE ESTIMATES USING STAR DATA,” by David D. Needelman, Rongsheng Li, and Yeong-Wei A. Wu, filed Sep. 30, 2003, which application is hereby incorporated by reference herein. 
     
    
     BACKGROUND OF THE INVENTION  
       [0002]     1. Field of the Invention  
         [0003]     The present invention relates to systems and methods for guidance and navigation of spacecraft and in particular to a system and method for refining the attitude and angular velocity estimates of a spacecraft.  
         [0004]     2. Description of the Related Art  
         [0005]     Spacecraft typically have one or more payloads that are directed to transmit or receive energy from ground stations. For example, communication satellites include one or more uplink antennae for receiving information from an uplink center, and one or more downlink antennae for transmitting information to a terrestrial receiver. The uplink and downlink antennae are typically disposed on the satellite body (or spacecraft bus) and are directed toward a terrestrial location where an uplink/downlink antenna is transmitting/receiving the information.  
         [0006]     In order to perform their intended functions, the attitude of such satellites must be accurately determined and controlled. Advanced satellite systems typically require attitude determination and control under more demanding circumstances and with greater accuracy. Such advanced satellite systems may be required to perform attitude determination under adverse conditions (e.g. while the satellite is experiencing rapid attitude changes and/or in high radiation environments), and in response to a loss of an attitude estimate, may be asked to perform an attitude determination autonomously. While methods exist to recover attitude estimates, the accuracy of the estimate obtained may not be sufficient to meet system requirements. Furthermore, the attitude estimate obtained must be updated as the satellite moves; this requires the systems to also estimate satellite angular velocity, with respect to inertial space. As with the attitude determination, the difficulty is not in estimating an angular velocity, but in estimating it accurately enough to satisfy requirements. In the future, satellites will be required to perform these functions at more stringent performance requirement levels (measured by such metrics as time to acquire attitude and angular velocity estimates and the accuracies of the estimates) than are generally required today.  
         [0007]     In the past, to meet even the near term performance requirements for attitude determination under adverse conditions, satellites have required additional spacecraft sensors (such as spinning earth sensors), and intense ground processing of telemetered data.  
         [0008]     What is needed is a system and method for refining inaccurate satellite attitude and angular velocity estimates under demanding circumstances. without the use of sensors beyond gyro and star trackers (which are used for normal mode attitude estimation and control) and without ground support. The present invention satisfies that need.  
       SUMMARY OF THE INVENTION  
       [0009]     To address the requirements described above, the present invention discloses a method, apparatus for refining a spacecraft attitude estimate. The method comprises the steps of determining observed star positions  
                 obs   ST     ⁢       s   ⇀     ⁡     (     t   i     )           
 
 in a first reference frame, ST, fixed with respect to a star sensor reference frame, for a plurality of stars observed at times t i  for i=1, 2, . . . ,N; converting the observed star positions  
                 obs   ST     ⁢       s   ⇀     ⁡     (     t   i     )           
 
 in the first reference frame ST, for a plurality of stars observed at times t i  for i=1, 2, . . . , N into observed star positions  
                 obs   b     ⁢       s   ⇀     ⁡     (     t   i     )           
 
 in a second reference frame, b, fixed with respect to a spacecraft body reference frame, for the plurality of stars observed at times ti for i=1, 2, . . . , N; determining an estimated spacecraft angular velocity,  est {right arrow over (ω)}, at times t i  for i=1, 2, . . . , N; determining, through identification of the plurality of stars as corresponding to entries in a star database, the star positions  inertial {right arrow over (s)} i  with respect to an inertial reference frame inertial, for i=1, 2, . . . , N; predicting star positions  
                 obs   b     ⁢       s   ⇀     ⁡     (     t   i     )       ,       
 
 with respect to the second reference frame b, for the plurality of stars observed at times t i  for i=1, 2, . . . , N, from the star positions in the inertial reference frame  inertial   {right arrow over (s)}   i , estimated spacecraft angular velocity  est {right arrow over (ω)} and an estimated spacecraft attitude  est {right arrow over (q)} b     —     inertial (t a ), applicable at time t a ; determining residuals  
                 res   b     ⁢       s   ⇀     ⁡     (     t   i     )           
 
 in the second reference frame b for the plurality of stars observed at times t i  for i=1, 2, . . . , N, from a difference between the predicted star positions in the second reference frame  
                 pred   b     ⁢       s   ⇀     ⁡     (     t   i     )           
 
 and the observed star positions in the second reference frame  
                 obs   b     ⁢         s   ⇀     ⁡     (     t   i     )       ;         
 
 determining N equations for differences between the refined star positions  
                 refined   b     ⁢       s   ⇀     ⁡     (     t   i     )           
 
 in the second reference frame b and observed star positions  
                 obs   b     ⁢       s   ⇀     ⁡     (     t   i     )           
 
 in the second reference frame b at times t i  for i=1, 2, . . . , N as a function of the residuals in the second reference frame  
                 res   b     ⁢       s   ⇀     ⁡     (     t   i     )           
 
 for the plurality of stars observed at times t i  for i=1,2, . . . , N, and a refined satellite state estimate; and determining the refined satellite state estimate to minimize the differences between the refined star positions in the second reference frame  
               b     ⁢       s   refined     -&gt;       ⁡     (     t   i     )         
 
 and observed star positions in the second reference frame  
               b     ⁢       s   -&gt;     obs       ⁡     (     t   i     )         
 
 at times t i  for i=1, 2, . . . , N from the N equations. The present invention is also embodied in an apparatus for refining a spacecraft state estimate. The apparatus comprises one or more star sensors, a navigation subsystem, a predictor module, a differencer, an equation formulator, and an equation solver. The star sensor(s) determine observed star positions  
               ST     ⁢       s   obs     -&gt;       ⁡     (     t   i     )         
 
 in a first reference frame, ST, fixed with respect to a star sensor reference frame, for a plurality of stars observed at times t i  for i=1, 2, . . . , N. The navigation subsystem converts the observed star positions  
               ST     ⁢       s   obs     -&gt;       ⁡     (     t   i     )         
 
 in the first reference frame ST, for a plurality of stars observed at times t i  for i=1, 2, . . . , N into observed star positions  
               b     ⁢       s   -&gt;     obs       ⁡     (     t   i     )         
 
 in a second reference frame, b, fixed with respect to a spacecraft body reference frame, for the plurality of stars observed at times t i  for i=1, 2, . . . , N, determines an estimated spacecraft angular velocity,  est {right arrow over (ω)}, at times t i  for i=1, 2, . . . , N; and determines, through identification of the plurality of stars as corresponding to entries in a star database, the star positions  inertial {right arrow over (s)} i  with respect to an inertial reference frame inertial, for i=1, 2, . . . , N. The predictor module predicts star positions  
                 b     ⁢       s   -&gt;     pred       ⁡     (     t   i     )       ,       
 
 with respect to the second reference frame b, for the plurality of stars observed at times t i  for i=1, 2, . . . , N. from the star positions in the inertial reference frame  inertial {right arrow over (s)} i , estimated spacecraft angular velocity  est {right arrow over (ω)} and an estimated spacecraft attitude  est {right arrow over (q)} b     —     inertial (t a ), applicable at time t a . The differencer determines residuals  
               b     ⁢       s   -&gt;     res       ⁡     (     t   i     )         
 
 in the second reference frame b for the plurality of stars observed at times t i  for i=1, 2, . . . , N, from a difference between the predicted star positions in the second reference frame  
               b     ⁢       s   -&gt;     pred       ⁡     (     t   i     )         
 
 and the observed star positions in the second reference frame  
                 b     ⁢       s   -&gt;     obs       ⁡     (     t   i     )       .       
 
 The equation formulator determines N equations for differences between the refined star positions  
               b     ⁢       s   refined     -&gt;       ⁡     (     t   i     )         
 
 in the second reference frame b and observed star positions  
                 b     ⁢     s   ⇀       obs     ⁡     (     t   i     )         
 
 in the second reference frame b at times t i  for i=1, 2, . . . , N as a function of the residuals in the second reference frame  
                 b     ⁢     s   ⇀       res     ⁡     (     t   i     )         
 
 for the plurality of stars observed at times t i  for i=1, 2, . . . , N, and a refined satellite state estimate. Finally, the solver determines the refined satellite state estimate to minimize the differences between the refined star positions in the second reference frame  
                 b     ⁢     s   ⇀       refined     ⁡     (     t   i     )         
 
 and observed star positions in the second reference frame  
                 b     ⁢     s   ⇀       obs     ⁡     (     t   i     )         
 
 at times t i  for i=1, 2, . . . , N from the N equations.
 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0034]     Referring now to the drawings in which like reference numbers represent corresponding parts throughout:  
         [0035]      FIG. 1  is a diagram of a satellite;  
         [0036]      FIG. 2  is a diagram of an exemplary satellite attitude control system;  
         [0037]      FIGS. 3A and 3B  are diagrams illustrating the parameters used to refine spacecraft attitude and/or angular velocity estimates;  
         [0038]      FIG. 4  is a diagram illustrating exemplary process steps that can be used to practice one embodiment of the present invention; and  
         [0039]      FIG. 5  is a diagram presenting an embodiment of a system that can be used to refine spacecraft angular velocity and attitude estimates. 
     
    
     DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS  
       [0040]     In the following description, reference is made to the accompanying drawings which form a part hereof, and which is shown, by way of illustration, several embodiments of the present invention. It is understood that other embodiments may be utilized and structural changes may be made without departing from the scope of the present invention.  
         [0041]     In the following description, reference is made to the accompanying drawings which form a part hereof, and which is shown, by way of illustration, several embodiments of the present invention. It is understood that other embodiments may be utilized and structural changes may be made without departing from the scope of the present invention.  
         [0042]      FIG. 1  illustrates a three-axis stabilized satellite or spacecraft  100 . The spacecraft  100  is preferably situated in a stationary orbit about the Earth. The satellite  100  has a main body  102 , a pair of solar panels  104 , a pair of high gain narrow beam antennas  106 , and a telemetry and command omnidirectional antenna  108  which is aimed at a control ground station. The satellite  100  may also include one or more sensors  110  to measure the attitude of the satellite  100 . These sensors may include sun sensors, earth sensors, and star sensors. Since the solar panels are often referred to by the designations “North” and “South”, the solar panels in  FIG. 1  are referred to by the numerals  104 N and  104 S for the “North” and “South” solar panels, respectively.  
         [0043]     The three axes of the spacecraft  10  are shown in  FIG. 1 . The pitch axis P lies along the plane of the solar panels  140 N and  140 S. The roll axis R and yaw axis Y are perpendicular to the pitch axis P and lie in the directions and planes shown. The antenna  108  points to the Earth along the yaw axis Y.  
         [0044]      FIG. 2  is a diagram depicting the functional architecture of a representative attitude control system  200 . Control of the spacecraft is provided by a computer or spacecraft control processor (SCP)  202 . The SCP performs a number of functions which may include post ejection sequencing, transfer orbit processing, acquisition control, stationkeeping control, normal mode control, mechanisms control, fault protection, and spacecraft systems support, among others. The post ejection sequencing could include initializing to ascent mode and thruster active nutation control (TANC). The transfer orbit processing could include attitude data processing, thruster pulse firing, perigee assist maneuvers, and liquid apogee motor (LAM) thruster firing. The acquisition control could include idle mode sequencing, sun search/acquisition, and Earth search/acquisition. The stationkeeping control could include auto mode sequencing, gyro calibration, stationkeeping attitude control and transition to normal mode. The normal mode control could include attitude estimation, attitude and solar array steering, momentum bias control, magnetic torquing, and thruster momentum dumping (H-dumping). The mechanism&#39;s mode control could include solar panel control and reflector positioning control. The spacecraft control systems support could include tracking and command processing, battery charge management and pressure transducer processing.  
         [0045]     Input to the spacecraft control processor  202  may come from any combination of a number of spacecraft components and subsystems, such as a transfer orbit sun sensor  204 , an acquisition sun sensor  206 , an inertial reference unit  208 , a transfer orbit Earth sensor  210 , an operational orbit Earth sensor  212 , a normal mode wide angle sun sensor  214 , a magnetometer  216 , and one or more star sensors  218 . Ground commands are also input into the spacecraft control processor. These commands determine the control functions of the processor and the scan patterns of some instruments and sensors.  
         [0046]     The SCP  202  generates control signal commands  220  which are directed to a command decoder unit  222 . The command decoder unit operates the load shedding and battery charging systems  224 . The command decoder unit also sends signals to the magnetic torque control unit (MTCU)  226  and the torque coil  228 .  
         [0047]     The SCP  202  also sends control commands  230  to the thruster valve driver unit  232  which in turn controls the liquid apogee motor (LAM) thruster  234  and the attitude control thrusters  236 .  
         [0048]     Generally, the spacecraft  100  may use thrusters, momentum/reaction wheels, or a combination thereof to perform spacecraft  100  attitude control.  
         [0049]     Wheel torque commands  262  are generated by the SCP  202  and are communicated to the wheel speed electronics  238  and  240 . These effect changes in the wheel speeds for wheels in momentum/reaction wheel assemblies  242  and  244 , respectively. The speed of the wheels is also measured and fed back to the SCP  202  by feedback control signal  264 .  
         [0050]     When momentum wheel assemblies are used, the spacecraft control processor also sends jackscrew drive signals  266  to the momentum wheel assemblies  242  and  244 . These signals control the operation of the jackscrews individually and thus the amount of tilt of the momentum wheels. The position of the jackscrews is then fed back through command signal  268  to the spacecraft control processor. The signals  268  are also sent to the telemetry encoder unit  258  and in turn to the ground station  260 . The spacecraft typically includes 4 reaction wheels, disposed to permit that application of torques in any direction, and permitting for a backup torque wheel, however, different number of momentum wheels and momentum wheels of other design may be used. For the sake of simplification, the momentum wheel(s) will be alternatively referred to as momentum wheel(s)  242  hereinafter.  
         [0051]     For some satellites, the spacecraft control processor  202  also commands the scan motions of various sensors and instruments. The scan timings and patterns generated by the SCP  202  are communicated to the scan motor drivers  278 .  
         [0052]     The SCP  202  also provides commands to the solar wing drives  246 ,  248 , which manipulate solar wings  104 N and  104 S respectively. The solar wings  104 N and  104 S can be manipulated about the X axis and about the Y axis shown in  FIG. 1 . The SCP  202  can also step reflector positioning mechanisms (RPMs)  250  and  252  to adjust the antenna orientation. Modules  250  and  252  provide the mechanism positions to the TM encoder unit  258 .  
         [0053]     The SCP  202  also sends command signals  254  to the telemetry encoder unit  258  which in turn sends feedback signals  256  to the SCP  202 . This feedback loop, as with the other feedback loops to the SCP  202  described earlier; assist in the overall control of the spacecraft. The SCP  202  communicates with the telemetry encoder unit  258 , which receives the signals from various spacecraft components and subsystems indicating current operating conditions, and then relays them to the ground station  260 .  
         [0054]     The SCP  202  may include or have access to memory  270 , such as a random access memory (RAM). Generally, the SCP  202  operates under control of an operating system  272  stored in the memory  270 , and interfaces with the other system components to accept inputs and generate outputs, including commands. Applications running in the SCP  202  access and manipulate data stored in the memory  270 . The spacecraft  100  may also comprise an external communication device such as a satellite link for communicating with other computers at, for example, a ground station. If necessary, operation instructions for new applications can be uploaded from ground stations.  
         [0055]     In one embodiment, instructions implementing the operating system  272 , application programs, and other modules are tangibly embodied in a computer-readable medium, e.g., data storage device, which could include a RAM, EEPROM, or other memory device. Further, the operating system  272  and the computer program are comprised of instructions which, when read and executed by the SCP  202 , causes the spacecraft processor  202  to perform the steps necessary to implement and/or use the present invention. Computer program and/or operating instructions may also be tangibly embodied in memory  270  and/or data communications devices (e.g. other devices in the spacecraft  100  or on the ground), thereby making a computer program product or article of manufacture according to the invention. As such, the terms “program storage device,” “article of manufacture” and “computer program product” as used herein are intended to encompass a computer program accessible from any computer readable device or media.  
       Spacecraft Attitude Estimate and Angular Velocity Estimate Refinement  
       [0056]      FIG. 3A  is a diagram illustrating the parameters used to refine spacecraft attitude and angular velocity estimates. The spacecraft  100  comprises one or more star sensors (or “trackers”)  218  that sense stars  312  with an apparent position on sphere  310  that are fixed in an inertial reference frame, inertial, but are not fixed with respect to the spacecraft  100  body reference frame. In one embodiment, the inertial reference frame used is the “Earth-Centered Inertial” (ECI) frame, described by the geocentric inertial coordinate system specified in “Spacecraft Attitude Determination and Control”, edited by James R. Wertz, in Section 2.2, written by James R. Wertz (1978), and hereby incorporated by reference herein. The spacecraft  100  attitude is determined, based on the position of observed stars  312 . A description of how attitude may be determined from star observations is described in U.S. Pat. No. 6,470,270, issued to David D. Needelman et al. on Oct. 22, 2002, which is hereby incorporated by reference herein.  
         [0057]     Each star tracker  218  has a field of view  302 A in which it can sense one or more stars. In the illustrated embodiment, multiple stars  304  and  306  are within the field of view  302 A, and are tracked by the star tracker  218  at time t a .  
         [0058]     At time t a , the spacecraft attitude, the mapping from the ECI reference frame to a reference frame (b), fixed with respect to the spacecraft body reference frame, is defined by {right arrow over (q)} b     —     eci (t a ), which can be expressed as a direction cosine matrix, quaternion, or other analogous representations. For the mathematical derivations here, we shall assume a quaternion representation. Given a quaternion representation, {right arrow over (q)} A     —     B , representing a mapping between frames “A” and “B”, and a vector,  B {right arrow over (v)}, defined with respect to frame “B ”, the equivalent vector,  A {right arrow over (v)}, defined with respect to frame “A”, may be calculated as described in “Spacecraft Attitude Determination and Control”, edited by James R. Wertz, in Appendix D, written by Lawrence Fallon, III, (1978) which is hereby incorporated by reference herein. We shall define this calculation using the operator “*”; e.g., in the case just described,  A {right arrow over (v)}≡{right arrow over (q)} A     —     B * B {right arrow over (v)}.If a position is known in the ECI reference frame to be  eci {right arrow over (x)},then  b {right arrow over (x)}(t a ), the corresponding body reference frame position, at time t a , may be calculated using  b {right arrow over (x)}(t a )≡{right arrow over (q)} b     —     eci (t a )* eci {right arrow over (x)}.  
         [0059]     A star catalog and star tracker  218 , or plurality of star trackers, can be used to produce a list of one or more identified stars, time-tagged at t i , (1≦i≦N) wherein the time t a  is between t 1  and t N  (t 1 ≦t a ≦t N ). The identified stars are stars tracked by the star sensor(s) or tracker(s)  218 , which have been identified as corresponding to stars listed in a star catalog (illustrated in  FIG. 5 , which is discussed below). The identification may be done in various ways, including that which is described in the aforementioned U.S. Pat. No. 6,470,270. The observed positions of the identified stars  304  and  306  can be described in a reference frame that is fixed with respect to the star tracker  218  reference frame  
       (               ST     ⁢     s   ⇀       obs     ⁡     (     t   i     )       )       
 
 and/or the ECI reference frame ( eci {right arrow over (s)} i ) (note that the ECI-referenced positions are time-independent). Knowledge of the orientation of the star tracker  218  with respect to spacecraft  100  body frame (b) allows calculation of the observed positions of the identified stars  304  and  306  in the spacecraft  100  body reference frame  
         (               b     ⁢     s   ⇀       obs     ⁡     (     t   i     )       )     .       
 
         [0061]     The satellite&#39;s navigation system, as implemented by the attitude control system  200 , provides an estimate of the angular velocity et of the spacecraft  100  about an axis  314  with respect to an inertial reference frame. This value can be expressed in the spacecraft  100  body reference frame, and is assumed to remain substantially constant over the time frame of interest. The satellite&#39;s navigation system, as implemented by the attitude control system  200 , also provides  est {right arrow over (q)} b     —     eci (t a ), an estimate of the spacecraft attitude at specified time t a .  
         [0062]      FIG. 3B  is a diagram further depicting the parameters used in the attitude and angular velocity estimate refinement. Due to angular rotation of the satellite  100 , the star tracker  218  is now tracking star  316  within FOV  302 . The values for  eci {right arrow over (s)} i  (1≦i≦N),  est {right arrow over (q)} b     —     eci (t a ) and  est {right arrow over (ω)} can be used to generate  
                   b     ⁢     s   ⇀       pred     ⁡     (     t   i     )       ,         
 predicted values for  b {right arrow over (s)}(t i ), the star positions with respect to the spacecraft 100 body frame, at times t i  for i=1, 2, . . . , N. The error in the attitude and angular velocity estimates will be represented in the residuals, that is, the calculated differences between  
                   b     ⁢     s   ⇀       pred     ⁡     (     t   i     )       ⁢           ⁢   and   ⁢           ⁢                 b     ⁢     s   ⇀       obs     ⁡     (     t   i     )       .           
 The residuals can then be used to prepare a revised angular velocity estimate, and a revised attitude estimate, applicable at time t a . 
 
         [0065]     Based on the assumptions described below, a refinement of the angular velocity and attitude estimates may be calculated. First, it is assumed that the spacecraft  100  moves at a constant angular velocity {right arrow over (ω)}=|{right arrow over (ω)}|{right arrow over (λ)} between times t 1  and t N , where |{right arrow over (ω)}| is the angular rate, and {right arrow over (λ)} is a unit vector defined with respect to the spacecraft body reference frame b. It is also assumed that at time t i , the body fixed point.  b s(t i ) (which is an observed star, reported by the star tracker  218  and expressed in the spacecraft body reference frame b) is known to correspond to the ECI-position  eci {right arrow over (s)} i  (the corresponding catalog position of the identified star). It is further assumed that at time t a  (t 1 ≦t≦t N ), the spacecraft attitude is {right arrow over (q)} b     —     eci (t a ), so the body-referenced point corresponding to  eci {right arrow over (s)} i  is: 
 
 b   {right arrow over (s)} ( t   a )≡ {right arrow over (q)}   b     —eci   ( t   a )* eci   {right arrow over (s)}   i . 
 
         [0066]     With these assumptions, at time t i , the (observed) body-fixed position  b {right arrow over (s)}(t i ), and the (deduced) body-fixed position,  b {right arrow over (s)}(t a ), will satisfy the relationship described in Equation (1) below: 
 
 b   {right arrow over (s)} ( t   i )= b   {right arrow over (s)} ( t   a )cos φ i −( b   {right arrow over (s)} ( t   a )×{right arrow over (λ)})sin φ i +( b   {right arrow over (s)} ( t   a )·{right arrow over (λ)})(1−cos φ i )   Eq. (1) 
 
 where φ i =|{right arrow over (ω)}|(t a −t i ). 
 
         [0068]     Equation (1) can be found in “Spacecraft Dynamics,” by T. R. Kane, P. W. Likins, and D. A. Levinson, (New York: McGraw-Hill, 1983), which is hereby incorporated by reference herein.  
         [0069]     Equation (1) makes use of the positions  b {right arrow over (s)}(t i ) and  b {right arrow over (s)}(t a ), actual spacecraft attitude at time t a , {right arrow over (q)} b     —     eci (t a ), and the spacecraft angular velocity, {right arrow over (ω)}=|{right arrow over (ω)}|{right arrow over (λ)}, none of which are known.  
         [0070]     Based on the known, estimated attitude at time t a ,  est {right arrow over (q)} b     —eci   (t a ), and on the known. identified star position with respect to the ECI frame,  eci {right arrow over (s)} i , a crude estimate for  b {right arrow over (s)}(t a ), identified star position at time t a , defined with respect to the spacecraft body frame can be formulated, which we shall refer to as  
             est     ⁢     [             b     ⁢     s   ⇀       ⁢     (     t   α     )       ]         
 
 as follows:  
               est     ⁢     [             b     ⁢     s   ⇀       ⁡     (     t   α     )       ]       ≡                 est     ⁢             q   ⇀     b_eci         ⁡     (     t   α     )         *   eci       ⁢       s   ⇀     i           
 
         [0072]     Based on the known, estimated attitude at time t a ,  est {right arrow over (q)} b     —     eci (t a ), and known, estimated angular velocity,  est {right arrow over (ω)}=| est {right arrow over (ω)}| est {right arrow over (λ)}, a crude prediction for  b {right arrow over (s)}(t i ), identified star position at time t i , defined with respect to the spacecraft body frame can be formulated. We shall refer to this prediction as  
                   b     ⁢     s   ⇀       pred     ⁡     (     t   i     )       ⁢     :         
 
                         b     ⁢     s   ⇀       pred     ⁡     (     t   i     )       =               est     ⁢     [             b     ⁢     s   ⇀       ⁡     (     t   α     )       ]       ⁢   cos   ⁢           ⁢     (     ϕ   i               est     )       -       (             est     ⁢     [             b     ⁢     s   ⇀       ⁡     (     t   α     )       ]       ×           est     ⁢     λ   ⇀         )     ⁢     sin   ⁡     (     ϕ   i               est     )         +       (             est     ⁢     [             b     ⁢     s   ⇀       ⁡     (     t   α     )       ]       ·           est     ⁢     λ   ⇀         )     ⁢     (     1   -     cos   ⁡     (     ϕ   i               est     )         )     ⁢           est     ⁢     λ   ⇀                   Eq   .           ⁢     (   2   )               
 
 where  est φ i =| est {right arrow over (ω)}|(t a −t i ). Using this crude estimate of star position, a “residual” for each individual star can be defined as follows:  
                   b     ⁢     s   ⇀       res     ⁡     (     t   i     )       ≡                 b     ⁢     s   ⇀       pred     ⁡     (     t   i     )       -               b     ⁢     s   ⇀       obs     ⁡     (     t   i     )             
 
         [0074]     The residual indicates the error in the attitude and angular velocity estimates. If there is no error, if the star position is perfectly measured by the star sensor or star tracker, and if {right arrow over (q)} b     —     eci (t a )= est {right arrow over (q)} b     —     eci (t a ) and {right arrow over (ω)}= est {right arrow over (ω)}, the residual will be zero.  
         [0075]     As the residual will not, in general, be zero, a refinement of the attitude and/or angular velocity estimate may be made. The refinement(s) are such that predictions of identified star positions, made using the refined attitude and angular velocity estimates, closely match the observed star positions (noise in the observations makes a perfect match impossible). To refine the attitude estimate, an attitude refinement, Δ{right arrow over (q)}, is defined such that the true attitude at time t a , {right arrow over (q)} b     —     eci (t a ), may be expressed as 
 
 {right arrow over (q)}   b     —     eci ( t   a )= est   {right arrow over (q)}   b     —eci   ( t   a )·Δ {right arrow over (q)}.  
 
         [0076]     Should it be desired to refine the angular velocity estimate, we define an angular rate refinement, Δω, and an angular velocity orientation refinement vector, Δ{right arrow over (λ)}, from the proposition that the true angular velocity, {right arrow over (ω)}, may be expressed as follows:  
         ω   ⇀     ≡       (                  est     ⁢     ω   ⇀            +     Δ   ⁢           ⁢   ω       )     ·       [             est     ⁢     λ   ⇀       +     Δ   ⁢           ⁢     λ   ⇀         ]     .           
 
         [0077]     If it is further assumed that the refinements are relatively small; that is, Δ{right arrow over (q)} represents a rotation through an angle much less than the one radian, Δω&lt;&lt; est {right arrow over (ω)}, and |Δ{right arrow over (λ)}|&lt;&lt;1. From Equation (1), and using the refinements just defined, we can write an equation predicting,  
                       b     ⁢     s   ⇀       refined       ⁡     (     t   i     )         
 
 the position of the identified star at time t i ) as follows:  
                         b     ⁢     s   ⇀       refined     ⁡     (     t   i     )       =                 b     ⁢     s   ⇀       pred     ⁡     (     t   i     )       +     Δ   ⁢           ⁢     q   ⇀     ⁢     *   est     ⁢     [             b     ⁢     s   ⇀       ⁡     (     t   α     )       ]       +     Δ   ⁢           ⁢     ω   ·     (       t   i     -     t   α       )       ⁢       ⌊   est     ⁢                 [   b     ⁢       s   ⇀     ⁡     (     t   α     )       ]       ⁢   sin   ⁢             (   est     ⁢     ϕ   i     )         +       ⁢         (   est     ⁢         [   b     ⁢       s   ⇀     ⁡     (     t   α     )       ]     ×           est     ⁢     λ   ⇀         )     ⁢     cos   ⁢     (   est     ⁢     ϕ   i     )       -         (   est     ⁢         [   b     ⁢       s   ⇀     ⁡     (     t   α     )       ]     ·           est     ⁢     λ   ⇀         )     ⁢     sin   ⁢     (   est     ⁢     ϕ   i     )     ⁢           est     ⁢     λ   ⇀           ⌋       +     ⌊         sin   ⁢     (   est     ⁢     ϕ   i     )     ⁢       (   est     ⁢         [   b     ⁢       s   ⇀     ⁡     (     t   α     )       ]     ×     )       +       ⁢       (     1   -     cos   ⁢     (   est     ⁢     ϕ   i     )       )     ⁢     {               est     ⁢     λ   ⇀       ⁢     (   est     ⁢         [   b     ⁢       s   ⇀     ⁡     (     t   α     )       ]     ·     )     +       (   est     ⁢         [   b     ⁢       s   ⇀     ⁡     (     t   α     )       ]     ·           est     ⁢     λ   ⇀         }       ⌋     ⁢   Δ   ⁢           ⁢     λ   ⇀                     Eq   .           ⁢     (   3   )               
 
         [0079]     Subtracting the observed star positions,  
                   b     ⁢     s   ⇀       obs     ⁡     (     t   i     )       ,       
 
 from both sides of the above equation, we obtain:  
                           b     ⁢     s   ⇀       refined     ⁡     (     t   i     )       -               b     ⁢     s   ⇀       obs     ⁢     (     t   i     )         =                 b     ⁢     s   ⇀       res     ⁡     (     t   i     )       +     Δ   ⁢           ⁢     q   ⇀     ⁢     *   est     ⁢     [             b     ⁢     s   ⇀       ⁡     (     t   α     )       ]       +     Δ   ⁢           ⁢     ω   ·     (       t   i     -     t   α       )       ⁢       ⌊   est     ⁢                 [   b     ⁢       s   ⇀     ⁡     (     t   α     )       ]       ⁢   sin   ⁢             (   est     ⁢     ϕ   i     )         +         (   est     ⁢         [   b     ⁢       s   ⇀     ⁡     (     t   α     )       ]     ×           est     ⁢     λ   ⇀         )     ⁢     cos   ⁢     (   est     ⁢     ϕ   i     )       -       (   est     ⁢           [   b     ⁢       s   ⇀     ⁡     (     t   α     )       ]     ·           est     ⁢     λ   ⇀         ⁢     sin   ⁢     (   est     ⁢     ϕ   i     )     ⁢           est     ⁢     λ   ⇀         ⌋     +     ⌊         sin   ⁢     (   est     ⁢     ϕ   i     )     ⁢       (   est     ⁢         [   b     ⁢       s   ⇀     ⁡     (     t   α     )       ]     ×     )       +       (     1   -     cos   ⁢     (   est     ⁢     ϕ   i     )       )     ⁢     {               est     ⁢     λ   ⇀       ⁢       (   est     ⁢         [   b     ⁢       s   ⇀     ⁡     (     t   α     )       ]     ·     )       +       (   est     ⁢         [   b     ⁢       s   ⇀     ⁡     (     t   α     )       ]     ·           est     ⁢     λ   ⇀         }       ⌋     ⁢   Δ   ⁢           ⁢     λ   ⇀                           Eq   .           ⁢     (   4   )               
 
         [0081]     Since the refined positions of the identified stars should match the observed positions of the identified stars, the left-hand side of Eq. (4) should be zero. Hence, Equation (4) becomes:  
             0   =                 b     ⁢     s   ⇀       res     ⁡     (     t   i     )       +     Δ   ⁢           q   ⇀       *           est     ⁢     [             b     ⁢     s   ⇀       ⁡     (     t   α     )       ]         +     Δ   ⁢           ⁢     ω   ·     (       t   i     -     t   α       )       ⁢       ⌊   est     ⁢                 [   b     ⁢       s   ⇀     ⁡     (     t   α     )       ]       ⁢   sin   ⁢             (   est     ⁢     ϕ   i     )         +         (   est     ⁢         [   b     ⁢       s   ⇀     ⁡     (     t   α     )       ]     ×           est     ⁢     λ   ⇀         )     ⁢     cos   ⁢     (   est     ⁢     ϕ   i     )       -         (   est     ⁢         [   b     ⁢       s   ⇀     ⁡     (     t   α     )       ]     ·           est     ⁢     λ   ⇀         )     ⁢   sin   ⁢       (   est     ⁢     ϕ   i     )     ⁢           est     ⁢     λ   ⇀           ⌋       +     ⌊         sin   ⁢     (   est     ⁢     ϕ   i     )     ⁢       (   est     ⁢         [   b     ⁢       s   ⇀     ⁡     (     t   α     )       ]     ×     )       +       (     1   -     cos   ⁢     (   est     ⁢     ϕ   i     )       )     ⁢     {               est     ⁢     λ   ⇀       ⁢     (   est     ⁢         [   b     ⁢       s   ⇀     ⁡     (     t   α     )       ]     ·     )     +           ⁢       (   est     ⁢         [   b     ⁢       s   ⇀     ⁡     (     t   α     )       ]     ·           est     ⁢     λ   ⇀         }       ⌋     ⁢   Δ   ⁢           ⁢     λ   ⇀                     Eq   .           ⁢     (   5   )               
 
 The refinement of the spacecraft attitude and angular velocity becomes a computation of the optimal values of Δ{right arrow over (q)}, Δω, and Δ{right arrow over (λ)} in order to closest satisfy Eq. (5) for the N equations (since i=1, 2, . . . , N ). 
 
         [0083]     To refine only the attitude estimate, Δω and Δ{right arrow over (ω)} may be arbitrarily set to zero, so the optimal value of Δ{right arrow over (q)} may be calculated. Similarly, to refine only the angular velocity estimate, Δ{right arrow over (q)} may be set to the identity, so the optimal values for Δω and Δ{right arrow over (λ)} may be calculated.  
         [0084]      FIG. 4  is a diagram illustrating exemplary method steps that can be used to practice one embodiment of the present invention.  FIG. 4  will be discussed with reference to  FIG. 5 , which prevents one embodiment of a system that can be used to refine spacecraft angular velocity and attitude estimates.  
         [0085]     Measured star positions are determined for a plurality of stars at times t i , as shown in block  402 . This may be accomplished as follows. Referring to  FIG. 5 , observed star positions  
                 ST     ⁢     s   ⇀       obs     ⁡     (     t   i     )         
 
 are determined for a plurality of stars observed at times t i  for i=1, 2, . . . , N. These observed star positions are preferably determined in a the star sensor reference frame (ST), but can be determined in any reference frame fixed or referenceable to the star sensor reference frame. These are supplied to a navigation subsystem  504  along with an estimated spacecraft angular velocity  est {right arrow over (ω)} from an angular velocity sensor  518  such as a gyro. By identifying the plurality of observed stars (e.g. by correspondence to entries in a star catalog or database  502 , the positions of the observed stars are determined with respect to an inertial reference frame. This can be accomplished, for example, by transforming star position measurements or observations  
               ST     ⁢       s   obs     ⇀       ⁡     (     t   i     )         
 
 from the star tracker  218  to spacecraft  100  body-referenced equivalent positions,  
                 b     ⁢       s   obs     ⇀       ⁡     (     t   i     )       ,       
 
 using the known alignments of the star sensors or trackers with respect to the spacecraft  100  body. 
 
         [0089]     Predicted star positions for a plurality of stars are at times t i  are determined from an estimated spacecraft angular velocity and an estimated spacecraft attitude, as shown in block  404  of  FIG. 4 . In one embodiment, this is performed by the predictor module  506  using the navigation subsystem  504  output including the times t i ; the corresponding positions of the stars with respect to the ECI frame as listed in a star catalog or database  502 ,  eci {right arrow over (s)} i ; an estimated spacecraft angular velocity  esi {right arrow over (ω)} from an angular velocity sensor  518 ; and an estimated spacecraft attitude at time t a ,  est {right arrow over (q)} b     —     eci (t a ).  
         [0090]     A residuals  
               b     ⁢       s   res     ⇀       ⁡     (     t   i     )         
 
 between the predicted star positions  
               b     ⁢       s   pred     ⇀       ⁡     (     t   i     )         
 
 and the observed star positions  
               b     ⁢       s   obs     ⇀       ⁡     (     t   i     )         
 
 are then determined as shown in block  406 . This can be accomplished by simple subtraction, as represented by differencer  508 . 
 
         [0094]     As shown in block  510 , equations are generated, such as the aforementioned Equation (4) for i=1, 2, . . . , N. expressing the difference between a refined star position estimate and the (observed) position measurements,  
         [               b     ⁢       s   refined     ⇀       ⁡     (     t   i     )       -             b     ⁢       s   obs     ⇀       ⁡     (     t   i     )         ]     ,       
 
 as a function of attitude and/or angular velocity refinement, and known quantities. A spacecraft attitude refinement including an attitude refinement Δ{right arrow over (q)} and/or an angular velocity refinement (composed of an angular rate refinement, Δω, and an angular velocity orientation refinement, Δ{right arrow over (λ)}) is determined, as shown in block  512 . This can be accomplished using well known least squares or other linear programming and estimation techniques, wherein the refined values Δ{right arrow over (q)} and/or Δω and Δ{right arrow over (λ)}, are chosen to minimize the quantities  
         [               b     ⁢       s   refined     ⇀       ⁡     (     t   i     )       -             b     ⁢       s   obs     ⇀       ⁡     (     t   i     )         ]     ,       
 
 for i=1, 2, . . . , N, as defined by block  510 . The refined values Δ{right arrow over (q)}, and/or Δω and Δ{right arrow over (λ)}, are then combined with the estimated values  est {right arrow over (ω)} and  est {right arrow over (q)} b     —     eci (t a ), as shown in blocks  514  and  516 , to arrive at an improved attitude and/or angular velocity estimate. 
 
       Conclusion  
       [0097]     This concludes the description of the preferred embodiments of the present invention. The foregoing description of the preferred embodiment of the invention has been presented for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed. Many modifications and variations are possible in light of the above teaching. It is intended that the scope of the invention be limited not by this detailed description, but rather by the claims appended hereto. The above specification, examples and data provide a complete description of the manufacture and use of the composition of the invention. Since many embodiments of the invention can be made without departing from the spirit and scope of the invention, the invention resides in the claims hereinafter appended.