Path: news.ccsf.jp!4bn.ne.jp!news.heimat.gr.jp!goblin2!goblin.stu.neva.ru!newsfeed.xs4all.nl!newsfeed6.news.xs4all.nl!xs4all!post.news.xs4all.nl!not-for-mail Date: Sun, 22 Feb 2009 11:50:27 +0100 From: "\\frac{1}{R}\\sqrt{\\frac{L}{C}}" User-Agent: Thunderbird 2.0.0.19 (Windows/20081209) MIME-Version: 1.0 Newsgroups: alt.math,alt.math.recreational,alt.sci.math,alt.sci.physics,japan.sci.math,sci.math,sci.physics Subject: Re: GPS question References: In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Lines: 112 Message-ID: <49a12de0$0$198$e4fe514c@news.xs4all.nl> NNTP-Posting-Host: 80.100.69.254 X-Trace: 1235299808 news.xs4all.nl 198 [::ffff:80.100.69.254]:36503 X-Complaints-To: abuse@xs4all.nl Xref: news.ccsf.jp japan.sci.math:171 Jon wrote: > Supposing three satellites transmit signals with time stamps that are picked > up by a receiver. If the clocks on the satellites are closely synchronized, > then > > |AD|=|AB|+t_AB > |BD|=|BC|+t_BC > |CD|=|CA|+t_CA > > Where > A,B,C=position vectors of three satellites > AB,BC,CA=distances between satellites > t_AB,t_BC,t_CA=time differences between signals at D. > D=position vector of receiver. > > Once |AD|,|BD|,|CD| are found, the coordinates of D can be derived. > > Is this how it is done? > > summarized at > http://mypeoplepc.com/members/jon8338/math/id8.html > > In GPS the positions and velocities and clocks of the satellites are normally known, they are determined by tracking the satellites from ground, and the information is uploaded to the satellites. The message from the satellite contains time and position information and the receiver on the ground knows it as well. In this application of GPS the observation equations are formed for so-called pseudo-distances, which are time differences between the receiver clock on ground and the clock information received from the satellite. The receiver clock is quartz oscillator just like your wrist watch, and it comes with an offset typically in the order of several seconds. The receiver clock error (I call it \Delta t_q) is a parameter to solve for together with the coordinates of the receiver. Normally you start with 4 satellites so that the equations to solve are: \rho_{aq} = s * (t_q - t_a) + s * \Delta t_q \rho_{bq} = s * (t_q - t_b) + s * \Delta t_q \rho_{cq} = s * (t_q - t_c) + s * \Delta t_q \rho_{dq} = s * (t_q - t_d) + s * \Delta t_q where \rho_{aq} etc are so-called pseudo-distances between receiver "q" and satellite "a", other satellites are "b" "c" and "d", "s" is the speed of light, t_q is the time in the receiver, and t_a is the time in satellite a, and \Delta t_q is the time bias or the clock error of the receiver The term s * (t_q - t_a) is the geometric distance between satellite "a" and the receiver, and \rho_{aq} \rho_{bq} \rho_{cq} \rho_{dq} are measured by the receiver. You can also write: \rho_{aq} = r_{aq} + s * \Delta t_q \rho_{bq} = r_{bq} + s * \Delta t_q \rho_{cq} = r_{cq} + s * \Delta t_q \rho_{dq} = r_{dq} + s * \Delta t_q where r_{aq} etc are the geometric distances. To solve these equations one normally linearizes the equations relative to an approximate position that is provided to the receiver, or that is memorized from earlier computations. Let us call this approximate location (x0,y0,z0). In that case the linearized equations become: \begin{vec}{c} \Delta \rho_{aq} \\ \Delta \rho_{bq} \\ \Delta \rho_{cq} \\ \Delta \rho_{dq} \\ \end{vec} = \begin{mat}{cccc} \diff{r_{aq}}{x0} \diff{r_{aq}}{y0} \diff{r_{aq}}{z0} s \\ \diff{r_{bq}}{x0} \diff{r_{bq}}{y0} \diff{r_{bq}}{z0} s \\ \diff{r_{cq}}{x0} \diff{r_{cq}}{y0} \diff{r_{cq}}{z0} s \\ \diff{r_{dq}}{x0} \diff{r_{dq}}{y0} \diff{r_{dq}}{z0} s \\ \end{mat} * \begin{vec} \Delta x0 \\ \Delta y0 \\ \Delta z0 \\ \Delta t_q \\ \end{vec} where \Delta \rho_{aq} etc are observed minus approximated pseudo range differences (approximated because we can estimate them once the approximated location x0 y0 z0 is provided), \diff{r_{aq}}{x0} etc are partial derivatives from geometric range to coordinates, and \Delta x0 etc are shifts to apply to the approximate coordinates. The left hand side of these equations is known, the right hand side matrix is known (although it is an approximation) and the right hand side vector can be solved by inverting the equations. Within a couple of iterations you update the approximate location until there are no more coordinate shifts as discussed above. Now, the OP said he had only three pseudo ranges. In that case you must add another constraint equation to the system of equations because it becomes rank deficient. Normally one adds a constraint equation like a height of the GPS receiver. Hope this helps, Q -- CO2 at 390 ppm and counting, put a tiger in your tank -- ESSO commercial