#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 ConstraintSystem | getConstraintSystem () const |
| Get a copy of the constraint system. | |
| virtual EquationSystem & | setConstraintSystem (const ConstraintSystem &equationConst) |
| Set the constraint system. | |
| virtual EquationSystem & | clearConstraintSystem () |
| Remove all constraints from the equation system. | |
| virtual | ~EquationSystem () |
| Destructor. | |
|
|
Default constructor.
Definition at line 170 of file EquationSystem.hpp. |
|
|
Destructor.
Definition at line 378 of file EquationSystem.hpp. |
|
|
Add a new equation to be managed.
Definition at line 49 of file EquationSystem.cpp. Referenced by GeneralEquations::getPPPEquations(), EquationSystem::removeEquation(), and SolverGeneral::SolverGeneral(). |
|
|
Remove all constraints from the equation system.
Definition at line 374 of file EquationSystem.hpp. References gpstk::SatIDSet, gpstk::SourceIDSet, and gpstk::VariableSet. |
|
|
Remove all Equation objects from this EquationSystem.
Definition at line 115 of file EquationSystem.cpp. Referenced by EquationSystem::removeEquation(). |
|
|
Get a copy of the constraint system.
Definition at line 360 of file EquationSystem.hpp. Referenced by SolverGeneral::getEquationSystemConstraints(). |
|
|
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 1050 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 1007 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 964 of file EquationSystem.cpp. References GPSTK_THROW. |
|
|
Return the set containing satellites being currently processed.
Definition at line 1071 of file EquationSystem.cpp. References GPSTK_THROW, and gpstk::SatIDSet. |
|
|
Return the set containing sources being currently processed.
Definition at line 1028 of file EquationSystem.cpp. References GPSTK_THROW, and gpstk::SourceIDSet. |
|
|
Return the set containing variables being currently processed.
Definition at line 985 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 1115 of file EquationSystem.cpp. References GPSTK_THROW. Referenced by GeneralConstraint::constraintToSolver(). |
|
|
Get the State Transition Matrix (PhiMatrix), given the current equation system definition and the GDS' involved.
Definition at line 1158 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 1093 of file EquationSystem.cpp. References GPSTK_THROW. Referenced by GeneralConstraint::constraintToSolver(). |
|
|
Get the Process Noise Covariance Matrix (QMatrix), given the current equation system definition and the GDS' involved.
Definition at line 1180 of file EquationSystem.cpp. References GPSTK_THROW. |
|
|
Return the TOTAL number of variables being processed.
Definition at line 921 of file EquationSystem.cpp. References GPSTK_THROW. |
|
|
Return the set containing all variables being processed.
Definition at line 942 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 1137 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(). |
|
|
Set the constraint system.
Definition at line 368 of file EquationSystem.hpp. |
1.3.9.1