Changeset 2720 in ntrip


Ignore:
Timestamp:
Nov 27, 2010, 12:36:14 PM (13 years ago)
Author:
mervart
Message:
 
Location:
trunk/BNC
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/BNC/bncmodel.cpp

    r2671 r2720  
    6060const double   MAXRES_PHASE_GPS = 0.10;
    6161const double   MAXRES_PHASE_GLO = 0.05;
    62 const double   QUICKSTART       =  120.0;
    63 const double   sig_clk_0        = 1000.0;
    64 const double   sig_trp_0        =    0.10;
    65 const double   sig_trp_p        =    1e-8;
    66 const double   sig_amb_0_GPS    = 1000.0;
    67 const double   sig_amb_0_GLO    = 1000.0;
    68 const double   sig_L3_GPS       =    0.02;
    69 const double   sig_L3_GLO       =    0.05;
    7062
    7163// Constructor
     
    140132  bncSettings settings;
    141133
    142   double sig_crd_0 = 100.0;
    143 
    144   if (settings.value("pppOrigin").toString() == "QuickStart - Static" ||
    145       settings.value("pppOrigin").toString() == "QuickStart - Mobile") {
    146     sig_crd_0 = 000.01;
    147   }
     134  // Observation Sigmas
     135  // ------------------
     136  _sigP3 = 5.0;
     137  if (!settings.value("pppSigmaCode").toString().isEmpty()) {
     138    _sigP3 = settings.value("pppSigmaCode").toDouble();
     139  }
     140  _sigL3 = 0.02;
     141  if (!settings.value("pppSigmaPhase").toString().isEmpty()) {
     142    _sigP3 = settings.value("pppSigmaPhase").toDouble();
     143  }
     144
     145  // Parameter Sigmas
     146  // ----------------
     147  _sigCrd0 = 100.0;
     148  if (!settings.value("pppSigCrd0").toString().isEmpty()) {
     149    _sigCrd0 = settings.value("pppSigCrd0").toDouble();
     150  }
     151  _sigCrdP = 100.0;
     152  if (!settings.value("pppSigCrdP").toString().isEmpty()) {
     153    _sigCrdP = settings.value("pppSigCrdP").toDouble();
     154  }
     155  _sigTrp0 = 0.1;
     156  if (!settings.value("pppSigTrp0").toString().isEmpty()) {
     157    _sigTrp0 = settings.value("pppSigTrp0").toDouble();
     158  }
     159  _sigTrpP = 1e-6;
     160  if (!settings.value("pppSigTrpP").toString().isEmpty()) {
     161    _sigTrpP = settings.value("pppSigTrpP").toDouble();
     162  }
     163  _sigClk0 = 1000.0;
     164  _sigAmb0 = 1000.0;
     165
     166  // Quick-Start Mode
     167  // ----------------
     168  _quickStart = 0;
     169  if (settings.value("pppOrigin").toString() == "PPP" &&
     170      !settings.value("pppQuickStart").toString().isEmpty()) {
     171    _quickStart = settings.value("pppQuickStart").toDouble() * 60.0;
     172    _sigCrd0 = 0.01;
     173  }
    148174
    149175  connect(this, SIGNAL(newMessage(QByteArray,bool)),
    150176          ((bncApp*)qApp), SLOT(slotMessage(const QByteArray,bool)));
    151 
    152   _static = false;
    153   if ( Qt::CheckState(settings.value("pppStatic").toInt()) == Qt::Checked) {
    154     _static = true;
    155   }
    156177
    157178  _usePhase = false;
     
    194215    bncParam* pp = _params[iPar-1];
    195216    if      (pp->isCrd()) {
    196       _QQ(iPar,iPar) = sig_crd_0 * sig_crd_0;
     217      _QQ(iPar,iPar) = _sigCrd0 * _sigCrd0;
    197218    }
    198219    else if (pp->type == bncParam::RECCLK) {
    199       _QQ(iPar,iPar) = sig_clk_0 * sig_clk_0;
     220      _QQ(iPar,iPar) = _sigClk0 * _sigClk0;
    200221    }
    201222    else if (pp->type == bncParam::TROPO) {
    202       _QQ(iPar,iPar) = sig_trp_0 * sig_trp_0;
     223      _QQ(iPar,iPar) = _sigTrp0 * _sigTrp0;
    203224    }
    204225  }
     
    393414  }
    394415
    395   bool   quickStartInit = false;
    396   double sig_crd_p      = 100.0;
    397 
    398   if ( (settings.value("pppOrigin").toString() == "QuickStart - Static" ||
    399         settings.value("pppOrigin").toString() == "QuickStart - Mobile") &&
    400        _startTime.secsTo(QDateTime::currentDateTime()) < QUICKSTART ) {
    401     quickStartInit = true;
    402     sig_crd_p       = 0.0;
     416  // Use different white noise for quick-start mode
     417  // ----------------------------------------------
     418  double sigCrdP_used   = _sigCrdP;
     419  if ( _quickStart > 0.0 &&
     420       _quickStart > _startTime.secsTo(QDateTime::currentDateTime()) ) {
     421    sigCrdP_used   = 0.0;
    403422  }
    404423
     
    411430    // -----------
    412431    if      (pp->type == bncParam::CRD_X) {
    413       if (firstCrd || !_static) {
    414         if (quickStartInit) {
     432      if (firstCrd) {
     433        if (settings.value("pppOrigin").toString() == "PPP") {
    415434          pp->xx = settings.value("pppRefCrdX").toDouble();
    416435        }
     
    419438        }
    420439      }
    421       _QQ(iPar,iPar) += sig_crd_p * sig_crd_p;
     440      _QQ(iPar,iPar) += sigCrdP_used * sigCrdP_used;
    422441    }
    423442    else if (pp->type == bncParam::CRD_Y) {
    424       if (firstCrd || !_static) {
    425         if (quickStartInit) {
     443      if (firstCrd) {
     444        if (settings.value("pppOrigin").toString() == "PPP") {
    426445          pp->xx = settings.value("pppRefCrdY").toDouble();
    427446        }
     
    430449        }
    431450      }
    432       _QQ(iPar,iPar) += sig_crd_p * sig_crd_p;
     451      _QQ(iPar,iPar) += sigCrdP_used * sigCrdP_used;
    433452    }
    434453    else if (pp->type == bncParam::CRD_Z) {
    435       if (firstCrd || !_static) {
    436         if (quickStartInit) {
     454      if (firstCrd) {
     455        if (settings.value("pppOrigin").toString() == "PPP") {
    437456          pp->xx = settings.value("pppRefCrdZ").toDouble();
    438457        }
     
    441460        }
    442461      }
    443       _QQ(iPar,iPar) += sig_crd_p * sig_crd_p;
     462      _QQ(iPar,iPar) += sigCrdP_used * sigCrdP_used;
    444463    }   
    445464
     
    451470        _QQ(iPar, jj) = 0.0;
    452471      }
    453       _QQ(iPar,iPar) = sig_clk_0 * sig_clk_0;
     472      _QQ(iPar,iPar) = _sigClk0 * _sigClk0;
    454473    }
    455474
     
    457476    // ------------------
    458477    else if (pp->type == bncParam::TROPO) {
    459       _QQ(iPar,iPar) += sig_trp_p * sig_trp_p;
     478      _QQ(iPar,iPar) += _sigTrpP * _sigTrpP;
    460479    }
    461480  }
     
    555574      bncParam* par = _params[ii-1];
    556575      if (par->index_old == 0) {
    557         if (par->prn[0] == 'R') {
    558           _QQ(par->index, par->index) = sig_amb_0_GLO * sig_amb_0_GLO;
    559         }
    560         else {
    561           _QQ(par->index, par->index) = sig_amb_0_GPS * sig_amb_0_GPS;
    562         }
     576        _QQ(par->index, par->index) = _sigAmb0 * _sigAmb0;
    563577      }
    564578      par->index_old = par->index;
    565579    }
    566580  }
    567 
    568581}
    569582
     
    650663        ++iObs;
    651664        ll(iObs)      = satData->L3 - cmpValue(satData, true);
    652         PP(iObs,iObs) = 1.0 / (sig_L3_GPS * sig_L3_GPS);
     665        PP(iObs,iObs) = 1.0 / (_sigL3 * _sigL3);
    653666        for (int iPar = 1; iPar <= _params.size(); iPar++) {
    654667          if (_params[iPar-1]->type == bncParam::AMB_L3 &&
     
    672685
    673686        ll(iObs)      = satData->L3 - cmpValue(satData, true);
    674         PP(iObs,iObs) = 1.0 / (sig_L3_GLO * sig_L3_GLO);
     687        PP(iObs,iObs) = 1.0 / (_sigL3 * _sigL3);
    675688        for (int iPar = 1; iPar <= _params.size(); iPar++) {
    676689          if (_params[iPar-1]->type == bncParam::AMB_L3 &&
  • trunk/BNC/bncmodel.h

    r2670 r2720  
    114114  ColumnVector          _xcBanc;
    115115  ColumnVector          _ellBanc;
    116   bool                  _static;
    117116  bool                  _usePhase;
    118117  bool                  _estTropo;
     
    124123  QMap<QString, double> _windUpSum;
    125124  QVector<pppPos*>      _posAverage;
     125  double                _quickStart;
     126  double                _sigCrd0;
     127  double                _sigCrdP;
     128  double                _sigTrp0;
     129  double                _sigTrpP;
     130  double                _sigL3;
     131  double                _sigP3;
     132  double                _sigAmb0;
     133  double                _sigClk0;
    126134};
    127135
Note: See TracChangeset for help on using the changeset viewer.