Changeset 2244 in ntrip
- Timestamp:
- Jan 12, 2010, 4:59:28 PM (15 years ago)
- Location:
- trunk/BNC
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified trunk/BNC/bncmodel.cpp ¶
r2243 r2244 65 65 const double sig_amb_0 = 1000.0; 66 66 const double sig_P3 = 1.0; 67 const double sig_L3 = 0.01; 67 const double sig_L3_GPS = 0.01; 68 const double sig_L3_GLO = 0.10; 68 69 69 70 // Constructor … … 102 103 // --------------- 103 104 else if (type == RECCLK_GPS) { 104 if (satData->prn[0] == 'G') { 105 return 1.0; 106 } 107 else { 108 return 0.0; 109 } 105 return 1.0; 110 106 } 111 107 else if (type == RECCLK_GLO) { … … 394 390 void bncModel::predict(t_epoData* epoData) { 395 391 392 bool firstCrd = x() == 0.0 && y() == 0.0 && z() == 0.0; 393 394 // Predict Parameter values, add white noise 395 // ----------------------------------------- 396 for (int iPar = 1; iPar <= _params.size(); iPar++) { 397 bncParam* pp = _params[iPar-1]; 398 399 // Coordinates 400 // ----------- 401 if (pp->type == bncParam::CRD_X) { 402 if (firstCrd || !_static) { 403 pp->xx = _xcBanc(1); 404 } 405 _QQ(iPar,iPar) += sig_crd_p * sig_crd_p; 406 } 407 else if (pp->type == bncParam::CRD_Y) { 408 if (firstCrd || !_static) { 409 pp->xx = _xcBanc(2); 410 } 411 _QQ(iPar,iPar) += sig_crd_p * sig_crd_p; 412 } 413 else if (pp->type == bncParam::CRD_Z) { 414 if (firstCrd || !_static) { 415 pp->xx = _xcBanc(3); 416 } 417 _QQ(iPar,iPar) += sig_crd_p * sig_crd_p; 418 } 419 420 // Receiver Clocks 421 // --------------- 422 else if (pp->isClk()) { 423 pp->xx = _xcBanc(4); 424 for (int jj = 1; jj <= _params.size(); jj++) { 425 _QQ(iPar, jj) = 0.0; 426 } 427 _QQ(iPar,iPar) = sig_clk_0 * sig_clk_0; 428 } 429 430 // Tropospheric Delay 431 // ------------------ 432 else if (pp->type == bncParam::TROPO) { 433 _QQ(iPar,iPar) += sig_trp_p * sig_trp_p; 434 } 435 } 436 437 // Add New Ambiguities if necessary 438 // -------------------------------- 396 439 if (_usePhase) { 397 440 … … 432 475 iGPS.next(); 433 476 QString prn = iGPS.key(); 477 t_satData* satData = iGPS.value(); 434 478 bool found = false; 435 479 for (int iPar = 1; iPar <= _params.size(); iPar++) { … … 443 487 bncParam* par = new bncParam(bncParam::AMB_L3, _params.size()+1, prn); 444 488 _params.push_back(par); 489 par->xx = satData->L3 - cmpValue(satData); 445 490 } 446 491 } … … 462 507 bncParam* par = new bncParam(bncParam::AMB_L3, _params.size()+1, prn); 463 508 _params.push_back(par); 464 ///par->xx = satData->L3 - cmpValue(satData);509 par->xx = satData->L3 - cmpValue(satData); 465 510 } 466 511 } … … 490 535 } 491 536 492 bool firstCrd = x() == 0.0 && y() == 0.0 && z() == 0.0;493 494 for (int iPar = 1; iPar <= _params.size(); iPar++) {495 bncParam* pp = _params[iPar-1];496 497 // Coordinates498 // -----------499 if (pp->type == bncParam::CRD_X) {500 if (firstCrd || !_static) {501 pp->xx = _xcBanc(1);502 }503 _QQ(iPar,iPar) += sig_crd_p * sig_crd_p;504 }505 else if (pp->type == bncParam::CRD_Y) {506 if (firstCrd || !_static) {507 pp->xx = _xcBanc(2);508 }509 _QQ(iPar,iPar) += sig_crd_p * sig_crd_p;510 }511 else if (pp->type == bncParam::CRD_Z) {512 if (firstCrd || !_static) {513 pp->xx = _xcBanc(3);514 }515 _QQ(iPar,iPar) += sig_crd_p * sig_crd_p;516 }517 518 // Receiver Clocks519 // ---------------520 else if (pp->isClk()) {521 pp->xx = _xcBanc(4);522 for (int jj = 1; jj <= _params.size(); jj++) {523 _QQ(iPar, jj) = 0.0;524 }525 _QQ(iPar,iPar) = sig_clk_0 * sig_clk_0;526 }527 528 // Tropospheric Delay529 // ------------------530 else if (pp->type == bncParam::TROPO) {531 _QQ(iPar,iPar) += sig_trp_p * sig_trp_p;532 }533 }534 537 } 535 538 … … 596 599 double rhoCmp = cmpValue(satData); 597 600 598 double ellWgtCoeff = 1.0;599 //// double eleD = satData->eleSat * 180.0 / M_PI;600 //// if (eleD < 25.0) {601 //// ellWgtCoeff = 2.5 - (eleD - 10.0) * 0.1;602 //// ellWgtCoeff *= ellWgtCoeff;603 //// }604 605 601 ll(iObs) = satData->P3 - rhoCmp; 606 PP(iObs,iObs) = 1.0 / (sig_P3 * sig_P3) / ellWgtCoeff;602 PP(iObs,iObs) = 1.0 / (sig_P3 * sig_P3); 607 603 for (int iPar = 1; iPar <= _params.size(); iPar++) { 608 604 AA(iObs, iPar) = _params[iPar-1]->partial(satData, false); … … 612 608 ++iObs; 613 609 ll(iObs) = satData->L3 - rhoCmp; 614 PP(iObs,iObs) = 1.0 / (sig_L3 * sig_L3 ) / ellWgtCoeff;610 PP(iObs,iObs) = 1.0 / (sig_L3_GPS * sig_L3_GPS); 615 611 for (int iPar = 1; iPar <= _params.size(); iPar++) { 616 612 if (_params[iPar-1]->type == bncParam::AMB_L3 && … … 635 631 double rhoCmp = cmpValue(satData); 636 632 637 double ellWgtCoeff = 1.0;638 //// double eleD = satData->eleSat * 180.0 / M_PI;639 //// if (eleD < 25.0) {640 //// ellWgtCoeff = 2.5 - (eleD - 10.0) * 0.1;641 //// ellWgtCoeff *= ellWgtCoeff;642 //// }643 644 633 ll(iObs) = satData->L3 - rhoCmp; 645 634 … … 650 639 << setprecision(3) << satData->L3 << endl; 651 640 652 PP(iObs,iObs) = 1.0 / (sig_L3 * sig_L3 ) / ellWgtCoeff;641 PP(iObs,iObs) = 1.0 / (sig_L3_GLO * sig_L3_GLO); 653 642 for (int iPar = 1; iPar <= _params.size(); iPar++) { 654 643 if (_params[iPar-1]->type == bncParam::AMB_L3 && … … 683 672 dx = _QQ * ATP * ll; 684 673 vv = ll - AA * dx; 674 cout << "vv = " << endl; 675 cout << vv.t() << endl; 685 676 686 677 } while (outlierDetection(QQsav, vv, epoData->satDataGPS, -
TabularUnified trunk/BNC/bncpppclient.cpp ¶
r2241 r2244 332 332 ee->position(tt.gpsw(), tt.gpssec(), xc.data(), vv.data()); 333 333 334 if (CORR_REQUIRED) { 334 if (prn[0] == 'G' && CORR_REQUIRED) { 335 335 if (_corr.contains(prn)) { 336 336 t_corr* cc = _corr.value(prn);
Note:
See TracChangeset
for help on using the changeset viewer.