If you wish to contribute or participate in the discussions about articles you are invited to contact the Editor

GPS and Galileo Satellite Coordinates Computation

From Navipedia
Jump to navigation Jump to search


FundamentalsFundamentals
Title GPS and Galileo Satellite Coordinates Computation
Author(s) J. Sanz Subirana, J.M. Juan Zornoza and M. Hernández-Pajares, Technical University of Catalonia, Spain.
Level Intermediate
Year of Publication 2011

Table 1 provides the GPS or Galileo broadcast ephemeris parameters to compute their satellite coordinates at any observation epoch. These parameters are periodically renewed (typically every [math]\displaystyle{ 2 }[/math] hours for GPS and [math]\displaystyle{ 3 }[/math] hours for Galileo) and must not be used out of the prescribed time (about four hours), because the extrapolation error grows exponentially beyond its validity period.


The algorithm provided is from the [GPS/SPS-SS, table 2-15] [footnotes 1].The Galileo satellites follow a similar scheme

Table 1: GPS and Galileo broadcast ephemeris and clock message parameters.


In order to compute satellite coordinates from navigation message, the algorithm provided as follows must be used. An accuracy of about [math]\displaystyle{ 5 }[/math] meters (RMS) is achieved for GPS satellites with S/A=0ff and several tens of meters with S/A=on [footnotes 2]:


  • Compute the time [math]\displaystyle{ t_k }[/math] from the ephemerides reference epoch [math]\displaystyle{ t_{oe} }[/math] ([math]\displaystyle{ t }[/math] and [math]\displaystyle{ t_{oe} }[/math] are expressed in seconds in the GPS week):
[math]\displaystyle{ t_k=t-t_{oe} }[/math]
If [math]\displaystyle{ t_k\gt 302\,400 }[/math] sec, subtract [math]\displaystyle{ 604\,800 }[/math] sec from [math]\displaystyle{ t_k }[/math]. If [math]\displaystyle{ t_k\lt -302\,400 }[/math] sec, add [math]\displaystyle{ 604\,800 }[/math] sec.


  • Compute the mean anomaly for [math]\displaystyle{ t_k }[/math],
[math]\displaystyle{ M_k=M_o+\left( \frac{\sqrt{\mu }}{\sqrt{a^3}}+\Delta n\right)t_k }[/math]


  • Solve (iteratively) the Kepler equation for the eccentricity anomaly [math]\displaystyle{ E_k }[/math]:
[math]\displaystyle{ M_k=E_k-e\sin E_k }[/math]


  • Compute the true anomaly [math]\displaystyle{ v_k }[/math]:
[math]\displaystyle{ v_k=\arctan \left( \frac{\sqrt{1-e^2}\sin E_k}{\cos E_k-e}\right) }[/math]


  • Compute the argument of latitude [math]\displaystyle{ u_k }[/math] from the argument of perigee [math]\displaystyle{ \omega }[/math], true anomaly [math]\displaystyle{ v_k }[/math] and corrections [math]\displaystyle{ c_{uc} }[/math] and [math]\displaystyle{ c_{us} }[/math]:
[math]\displaystyle{ u_k=\omega +v_k+c_{uc}\cos 2\left( \omega +v_k\right) +c_{us}\sin 2\left( \omega +v_k\right) }[/math]


  • Compute the radial distance [math]\displaystyle{ r_k }[/math], considering corrections [math]\displaystyle{ c_{rc} }[/math] and [math]\displaystyle{ c_{rs} }[/math]:
[math]\displaystyle{ r_k=a\left( 1-e\cos E_k\right) +c_{rc}\cos 2\left( \omega +v_k\right) +c_{rs}\sin 2\left( \omega +v_k\right) }[/math]


  • Compute the inclination [math]\displaystyle{ i_k }[/math] of the orbital plane from the inclination [math]\displaystyle{ i_o }[/math] at reference time [math]\displaystyle{ t_{oe} }[/math], and corrections [math]\displaystyle{ c_{ic} }[/math] and [math]\displaystyle{ c_{is} }[/math]:
[math]\displaystyle{ i_k=i_o+\stackrel{\bullet }{i} t_k+c_{ic}\cos 2\left( \omega +v_k\right) +c_{is}\sin 2\left( \omega +v_k\right) }[/math]


  • Compute the longitude of the ascending node [math]\displaystyle{ \lambda_k }[/math] (with respect to Greenwich). This calculation uses the right ascension at the beginning of the current week ([math]\displaystyle{ \Omega _o }[/math]), the correction from the apparent sidereal time variation in Greenwich between the beginning of the week and reference time [math]\displaystyle{ t_k=t-toe }[/math], and the change in longitude of the ascending node from the reference time [math]\displaystyle{ t_{oe} }[/math]:
[math]\displaystyle{ \lambda _k=\Omega _o+\left( \stackrel{\bullet }{\Omega }-\omega _E\right) t_k-\omega _E t_{oe} }[/math]


  • Compute the coordinates in TRS frame, applying three rotations (around [math]\displaystyle{ u_k }[/math], [math]\displaystyle{ i_k }[/math] and [math]\displaystyle{ \lambda _k }[/math]):
[math]\displaystyle{ \left[ \begin{array}{c} X_k \\ Y_k \\ Z_k \end{array} \right] ={\mathbf R}_3\left( -\lambda _k\right) {\mathbf R}_1\left( -i_k\right) {\mathbf R}_3\left( -u_k\right) \left [ \begin{array}{c} r_k \\ 0 \\ 0 \end{array} \right] }[/math]


where [math]\displaystyle{ {\mathbf R}_1 }[/math] and [math]\displaystyle{ {\mathbf R_3} }[/math] are the rotation matrices defined in Transformation between Terrestrial Frames.


Notes

  1. ^ [GPS/SPS-SS], DoD, USA, Global Positioning System Standard Positioning Service Performance Standard. http://www.navcen.uscg.gov/pubs/gps/sigspec/gpssps1.pdf, 1995.
  2. ^ Actually, the S/A was mainly applied to the satellite clocks and, apparently, not so often to the ephemeris.