Abstract:
A navigation system for a vehicle having a receiver operable to receive a plurality of signals from a plurality of transmitters includes a processor and a memory device. The memory device has stored thereon machine-readable instructions that, when executed by the processor, enable the processor to determine a set of pseudo-range measurements derived from the plurality of signals, employing at least one Kalman filter process, determine from the measurements an error covariance matrix for a main navigation solution, and using a solution separation technique, determine at least one protection level value based on the error covariance matrix.

Description:
BACKGROUND OF THE INVENTION 
       [0001]    In addition to providing a navigation solution, navigation systems should also be able to provide users with timely warnings indicating when it is not safe/acceptable to use the navigation solution. A navigation system with this capability is, by definition, a navigation system with integrity. 
         [0002]    With GPS for example, satellite failures can occur which result in unpredictable deterministic range errors on the failing satellite. Satellite failures are rare (i.e., on the order of 1 every year), but safety-critical navigation systems must account for these errors. Typically, navigation systems (e.g., GPS Receivers) provide integrity on their position solution (i.e., horizontal position and altitude), but do not provide integrity on other navigation parameters, such as ground speed and vertical velocity. 
       SUMMARY OF THE INVENTION 
       [0003]    In an embodiment of the invention, a navigation system for a vehicle having a receiver operable to receive a plurality of signals from a plurality of transmitters includes a processor and a memory device. The memory device has stored thereon machine-readable instructions that, when executed by the processor, enable the processor to determine a set of pseudo-range measurements derived from the plurality of signals, employing at least one Kalman filter process, determine from the measurements an error covariance matrix for a main navigation solution, and using a solution separation technique, determine at least one protection level value based on the error covariance matrix. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0004]    Preferred and alternative embodiments of the present invention are described in detail below with reference to the following drawings. 
           [0005]      FIG. 1  shows a first navigation system incorporating embodiments of the present invention; and 
           [0006]      FIG. 2  shows a second navigation system incorporating embodiments of the present invention; 
           [0007]      FIG. 3  shows a process according to an embodiment of the invention; 
           [0008]      FIG. 4  shows a process according to the embodiment illustrated in  FIG. 3 ; and 
           [0009]      FIG. 5  shows a process according to the embodiment illustrated in  FIG. 3 . 
       
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT 
       [0010]    An embodiment builds on many of the concepts applied to position integrity in order to provide integrity on the following navigation states: North Velocity, East Velocity, Ground Speed, Vertical Speed, Flight Path Angle, and Track Angle. 
         [0011]    One or more embodiments may include a bank of filters/solutions (whether Kalman Filter or Least Squares) that may be composed of a main solution that processes all satellite measurements along with a set of sub-solutions; where each sub-solution processes one satellite fewer than the main solution. 
         [0012]    Navigation systems primarily employ one of the following implementations in order to calculate a navigation solution: a Kalman Filter or a Least Squares Solution. In general, GPS receivers which have GPS satellite measurements (and possibly altitude aiding) use a Least Squares solution while Hybrid Inertial/GPS systems use a Kalman Filter. Both methods use a recursive algorithm which provides a solution via a weighted combination of predictions and measurements. However, a Least Squares Solution possesses minimal prediction capability and is therefore heavily influenced by measurements (in fact the weighting factor on predictions in a Least Squares Solution approaches zero with each iteration). A Kalman Filter on the other hand is able to take advantage of additional information about the problem; such as additional measurement data (e.g., inertial data) or additional information about system noise and/or measurement noise. This allows the Kalman Filter to continuously vary its weighting on its own predictions versus measurement inputs (this may be done via the Kalman Gain). A Kalman Filter with very low confidence in its own predictions (i.e., a very large Kalman Gain) will behave much like a Least Squares Solution. 
         [0013]    The Error Covariance Matrix, often denoted by the symbol “P,” within a navigation system represents the standard deviation of the error state estimates within a navigation solution. For example, given a 3×3 matrix representing the error covariance for the x, y, and z velocity states within a Kalman filter: 
         [0000]    
       
         
           
             P 
             = 
             
               [ 
               
                 
                   
                     
                       σ 
                       x 
                       2 
                     
                   
                   
                     
                       E 
                        
                       
                         [ 
                         
                           
                             σ 
                             x 
                           
                            
                           
                             σ 
                             y 
                           
                         
                         ] 
                       
                     
                   
                   
                     
                       E 
                        
                       
                         [ 
                         
                           
                             σ 
                             x 
                           
                            
                           
                             σ 
                             z 
                           
                         
                         ] 
                       
                     
                   
                 
                 
                   
                     
                       E 
                        
                       
                         [ 
                         
                           
                             σ 
                             y 
                           
                            
                           
                             σ 
                             x 
                           
                         
                         ] 
                       
                     
                   
                   
                     
                       σ 
                       y 
                       2 
                     
                   
                   
                     
                       E 
                        
                       
                         [ 
                         
                           
                             σ 
                             y 
                           
                            
                           
                             σ 
                             z 
                           
                         
                         ] 
                       
                     
                   
                 
                 
                   
                     
                       E 
                        
                       
                         [ 
                         
                           
                             σ 
                             z 
                           
                            
                           
                             σ 
                             x 
                           
                         
                         ] 
                       
                     
                   
                   
                     
                       E 
                        
                       
                         [ 
                         
                           
                             σ 
                             z 
                           
                            
                           
                             σ 
                             y 
                           
                         
                         ] 
                       
                     
                   
                   
                     
                       σ 
                       z 
                       2 
                     
                   
                 
               
               ] 
             
           
         
       
     
         [0014]    We would expect (with a properly modeled Kalman Filter) that the absolute value of the difference between the true ground speed and the Kalman Filter&#39;s ground speed would not exceed 2√{square root over ((σ x   2 +σ u   2 ))} more than ˜95% of the time. The same would be true for vertical velocity using 2√{square root over (σ z   2 )} instead. Note the off diagonal terms here represent cross-correlation between the velocities (how a change in x-velocity impacts a change in y-velocity or z-velocity for example). 
         [0015]    The Error Covariance Matrix may be a critical component of any fault detection and integrity limit algorithm. For a Kalman Filter, P may be a fundamental part of the recursive Kalman Filter process. A Kalman Filter navigation solution may not be produced without the P matrix. With a Least-Squares solution, calculation of the actual navigation solution may not require use of an error covariance matrix. Therefore, a Least Squares Solution may only produce a P matrix if it is desired to provide integrity with the navigation solution. Calculation of a P matrix for a Least Squares solution is based on the satellite geometry (line of sight from user to all satellites in view) and an estimate of the errors on the satellite measurements. 
         [0016]    Once a navigation system has an error covariance matrix along with its actual navigation solution, fault detection and calculation of integrity can be performed via Solution Separation or Parity Space Based techniques. 
         [0017]      FIG. 1  shows a radio navigation system  10  incorporating features of an embodiment of the present invention. The system includes several transmitters  1 -N and user set  12 . Transmitters  1 -N may be a subset of the NAVSTAR GPS constellation of satellite transmitters, with each transmitter visible from the antenna of user set  12 . Transmitters  1 -N broadcast N respective signals indicating respective transmitter positions and signal transmission times to user set  12 . 
         [0018]    User set  12 , mounted to an aircraft (not shown), includes receiver  14 , processor  16 , and processor memory  18 . Receiver  14 , preferably NAVSTAR GPS compatible, receives the signals, extracts the position and time data, and provides pseudorange measurements to processor  16 . From the pseudorange measurements, processor  16  can derive a position solution for the user set. Although the satellites can transmit their positions in World Geodetic System of 1984 (WGS-84) coordinates, a Cartesian earth-centered earth-fixed system, an embodiment determines the position solution in a local reference frame L, which is level with the north-east coordinate plane and tangential to the Earth. This frame choice, however, is not critical, since it is well-understood how to transform coordinates from one frame to another. 
         [0019]    Processor  16  can also use the pseudorange measurements to detect satellite transmitter failures and to determine a worst-case error, or protection limit, both of which it outputs with the position solution to flight management system  20 . Flight management system  20  compares the protection limit to an alarm limit corresponding to a particular aircraft flight phase. For example, during a pre-landing flight phase, such as nonprecision approach, the alarm limit (or allowable radial error) may be 0.3 nautical miles, but during a less-demanding oceanic flight phase, the alarm limit may be 2-10 nautical miles. (For more details on these limits, see RTCA publication DO-208, which is incorporated herein by reference.) If the protection limit exceeds the alarm limit, the flight management system, or its equivalent, announces or signals an integrity failure to a navigational display (not shown) in the cockpit of the aircraft. The processor also signals whether it has detected any satellite transmitter failures. 
         [0020]    As shown in  FIG. 2 , a second embodiment extends the radio navigation system  10  of  FIG. 1  with the addition of inertial reference unit  22  for providing inertial data to processor  16  and pressure altitude sensor  27  for providing altitude data to processor  16 . The resulting combination constitutes a hybrid navigation system  30 . (Altitude sensor  27  can also provide data to stabilize inertial reference unit, as known in the art, but for clarity the connection is not shown here.) 
         [0021]    Inertial reference unit  22 , mounted to the aircraft (not shown), preferably includes three accelerometers  24   a - 24   c  for measuring acceleration in three dimensions and three gyroscopes  26   a - 26   c  for measuring angular orientation, or attitude, relative a reference plane. Inertial reference unit  22  also includes inertial processor  25  which determines an inertial position solution r i , preferably a three-element vector in an earth-fixed reference frame. Inertial processor  26  also preferably converts the acceleration data into raw acceleration vector a raw  and attitude data into raw angular velocity vector ω raw . The preferred angular velocity vector defines the rotation of the body frame (fixed to the aircraft) in three dimensions, and the preferred inertial acceleration defines the three components of acceleration in body frame coordinates. Inertial processor  26  also determines a transformation matrix C for transforming body frame coordinates to local vertical frame L, a three-element rotation vector ω IE  which describes rotation of the earth-based frame E versus inertial frame I transformed to L frame, and rotation vector ω EL  which describes rotation of the L frame versus the earth-fixed frame E transformed to L frame. The details of this inertial processing are well known in the art. 
         [0022]    While least-squares solutions provide a solution based on measurement inputs, Kalman Filters provide a solution based on a weighted combination of predictions and measurements. An embodiment of the invention involves the processor  16  determining integrity for: North Velocity, East Velocity, Groundspeed, Vertical Velocity, track angle, and flight path angle based on a hybrid solution which blends multiple position measurements via a Kalman Filter (e.g., GPS measurements blended with position/velocity data from an Inertial Reference System). An embodiment of the invention employs principles of a snapshot solution separation algorithm described in commonly owned U.S. patent application Ser. No. ______ (Attorney Docket No. HOOO-1-1317), which is hereby incorporated by reference as if fully set forth herein, with a difference being the source of error covariance matrices. In this case the error covariance matrix is a direct by-product of the Kalman Filter process while for a snapshot solution it may be calculated via P=(  H   T   H   −1 . 
         [0023]      FIG. 3  illustrates a process  300 , according to an embodiment of the invention, that can be implemented in one or both of systems  10  and  30 . The process  300  is illustrated as a set of operations or steps shown as discrete blocks. The process  300  may be implemented in any suitable hardware, software, firmware, or combination thereof. As such the process  300  may be implemented in computer-executable instructions that can be transferred from one electronic device to a second electronic device via a communications medium. The order in which the operations are described is not to be necessarily construed as a limitation. 
         [0024]    In an embodiment, and at a block  310 , the processor  16  determines a measurement Matrix as follows: 
         [0000]    
       
         
           
             H 
             = 
             
               [ 
               
                 
                   
                     
                       - 
                       
                         LOS 
                         
                           1 
                            
                           x 
                         
                       
                     
                   
                   
                     
                       - 
                       
                         LOS 
                         
                           1 
                            
                           y 
                         
                       
                     
                   
                   
                     
                       - 
                       
                         LOS 
                         
                           1 
                            
                           z 
                         
                       
                     
                   
                   
                     1 
                   
                 
                 
                   
                     
                       - 
                       
                         LOS 
                         
                           2 
                            
                           x 
                         
                       
                     
                   
                   
                     
                       - 
                       
                         LOS 
                         
                           2 
                            
                           y 
                         
                       
                     
                   
                   
                     
                       - 
                       
                         LOS 
                         
                           2 
                            
                           z 
                         
                       
                     
                   
                   
                     1 
                   
                 
                 
                   
                     ⋮ 
                   
                   
                     ⋮ 
                   
                   
                     ⋮ 
                   
                   
                     ⋮ 
                   
                 
                 
                   
                     
                       - 
                       
                         LOS 
                         Nx 
                       
                     
                   
                   
                     
                       - 
                       
                         LOS 
                         Ny 
                       
                     
                   
                   
                     
                       - 
                       
                         LOS 
                         Nz 
                       
                     
                   
                   
                     1 
                   
                 
               
               ] 
             
           
         
       
     
         [0025]    In an embodiment, and at a block  320 , the processor  16  determines an error state covariance matrix P used for a solution separation process described hereinafter. The error covariance matrix P may be determined as a result of a recursive Kalman Filter process illustrated and described in greater detail with reference to  FIG. 4 . Note that Δ{circumflex over (x)} k   −  represents the error state and P k   −  the error state covariance from a previous iteration of the recursive Kalman Filter process. 
         [0026]    Referring now to  FIG. 4 , at a block  410 , the processor  16  computes the Kalman Gain as follows: 
         [0000]        K   k   =P   k   −   H   k   T ( H   k   P   k   −   H   k   T   +R   k ) −1    
         [0027]    where R k  represents the Measurement Noise Covariance matrix. 
         [0028]    At a block  420 , the processor  16  computes the current estimate of the error state based on the current measurements according to the following: 
         [0000]        Δ{circumflex over (x)}   k   =Δ{circumflex over (x)}   k   −   +K   k ( Δz   k   −H   k   Δ{circumflex over (x)}   k   − ) 
         [0029]    where Δz k  represents the current measurements. Note that H k Δ{circumflex over (x)} k   −  represents the Kalman Filter&#39;s prediction of the current measurements. The difference (Δz k −H k Δ{circumflex over (x)} k   − ) may be referred to as the innovations or measurement residuals. 
         [0030]    At a block  430 , the processor  16  computes the estimation error covariance matrix as follows: 
         [0000]        P   k =( I−K   k   H   k ) P   k   −   
         [0031]    At a block  440 , the processor  16  projects the estimate of the error state ahead to the next time step as follows: 
         [0000]        Δ{circumflex over (x)}   k+1   − =Φ k   Δ{circumflex over (x)}   k    
         [0032]    where Φ k  represents the state transition matrix 
         [0033]    At a block  450 , the processor  16  computes the prediction error covariance matrix (this represents the P matrix used for solution separation): 
         [0000]        P   k+1   − =Φ k   P   k Φ k   T   +Q   k    
         [0034]    where Q k  represents the system (also referred to as process) noise covariance matrix. 
         [0035]    After completing block  450 , the process  300  of  FIG. 3  continues to a block  330 . Alternatively, the process illustrated in  FIG. 4  returns to block  410  to repeat the above-described steps. 
         [0036]    Referring back to  FIG. 3 , at a block  330 , the processor  16  performs a solution separation process. Referring now to  FIG. 5 , at a block  510 , the processor  16  calculates a discriminator between main solution (subscript 0) and sub-solution j according to the following: 
         [0000]    
       
         
           
             
               dx 
               j 
             
             = 
             
               
                 Δ 
                  
                 
                     
                 
                  
                 
                   
                     x 
                     ^ 
                   
                   0 
                 
               
               - 
               
                 Δ 
                  
                 
                     
                 
                  
                 
                   
                     x 
                     ^ 
                   
                   j 
                 
               
             
           
         
       
       
         
           
             
               d 
               j 
               horz 
             
             = 
             
               
                 
                   
                     [ 
                     
                       
                         dx 
                         j 
                       
                        
                       
                         ( 
                         1 
                         ) 
                       
                     
                     ] 
                   
                   2 
                 
                 + 
                 
                   
                     [ 
                     
                       
                         dx 
                         j 
                       
                        
                       
                         ( 
                         2 
                         ) 
                       
                     
                     ] 
                   
                   2 
                 
               
             
           
         
       
     
         [0037]    At a block  520 , the processor  16  calculates a detection threshold according to the following: 
         [0000]    
       
         
           
             
               D 
               j 
               horz 
             
             = 
             
               
                 
                   σ 
                   
                     d 
                     j 
                     horz 
                   
                 
                  
                 
                   
                     Q 
                     
                       - 
                       1 
                     
                   
                    
                   
                     ( 
                     
                       
                         p 
                         fa 
                       
                       
                         2 
                          
                         
                           N 
                           sol 
                         
                       
                     
                     ) 
                   
                 
               
               = 
               
                 
                   σ 
                   
                     d 
                     j 
                     horz 
                   
                 
                 · 
                 
                   
                     K 
                     fa 
                   
                    
                   
                     ( 
                     
                       N 
                       sol 
                     
                     ) 
                   
                 
               
             
           
         
       
     
         [0038]    If the discriminator exceeds the threshold for any main/sub-solution combination, a satellite failure exists. 
         [0039]    At a block  530 , the processor  16  calculates the horizontal and vertical integrity for main least-squares solution according to the following: 
         [0000]        a   On   horz =σ horz     —     max   Q   −1 ( p   md )=σ horz     —     max   K   md    
         [0000]    
       
      
       HVPL 
       j 
       =D 
       j 
       horz 
       +a 
       j 
       horz  
      
     
         [0040]    And similarly for vertical integrity: 
         [0000]    
       
      
       VVPL 
       j 
       =D 
       j 
       vert 
       +a 
       j 
       vert  
      
     
         [0041]    In an embodiment, HVPL and VVPL are based on the max values for all main/sub-solution combinations. Note that σ d     j       horz    and σ horz     —     max  are based on the error covariance matrices (using the horizontal and vertical velocity states) calculated for the main and sub-solutions at block  450  discussed above. 
         [0042]    Referring back to  FIG. 3 , at a block  340 , the processor  16  calculates track angle, and flight path angle integrity values for hybrid solution. 
         [0043]    The hybrid North Velocity, East Velocity, and Ground Speed Integrity are all represented by HVPL calculated above. VVPL represents the hybrid integrity on the vertical velocity. 
         [0044]    Track Angle and Flight Path Angle integrity values are defined as follows: 
         [0045]    Track Angle: 
         [0000]    
       
         
           
             
               TAPL 
               Hybrid 
             
             = 
             
               
                 ( 
                 
                   180 
                   π 
                 
                 ) 
               
                
               
                 HVPL 
                 
                   V 
                   Hybrid 
                   GroundSpeed 
                 
               
             
           
         
       
     
         [0046]    Flight Path Angle: 
         [0000]    
       
         
           
             
               FPAPL 
               Hybrid 
             
             = 
             
               
                 ( 
                 
                   180 
                   π 
                 
                 ) 
               
                
               
                 VVPL 
                 
                   V 
                   Hybrid 
                   GroundSpeed 
                 
               
             
           
         
       
     
         [0047]    where V Hybrid   GroundSpeed  represents the hybrid ground speed. 
         [0048]    While a preferred embodiment of the invention has been illustrated and described, as noted above, many changes can be made without departing from the spirit and scope of the invention. Accordingly, the scope of the invention is not limited by the disclosure of the preferred embodiment. Instead, the invention should be determined entirely by reference to the claims that follow.