EE navigations system
Michael S. Braasch, Ph.D., P.E., Fellow Ion Ohio University Avionics Engineering Center, Director
GPS: Theory & Practice
Part 9: Ordinary Least Squares Solution
Copyright © 2010 by Michael S. BraaschGPS: Theory & Practice: Part 9 - OLS Solution
STAND-ALONE GPS POSITIONING
2
Copyright © 2010 by Michael S. BraaschGPS: Theory & Practice: Part 9 - OLS Solution
ERROR CONSIDERATIONS The pseudorange observation equation shows us there are two primary sources for error:
We will get into the details of the errors in the remainder of the course
PRi = xu − xi( )
2 + yu − yi( )
2 + zu − zi( )
2 + bu
Receiver measurement Satellite position
calculation
3
Copyright © 2010 by Michael S. BraaschGPS: Theory & Practice: Part 9 - OLS Solution
STAND-ALONG POSITIONING (CONT’D)
In the absence of errors
PRi = pseudorange to the i-th satellite bu = receiver (user) clock offset or bias (converted to units of distance through multiplication by the speed of light) Four unknowns ( xu, yu, zu, bu), thus we need at least four independent measurements. However… Highly non-linear equation! Traditionally solved via linearization of a Taylor series expansion
PRi = xu − xi( )
2 + yu − yi( )
2 + zu − zi( )
2 + bu
4
Copyright © 2010 by Michael S. BraaschGPS: Theory & Practice: Part 9 - OLS Solution
LINEARIZATION
Recall the Taylor series for a scalar function, f(x)
The series is valid ‘in the neighborhood’ of x = c We can linearize the above equation by only retaining the first two terms in the series For the pseudorange equation, however, we must deal with the fact that it is a function of four variables, not one
f x( ) = f c( )+ ′f c( )⋅ x − c( )+ ′′f c( )
2! ⋅ x − c( )2 +
5
Copyright © 2010 by Michael S. BraaschGPS: Theory & Practice: Part 9 - OLS Solution
PSEUDORANGE EQN LINEARIZATION
PRi = PRio + xo − xi
PRio − bo xu − xo( )+
yo − yi PRio − bo
yu − yo( )+ zo − zi
PRio − bo zu − zo( )+1⋅ bu − bo( )
where : xo , yo , zo , bo = initial guess of the user state
PRio = pseudorange from the i th satellite to
the initial guess state
Let : δ x = xu − xo ; δ y = yu − yo ; δ z = zu − zo ; δb = bu − bo ; δ PRi = PRi − PRio
Then : δ PRi = xo − xi
PRio − bo δ x +
yo − yi PRio − bo
δ y + zo − zi
PRio − bo δ z +1⋅δb
6
Copyright © 2010 by Michael S. BraaschGPS: Theory & Practice: Part 9 - OLS Solution
ORDINARY LEAST SQUARES (OLS) SOLUTION
The last equation on the previous slide is linear in the four unknowns Standard linear algebra can then be applied to the solution
where
δ PR1 δ PR2 δ PR3
δ PRN
⎡
⎣
⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢
⎤
⎦
⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥
=
H11 H12 H13 H14 H21 H22 H23 H24 H31 H32 H33 H34
H N 1 H N 2 H N 3 H N 4
⎡
⎣
⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢
⎤
⎦
⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥
δ x δ y δ z δb
⎡
⎣
⎢ ⎢ ⎢ ⎢
⎤
⎦
⎥ ⎥ ⎥ ⎥
⇒ y = Hβ
H k1 =
xo − xk PRio − bo
; H k 2 = yo − yk
PRio − bo ; H k 3 =
zo − zk PRio − bo
; H k 4 = 1
7
Copyright © 2010 by Michael S. BraaschGPS: Theory & Practice: Part 9 - OLS Solution
OLS SOLUTION (CONT’D) In reality, the measurements contain errors and thus a more complete representation would be
where epsilon is simply the vector of measurement errors The OLS solution is then given by:
y = Hβ + ε
βOLS = H
T H( )−1 H T y 8
Copyright © 2010 by Michael S. BraaschGPS: Theory & Practice: Part 9 - OLS Solution
OLS SOLUTION (CONT’D) At this point we must remember that we have only solved for the deltas Our total solution, then is given by:
Note the hat or carrot symbol simply means ‘estimate’
x̂u ŷu ẑu b̂u
⎡
⎣
⎢ ⎢ ⎢ ⎢ ⎢ ⎢
⎤
⎦
⎥ ⎥ ⎥ ⎥ ⎥ ⎥
=
xo yo zo bo
⎡
⎣
⎢ ⎢ ⎢ ⎢ ⎢ ⎢
⎤
⎦
⎥ ⎥ ⎥ ⎥ ⎥ ⎥
+
δ xOLS δ yOLS δ zOLS δbOLS
⎡
⎣
⎢ ⎢ ⎢ ⎢ ⎢ ⎢
⎤
⎦
⎥ ⎥ ⎥ ⎥ ⎥ ⎥
9
Copyright © 2010 by Michael S. BraaschGPS: Theory & Practice: Part 9 - OLS Solution
OLS SOLUTION (CONT’D)
Two questions that need to be answered: #1) Where did the initial guess (xo, yo, zo, bo) come from in the first place? #2) What happens if the initial guess is not close to the truth and hence the linearized pseudorange equation is not a good approximation?
For near earth users, we can simply set all four initial guess components equal to zero (i.e., center of the earth and zero clock bias)
10
Copyright © 2010 by Michael S. BraaschGPS: Theory & Practice: Part 9 - OLS Solution
OLS SOLUTION (CONT’D)
When initializing everything to zero, the first total solution will NOT give the correct values However, the first solution WILL be closer to the truth than the initial guess. This new solution can then serve as the initial guess and the whole process can be iterated This process can simply be iterated until the total solution converges (usually five to seven times) Once the solution has converged, then the solution at time k can serve as the initial guess for the solution at time k+1 and only a single solution step is required
11
Copyright © 2010 by Michael S. BraaschGPS: Theory & Practice: Part 9 - OLS Solution
EFFECT OF SV CLOCK OFFSET
The SV clock offset must be computed and the corresponding pseudorange must be compensated accordingly Position solution will be off, typically, by tens of kilometers if this is not done The SV clock offset is multiplied by the WGS-84 speed-of- light and then added to the pseudorange measurement Note the subtraction indicated in IS-GPS-200 (see the last page of Part 3 ‘Time References’) is used in computing the time-of-transmission. An earlier TOT yields a larger PR This correction to the pseudorange needs to be performed, obviously, before the user position solution is computed
12
Copyright © 2010 by Michael S. BraaschGPS: Theory & Practice: Part 9 - OLS Solution
EFFECT OF EARTH ROTATION
The aforementioned position solution would be sufficient were it not for the fact that the earth rotates The equations require knowledge of the satellite position at the time-of-transmission (TOT). However, we want to solve for the user position at the time-of-reception (TOR). The problem is that both user and satellite positions are described in earth-centered earth-fixed (ECEF) coordinates and the ECEF coordinate frame is not in the same orientation at TOR that it was at TOT If this phenomenon is not taken into account, the horizontal position can be off by as much as 30 meters
13
Copyright © 2010 by Michael S. BraaschGPS: Theory & Practice: Part 9 - OLS Solution
EARTH ROTATION CORRECTION
Estimate signal-transit-time by dividing the pseudorange by the WGS-84 speed-of-light (the pseudorange needs to be corrected for SV clock offset and, optionally, for receiver clock offset) Compute the amount of earth rotation by multiplying the signal-transit-time by the WGS-84 earth angular rate Compute a rotation matrix (around the z-axis) for the earth rotation angle Multiply the rotation matrix times the SV position vector to get the corrected SV position vector
14
Copyright © 2010 by Michael S. BraaschGPS: Theory & Practice: Part 9 - OLS Solution
EARTH ROTATION CORRECTION (CONTINUED)
ttransit i =
PRi − b̂u c
+ Δtsv
θearth = ω ie ⋅ttransit i
Ri = cθ sθ 0 −sθ cθ 0 0 0 1
⎡
⎣
⎢ ⎢ ⎢
⎤
⎦
⎥ ⎥ ⎥
corrected _ sv i _ pos = Ri * x svi
y svi
z svi
⎡ ⎣⎢
⎤ ⎦⎥
T
15
Copyright © 2010 by Michael S. BraaschGPS: Theory & Practice: Part 9 - OLS Solution
OLS VELOCITY SOLUTION • The ordinary least squares velocity solution is
similar to the position solution. It’s actually easier since the line-of-sight velocity equation is linear from the start
Where: = measured delta-range to satellite i = velocity vector of satellite i = velocity vector of the receiver = unit vector from the receiver to satellite i = receiver clock offset rate (i.e., frequency bias)
DRi = vi ⋅ûi − v ⋅ûi + b
vi v ûi b
16
Copyright © 2010 by Michael S. BraaschGPS: Theory & Practice: Part 9 - OLS Solution
The first term on the right-hand side is known and can be incorporated into the ‘measurement’:
Now define:
Thus:
Or: 17
! DRi = DRi " vi #ûi = "v #ûi + !b
!
i1 = "uxi ; !i 2 = "uyi ; !i3 = "uzi ; !i 4 = 1
! DR1 ! DR2 ! DR3 !
! DR N
"
#
$ $ $ $ $ $ $
%
&
' ' ' ' ' ' '
=
(11 (12 (13 (14 (21 (22 (23 (24 (31 (32 (33 (34 ! ! ! !
( N 1 ( N 2 ( N 3 ( N 4
"
#
$ $ $ $ $ $ $
%
&
' ' ' ' ' ' '
v x
v y
v z
"b
"
#
$ $ $ $ $
%
&
' ' ' ' '
y = H! Thus : !OLS = H
T H( )"1 H T y
OLS VELOCITY SOLUTION (CONT’D)
Copyright © 2010 by Michael S. BraaschGPS: Theory & Practice: Part 9 - OLS Solution
TIME AND FREQUENCY ESTIMATION
So far we have focused on determination of user position and velocity However, in the process we have also solved for the user’s clock offset (bias) and clock drift (or equivalently, the clock’s frequency offset) The receiver’s estimate of time can then be corrected to an accuracy on the order of tens of nanoseconds
18
tcorrected = traw ! b̂u