mirror of
https://github.com/gnss-sdr/gnss-sdr
synced 2024-12-04 23:40:04 +00:00
Fix units of ephemeris angles in comments
Fix angle units in retrieval of reduced CED ephemeris
This commit is contained in:
parent
d82acd9c41
commit
525a8ba602
@ -6,21 +6,21 @@ package gnss_sdr;
|
||||
|
||||
message GalileoEphemeris {
|
||||
int32 PRN = 1; // SV ID
|
||||
double M_0 = 2; // Mean anomaly at reference time [semi-circles]
|
||||
double delta_n = 3; // Mean motion difference from computed value [semi-circles/sec]
|
||||
double M_0 = 2; // Mean anomaly at reference time [rad]
|
||||
double delta_n = 3; // Mean motion difference from computed value [rad/sec]
|
||||
double ecc = 4; // Eccentricity
|
||||
double sqrtA = 5; // Square root of the semi-major axis [meters^1/2]
|
||||
double OMEGA_0 = 6; // Longitude of ascending node of orbital plane at weekly epoch [semi-circles]
|
||||
double i_0 = 7; // Inclination angle at reference time [semi-circles]
|
||||
double omega = 8; // Argument of perigee [semi-circles]
|
||||
double OMEGAdot = 9; // Rate of right ascension [semi-circles/sec]
|
||||
double idot = 10; // Rate of inclination angle [semi-circles/sec]
|
||||
double Cuc = 11; // Amplitude of the cosine harmonic correction term to the argument of latitude [radians]
|
||||
double Cus = 12; // Amplitude of the sine harmonic correction term to the argument of latitude [radians]
|
||||
double OMEGA_0 = 6; // Longitude of ascending node of orbital plane at weekly epoch [rad]
|
||||
double i_0 = 7; // Inclination angle at reference time [rad]
|
||||
double omega = 8; // Argument of perigee [rad]
|
||||
double OMEGAdot = 9; // Rate of right ascension [rad/sec]
|
||||
double idot = 10; // Rate of inclination angle [rad/sec]
|
||||
double Cuc = 11; // Amplitude of the cosine harmonic correction term to the argument of latitude [rad]
|
||||
double Cus = 12; // Amplitude of the sine harmonic correction term to the argument of latitude [rad]
|
||||
double Crc = 13; // Amplitude of the cosine harmonic correction term to the orbit radius [meters]
|
||||
double Crs = 14; // Amplitude of the sine harmonic correction term to the orbit radius [meters]
|
||||
double Cic = 15; // Amplitude of the cosine harmonic correction term to the angle of inclination [radians]
|
||||
double Cis = 16; // Amplitude of the sine harmonic correction term to the angle of inclination [radians]
|
||||
double Cic = 15; // Amplitude of the cosine harmonic correction term to the angle of inclination [rad]
|
||||
double Cis = 16; // Amplitude of the sine harmonic correction term to the angle of inclination [rad]
|
||||
int32 toe = 17; // Ephemeris reference time [s]
|
||||
|
||||
// Clock correction parameters
|
||||
|
@ -6,21 +6,21 @@ package gnss_sdr;
|
||||
|
||||
message GpsEphemeris {
|
||||
int32 PRN = 1; // SV ID
|
||||
double M_0 = 2; // Mean anomaly at reference time [semi-circles]
|
||||
double delta_n = 3; // Mean motion difference from computed value [semi-circles/sec]
|
||||
double M_0 = 2; // Mean anomaly at reference time [rad]
|
||||
double delta_n = 3; // Mean motion difference from computed value [rad/sec]
|
||||
double ecc = 4; // Eccentricity
|
||||
double sqrtA = 5; // Square root of the semi-major axis [meters^1/2]
|
||||
double OMEGA_0 = 6; // Longitude of ascending node of orbital plane at weekly epoch [semi-circles]
|
||||
double i_0 = 7; // Inclination angle at reference time [semi-circles]
|
||||
double omega = 8; // Argument of perigee [semi-circles]
|
||||
double OMEGAdot = 9; // Rate of right ascension [semi-circles/sec]
|
||||
double idot = 10; // Rate of inclination angle [semi-circles/sec]
|
||||
double Cuc = 11; // Amplitude of the cosine harmonic correction term to the argument of latitude [radians]
|
||||
double Cus = 12; // Amplitude of the sine harmonic correction term to the argument of latitude [radians]
|
||||
double OMEGA_0 = 6; // Longitude of ascending node of orbital plane at weekly epoch [rad]
|
||||
double i_0 = 7; // Inclination angle at reference time [rad]
|
||||
double omega = 8; // Argument of perigee [rad]
|
||||
double OMEGAdot = 9; // Rate of right ascension [rad/sec]
|
||||
double idot = 10; // Rate of inclination angle [rad/sec]
|
||||
double Cuc = 11; // Amplitude of the cosine harmonic correction term to the argument of latitude [rad]
|
||||
double Cus = 12; // Amplitude of the sine harmonic correction term to the argument of latitude [rad]
|
||||
double Crc = 13; // Amplitude of the cosine harmonic correction term to the orbit radius [meters]
|
||||
double Crs = 14; // Amplitude of the sine harmonic correction term to the orbit radius [meters]
|
||||
double Cic = 15; // Amplitude of the cosine harmonic correction term to the angle of inclination [radians]
|
||||
double Cis = 16; // Amplitude of the sine harmonic correction term to the angle of inclination [radians]
|
||||
double Cic = 15; // Amplitude of the cosine harmonic correction term to the angle of inclination [rad]
|
||||
double Cis = 16; // Amplitude of the sine harmonic correction term to the angle of inclination [rad]
|
||||
int32 toe = 17; // Ephemeris reference time [s]
|
||||
|
||||
// Clock correction parameters
|
||||
|
@ -401,15 +401,15 @@ Galileo_Ephemeris Galileo_Fnav_Message::get_ephemeris() const
|
||||
ephemeris.flag_all_ephemeris = flag_all_ephemeris;
|
||||
ephemeris.IOD_ephemeris = IOD_ephemeris;
|
||||
ephemeris.PRN = FNAV_SV_ID_PRN_1;
|
||||
ephemeris.M_0 = FNAV_M0_2; // Mean anomaly at reference time [semi-circles]
|
||||
ephemeris.delta_n = FNAV_deltan_3; // Mean motion difference from computed value [semi-circles/sec]
|
||||
ephemeris.M_0 = FNAV_M0_2; // Mean anomaly at reference time [rad]
|
||||
ephemeris.delta_n = FNAV_deltan_3; // Mean motion difference from computed value [rad/sec]
|
||||
ephemeris.ecc = FNAV_e_2; // Eccentricity
|
||||
ephemeris.sqrtA = FNAV_a12_2; // Square root of the semi-major axis [meters^1/2]
|
||||
ephemeris.OMEGA_0 = FNAV_omega0_2; // Longitude of ascending node of orbital plane at weekly epoch [semi-circles]
|
||||
ephemeris.i_0 = FNAV_i0_3; // Inclination angle at reference time [semi-circles]
|
||||
ephemeris.omega = FNAV_w_3; // Argument of perigee [semi-circles]
|
||||
ephemeris.OMEGAdot = FNAV_omegadot_2; // Rate of right ascension [semi-circles/sec]
|
||||
ephemeris.idot = FNAV_idot_2; // Rate of inclination angle [semi-circles/sec]
|
||||
ephemeris.OMEGA_0 = FNAV_omega0_2; // Longitude of ascending node of orbital plane at weekly epoch [rad]
|
||||
ephemeris.i_0 = FNAV_i0_3; // Inclination angle at reference time [rad]
|
||||
ephemeris.omega = FNAV_w_3; // Argument of perigee [rad]
|
||||
ephemeris.OMEGAdot = FNAV_omegadot_2; // Rate of right ascension [rad/sec]
|
||||
ephemeris.idot = FNAV_idot_2; // Rate of inclination angle [rad/sec]
|
||||
ephemeris.Cuc = FNAV_Cuc_3; // Amplitude of the cosine harmonic correction term to the argument of latitude [radians]
|
||||
ephemeris.Cus = FNAV_Cus_3; // Amplitude of the sine harmonic correction term to the argument of latitude [radians]
|
||||
ephemeris.Crc = FNAV_Crc_3; // Amplitude of the cosine harmonic correction term to the orbit radius [meters]
|
||||
|
@ -428,21 +428,21 @@ Galileo_Ephemeris Galileo_Inav_Message::get_ephemeris() const
|
||||
ephemeris.IOD_ephemeris = IOD_ephemeris;
|
||||
ephemeris.IOD_nav = IOD_nav_1;
|
||||
ephemeris.PRN = SV_ID_PRN_4;
|
||||
ephemeris.M_0 = M0_1; // Mean anomaly at reference time [semi-circles]
|
||||
ephemeris.delta_n = delta_n_3; // Mean motion difference from computed value [semi-circles/sec]
|
||||
ephemeris.M_0 = M0_1; // Mean anomaly at reference time [rad]
|
||||
ephemeris.delta_n = delta_n_3; // Mean motion difference from computed value [rad/sec]
|
||||
ephemeris.ecc = e_1; // Eccentricity
|
||||
ephemeris.sqrtA = A_1; // Square root of the semi-major axis [meters^1/2]
|
||||
ephemeris.OMEGA_0 = OMEGA_0_2; // Longitude of ascending node of orbital plane at weekly epoch [semi-circles]
|
||||
ephemeris.i_0 = i_0_2; // Inclination angle at reference time [semi-circles]
|
||||
ephemeris.omega = omega_2; // Argument of perigee [semi-circles]
|
||||
ephemeris.OMEGAdot = OMEGA_dot_3; // Rate of right ascension [semi-circles/sec]
|
||||
ephemeris.idot = iDot_2; // Rate of inclination angle [semi-circles/sec]
|
||||
ephemeris.Cuc = C_uc_3; // Amplitude of the cosine harmonic correction term to the argument of latitude [radians]
|
||||
ephemeris.Cus = C_us_3; // Amplitude of the sine harmonic correction term to the argument of latitude [radians]
|
||||
ephemeris.OMEGA_0 = OMEGA_0_2; // Longitude of ascending node of orbital plane at weekly epoch [rad]
|
||||
ephemeris.i_0 = i_0_2; // Inclination angle at reference time [rad]
|
||||
ephemeris.omega = omega_2; // Argument of perigee [rad]
|
||||
ephemeris.OMEGAdot = OMEGA_dot_3; // Rate of right ascension [rad/sec]
|
||||
ephemeris.idot = iDot_2; // Rate of inclination angle [rad/sec]
|
||||
ephemeris.Cuc = C_uc_3; // Amplitude of the cosine harmonic correction term to the argument of latitude [rad]
|
||||
ephemeris.Cus = C_us_3; // Amplitude of the sine harmonic correction term to the argument of latitude [rad]
|
||||
ephemeris.Crc = C_rc_3; // Amplitude of the cosine harmonic correction term to the orbit radius [meters]
|
||||
ephemeris.Crs = C_rs_3; // Amplitude of the sine harmonic correction term to the orbit radius [meters]
|
||||
ephemeris.Cic = C_ic_4; // Amplitude of the cosine harmonic correction term to the angle of inclination [radians]
|
||||
ephemeris.Cis = C_is_4; // Amplitude of the sine harmonic correction term to the angle of inclination [radians]
|
||||
ephemeris.Cic = C_ic_4; // Amplitude of the cosine harmonic correction term to the angle of inclination [rad]
|
||||
ephemeris.Cis = C_is_4; // Amplitude of the sine harmonic correction term to the angle of inclination [rad]
|
||||
ephemeris.toe = t0e_1; // Ephemeris reference time [s]
|
||||
|
||||
// Clock correction parameters
|
||||
@ -609,8 +609,7 @@ Galileo_Ephemeris Galileo_Inav_Message::get_reduced_ced() const
|
||||
ced.af1red = ced_af1red;
|
||||
|
||||
Galileo_Ephemeris eph = ced.compute_eph();
|
||||
eph.BGD_E1E5a = BGD_E1E5a_5;
|
||||
eph.BGD_E1E5b = BGD_E1E5b_5;
|
||||
|
||||
return eph;
|
||||
}
|
||||
|
||||
|
@ -248,22 +248,22 @@ private:
|
||||
// Word type 1: Ephemeris (1/4)
|
||||
int32_t IOD_nav_1{}; // IOD_nav page 1
|
||||
int32_t t0e_1{}; // Ephemeris reference time [s]
|
||||
double M0_1{}; // Mean anomaly at reference time [semi-circles]
|
||||
double M0_1{}; // Mean anomaly at reference time [rad]
|
||||
double e_1{}; // Eccentricity
|
||||
double A_1{}; // Square root of the semi-major axis [meters^1/2]
|
||||
|
||||
// Word type 2: Ephemeris (2/4)
|
||||
int32_t IOD_nav_2{}; // IOD_nav page 2
|
||||
double OMEGA_0_2{}; // Longitude of ascending node of orbital plane at weekly epoch [semi-circles]
|
||||
double i_0_2{}; // Inclination angle at reference time [semi-circles]
|
||||
double omega_2{}; // Argument of perigee [semi-circles]
|
||||
double iDot_2{}; // Rate of inclination angle [semi-circles/sec]
|
||||
double OMEGA_0_2{}; // Longitude of ascending node of orbital plane at weekly epoch [rad]
|
||||
double i_0_2{}; // Inclination angle at reference time [rad]
|
||||
double omega_2{}; // Argument of perigee [rad]
|
||||
double iDot_2{}; // Rate of inclination angle [rad/sec]
|
||||
|
||||
// Word type 3: Ephemeris (3/4) and SISA
|
||||
int32_t IOD_nav_3{};
|
||||
int32_t SISA_3{};
|
||||
double OMEGA_dot_3{}; // Rate of right ascension [semi-circles/sec]
|
||||
double delta_n_3{}; // Mean motion difference from computed value [semi-circles/sec]
|
||||
double OMEGA_dot_3{}; // Rate of right ascension [rad/sec]
|
||||
double delta_n_3{}; // Mean motion difference from computed value [rad/sec]
|
||||
double C_uc_3{}; // Amplitude of the cosine harmonic correction term to the argument of latitude [radians]
|
||||
double C_us_3{}; // Amplitude of the sine harmonic correction term to the argument of latitude [radians]
|
||||
double C_rc_3{}; // Amplitude of the cosine harmonic correction term to the orbit radius [meters]
|
||||
|
@ -28,12 +28,11 @@ Galileo_Ephemeris Galileo_Reduced_CED::compute_eph() const
|
||||
eph.sqrtA = std::sqrt(Ared); // Square root of the semi-major axis [meters^1/2]
|
||||
const double i_nominal = 56.0; // degrees (Table 1 Galileo ICD 2.0)
|
||||
const double i0red = Deltai0red + i_nominal / 180.0;
|
||||
eph.i_0 = i0red; // Inclination angle at reference time [semi-circles]
|
||||
eph.i_0 = i0red * GNSS_PI; // Inclination angle at reference time [rad]
|
||||
eph.ecc = std::sqrt(exred * exred + eyred * eyred); // Eccentricity
|
||||
const double omega_semicircles = std::atan2(eyred, exred) / GNSS_PI;
|
||||
eph.omega = omega_semicircles; // Argument of perigee [semi-circles]
|
||||
eph.M_0 = lambda0red - omega_semicircles; // Mean anomaly at reference time [semi-circles]
|
||||
eph.OMEGA_0 = Omega0red; // Longitude of ascending node of orbital plane at weekly epoch [semi-circles]
|
||||
eph.omega = std::atan2(eyred, exred); // Argument of perigee [rad]
|
||||
eph.M_0 = lambda0red * GNSS_PI - eph.omega; // Mean anomaly at reference time [rad]
|
||||
eph.OMEGA_0 = Omega0red * GNSS_PI; // Longitude of ascending node of orbital plane at weekly epoch [rad]
|
||||
|
||||
eph.flag_all_ephemeris = true;
|
||||
eph.IOD_ephemeris = IODnav;
|
||||
|
@ -49,9 +49,9 @@ public:
|
||||
double DeltaAred{}; //!< Difference between the Reduced CED semi-major axis and the nominal semi-major axis [meters]
|
||||
double exred{}; //!< Reduced CED eccentricity vector component x
|
||||
double eyred{}; //!< Reduced CED eccentricity vector component y
|
||||
double Deltai0red{}; //!< Difference between the Reduced CED inclination angle at reference time and the nominal inclination [semi-circles]
|
||||
double Omega0red{}; //!< Reduced CED longitude of ascending node at weekly epoch [semi-circles]
|
||||
double lambda0red{}; //!< Reduced CED mean argument of latitude [semi-circles]
|
||||
double Deltai0red{}; //!< Difference between the Reduced CED inclination angle at reference time and the nominal inclination [rad]
|
||||
double Omega0red{}; //!< Reduced CED longitude of ascending node at weekly epoch [rad]
|
||||
double lambda0red{}; //!< Reduced CED mean argument of latitude [rad]
|
||||
double af0red{}; //!< Reduced CED satellite clock bias correction coefficient [seconds]
|
||||
double af1red{}; //!< Reduced CED satellite clock drift correction coefficient [seconds/seconds]
|
||||
};
|
||||
|
@ -68,21 +68,21 @@ public:
|
||||
void satellitePosition(double transmitTime); //!< Computes the ECEF SV coordinates and ECEF velocity
|
||||
|
||||
uint32_t PRN{}; //!< SV ID
|
||||
double M_0{}; //!< Mean anomaly at reference time [semi-circles]
|
||||
double delta_n{}; //!< Mean motion difference from computed value [semi-circles/sec]
|
||||
double M_0{}; //!< Mean anomaly at reference time [rad]
|
||||
double delta_n{}; //!< Mean motion difference from computed value [rad/sec]
|
||||
double ecc{}; //!< Eccentricity
|
||||
double sqrtA{}; //!< Square root of the semi-major axis [meters^1/2]
|
||||
double OMEGA_0{}; //!< Longitude of ascending node of orbital plane at weekly epoch [semi-circles]
|
||||
double i_0{}; //!< Inclination angle at reference time [semi-circles]
|
||||
double omega{}; //!< Argument of perigee [semi-circles]
|
||||
double OMEGAdot{}; //!< Rate of right ascension [semi-circles/sec]
|
||||
double idot{}; //!< Rate of inclination angle [semi-circles/sec]
|
||||
double Cuc{}; //!< Amplitude of the cosine harmonic correction term to the argument of latitude [radians]
|
||||
double Cus{}; //!< Amplitude of the sine harmonic correction term to the argument of latitude [radians]
|
||||
double OMEGA_0{}; //!< Longitude of ascending node of orbital plane at weekly epoch [rad]
|
||||
double i_0{}; //!< Inclination angle at reference time [rad]
|
||||
double omega{}; //!< Argument of perigee [rad]
|
||||
double OMEGAdot{}; //!< Rate of right ascension [rad/sec]
|
||||
double idot{}; //!< Rate of inclination angle [rad/sec]
|
||||
double Cuc{}; //!< Amplitude of the cosine harmonic correction term to the argument of latitude [rad]
|
||||
double Cus{}; //!< Amplitude of the sine harmonic correction term to the argument of latitude [rad]
|
||||
double Crc{}; //!< Amplitude of the cosine harmonic correction term to the orbit radius [meters]
|
||||
double Crs{}; //!< Amplitude of the sine harmonic correction term to the orbit radius [meters]
|
||||
double Cic{}; //!< Amplitude of the cosine harmonic correction term to the angle of inclination [radians]
|
||||
double Cis{}; //!< Amplitude of the sine harmonic correction term to the angle of inclination [radians]
|
||||
double Cic{}; //!< Amplitude of the cosine harmonic correction term to the angle of inclination [rad]
|
||||
double Cis{}; //!< Amplitude of the sine harmonic correction term to the angle of inclination [rad]
|
||||
int32_t toe{}; //!< Ephemeris reference time [s]
|
||||
|
||||
// Clock correction parameters
|
||||
|
Loading…
Reference in New Issue
Block a user