■GPSによる位置検出の基本原理を体験しよう(その3)
  (受信機の時計の誤差による交点座標誤差についての1考察)

 先に作成した
   「GPS簡易シミュレーションプログラム」
において、色々な時刻での位置検出を試みると時々「誤差過大」が発生することがあります。このプログラムでは誤差(地表からの高さ方向距離)が10kmを超えるとこのメッセージが出力されますが、なぜこのような大きな誤差が発生するのでしょうか。
 受信機内蔵の時計の誤差はプログラムの初期設定では3μs(百万分の3秒)に設定されています(画面操作で変更可能)ので、距離にして
  凾秩@= 30万km/s x 3μs = 30x104 x 3x-6 = 0.9km
程度の誤差です。3つの衛星を中心とするそれぞれの球面の半径が凾窒セけ増加(あるいは減少)した時に、3球面の交点座標がいくら変化するかを考察してみましょう。
gps3.gif
・Pi(Xi, Yi, Zi),i=1,2,3 を各衛星の位置、Po(Xo, Yo, Zo)を受信機の位置とし、衛星と受信機との距離を
 Ri(i=1,2,3)とします。

・すると次式が成り立ちます。
  Ri2 =(Xi-Xo)2 + (Yi-Yo)2 + (Zi-Zo)2 (i=1,2,3) ・・・(式1)

・半径誤差(距離の誤差)凾窒ノよる交点座標誤差を(凅, 凉, 凛)とすると、(式1)より(微分して)
  Ri凾 = (Xo-Xi)凅 + (Yo-Yi)凉 + (Zo-Zi)凛 (i=1,2,3)       ・・・(式2)
  凾 = ([Xo-Xi)/Ri]凅 + [(Yo-Yi)/Ri]凉 + [(Zo-Zi)/Ri]凛 (i=1,2,3) ・・・(式2’)
 右辺は単位ベクトル[Xo-Xi)/Ri, (Yo-Yi)/Ri, (Zo-Zi)/Ri]と誤差ベクトル[凅,凉,凛]の内積ゆえ、
 両者のなす角をθi、誤差ベクトルの大きさを册とすると
  凾 = 册・cosθi  (i=1,2,3)  ・・・(式3)

・(式3)で、凾秩A册は各衛星に共通であり、従って角θi も各衛星に共通の値となります。
 すなわち、誤差ベクトルは各衛星と受信機を結ぶ3ベクトル(線分)に対して同じ角度となります。

・(式2)の3元連立方程式を解くと(凅, 凉, 凛)が求められます。
  R1凾 = (Xo-X1)凅 + (Yo-Y1)凉 + (Zo-Z1)凛
  R2凾 = (Xo-X2)凅 + (Yo-Y2)凉 + (Zo-Z2)凛
  R3凾 = (Xo-X3)凅 + (Yo-Y3)凉 + (Zo-Z3)凛 
 すなわち、
     |(R1凾) (Yo-Y1) (Zo-Z1)|
     |(R1凾) (Yo-Y2) (Zo-Z2)|
     |(R1凾) (Yo-Y3) (Zo-Z3)|
  凅 = ――――――――――――――  , 凉 = …, 凛 = …(同様)
     | (Xo-X1) (Yo-Y1) (Zo-Z1)|
     | (Xo-X2) (Yo-Y2) (Zo-Z2)|
     | (Xo-X3) (Yo-Y3) (Zo-Z3)|
 ここで分母の行列式はベクトル V1(P1Po), V2(P2Po), V3(P3Po)のスカラー3重積 V1・(V2xV3)であり、
 V1,V2,V3が同一平面内にあるときは外積(V2xV3)とV1が直交し、分母=0となります。
 従って、これら3ベクトルがほぼ同一平面内にあるときは(凅,凉,凛)が非常に大きくなり、交点座標
 が本来の位置から大きくずれることになります。

・このことは(式3)からも知ることができます。
 3衛星と受信機が同一平面上にある場合を考えます。この時、誤差ベクトルはこの平面に垂直な方向になります。
 従ってθi = 90°、cosθi = ∞となって、(式3)より册が極端に大きくなります。これが「誤差過大」の原因です。

・今回のプログラムでは受信可能衛星から実際に位置計算(測位)に使用する衛星を無作為に3個選定していますので、
 このような現象がおこります。

(注)実は俯角(β)を90度に設定すると、以後上記の状態をできるだけ回避する処理が行われ、位置誤差の増大を
  抑えるようになっています。
ホーム