Abstract:
A method and apparatus for estimating attitude sensor bias in a satellite system uses attitude sensors and a spacecraft control processor. Attitude sensors provide output signals, which may contain bias. The present invention interprets the signals, determines the bias present in the signals, and generates an output signal to offset the bias in the signals from the attitude sensors, thereby leading to more accurate positioning of the satellite employing the present invention.

Description:
BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     The present invention relates generally to satellite attitude sensor bias estimation and, more particularly, to a method and apparatus for estimating and nulling attitude sensor bias. 
     2. Description of Related Art 
     The term attitude is used to describe the orientation of an object with respect to a reference orientation. Attitude is of particular interest in satellite operations. For example, if a satellite is to be used in a communications application, it is necessary that the satellite be oriented in the proper direction to receive and/or transmit relevant information for the communication link. The attitude of a satellite is determined by computations based on the output of attitude sensors located on the satellite. Attitude sensors monitor the position of reference objects, which may include the sun, the earth, constellations, or beacons. For example, a spacecraft may have two sensors, one monitoring the sun and one monitoring the earth. It is well known that given position information from two reference objects (e.g., the sun, the earth, stars, or beacons), it is possible to determine spacecraft attitude. 
     Due to external and internal factors, the attitude sensor outputs may become biased. For example, thermal expansion and contraction of the spacecraft may move the sensors, thereby biasing the sensors by moving the reference frame of the spacecraft from the intended position. Attitude sensors may also be susceptible to electrical noise. Movement of sensors and electrical noise can lead to errors in the calculation of the spacecraft attitude. 
     Known methods of keeping bias and noise to a minimum typically involve extensive attitude sensor calibration and tight thermal control of the sensor mounting structure. These methods are tedious, time consuming, and expensive. Therefore, it is desirable to have a method and apparatus for removing attitude sensor bias and noise that eliminates the need for time consuming and expensive sensor calibration and thermal control of sensor mounting. 
     SUMMARY OF THE INVENTION 
     The present invention may be embodied in a method and apparatus for removing bias from attitude sensor measurements. In contrast to known methods, the method and apparatus of the present invention addresses the problem of attitude sensor bias by correcting and/or offsetting any bias that may be present in the attitude sensor measurements. In general, the method involves continuously estimating the amount of bias present in the attitude sensor outputs, then adjusting the attitude sensor outputs by an amount sufficient to compensate for the estimated bias. 
     Preferably, the invention is embodied in an otherwise conventional satellite or spacecraft having attitude sensors, a spacecraft control processor and actuators. The attitude sensors generate attitude-related position information which typically includes the position of the spacecraft with respect to at least two reference objects (e.g., the earth and the sun, or two distinct stars). The spacecraft control processor receives the attitude-related position signals from the attitude sensors and generates attitude control signals that are converted to torque commands and fed to the actuators. The actuators respond to the torque commands to make whatever adjustments are needed, if any, to the spacecraft attitude. 
     According to the present invention, the spacecraft control processor incorporates several functional blocks or sections that cooperate to generate the bias offsets. These functional blocks can be implemented as software operations, hardware logic circuitry, firmware, or any combination thereof. The functional blocks include a bias correction block, a bias estimation block, a measurement processing block, and an attitude correction block. The bias correction block receives inputs from the attitude sensors and the bias estimation block. The inputs from the attitude sensors are adjusted by an amount appropriate to offset whatever bias may be present in those signals. The bias correction block makes the above-referenced adjustments based on the bias-estimation information received from the bias estimation block. The measurement processing block receives the bias-corrected attitude-related position signals from the bias correction block and generates attitude control signals that are provided via an attitude correction block to the spacecraft attitude control. Optionally, the attitude control signals from the measurement processing block could be provided directly to the spacecraft attitude control block. In either event, the spacecraft attitude control block converts the received attitude control signals to torque commands which are fed to actuators external to the spacecraft control processor. The actuators respond to the torque commands to make whatever adjustments are needed, if any, to the spacecraft attitude. 
     Referring back to the bias estimation block, it receives information from the measurement processing block and uses that information to generate bias estimation signals, which are provided to the bias correction block. The information received from the measurement processing block includes the attitude measurement signals provided to the attitude correction block, along with &#34;residual&#34; signals. The measurement processing block derives these residual signals from the bias-corrected signals received from the bias correction block, and the attitude reference source signals received from an attitude reference source. Accordingly, a &#34;feedback loop&#34; is formed from the bias correction block to the measurement processing block to bias estimation block and back to the bias correction block. Thus, current bias-corrected outputs from the bias correction block are part of the information used to derive future bias offsets. 
     The invention itself, together with further objects and attendant advantages, will best be understood by reference to the following detailed description, taken in conjunction with the accompanying drawings. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is an illustration of a satellite system in which the present invention may be implemented; 
     FIG. 2 is a block diagram of the satellite control processor portion of the satellite system shown in FIG. 1; 
     FIG. 3 is a block diagram showing detail of the spacecraft control processor shown in FIGS. 1 and 2; 
     FIG. 4 is a block diagram showing detail of the measurement processing and bias estimation blocks shown in FIG. 3; and 
     FIG. 5 is a flow chart representation of the functionality of the present invention. 
    
    
     DESCRIPTION OF PREFERRED EMBODIMENT 
     The present invention may be embodied in a method and apparatus that estimates and offsets bias that exists in an attitude determination system. Biased attitude sensor signals and reference measurements are fed to a measurement processing block, which calculates measurement residuals that are fed to a bias estimation block. The reference measurements are based on calculations which predict the position of the reference objects (e.g., the sun and the earth) based on the date and time. The bias estimation block generates signals which offset the bias present in the signals from the sensors, thereby eliminating the need for time consuming and expensive sensor calibration and thermal controls. 
     Referring now to FIG. 1, a satellite system 10 in which the present invention may be implemented is shown. The satellite system 10 includes a satellite 15, which further includes an earth sensor 20, a sun sensor 25, a spacecraft control processor 30, and an antenna 35. The earth sensor 20 and the sun sensor 25 sense the attitude of the satellite 15 with respect to the earth 40 and the sun 45. The earth sensor 20 and the sun sensor 25 are only two examples of attitude sensors, and other types of attitude sensors may be used in attitude determination systems. Alternatively, attitude sensors may use beacons, constellations, or other heavenly bodies as reference objects. The outputs from the attitude sensors 20, 25 are fed to the spacecraft control processor 30, which is responsible for attitude determination and adjustment. It may be critical for the satellite 15 to maintain proper attitude in order to keep the earth footprint 50 of the antenna 35 in a desired location to provide satellite coverage to a particular geographical area. 
     FIG. 2 is a block diagram of a spacecraft attitude determination and control function 55 embodying the present invention, comprising attitude sensors 20, 25, inertial sensors 60, and a spacecraft control processor 30. The attitude sensors 20, 25 and the inertial sensors 60, along with the spacecraft control processor 30 make up the hardware components of the spacecraft attitude determination and control function 55. The functional blocks, which will be subsequently described as residing within the spacecraft control processor 30, may be software functions. Alternatively, the functional blocks within the spacecraft control processor 30 may be hardware implementations of the described functions. Hardware implementations of the functions may utilize technology such as application specific integrated circuits (ASICs). The attitude sensors 20, 25 are capable of monitoring and tracking the position of reference sources such as the sun, the earth, or constellations. The inertial sensors 60 may be gyroscopes or any other mechanisms capable of measuring acceleration and body rates. The sensors 20, 25, and 60 are mounted in a conventional manner to a satellite structure (not shown). The output of the attitude sensors 20, 25 are vectors s from the sensors 20, 25 to the reference sources, which in this case are the earth 40 and the sun 45. The sensor outputs are fed to the spacecraft control processor 30. 
     The spacecraft control processor 30 includes an attitude reference source 70, a spacecraft attitude determination block 75, and a spacecraft attitude control block 80. The attitude reference source 70 performs the function of providing reference signals r, regarding the position of the reference sources 40, 45 to the spacecraft attitude determination block. The attitude reference source 70 is preferably embodied in a system using position calculations based on the date and time such as ephemeris, which is well known in the art. Additionally, various other methods of providing attitude reference sources are well known in the art. 
     The spacecraft attitude determination block 75 outputs a spacecraft attitude measurement (C m ) and an estimated spacecraft body rate (w m ) to the spacecraft attitude control block 80. The spacecraft attitude control block 80 uses attitude and body rate inputs to generate a set of spacecraft torque commands which are fed to actuators (not shown). The actuators are used to alter the attitude of the spacecraft in response to torque commands, and may be devices such as reaction wheels, torquers, and thrusters. 
     FIG. 3 is a block diagram showing further detail of the spacecraft attitude determination block 75 of FIG. 2. The spacecraft attitude determination block 75 includes, a measurement processing block 85, a bias estimation block 90, a bias correction block 95, an attitude propagation block 100, and an attitude correction block 105. 
     The measurement processing block 85 receives input signals s-b and r from the bias correction block 95 and the reference source 70, respectively. The measurement processing block 85 computes measurement residuals ΔS, which represent the difference between the attitude as measured by the attitude sensors 20, 25 and the attitude as calculated using the output of the attitude reference source 70. Measurement residuals are representations of the bias present in the attitude sensor measurements. Details on the calculation of measurement residuals will be given with respect to FIG. 5. The measurement residuals are coupled to the bias estimation block 90. The measurement processing block 85 also calculates a spacecraft attitude measurement (C m ) and outputs the measurement to both the bias estimation block 90 and the attitude correction block 105. Using the spacecraft attitude measurement (C m ) and the measurement residuals ΔS the bias estimation block 90 computes bias estimates b, which are coupled to the bias correction block 95. The bias correction block 95 serves as a summing point for attitude sensor 20, 25 outputs and bias estimates from the bias estimation block 90. The goal is that the bias estimates are such that, when subtracted from the attitude sensor inputs, the biases of the sensors are removed. 
     The inertial sensors 60 are coupled to the attitude propagation block 100, which performs the function of interpreting the inertial sensors 60 and calculating a spacecraft attitude measurement. The inertial sensors 60 are necessary because the attitude sensors are not always able to access their reference sources, due to the limited field of view of the sensors. For example, a sun sensor will not be able to see the sun when the sun is outside of the field of view of the sensor, or when the earth is between the sun and the sensor. These situations leave the attitude measurement hardware with only one reference point. As mentioned previously, two points of reference are needed for attitude determination. Performance considerations may also dictate the need for inertial sensors. That is, due to noise in attitude sensor measurements, inertial sensors may be needed to add precision to attitude measurements. The inertial sensors 60 and the attitude propagation block 100 serve to keep the satellite in proper attitude when attitude sensors 20, 25 cannot access their appropriate reference sources, or when precise attitude measurements are needed. 
     FIG. 4 is a block diagram showing further detail of the measurement processing block 85 and the bias estimation block 90. The measurement processing block 85 contains an attitude sensor processing block 110 and a sensor bias measurement residual computation (SBMRC) block 115. The attitude sensor processing block 110 uses the output of the bias correction block 95 and the output of the attitude reference source 70 to calculate the spacecraft attitude measurement (C m ). The spacecraft attitude measurement (C m ) is passed to the attitude correction block 105 and the SBMRC block 115. The SBMRC block 115 uses the spacecraft attitude measurement from the attitude sensor processing block 110, reference signals from the attitude reference source 70, and output s-b from the bias correction block 95 to calculate measurement residuals ΔS, which are representative of attitude sensor biases. 
     The measurement residuals from block 115 and output s-b from the bias correction block 95 are used by the estimation/filtering block 120 to calculate angle bias Δθ b ,rel. Δθ b ,rel is the relative bias of the attitude, represented by Euler angles. Based on the angle bias and the output s-b from the bias correction block 95, the vector bias computation block 125 calculates a bias vector, b. Details on the calculation of the bias vector and the angle bias will be given in the description of the functionality of FIG. 5. When the bias vector is subtracted from the output of the attitude sensors 20, 25, (in the bias correction block 95) the bias of the attitude sensors 20, 25 is removed. 
     FIG. 5 shows a flow chart for the sensor bias method of the present invention. The method of the present invention is executed by the spacecraft attitude determination block 75. More specifically, the measurement processing block 85, the bias estimation block 90, and the bias correction block 95 of the spacecraft attitude determination block 75 collectively perform the functionality shown in FIG. 5. The following is a description of the functionality contained in the bias method. 
     A block 200 initializes all constants and parameters used by the method of the present invention. Initialization takes place in the measurement processing block 85, the bias estimation block 90, and the bias correction block 95. Initialization may include initializing an estimator state x(0)=x 0 , setting up estimator state parameters (Φ and G), setting up bias distribution parameters [a k ,i ], and initializing filter gains (K R ). The initial estimator state x 0  is typically zero. However, if some prior knowledge of the estimator state exists, this knowledge may be represented as the initial state of the estimator. The bias distribution parameters [a k ,i ] must conform to the conditions as stated in equation (1). ##EQU1## Note that a particular estimation scheme may be unique to each application of the method of the present invention. Estimation schemes using fixed or variable gain estimators may be used with the present invention. A variety of estimation schemes are well known in the art. 
     After initialization has taken place, it is necessary to compute angle bias. This is done by a block 202, the functionality of which is contained in the estimation/filtering block 120 of the bias estimation block 90. Angle bias is computed using equation (2), where Δθ b ,rel is the relative bias of the attitude represented by Euler angles, G is the bias model, and x is the current estimator state. 
     
         Δθ.sup.b,rel =Gx                               (2) 
    
     Using the bias distribution parameter and the current estimator state, with input from the attitude sensors 20, 25, a block 204 computes vector bias. The computation of vector bias is done in the vector bias computation block 125 contained in the bias estimation block 90. First, the bias is distributed as shown in equation (3). The computation of the bias vector follows from the distributed bias and the relative bias Euler angles, which were previously calculated. The bias vector b is calculated as shown in equation (4). Note that the bias vector is a concatenation of all measurement biases b 1  . . . b n . After calculation of the measurement bias is complete, control is transferred to a block 206. ##EQU2## 
     
         b=[s].sup.b Δθ.sup.b,rel                       (4) 
    
     Block 206 performs the function of removing measurement bias and computing body attitude. The removal of measurement bias is done in the bias correction block 95. The bias vector b is then combined with the attitude sensor 20, 25 outputs. This serves to cancel the bias in the sensor measurements with the bias vector. That is, s is replaced by s-b, which removes the bias from the attitude sensor measurement. Block 206 also performs the function of computing the body attitude. Note that the computation of the body attitude C m  is done after the bias removal. The calculation of body attitude is performed in the attitude sensor processing block 110 of the measurement processing block 85. The method of attitude calculation is dependent on the particular application, and several suitable attitude calculation methods are well known in the art. 
     Block 208 performs the function of computing measurement residuals and estimator gains. The calculation of measurement residuals takes place in the measurement processing block 50. Measurement residuals are calculated by the measurement residual computation block 115, as shown in equation (5). Wherein, s k  -b k  is the bias-removed sensor measurement, C m  is the body attitude, and r k  are the reference vectors from the reference source 32. The computation of estimator gains are mathematically represented by equation (6). Estimator gain calculations are well known in the art and may be chosen from a variety of techniques including, for example, Kalman filtering. After the computation of measurement residuals and filter gains, program control is passed to a block 210. 
     
         Δs.sub.k =(s.sub.k -b.sub.k)-C.sup.m r.sub.k where k=1, . . . , n(5) 
    
     
         K=K.sub.R.sup.-1 ([s].sup.b G).sup.T                       (6) 
    
     Based on the current estimator state, the state transition matrix, calculated filter gains, and measurement residuals, a block 210 updates the estimator state. The calculation of the new estimator state is based on equation (7). 
     
         x←Φx+KΔs                                    (7) 
    
     Having updated the estimator state in block 210, program control is passed back to block 202. The method continually loops to update the bias estimates in order to offset bias that may be present in the sensor measurements. 
     Of course, it should be understood that a range of changes and modifications can be made to the preferred embodiment described above. For example, various bias models and bias distribution schemes may be used in conjunction with the present invention. Additionally, any attitude sensors or bias attribution schemes may be used with the present invention. There also exists a wide range of attitude measurement methods that may use the method and apparatus of the present invention. For example, the present invention may be employed by an number of known attitude measurement methods, such as TRIAD™ or QUEST™. 
     It is therefore intended that the foregoing detailed description be regarded as illustrative rather than limiting and that it be understood that it is the following claims, including all equivalents, which are intended to define the scope of this invention.