GPSシステムで車の位置を特定するには、最低3つ(注)の衛星からの情報と、電波を車で受信した時の正確な時刻が必要です。
●計算する前に最低分かっている情報は次の通りです。
「3つの衛星1、2、3から送られてくる情報」
衛星1の位置 (x1, y1, z1)
衛星1の電波が発射された時の時刻 st1
衛星1の電波を受信した時の時刻 rt1
衛星2の位置 (x2, y2, z2)
衛星2の電波が発射された時の時刻 st2
衛星2の電波を受信した時の時刻 rt2
衛星3の位置 (x3, y3, z3)
衛星3の電波が発射された時の時刻 st3
衛星3の電波が発射された時の時刻 rt3
電波の速度(光速) c ≒ 2.997 × 10^8 [m/s]
●求めたい情報(未知数)は次の通りです。
車の位置 (x, y, z)
まず車から衛星1、2、3までのそれぞれの距離(d1, d2, d3)を求めるため、3元連立方程式を立てます。なお、衛星から車までの距離は、光速×(電波の受信時刻 - 電波の発射時刻)で求められます。
d1 = c×(rt1 - st1) =√((x1 - x)^2 + (y1 - y)^2 + (z1 - z)^2)
d2 = c×(rt2 - st2) =√((x2 - x)^2 + (y2 - y)^2 + (z2 - z)^2)
d3 = c×(rt3 - st3) =√((x3 - x)^2 + (y3 - y)^2 + (z3 - z)^2)
上記のx、y、zを求めれば、車の位置が分かることになります。
■ただし■
上記の例が成り立つのは、車に装備されているナビの時計が、正確であることが条件です。
それぞれのGPS衛星に搭載されている時計は、原子時計なので極めて正確ですが、ナビに搭載されている時計は、普通のクオーツ時計なので、正確とはいえません。
したがって、現実には、ナビの時計の誤差も未知数となります。
未知数が4つの場合は、方程式が3つでは足りません。
そこで4つの衛星からの情報が必要となります。
求めたい未知数は、車の座標(x, y, z) とカーナビの時計の誤差δtの計4つです。
それも踏まえて式をたてます。
d1 = c × (rt1 - st1) - c × δt = √((x1 - x)^2 + (y1 - y)^2 + (z1 - z)^2)
d2 = c × (rt2 - st2) - c × δt = √((x2 - x)^2 + (y2 - y)^2 + (z2 - z)^2)
d3 = c × (rt3 - st3) - c × δt = √((x3 - x)^2 + (y3 - y)^2 + (z3 - z)^2)
d4 = c × (rt4 - st4) - c × δt = √((x4 - x)^2 + (y4 - y)^2 + (z4 - z)^2)
これで、カーナビでの時計の誤差が無くなり、正確な測定が可能になります。
求めた車のx、y、z座標は、緯度、経度に換算され、データに入っている地図情報と照らし、地図上の位置を示すことが出来ます。
お礼
有難うございました