Changeset 7278 in ntrip for trunk/BNC/src/ephemeris.cpp
- Timestamp:
- Sep 15, 2015, 4:48:34 AM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/BNC/src/ephemeris.cpp
r7169 r7278 23 23 _orbCorr = 0; 24 24 _clkCorr = 0; 25 } 26 // Destructor 27 //////////////////////////////////////////////////////////////////////////// 28 t_eph::~t_eph() { 29 if (_orbCorr) 30 delete _orbCorr; 31 if (_clkCorr) 32 delete _clkCorr; 25 33 } 26 34 … … 313 321 double OM = _OMEGA0 + (_OMEGADOT - omegaEarth)*tk - 314 322 omegaEarth*_TOEsec; 315 323 316 324 double sinom = sin(OM); 317 325 double cosom = cos(OM); … … 320 328 xc[0] = xp*cosom - yp*cosi*sinom; 321 329 xc[1] = xp*sinom + yp*cosi*cosom; 322 xc[2] = yp*sini; 330 xc[2] = yp*sini; 323 331 324 332 double tc = tt - _TOC; … … 329 337 double tanv2 = tan(v/2); 330 338 double dEdM = 1 / (1 - _e*cos(E)); 331 double dotv = sqrt((1.0 + _e)/(1.0 - _e)) / cos(E/2)/cos(E/2) / (1 + tanv2*tanv2) 339 double dotv = sqrt((1.0 + _e)/(1.0 - _e)) / cos(E/2)/cos(E/2) / (1 + tanv2*tanv2) 332 340 * dEdM * n; 333 341 double dotu = dotv + (-_Cuc*sin2u0 + _Cus*cos2u0)*2*dotv; 334 342 double dotom = _OMEGADOT - omegaEarth; 335 343 double doti = _IDOT + (-_Cic*sin2u0 + _Cis*cos2u0)*2*dotv; 336 double dotr = a0 * _e*sin(E) * dEdM * n 344 double dotr = a0 * _e*sin(E) * dEdM * n 337 345 + (-_Crc*sin2u0 + _Crs*cos2u0)*2*dotv; 338 346 double dotx = dotr*cos(u) - r*sin(u)*dotu; … … 1128 1136 } 1129 1137 1130 _x_pos *= 1.e3; 1131 _y_pos *= 1.e3; 1132 _z_pos *= 1.e3; 1133 _x_velocity *= 1.e3; 1134 _y_velocity *= 1.e3; 1135 _z_velocity *= 1.e3; 1136 _x_acceleration *= 1.e3; 1137 _y_acceleration *= 1.e3; 1138 _z_acceleration *= 1.e3; 1138 _x_pos *= 1.e3; 1139 _y_pos *= 1.e3; 1140 _z_pos *= 1.e3; 1141 _x_velocity *= 1.e3; 1142 _y_velocity *= 1.e3; 1143 _z_velocity *= 1.e3; 1144 _x_acceleration *= 1.e3; 1145 _y_acceleration *= 1.e3; 1146 _z_acceleration *= 1.e3; 1139 1147 } 1140 1148 … … 1176 1184 double dt = tt - _TOC; 1177 1185 1178 xc[0] = _x_pos + _x_velocity * dt + _x_acceleration * dt * dt / 2.0; 1179 xc[1] = _y_pos + _y_velocity * dt + _y_acceleration * dt * dt / 2.0; 1180 xc[2] = _z_pos + _z_velocity * dt + _z_acceleration * dt * dt / 2.0; 1186 xc[0] = _x_pos + _x_velocity * dt + _x_acceleration * dt * dt / 2.0; 1187 xc[1] = _y_pos + _y_velocity * dt + _y_acceleration * dt * dt / 2.0; 1188 xc[2] = _z_pos + _z_velocity * dt + _z_acceleration * dt * dt / 2.0; 1181 1189 1182 1190 vv[0] = _x_velocity + _x_acceleration * dt; … … 1455 1463 double sini = 0; 1456 1464 double cosi = 0; 1457 1465 1458 1466 const double iMaxGEO = 10.0 / 180.0 * M_PI; 1459 1467 … … 1470 1478 xc[0] = xp*cosom - yp*cosi*sinom; 1471 1479 xc[1] = xp*sinom + yp*cosi*cosom; 1472 xc[2] = yp*sini; 1480 xc[2] = yp*sini; 1473 1481 } 1474 1482 … … 1486 1494 double xx = xp*cosom - yp*cosi*sinom; 1487 1495 double yy = xp*sinom + yp*cosi*cosom; 1488 double zz = yp*sini; 1496 double zz = yp*sini; 1489 1497 1490 1498 Matrix R1 = BNC_PPP::t_astro::rotX(-5.0 / 180.0 * M_PI); … … 1498 1506 xc[2] = X2(3); 1499 1507 } 1500 1508 1501 1509 double tc = tt - _TOC; 1502 xc[3] = _clock_bias + _clock_drift*tc + _clock_driftrate*tc*tc 1510 xc[3] = _clock_bias + _clock_drift*tc + _clock_driftrate*tc*tc 1503 1511 - 4.442807633e-10 * _e * sqrt(a0) *sin(E); 1504 1512 … … 1507 1515 double tanv2 = tan(v/2); 1508 1516 double dEdM = 1 / (1 - _e*cos(E)); 1509 double dotv = sqrt((1.0 + _e)/(1.0 - _e)) / cos(E/2)/cos(E/2) 1517 double dotv = sqrt((1.0 + _e)/(1.0 - _e)) / cos(E/2)/cos(E/2) 1510 1518 / (1 + tanv2*tanv2) * dEdM * n; 1511 1519 double dotu = dotv + (-_Cuc*sin2u0 + _Cus*cos2u0)*2*dotv; 1512 1520 double dotom = _OMEGADOT - t_CST::omega; 1513 1521 double doti = _IDOT + (-_Cic*sin2u0 + _Cis*cos2u0)*2*dotv; 1514 double dotr = a0 * _e*sin(E) * dEdM * n 1522 double dotr = a0 * _e*sin(E) * dEdM * n 1515 1523 + (-_Crc*sin2u0 + _Crs*cos2u0)*2*dotv; 1516 1524 double dotx = dotr*cos(u) - r*sin(u)*dotu; … … 1520 1528 - xp*sinom*dotom - yp*cosi*cosom*dotom // dX / dOMEGA 1521 1529 + yp*sini*sinom*doti; // dX / di 1522 1530 1523 1531 vv[1] = sinom *dotx + cosi*cosom *doty 1524 1532 + xp*cosom*dotom - yp*cosi*sinom*dotom … … 1527 1535 vv[2] = sini *doty + yp*cosi *doti; 1528 1536 1529 // dotC = _clock_drift + _clock_driftrate*tc 1537 // dotC = _clock_drift + _clock_driftrate*tc 1530 1538 // - 4.442807633e-10*_e*sqrt(a0)*cos(E) * dEdM * n; 1531 1539
Note:
See TracChangeset
for help on using the changeset viewer.