Changeset 8619 in ntrip for trunk/BNC/src/pppModel.cpp
- Timestamp:
- Feb 28, 2019, 2:49:35 PM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/BNC/src/pppModel.cpp
r8204 r8619 369 369 /////////////////////////////////////////////////////////////////////////// 370 370 double t_windUp::value(const bncTime& etime, const ColumnVector& rRec, 371 t_prn prn, const ColumnVector& rSat) { 371 t_prn prn, const ColumnVector& rSat, bool ssr, 372 double yaw, const ColumnVector& vSat) { 372 373 373 374 if (etime.mjddec() != lastEtime[prn.toInt()]) { … … 380 381 // GPS Satellite unit Vectors sz, sy, sx 381 382 // ------------------------------------- 383 ColumnVector sHlp; 384 if (!ssr) { 385 sHlp = t_astro::Sun(etime.mjddec()); 386 } 387 else { 388 ColumnVector Omega(3); 389 Omega[0] = 0.0; 390 Omega[1] = 0.0; 391 Omega[2] = t_CST::omega; 392 sHlp = vSat + crossproduct(Omega, rSat); 393 } 394 sHlp /= sHlp.norm_Frobenius(); 395 382 396 ColumnVector sz = -rSat / rSat.norm_Frobenius(); 383 384 ColumnVector xSun = t_astro::Sun(etime.mjddec()); 385 xSun /= xSun.norm_Frobenius(); 386 387 ColumnVector sy = crossproduct(sz, xSun); 397 ColumnVector sy = crossproduct(sz, sHlp); 388 398 ColumnVector sx = crossproduct(sy, sz); 399 400 // Yaw consideration 401 sx = t_astro::rotZ(yaw) * sx; 389 402 390 403 // Effective Dipole of the GPS Satellite Antenna 391 404 // --------------------------------------------- 392 ColumnVector dipSat = sx - rho * DotProduct(rho,sx) 393 - crossproduct(rho, sy); 405 ColumnVector dipSat = sx - rho * DotProduct(rho,sx) - crossproduct(rho, sy); 394 406 395 407 // Receiver unit Vectors rx, ry … … 397 409 ColumnVector rx(3); 398 410 ColumnVector ry(3); 399 400 411 double recEll[3]; xyz2ell(rRec.data(), recEll) ; 401 412 double neu[3]; … … 413 424 // Effective Dipole of the Receiver Antenna 414 425 // ---------------------------------------- 415 ColumnVector dipRec = rx - rho * DotProduct(rho,rx) 416 + crossproduct(rho, ry); 426 ColumnVector dipRec = rx - rho * DotProduct(rho,rx) + crossproduct(rho, ry); 417 427 418 428 // Resulting Effect … … 420 430 double alpha = DotProduct(dipSat,dipRec) / 421 431 (dipSat.norm_Frobenius() * dipRec.norm_Frobenius()); 422 432 /* 423 433 if (alpha > 1.0) alpha = 1.0; 424 434 if (alpha < -1.0) alpha = -1.0; 425 435 */ 426 436 double dphi = acos(alpha) / 2.0 / M_PI; // in cycles 427 437
Note:
See TracChangeset
for help on using the changeset viewer.