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

Code Based Positioning (SPS): Difference between revisions

From Navipedia
Jump to navigation Jump to search
No edit summary
No edit summary
 
(12 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{Article Infobox2
{{Article Infobox2
|Category=Fundamentals
|Category=Fundamentals
|Authors=J. Sanz Subirana, J.M. Juan Zornoza and M. Hernández-Pajares, Technical University of Catalonia, Spain.
|Level=Advanced
|YearOfPublication=2011
|Title={{PAGENAME}}
|Title={{PAGENAME}}
|Authors= J. Sanz Subirana, JM. Juan Zornoza and M. Hernandez-Pajares, University of Catalunia, Spain.
|Level=Medium
|YearOfPublication=2011
|Logo=gAGE
}}
}}
The target is to determine the receiver coordinates <math>{\mathbf r}=(x,y,z)</math> and clock offset <math>\delta t</math> from pseudorange measurements <math>R^j</math> of at least 4 satellites in view.
The target is to determine the receiver coordinates <math>{\mathbf r}=(x,y,z)</math> and clock offset <math>\delta t</math> from pseudorange measurements <math>R^j</math> of at least 4 satellites in view.
The positioning principle is based on solving a [[An intuitive approach to the GNSS positioning|geometric problem]] from the measured ranges to the satellites, with known coordinates. The satellite coordinates can be computed from the broadcast message, which also provides all necessary information for the measurements modelling for the Standard Positioning Service.
The positioning principle is based on solving a [[An intuitive approach to the GNSS positioning|geometric problem]] from the measured ranges to the satellites, with known coordinates. The satellite coordinates can be computed from the broadcast message, which also provides all necessary information for the measurements modelling for the Standard Positioning Service (SPS).




Line 23: Line 21:
::<math>
::<math>
\begin{array}{r}
\begin{array}{r}
R^j-D^j\simeq \sqrt{(x-x^j)^2+(y-y^j)^2+(z-z^j)^2}+c\,\delta t\\[0.3cm]
R^j-D^j\simeq \sqrt{(x^j-x)^2+(y^j-y)^2+(z^j-z)^2}+c\,\delta t\\[0.3cm]
j=1,2,...,n~~~~ (n \geq 4)\\
j=1,2,...,n~~~~ (n \geq 4)\\
\end{array}
\end{array}
Line 41: Line 39:


::<math>
::<math>
\rho^j(x,y,z)=\sqrt{(x-x^j)^2+(y-y^j)^2+(z-z^j)^2}
\rho^j(x,y,z)=\sqrt{(x^j-x)^2+(y^j-y)^2+(z^j-z)^2}
\qquad \mbox{(3)} </math>
\qquad \mbox{(3)} </math>


Line 64: Line 62:




The previous navigation equations system <ref group="footnotes"> Strictly speaking, this system corresponds to the case where satellite coordinates at emission time have been calculated using pseudorange algorithm described in [[Satellite Coordinates Computation]]. In case of using the purely geometric algorithm of [[Geometric Range Modelling: Satellite Coordinates Computation|Satellite Coordinates]], the elements of the associated matrix (design matrix or Jacobian) varies slightly.</ref>  are written in matrix notation as:
The previous navigation equation system <ref group="footnotes"> Strictly speaking, this system corresponds to the case where satellite coordinates at emission time have been calculated using pseudorange algorithm described in [[Satellite Coordinates Computation]]. In case of using the purely geometric algorithm of [[Satellite Coordinates Computation|Satellite Coordinates]], the elements of the associated matrix (design matrix or Jacobian) varies slightly.</ref>  is written in matrix notation as:


::<math>
::<math>
Line 131: Line 129:




The equations (6) will be named ''Navigation Equations System'' and can be written in compact form as:
The equations (6) will be named ''Navigation Equation System'' and can be written in compact form as:


:<math>
:<math>
Line 143: Line 141:
::* '''Prefit-residuals''': Y is a (<math>n \times 1</math>) vector containing the residuals between the measured and predicted pseudoranges, "before fitting" the parameters <math>(dx,dy,dz, \delta t)</math> to the linear model.
::* '''Prefit-residuals''': Y is a (<math>n \times 1</math>) vector containing the residuals between the measured and predicted pseudoranges, "before fitting" the parameters <math>(dx,dy,dz, \delta t)</math> to the linear model.


