#include <PRSolution.hpp>
Collaboration diagram for PRSolution:

RAIM ref. "A Baseline GPS RAIM Scheme and a Note on the Equivalence of Three RAIM Methods," by R. Grover Brown, Journal of the Institute of Navigation, Vol. 39, No. 3, Fall 1992, pg 301.
Definition at line 55 of file PRSolution.hpp.
Public Member Functions | |
| PRSolution () throw () | |
| Constructor. | |
| int | RAIMCompute (const DayTime &Tr, std::vector< SatID > &Satellite, const std::vector< double > &Pseudorange, const XvtStore< SatID > &Eph, TropModel *pTropModel) throw (Exception) |
| Compute a position/time solution, given satellite PRNs and pseudoranges using a RAIM algorithm. | |
| bool | isValid () const throw () |
| Return the status of solution. | |
Static Public Member Functions | |
| int | PrepareAutonomousSolution (const DayTime &Tr, std::vector< SatID > &Sats, const std::vector< double > &Pseudorange, const XvtStore< SatID > &Eph, Matrix< double > &SVP, std::ostream *pDebug=NULL) throw () |
| Compute the satellite position / corrected range matrix (SVP) which is used by AutonomousPRSolution(). | |
| int | AutonomousPRSolution (const DayTime &Tr, const std::vector< bool > &Use, const Matrix< double > SVP, TropModel *pTropModel, const bool Algebraic, int &n_iterate, double &converge, Vector< double > &Sol, Matrix< double > &Cov, Vector< double > &Resid, Vector< double > &Slope, std::ostream *pDebug=NULL) throw (Exception) |
| Compute a single autonomous pseudorange solution. | |
Public Attributes | |
| double | RMSLimit |
| RMS limit - either residual of fit or distance (see ResidualCriterion). | |
| double | SlopeLimit |
| Slope limit. | |
| bool | Algebraic |
| Use an algebraic (if true) or linearized least squares (if false) algorithm. | |
| bool | ResidualCriterion |
| Use a rejection criterion based on RMS residual of fit (true) or RMS distance from an a priori position. | |
| bool | ReturnAtOnce |
| Return as soon as a solution meeting the limit requirements is found (this makes it a non-RAIM algorithm). | |
| int | NSatsReject |
| Maximum number of satellites that may be rejected in the RAIM algorithm; if this = -1, as many as possible will be rejected (RAIM requires at least 5 satellites). | |
| bool | Debug |
| If true, RAIMCompute() will output solution information to *pDebugStream. | |
| std::ostream * | pDebugStream |
| Pointer to an ostream, default &std::cout; if Debug is true, RAIMCompute() will print all preliminary solutions to this stream. | |
| int | MaxNIterations |
| Maximum number of iterations allowed in the linearized least squares algorithm. | |
| double | ConvergenceLimit |
| Convergence limit (m): continue iteration loop while RSS change in solution exceeds this. | |
| bool | Valid |
| flag: output content is valid. | |
| Vector< double > | Solution |
| Vector<double> containing the computed position solution (ECEF, meter); valid only when isValid() is true. | |
| Matrix< double > | Covariance |
| 4x4 Matrix<double> containing the computed solution covariance (meter); valid only when isValid() is true. | |
| double | RMSResidual |
| Root mean square residual of fit (except when RMSDistanceFlag is set, then RMS distance from apriori 4-position); in meters. | |
| double | MaxSlope |
| Slope computed in the RAIM algorithm (largest of all satellite values) for the returned solution, dimensionless ??. | |
| int | NIterations |
| the actual number of iterations used (linearized least squares algorithm) | |
| double | Convergence |
| the RSS change in solution at the end of iterations. | |
| int | Nsvs |
| the number of good satellites used in the final computation | |
|
|
Constructor.
Definition at line 59 of file PRSolution.hpp. |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Compute a single autonomous pseudorange solution. Input only:
Input and output (for least squares only; ignored if Algebraic==true):
Definition at line 527 of file PRSolution.cpp. References GPSGeoid::angVelocity(), GPSGeoid::c(), GPSTK_RETHROW, GPSTK_THROW, gpstk::inverseSVD(), gpstk::Minkowski(), gpstk::norm(), Vector::resize(), gpstk::RSS(), SQRT, gpstk::transpose(), and Xvt::x. |
|
|
Return the status of solution.
Definition at line 92 of file PRSolution.hpp. |
|
||||||||||||||||||||||||||||
|
Compute the satellite position / corrected range matrix (SVP) which is used by AutonomousPRSolution(). SVP is output, dimensioned (N,4) where N is the number of satellites and the length of both Satellite and Pseudorange. Data is ignored whenever Sats[i].id is < 0. NB caller should verify that the number of good entries (Satellite[.] > 0) is > 4 before proceeding.
Definition at line 404 of file PRSolution.cpp. References gpstk::C_GPS_M, Xvt::dtime, and Xvt::x. Referenced by ModelObs::Prepare(), and ModeledPR::Prepare(). |
|
||||||||||||||||||||||||
|
Compute a position/time solution, given satellite PRNs and pseudoranges using a RAIM algorithm.
Definition at line 183 of file PRSolution.cpp. References GPSTK_RETHROW, Combinations::isSelected(), Combinations::Next(), and gpstk::RMS(). |
|
|
Use an algebraic (if true) or linearized least squares (if false) algorithm.
Definition at line 104 of file PRSolution.hpp. |
|
|
the RSS change in solution at the end of iterations.
Definition at line 170 of file PRSolution.hpp. |
|
|
Convergence limit (m): continue iteration loop while RSS change in solution exceeds this.
Definition at line 139 of file PRSolution.hpp. |
|
|
4x4 Matrix<double> containing the computed solution covariance (meter); valid only when isValid() is true.
Definition at line 154 of file PRSolution.hpp. |
|
|
If true, RAIMCompute() will output solution information to *pDebugStream.
Definition at line 125 of file PRSolution.hpp. |
|
|
Maximum number of iterations allowed in the linearized least squares algorithm.
Definition at line 135 of file PRSolution.hpp. |
|
|
Slope computed in the RAIM algorithm (largest of all satellite values) for the returned solution, dimensionless ??.
Definition at line 164 of file PRSolution.hpp. |
|
|
the actual number of iterations used (linearized least squares algorithm)
Definition at line 167 of file PRSolution.hpp. |
|
|
Maximum number of satellites that may be rejected in the RAIM algorithm; if this = -1, as many as possible will be rejected (RAIM requires at least 5 satellites). A (single) non-RAIM solution can be obtained by setting this to 0 before calling RAIMCompute(). Definition at line 122 of file PRSolution.hpp. |
|
|
the number of good satellites used in the final computation
Definition at line 173 of file PRSolution.hpp. |
|
|
Pointer to an ostream, default &std::cout; if Debug is true, RAIMCompute() will print all preliminary solutions to this stream.
Definition at line 129 of file PRSolution.hpp. |
|
|
Use a rejection criterion based on RMS residual of fit (true) or RMS distance from an a priori position. If false, member Vector Solution must be defined as this a priori position when RAIMCompute() is called. Definition at line 110 of file PRSolution.hpp. |
|
|
Return as soon as a solution meeting the limit requirements is found (this makes it a non-RAIM algorithm).
Definition at line 115 of file PRSolution.hpp. |
|
|
RMS limit - either residual of fit or distance (see ResidualCriterion).
Definition at line 98 of file PRSolution.hpp. |
|
|
Root mean square residual of fit (except when RMSDistanceFlag is set, then RMS distance from apriori 4-position); in meters.
Definition at line 159 of file PRSolution.hpp. |
|
|
Slope limit.
Definition at line 101 of file PRSolution.hpp. |
|
|
Vector<double> containing the computed position solution (ECEF, meter); valid only when isValid() is true.
Definition at line 149 of file PRSolution.hpp. |
|
|
flag: output content is valid.
Definition at line 144 of file PRSolution.hpp. |
1.3.9.1