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

In order to achieve this, the 'EquationSystem' class will start from a list of 'Equation descriptions' and the currently available GNSS data. From there, it will deduce the unknowns corresponding to each data source as well as the specific equations.
A typical way to use this class follows, showing how to set up an object to perform "Precise Point Positioning" (PPP):
// DEFINE VARIABLES // Declare stochastic models to be used StochasticModel coordinatesModel; TropoRandomWalkModel tropoModel; PhaseAmbiguityModel ambiModel; // These variables are, by default, SourceID-indexed Variable dx( TypeID::dx, &coordinatesModel, true, false, 100.0 ); Variable dy( TypeID::dy, &coordinatesModel ); dy.setInitialVariance( 100.0 ); // Equivalent to 'dx' setup Variable dz( TypeID::dz, &coordinatesModel ); dz.setInitialVariance( 100.0 ); Variable cdt( TypeID::cdt ); cdt.setDefaultForced(true); // Force default coefficient (1.0) Variable tropo( TypeID::wetMap, &tropoModel ); tropo.setInitialVariance( 25.0 ); // The following variable is, SourceID and SatID-indexed Variable ambi( TypeID::BLC, &ambiModel, true, true ); ambi.setDefaultForced(true); // Force default coefficient (1.0) // This will be the independent term for code equation Variable prefitC( TypeID::prefitC ); // This will be the independent term for phase equation Variable prefitL( TypeID::prefitL ); // DESCRIBE EQUATIONS // Define Equation object for code equations, and add variables Equation equPC( prefitC ); equPC.addVariable(dx); equPC.addVariable(dy); equPC.addVariable(dz); equPC.addVariable(cdt); equPC.addVariable(tropo); // Define Equation object for phase equations, and add variables Equation equLC( prefitL ); equLC.addVariable(dx); equLC.addVariable(dy); equLC.addVariable(dz); equLC.addVariable(cdt); equLC.addVariable(tropo); equLC.addVariable(ambi); // This variable is for phase only // Phase equations should have higher relative weight equLC.setWeight(10000.0); // 100.0 * 100.0 // SETUP EQUATION SYSTEM // Create 'EquationSystem' object EquationSystem eqSystem; // Add equation descriptions eqSystem.addEquation(equPC); eqSystem.addEquation(equLC);
In this way, rather complex processing strategies may be set up in a handy and flexible way.
Definition at line 165 of file EquationSystem.hpp.
Public Member Functions | |
| EquationSystem () | |
| Default constructor. | |
| virtual EquationSystem & | addEquation (const Equation &equation) |
| Add a new equation to be managed. | |
| virtual EquationSystem & | removeEquation (const Variable &indterm) |
| Remove an Equation being managed. | |
| virtual EquationSystem & | clearEquations () |
| Remove all Equation objects from this EquationSystem. | |
| virtual EquationSystem & | Prepare (gnssSatTypeValue &gData) |
| Prepare this object to carry out its work. | |
| virtual EquationSystem & | Prepare (gnssRinex &gData) |
| Prepare this object to carry out its work. | |
| virtual EquationSystem & | Prepare (gnssDataMap &gdsMap) |
| Prepare this object to carry out its work. | |
| virtual int | getTotalNumVariables () const throw (InvalidEquationSystem) |
| Return the TOTAL number of variables being processed. | |
| virtual VariableSet | getVarUnknowns () const throw (InvalidEquationSystem) |
| Return the set containing all variables being processed. | |
| virtual int | getCurrentNumVariables () const throw (InvalidEquationSystem) |
| Return the CURRENT number of variables, given the current equation system definition and the GDS's involved. | |
| virtual VariableSet | getCurrentUnknowns () const throw (InvalidEquationSystem) |
| Return the set containing variables being currently processed. | |
| virtual int | getCurrentNumSources () const throw (InvalidEquationSystem) |
| Return the CURRENT number of sources, given the current equation system definition and the GDS's involved. | |
| virtual SourceIDSet | getCurrentSources () const throw (InvalidEquationSystem) |
| Return the set containing sources being currently processed. | |
| virtual int | getCurrentNumSats () const throw (InvalidEquationSystem) |
| Return the CURRENT number of satellites, given the current equation system definition and the GDS's involved. | |
| virtual SatIDSet | getCurrentSats () const throw (InvalidEquationSystem) |
| Return the set containing satellites being currently processed. | |
| virtual Vector< double > | getPrefitsVector () const throw (InvalidEquationSystem) |
| Get prefit residuals GPSTk Vector, given the current equation system definition and the GDS' involved. | |
| virtual Matrix< double > | getGeometryMatrix () const throw (InvalidEquationSystem) |
| Get geometry matrix, given the current equation system definition and the GDS' involved. | |
| virtual Matrix< double > | getWeightsMatrix () const throw (InvalidEquationSystem) |
| Get weights matrix, given the current equation system definition and the GDS' involved. | |
| virtual Matrix< double > | getPhiMatrix () const throw (InvalidEquationSystem) |
| Get the State Transition Matrix (PhiMatrix), given the current equation system definition and the GDS' involved. | |
| virtual Matrix< double > | getQMatrix () const throw (InvalidEquationSystem) |
| Get the Process Noise Covariance Matrix (QMatrix), given the current equation system definition and the GDS' involved. | |
| virtual int | getEquationDefinitionNumber () const |
| Get the number of equation descriptions being currently processed. | |
| virtual std::list< Equation > | getCurrentEquationsList () const |
| Get the list of current equations. | |
| virtual | ~EquationSystem () |
| Destructor. | |
|
|
Default constructor.
Definition at line 170 of file EquationSystem.hpp. |
|
|
Destructor.
Definition at line 360 of file EquationSystem.hpp. References gpstk::SatIDSet, gpstk::SourceIDSet, and gpstk::VariableSet. |
|
|
Add a new equation to be managed.
Definition at line 49 of file EquationSystem.cpp. Referenced by SolverGeneral::addEquation(), EquationSystem::removeEquation(), and SolverGeneral::SolverGeneral(). |
|
|
Remove all Equation objects from this EquationSystem.
Definition at line 115 of file EquationSystem.cpp. Referenced by SolverGeneral::clearEquations(), and EquationSystem::removeEquation(). |
|
|
Get the list of current equations.
Definition at line 355 of file EquationSystem.hpp. |
|
|
Return the CURRENT number of satellites, given the current equation system definition and the GDS's involved.
Definition at line 902 of file EquationSystem.cpp. References GPSTK_THROW. |
|
|
Return the CURRENT number of sources, given the current equation system definition and the GDS's involved.
Definition at line 859 of file EquationSystem.cpp. References GPSTK_THROW. |
|
|
Return the CURRENT number of variables, given the current equation system definition and the GDS's involved.
Definition at line 816 of file EquationSystem.cpp. References GPSTK_THROW. |
|
|
Return the set containing satellites being currently processed.
Definition at line 923 of file EquationSystem.cpp. References GPSTK_THROW, and gpstk::SatIDSet. |
|
|
Return the set containing sources being currently processed.
Definition at line 880 of file EquationSystem.cpp. References GPSTK_THROW, and gpstk::SourceIDSet. |
|
|
Return the set containing variables being currently processed.
Definition at line 837 of file EquationSystem.cpp. References GPSTK_THROW, and gpstk::VariableSet. |
|
|
Get the number of equation descriptions being currently processed.
Definition at line 350 of file EquationSystem.hpp. |
|
|
Get geometry matrix, given the current equation system definition and the GDS' involved.
Definition at line 967 of file EquationSystem.cpp. References GPSTK_THROW. |
|
|
Get the State Transition Matrix (PhiMatrix), given the current equation system definition and the GDS' involved.
Definition at line 1010 of file EquationSystem.cpp. References GPSTK_THROW. |
|
|
Get prefit residuals GPSTk Vector, given the current equation system definition and the GDS' involved.
Definition at line 945 of file EquationSystem.cpp. References GPSTK_THROW. |
|
|
Get the Process Noise Covariance Matrix (QMatrix), given the current equation system definition and the GDS' involved.
Definition at line 1032 of file EquationSystem.cpp. References GPSTK_THROW. |
|
|
Return the TOTAL number of variables being processed.
Definition at line 773 of file EquationSystem.cpp. References GPSTK_THROW. |
|
|
Return the set containing all variables being processed.
Definition at line 794 of file EquationSystem.cpp. References GPSTK_THROW, and gpstk::VariableSet. |
|
|
Get weights matrix, given the current equation system definition and the GDS' involved.
Definition at line 989 of file EquationSystem.cpp. References GPSTK_THROW. |
|
|
Prepare this object to carry out its work.
Definition at line 155 of file EquationSystem.cpp. |
|
|
Prepare this object to carry out its work.
Definition at line 133 of file EquationSystem.cpp. References gnssDataMap::addGnssRinex(), and EquationSystem::Prepare(). |
|
|
Prepare this object to carry out its work.
Definition at line 203 of file EquationSystem.hpp. Referenced by EquationSystem::Prepare(). |
|
|
Remove an Equation being managed. In this case the equation is identified by its independent term.
Definition at line 73 of file EquationSystem.cpp. References EquationSystem::addEquation(), and EquationSystem::clearEquations(). Referenced by SolverGeneral::removeEquation(). |
1.3.9.1