::* '''Geometry matrix''':  G is a  (<math>n \times 4</math>) matrix containing the receiver-satellite geometry <ref group="footnotes"> The matrix <math>{\mathbf G}</math> can be computed in the ENU coordinates instead of XYZ as in (6). In this local system the rows are  <math>[\cos el^i \sin az^i,  \cos el^i \cos az^i, \sin el^i, 1]</math>, where <math>el^i</math> and <math>az^i</math> are the elevation and azimuth angle of the satellite <math>i</math> observed from the receiver position (please refer to [[Transformations between ECEF and ENU coordinates]] for further details)</ref>. The first three elements of each row (j = 1,...,n) are the components of the unitary line-of-sight-vector <math>{\boldsymbol \rho}= \frac{(x_0-x^j,y_0-y^j,z_0-z^j)}{|| (x_0-x^j,y_0-y^j,z_0-z^j)||}</math>.
::* '''Geometry matrix''':  G is a  (<math>n \times 4</math>) matrix containing the receiver-satellite geometry <ref group="footnotes"> The matrix <math>{\mathbf G}</math> can be computed in the ENU coordinates instead of XYZ as in (6). In this local system the rows are  <math>[\cos el^i \sin az^i,  \cos el^i \cos az^i, \sin el^i, 1]</math>, where <math>el^i</math> and <math>az^i</math> are the elevation and azimuth angle of the satellite <math>i</math> observed from the receiver position (please refer to [[Transformations between ECEF and ENU coordinates]] for further details)</ref>. The first three elements of each row (j = 1,...,n) are the components of the unitary line-of-sight-vector <math>{\boldsymbol \rho}= -\frac{(x_0-x^j,y_0-y^j,z_0-z^j)}{|| (x_0-x^j,y_0-y^j,z_0-z^j)||}</math>.


::* '''Unknown parameters''': X is a (<math>4 \times 1</math>) vector containing the discrepancy between the approximated and the true coordinates <math>(dx,dy,dz)</math>, and the receiver clock offset <math>\delta t</math>.
::* '''Unknown parameters''': X is a (<math>4 \times 1</math>) vector containing the deviation  <math>(dx,dy,dz)</math> between the approximated and the true coordinates and the receiver clock offset <math>\delta t</math>.





Latest revision as of 07:39, 5 April 2013


FundamentalsFundamentals
Title Code Based Positioning (SPS)
Author(s) J. Sanz Subirana, J.M. Juan Zornoza and M. Hernández-Pajares, Technical University of Catalonia, Spain.
Level Advanced
Year of Publication 2011

The target is to determine the receiver coordinates [math]\displaystyle{ {\mathbf r}=(x,y,z) }[/math] and clock offset [math]\displaystyle{ \delta t }[/math] from pseudorange measurements [math]\displaystyle{ R^j }[/math] of at least 4 satellites in view. The positioning principle is based on solving a geometric problem from the measured ranges to the satellites, with known coordinates. The satellite coordinates can be computed from the broadcast message, which also provides all necessary information for the measurements modelling for the Standard Positioning Service (SPS).


From the code pseudorange measurements [math]\displaystyle{ R^j }[/math] for, at least, four satellites (see GNSS Measurements Modelling and Instrumental Delay),

[math]\displaystyle{ R^j=\rho^j+c(\delta t-\delta t^j)+T^j+\hat{\alpha}\, I^j+TGD^j+\mathcal{M}^j+{\boldsymbol \varepsilon}^j \qquad \mbox{(1)} }[/math]


The following measurement equations system can be written, neglecting the multipath and receiver noise terms:

[math]\displaystyle{ \begin{array}{r} R^j-D^j\simeq \sqrt{(x^j-x)^2+(y^j-y)^2+(z^j-z)^2}+c\,\delta t\\[0.3cm] j=1,2,...,n~~~~ (n \geq 4)\\ \end{array} \qquad \mbox{(2)} }[/math]


where the left side equations contain the measurements [math]\displaystyle{ R^j }[/math] and all modeled terms [math]\displaystyle{ \left ( D^j=-c\,\delta t^j+T^j+\hat{\alpha}\,I^j+TGD^j \right ) }[/math] (see Clock Modelling, Tropospheric Delay, Klobuchar Ionospheric Model, and Instrumental Delay).


The right side contains the four unknown parameters: The receiver coordinates [math]\displaystyle{ (x,y,z) }[/math] and the receiver clock offset [math]\displaystyle{ \delta t }[/math].


The previous equation (2) defines a non linear system, which a usual resolution technique consists of linearising the geometric range [math]\displaystyle{ \rho }[/math] in the neighbourhood of a point [math]\displaystyle{ (x_0,y_0,z_0) }[/math] corresponding to an approximate receiver position.


Then, linearising the satellite-receiver geometric range

[math]\displaystyle{ \rho^j(x,y,z)=\sqrt{(x^j-x)^2+(y^j-y)^2+(z^j-z)^2} \qquad \mbox{(3)} }[/math]


at the approximative solution [math]\displaystyle{ {\mathbf r}_0=(x_0,y_0,z_0) }[/math], one obtains:

[math]\displaystyle{ \rho^j=\rho_0^j+\frac{x_0-x^j}{\rho_0^j} dx +\frac{y_0-y^j}{\rho_0^j} dy+\frac{z_0-z^j}{\rho_0^j}dz \qquad with \qquad dx=x-x_0; dy=y-y_0;dz=z-z_0 \qquad \mbox{(4)} }[/math]


