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

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 PRSolution2.hpp.
Public Member Functions | |
| PRSolution2 () throw () | |
| Constructor. | |
| int | RAIMCompute (const CommonTime &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 CommonTime &Tr, std::vector< SatID > &Sats, const std::vector< double > &Pseudorange, const XvtStore< SatID > &Eph, Matrix< double > &SVP, std::ostream *pDebug=NULL) throw () |
| -------------------------------------------------------------------------/// ----------------------PrepareAutonomousSolution--------------------------/// -------------------------------------------------------------------------/// | |
| int | AutonomousPRSolution (const CommonTime &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, Vector< int > *satSystems=NULL) throw (Exception) |
| Change. | |
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 PRSolution2.hpp. |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Change. Input only:
Input and output (for least squares only; ignored if Algebraic==true):
Definition at line 667 of file PRSolution2.cpp. References GPSEllipsoid::angVelocity(), GPSEllipsoid::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 94 of file PRSolution2.hpp. |
|
||||||||||||||||||||||||||||
|
-------------------------------------------------------------------------/// ----------------------PrepareAutonomousSolution--------------------------/// -------------------------------------------------------------------------/// 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 500 of file PRSolution2.cpp. References gpstk::C_MPS, Xvt::clkbias, Xvt::relcorr, Matrix::size(), 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 217 of file PRSolution2.cpp. References gpstk::abs(), GPSTK_RETHROW, Combinations::isSelected(), Combinations::Next(), gpstk::RMS(), GPSWeekSecond::sow, and GPSWeek::week. |
|
|
Use an algebraic (if true) or linearized least squares (if false) algorithm.
Definition at line 106 of file PRSolution2.hpp. |
|
|
the RSS change in solution at the end of iterations.
Definition at line 172 of file PRSolution2.hpp. |
|
|
Convergence limit (m): continue iteration loop while RSS change in solution exceeds this.
Definition at line 141 of file PRSolution2.hpp. |
|
|
4x4 Matrix<double> containing the computed solution covariance (meter); valid only when isValid() is true.
Definition at line 156 of file PRSolution2.hpp. |
|
|
If true, RAIMCompute() will output solution information to *pDebugStream.
Definition at line 127 of file PRSolution2.hpp. |
|
|
Maximum number of iterations allowed in the linearized least squares algorithm.
Definition at line 137 of file PRSolution2.hpp. |
|
|
Slope computed in the RAIM algorithm (largest of all satellite values) for the returned solution, dimensionless ??.
Definition at line 166 of file PRSolution2.hpp. |
|
|
the actual number of iterations used (linearized least squares algorithm)
Definition at line 169 of file PRSolution2.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 124 of file PRSolution2.hpp. |
|
|
the number of good satellites used in the final computation
Definition at line 175 of file PRSolution2.hpp. |
|
|
Pointer to an ostream, default &std::cout; if Debug is true, RAIMCompute() will print all preliminary solutions to this stream.
Definition at line 131 of file PRSolution2.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 112 of file PRSolution2.hpp. |
|
|
Return as soon as a solution meeting the limit requirements is found (this makes it a non-RAIM algorithm).
Definition at line 117 of file PRSolution2.hpp. |
|
|
RMS limit - either residual of fit or distance (see ResidualCriterion).
Definition at line 100 of file PRSolution2.hpp. |
|
|
Root mean square residual of fit (except when RMSDistanceFlag is set, then RMS distance from apriori 4-position); in meters.
Definition at line 161 of file PRSolution2.hpp. |
|
|
Slope limit.
Definition at line 103 of file PRSolution2.hpp. |
|
|
Vector<double> containing the computed position solution (ECEF, meter); valid only when isValid() is true.
Definition at line 151 of file PRSolution2.hpp. |
|
|
flag: output content is valid.
Definition at line 146 of file PRSolution2.hpp. |
1.3.9.1