Abstract:
Spacecraft attitude is efficiently controlled by utilizing spatial noise and temporal noise in the calculation of gains to a Kalman filter. Spatial noise is modeled in a dynamic fashion so as to provide optimal spatial noise attenuation.

Description:
BACKGROUND 
     1. Field of the Invention 
     This invention relates to stellar attitude determination systems. 
     2. Description of the Related Art 
     Commonly used stellar attitude determination systems incorporate measurements from attitude sensors to compute an estimate of spacecraft attitude. The estimate of space-craft attitude is implemented in a form of Kalman filter which employs a data processing algorithm to estimate attitude, with inputs from attitude sensor data. For further detail on Kalman filters generally, see Applied Optimal Estimation, The Analytic Sciences Corporation, Edited by Arthur Gelb, 1974, pages 103-119. 
     The attitude sensors can include gyroscopes, which provide inertial rate data, and star trackers which provide horizontal and vertical star image positions with signals and generated from a Charge Couple Device array (CCD array). A CCD array is an array of detectors which receive photons from a light source, and convert the detected photons into an electrical signal. The spacecraft attitude is computed in an Attitude Propagation Module, which numerically integrates the compensated gyro data. The Kalman filter, implemented in an Attitude Update Module, computes the attitude correction and gyro bias estimate using the measurement residuals and Kalman filter gains. The measurement residuals, computed in a Star Tracker Data Processing Module, are the difference between the measured star horizontal and vertical positions provided by the star trackers and the estimated star horizontal and vertical positions. The estimated star horizontal and vertical positions are computed using the current attitude estimate. The Kalman filter gains determine the attenuation applied to the filter output. 
     In the context of star tracker data, the Kalman filter is a low pass filter which outputs attitude correction data. With respect to the inertial rate data, the Kalman filter is a high pass filter used to estimate gyro bias, which is a slowly varying component of the gyro measurement error. 
     There are two primary sources of error in the determination of attitude: random noise, also known as white noise, and spatial noise. Current art combines both forms of error into temporal noise, which is a pure frequency domain noise that is compensated for by using manufacturer noise specifications in the calculation of measurement residuals. Random noise is caused by random signals generated by the analog electronics as well as background electrical noise, and exists in the frequency domain as temporal noise. Spatial noise, or spatially dependent error, is due to the spatial location of a spacecraft relative to a star detected by the CCD array for purposes of attitude determination. This type of error is deterministic in nature; some factors which can cause this form of error include the particular position on the CCD array of an imaged star, and the spacecraft&#39;s motion and speed. Spatial noise can be broken down into two primary components: Low Spatial Frequency (LSF) Error and High Spatial Frequency (HSF) Error. Due to the motion of the spacecraft, both errors affect the frequency domain in the form of temporal noise, such that LSF is converted to low frequency temporal noise, while HSF is converted to high frequency temporal noise. Spatial errors can affect temporal error but are not random in nature; they are actual errors in measurements taken from attitude sensors, dependent upon the spatial conditions of the spacecraft such as its spin, velocity and acceleration. 
     Currently, white noise is combined with spatial noise in the calculation of Kalman filter gains in attitude determination systems. The manufacturer&#39;s error specification consists primarily of a combination of random noise measurements and spatial noise, statically determined at the manufacturer&#39;s facility. As spatially dependent errors are determined by such factors as real time spacecraft star tracker CCD array measurements and spacecraft motion, the manufacturer noise specifications are not optimal. 
     Star tracker and gyroscope white noise is compensated for in filter gain calculations by using a pre-selected measurement noise covariance matrix whose values depend upon the sensor total noise specification supplied by the manufacturer. The Kalman filter uses the pre-selected measurement noise covariance matrix to calculate filter gains, which are used to compute attitude sensor error adjustment data in the form of measurement residuals. The attitude update module uses these measurement residuals to compute attitude correction data, which are supplied to an attitude propagation module within the spacecraft control processor. Because a star tracker contains an additional element of changing spatial conditions which give rise to spatially dependent errors which vary with actual spacecraft conditions, the resulting adjustments to the Kalman filter gain do not provide optimal attitude determination performance. 
     The common method used today to derive the Kalman filter gain matrix K c  by which the filter is adjusted is given by the following equation: ##EQU1## where ##EQU2## is the total error covariance matrix and P -   denotes the determination of the matrix before a star observation at time t. ##EQU3## is derived by taking the sum of ##EQU4## and ##EQU5## given by the following equation: ##EQU6## and ##EQU7## with ##EQU8## denoting the error covariance matrix due to temporal noise, and ##EQU9## the error covariance matrix due to spatial noise. H is the stellar measurement matrix, with H T  representing the transpose of this matrix, G is the noise sensitivity matrix and G T  is its transpose, while R is the measurement noise covariance matrix. The R matrix is the primary component in equation (1), the determination of star tracker white and spatial noise attenuation of the Kalman filter. For equation 3 above, φ is the state transition matrix while φ T  is its transpose, Γ is the process noise sensitivity matrix with Γ T  as the transpose, and Q n  is the error covariance matrix of gyroscope noise as calculated from gyroscope manufacturer specifications. P +  (t-Δt) is the error covariance matrix after a given time t-Δt. 
     These equations are conventional for the determination of K c , and typically carried out on a computer aboard the spacecraft. Further details on determining spacecraft attitude can be found in Spacecraft Attitude Determination and Control, Computer Sciences Corporation, Edited by James R. Wertz, 1986, pages 459-469 and 703-709. 
     SUMMARY OF THE INVENTION 
     The invention determines spacecraft attitude by accounting not only for white noise error drawn from attitude sensor manufacturer specifications, but also for the spatially dependent error associated with attitude sensor measurements. These error factors are used to adjust the gain of a Kalman filter, the output of which provides attitude correction to spacecraft attitude estimation. In contrast to prior approaches which adjust Kalman filter gains based upon the combined random and spatially dependent error specifications provided by the attitude sensor manufacturer, the current invention provides a method to dynamically characterize spatially dependent error. The dynamic determination of spatial error is then used in conjunction with manufacturer specified random noise measurements to optimally adjust the Kalman filter gains. The spatially dependent errors are computed off-line by simulation, as they arise in actual measurements of stellar bodies taken by a star tracker. By including real time spatially dependent error computation in the error covariance matrix, the attitude correction data supplied to the attitude propagation module of the spacecraft control processor results in significantly increased accuracy in attitude determination and control. 
     A preferred implementation of the invention includes attitude sensors, a control processor and attitude control actuators. The control processor resides in an onboard computer which processes attitude sensor data and spacecraft control signals, and provides attitude control signals. The control processor consists of a star tracker data processing module, an attitude update module in the form of a Kalman filter, a rate sensor data processing module, an attitude propagation module and an attitude control module. The attitude sensors typically consist of a gyroscope (a form of inertial rate measurement unit) and a star tracker based on CCD array technology. The attitude control actuators typically consist of external motors that adjust spacecraft attitude. 
     The star tracker data processing module receives data from the star tracker and produces an output consisting of the stellar measurement matrix H, which provides positional data of a stellar body as detected by the CCD array, based upon a catalog of stars and measurement residuals. The attitude update module receives the stellar measurement matrix H and measurement residuals from the star tracker data processor, using Kalman filtering in the calculation of attitude correction data, and outputs the computed attitude correction data. The gyroscopic measurement residuals (also referred to as gyro bias estimate), based on gyroscope manufacturer noise specifications, are received by the rate sensor data processing module, while attitude correction data is received by the attitude propagation module. The gain of the Kalman filter is computed from a Kalman filter gain matrix, discussed below. This module also determines star tracker spatially dependent error by modeling the star tracker in a simulation using actual measured star data as test data. The spatially dependent error is used to compute the adjusted star tracker temporal noise variance, which is in turn used in the calculation of the Kalman filter gain matrix, K. The optimal Kalman filter gain matrix is computed with gyroscope and star tracker white noise, as well as star tracker spatially dependent noise. Once the optimal filter gain is determined, the Kalman filter is adjusted and thereafter provides output in the form of attitude correction data, by attenuating measurement errors, to the attitude propagation module. The attitude update module also outputs gyro bias estimate data obtained from the Attitude Update Module to the rate sensor data processing module. 
     The rate sensor data processing module receives gyroscopic data from the gyroscope and outputs compensated gyro data to the attitude propagation module. 
     The attitude propagation module receives attitude correction data from the attitude update module and compensated gyro data from the rate sensor data processing module. This module provides an output in the form of attitude estimate data which is received by the attitude control module and the attitude update module. 
     The attitude control module outputs attitude control data to the attitude control actuators. To optimize attitude determination performance, a method is set forth to adjust the time varying filter gains of a Kalman filter based upon temporal and spatially dependent star tracker error. 
     A model of star tracker spatial error is used in the determination of attitude of the spacecraft in addition to star tracker random noise and gyroscope random noise. The model consists of vertical and horizontal component of star tracker spatial error, each based on actual star tracker spatial error measurements, star tracker random noise measurements determined by manufacturer specifications, and a model of star tracker spatial noise measurements. 
     The model of star tracker spatial noise measurements consists of the sum of LSF and HSF components. Each of these components is modeled as a function of vertical and horizontal star tracker spatial noise measurement. The LSF component is modeled as a polynomial function, with the numeric coefficients to the terms of the polynomial determined so that the function approximates LSF component of spatial noise measurement. The HSF component is modeled as a sinusoidal function, in which numeric coefficients, phase offset coefficients, and row (in the case of the HSF component) or column (in the case of the LSF component) phasing coefficients are determined so that the function approximates the HSF component of the spatial noise measurement. 
    
    
     DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a block diagram of a spacecraft control processor which incorporates the invention. 
     FIG. 2 is a flow diagram illustrating a determination of the Kalman filter gain matrix. 
     FIG. 3 is a flow diagram of a determination of the star tracker adjusted temporal noise variance matrix. 
     FIG. 4 is a flow diagram of a determination of the total temporal noise covariance matrix. 
     FIGS. 5A and 5B are graphical representations of the modeling of row and column LSF errors, respectively as polynomials. 
     FIGS. 6A and 6B are graphical representations of the modeling of row and column HSF errors, respectively as sinusoidal functions. 
     FIG. 7 is a flow diagram of a determination of the vertical component of star tracker spatial error. 
     FIG. 8 is a flow diagram of a determination of star tracker spatial noise with respect to the vertical component of star tracker spatial error. 
     FIG. 9 is a flow diagram of a mathematical model of LSF, with respect to the vertical component of star tracker spatial error. 
     FIG. 10 is a flow diagram of a mathematical model of HSF, with respect to the vertical component of star tracker spatial error. 
     FIG. 11 is a flow diagram of a determination of the horizontal component of star tracker spatial error. 
     FIG. 12 is a flow diagram of a determination of star tracker spatial noise with respect to the horizontal component of star tracker spatial error. 
     FIG. 13 is a flow diagram of a mathematical model of LSF, with respect to the horizontal component of star tracker spatial error. 
     FIG. 14 is a flow diagram of a mathematical model of HSF, with respect to the horizontal component of star tracker spatial error. 
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     The current invention sets forth a method and apparatus to control the attitude of a spacecraft. A spacecraft will typically carry attitude sensors whose measurements are subject to random noise and spatially dependent noise. Previous systems compensate for these error sources with the use of static manufacturer supplied attitude sensor noise specifications, whereas the current invention dynamically compensates for spatial error, based upon actual spacecraft spatial conditions. Utilizing manufacturer noise specifications and actual measurements, an error model of the star tracker spatial error is constructed. The modeled error is then used in the Kalman filter design to optimally determine spacecraft attitude. 
     Referring to FIG. 1, the control processor 1 of the enhanced stellar attitude determination system receives attitude data from attitude sensors 2, which preferably consist of one or more gyroscopes 3 and one or more star trackers 4. A star tracker data processing module 5 of the control processor 1 receives stellar data 15 consisting of stellar positional measurements received by the CCD array of the star tracker 4, and provides a star data stellar measurement matrix H and measurement residuals 13 to an attitude update module 7. The attitude update module is preferably a Kalman filter, the gain of which is computed from a Kalman filter gain matrix K c , described in connection with FIG. 2. The attitude update module 7 applies the Kalman filter gain matrix K c , discussed in connection with FIG. 2, to adjust the Kalman filter by attenuating star tracker random and spatial noise. The adjusted Kalman filter outputs attitude correction data 17. The attitude update module 7 outputs gyro bias estimate data 16 derived from manufacturer specifications, to be received by the rate sensor data processing module 6. This module also outputs attitude correction data 17 to the attitude propagation module 8. 
     The rate sensor data processing module 6 receives gyroscopic data 14 from the gyroscopes 3 and gyro bias estimate data 16 from the attitude update module 7. The output from module 6 is compensated gyro data 11 that is delivered to the attitude propagation module 8. The gyroscopic data 14 and star data 15 collectively allow the spacecraft&#39;s spatial conditions, such as spin, velocity and acceleration, to be determined. 
     The attitude propagation module 8 receives attitude correction data 17 from the attitude update module 7 and compensated gyro data 11 from the rate sensor data processing module 6. This data is used to compute attitude estimate data 12 to be used by the attitude control module 9 and the attitude update module 7. 
     The attitude control module 9 receives attitude estimate data 12 from the attitude propagation module 8, and outputs attitude control data 18 to the attitude control actuators 10, which actually apply attitude control commands to a spacecraft. 
     Referring to FIG. 2, the Kalman filter gain matrix K c  28 is calculated as a function of gyroscope and star tracker white noise, and of star tracker spatial noise. The measurement noise covariance matrix R(σ t   adj ) 24 is determined as a function of the adjusted star tracker temporal noise variance σ t   adj , discussed in connection with FIG. 3 below, by multiplying σ t   adj  by an identity matrix. R(σ t   adj ) 24 is summed 23 with the product 22 of the stellar measurement matrix H 20 multiplied 22 by the total error covariance matrix ##EQU10## 19, discussed in connection with FIG. 4 below, and the transpose stellar measurement matrix H T  21. The inverse 25 of this sum 23 is multiplied 27 by the product 26 of the total temporal error covariance matrix ##EQU11## 19 and the stellar measurement matrix H 20. The complete equation for the optimized Kalman filter gain matrix K c  28 is given by the following equation: ##EQU12## 
     Referring to FIG. 3, the adjusted star tracker temporal noise variance σ t   adj  34 is determined. The adjusted star tracker temporal noise variance σ t   adj  34 is the trace 32 of the sum 31 of ##EQU13## (σ t ) 29 and ##EQU14## (σ t ) 30, where σ t  is minimized 33. The complete equation to determine the adjusted star tracker temporal noise variance matrix is given by the following equation: ##EQU15## 
     Referring to FIG. 4, the total temporal error covariance matrix 38 is determined by taking the sum 37 of the temporal error covariance matrix ##EQU16## 35 and the spatial error covariance matrix ##EQU17## 36. The total operation is given by the following equation: ##EQU18## 
     Referring to FIGS. 5A and 5B, based on star tracker spatial error measurements, LSF errors can be accurately modeled as up to third order polynomial functions 39 in both the horizontal (row) and vertical (column) channels (FIGS. 5A and 5B, respectively). The terms &#34;horizontal&#34; and &#34;vertical&#34; as used herein are somewhat arbitrary, since outer space does not provide a fixed frame of reference for such terms in the earth-bound sense. &#34;Horizontal&#34; and &#34;vertical&#34; as used herein are terms of convenience to refer generally to mutually orthogonal axes. Referring to FIGS. 6A and 6B, HSF errors are modeled as sinusoidal functions with a spatial period of one pixel 40. 
     Referring to FIG. 7, the vertical component V 45 of the star tracker error model consists of the sum 44 of the measured vertical component of an actual star V m  41, star tracker random noise error measurements ΔV mt  (M s , ΔT) 42, which are a function of star magnitude M s  and integration time ΔT, and star tracker spatial noise error measurements ΔV ms  (V m , H m ) 43 which are a function of the measured vertical and horizontal components of star position, V m  and H m . ΔV mt  (M s , ΔT) 42 is determined using manufacturer error specifications, while ΔV ms , H m ) 43 is determined by modeling of the spatial error, discussed further in connection with FIG. 8. This function is given by the following equation: 
     
         V=V.sub.m +ΔV=V.sub.m +ΔV.sub.mt (M.sub.s, ΔT)+ΔV.sub.ms (V.sub.m, H.sub.m)              (7) 
    
     Referring to FIG. 8, ΔV ms  (V m , H m ) 49 is the sum 48 of ΔV ls  (V m , H m ) 46 which is the LSF mathematical model and discussed further in connection with FIG. 9, and ΔV hs  (V m , H m ) 47 which is the HSF mathematical model, discussed further in connection with FIG. 10. This function is given by the following equation: 
     
         ΔV.sub.ms (V.sub.m, H.sub.m)=ΔV.sub.ls (V.sub.m, H.sub.m)+ΔV.sub.hs (V.sub.m, H.sub.m)               (8) 
    
     Referring to FIG. 9, ΔV ls  (V m , H m ) 51 is a polynomial. The terms are constructed by a double summation 50: as i goes from 1 to N and j goes from 1 to N, the numeric coefficient a i-1 , j-1 is multiplied by V m   i-1  H m   j-1 , where V m  is the measured star vertical component, and H m  is the measured star horizontal component. The numeric coefficient a i ,j is chosen so as to allow the polynomial function to most closely approximate actual spatial noise measurements. The function is given by the following equation: 
     
         ΔV.sub.ls (V.sub.m, H.sub.m)=ΣΣa.sub.i-1, j-1 V.sub.m.sup.i-1 H.sub.m.sup.j-1                           (9) 
    
     Referring to FIG. 10, ΔV hs  (V m , H m ) 75 is the sum 74 of: cl 67 multiplied 72 by the sine 68 of the sum 64 of 104  v1  61 and the product 60 of φ v  54 and the product 58 of the number two 52 and the constant pi 53, and c5 70 multiplied 73 by the sine 71 of the sum 69 of ψ v5  66 and the dividend 65 of the product 63 of φ v  57, multiplied by the product 59 of the number two 55 and the constant pi 56, and the number five 62. The variables ψ v1  61, ψ v5  66 are phase offsets, φ v  54 57 are column phasing in pixels, and c1 67 and c5 70 are numeric coefficients. Variables c1 67, c5 65, ψ v1  61, ψ v5  66 and φ v  54 57 are determined so as to allow the sinusoidal function to most closely approximate actual error measurements. This function is given by the following equation: ##EQU19## 
     Referring to FIG. 11, the horizontal component H 80 of the star tracker error model consists of the sum 79 of the measured horizontal component of an actual star, H m  76, star tracker random noise error measurementsΔH mt  (M s ,ΔT) 77, which are a function of star magnitude M s  and integration time ΔT, and star tracker spatial noise error measurementsΔH m  (V m , H m ) 78 which are a function of the measured vertical and horizontal components star position, V m  and H m . ΔH mt  (M s , ΔT) is determined using manufacturer error specifications, while ΔH ms  (V m , H m ) is determined by modeling of the spatial error, discussed further in connection with FIG. 12. This function is given by the following equation: 
     
         H=H.sub.m +ΔH=H.sub.m +ΔH.sub.mt (M.sub.s, ΔT)+ΔH.sub.ms (V.sub.m, H.sub.m)              (11) 
    
     Referring to FIG. 12, ΔH ms  (V m , H m ) 84 is the sum 83 of ΔH ls  (V m , H m ) 81 which is the LSF mathematical model and discussed further in connection with FIG. 13, and ΔH hs  (V m , H m ) 82 which is the HSF mathematical model, discussed further in connection with FIG. 14. This function is given by the following equation: 
     
         ΔH.sub.ms (V.sub.m, H.sub.m)=ΔH.sub.ls (V.sub.m, H.sub.m)+ΔH.sub.hs (V.sub.m, H.sub.m)               (12) 
    
     Referring to FIG. 13, ΔH ls  (V m , H m ) 86 is a polynomial. The terms are constructed by a double summation 85: as i goes from 1 to N and j goes from 1 to N, the numeric coefficient b i-1 , j-1 is multiplied by V m   i-1  H m   j-1 , where V m  is the measured star vertical component, and H m  is the measured star horizontal component. The numeric coefficient b i ,j is chosen so as to allow the polynomial function to most closely approximate actual spatial noise measurements. The function is given by the following equation: 
     
         ΔH.sub.ls (V.sub.m, H.sub.m)=ΣΣb.sub.i-1,j-1 V.sub.m.sup.i-1 H.sub.m.sup.j-1                           (13) 
    
     Referring to FIG. 14, ΔH hs  (V m , H m ) 111 is the sum 110 of: (a) d1 103 multiplied 108 by the sine 104 of the sum 100 of (1) ψ h1  97 and (2) the product ψ v5  96 of φ h  90 and the constant 2pi 94, and (b) d5 106 multiplied 109 by the sine 107 of the sum 105 of (1) ψ h5  102 and the product 99 of φ v  93 multiplied by the constant 2/5 pi 95. The variables ψ h1  97, ψ h5  102 are phase offsets, φ h  90, 93 are row phasing in pixels, and d1 103 and d5 106 are numeric coefficients. Variables d1 103, d5 106, ψ h1  97, ψ h5  96 and φ h  90, 93 are determined so as to allow the sinusoidal function to most closely approximate actual error measurements. This function is given by the following equation: ##EQU20## 
     While the attitude determination algorithm described above is preferred, advantages of the present invention can be obtained in other ways. When the attenuation of gyro white noise error is decreased, the attenuation of star tracker white and spatial noise increases. Conversely, when gyro white noise error attenuation is increased, star tracker white-and spatial noise attenuation decreases. In equation 3 above, the term Q n  determines gyro white noise attenuation. If gyro white noise were to be determined in a more dynamic fashion and attenuated by adjusting Q n , the net effect would be the adjustment of the attenuation of star tracker white and spatial noise, the advantages of the present invention would be obtained. 
     Although star trackers are used in the preferred embodiment, the invention may also be carried out using other types of sensors commonly found on spacecraft, such as sun sensors and earth sensors. 
     While particular embodiments of the invention have been shown and described, numerous modifications and alternate embodiments may be made in these embodiments without departing from the spirit of the present invention. For that reason, the scope of the invention is limited only in terms of the appended claims.