Substituting (4) into (2) we can rewrite the measurement equations as a linear system (where [math]\displaystyle{ R^j }[/math] can be whatever, smoothed or unsmoothed code):

[math]\displaystyle{ \begin{array}{r} R^j-\rho_0^j-D^j=\frac{x_0-x^j}{\rho_0^j}dx +\frac{y_0-y^j} {\rho_0^j} dy+\frac{z_0-z^j}{\rho_0^j} dz+c\,\delta t\\ \\ j=1,2,...,4~~~~(n \geq 4) \end{array} \qquad \mbox{(5)} }[/math]


The previous navigation equation system [footnotes 1] is written in matrix notation as:

[math]\displaystyle{ \left[ \begin{array}{l} R^1-\rho_0^1-D^1\\ \vdots\\ R^n-\rho_0^n-D^n \end{array} \right] = \left( \begin{array}{cccc} \frac{x_0-x^1}{\rho_0^1}& \frac{y_0-y^1}{\rho_0^1}& \frac{z_0-z^1}{\rho_0^1} & 1\\ \vdots&\vdots&\vdots\\ \frac{x_0-x^n}{\rho_0^n}& \frac{y_0-y^n}{\rho_0^n}& \frac{z_0-z^n}{\rho_0^n} & 1\\ \end{array} \right) \left[ \begin{array}{l} dx\\ dy\\ dz\\ c\,\delta t \end{array} \right] \qquad \mbox{(6)} }[/math]


In general, an over-dimensioned system is obtained (for [math]\displaystyle{ n \gt 4 }[/math]), which can be solved using the Least Squares adjustment.


After solving the equations system (6), the improved estimate of the receiver coordinates is:

[math]\displaystyle{ \begin{array}{l} \left[ \begin{array}{l} x\\ y\\ z\\ \end{array} \right] =\left[ \begin{array}{l} x_0\\ y_0\\ z_0\\ \end{array} \right] + \left[ \begin{array}{l} dx\\ dy\\ dz\\ \end{array} \right] \end{array} \qquad \mbox{(7)} }[/math]


The equations (2) can be linearised again about these new estimates (7) of the receiver position, and the solution can be iterated until the change between two consecutive iterations is under a given threshold. Typically, the iterations converge quickly, in few iterations, even if starting with [math]\displaystyle{ (x_0,y_0,z_0)=(0,0,0) }[/math], i.e., the earth's centre.


The equations (6) will be named Navigation Equation System and can be written in compact form as:

[math]\displaystyle{ {\mathbf Y}={\mathbf G}\,{\mathbf X} \qquad \mbox{(8)} }[/math]


where the vectors and matrix involved can be defined as:

  • Prefit-residuals: Y is a ([math]\displaystyle{ n \times 1 }[/math]) vector containing the residuals between the measured and predicted pseudoranges, "before fitting" the parameters [math]\displaystyle{ (dx,dy,dz, \delta t) }[/math] to the linear model.
  • Geometry matrix: G is a ([math]\displaystyle{ n \times 4 }[/math]) matrix containing the receiver-satellite geometry [footnotes 2]. The first three elements of each row (j = 1,...,n) are the components of the unitary line-of-sight-vector [math]\displaystyle{ {\boldsymbol \rho}= -\frac{(x_0-x^j,y_0-y^j,z_0-z^j)}{|| (x_0-x^j,y_0-y^j,z_0-z^j)||} }[/math].
  • Unknown parameters: X is a ([math]\displaystyle{ 4 \times 1 }[/math]) vector containing the deviation [math]\displaystyle{ (dx,dy,dz) }[/math] between the approximated and the true coordinates and the receiver clock offset [math]\displaystyle{ \delta t }[/math].


Figure 1: GNSS positioning geometric concept.


For more information, please go to the article


Notes

  1. ^ Strictly speaking, this system corresponds to the case where satellite coordinates at emission time have been calculated using pseudorange algorithm described in Satellite Coordinates Computation. In case of using the purely geometric algorithm of Satellite Coordinates, the elements of the associated matrix (design matrix or Jacobian) varies slightly.
  2. ^ The matrix [math]\displaystyle{ {\mathbf G} }[/math] can be computed in the ENU coordinates instead of XYZ as in (6). In this local system the rows are [math]\displaystyle{ [\cos el^i \sin az^i, \cos el^i \cos az^i, \sin el^i, 1] }[/math], where [math]\displaystyle{ el^i }[/math] and [math]\displaystyle{ az^i }[/math] are the elevation and azimuth angle of the satellite [math]\displaystyle{ i }[/math] observed from the receiver position (please refer to Transformations between ECEF and ENU coordinates for further details)

References