■GPSによる位置検出の基本原理を体験しよう
  (簡易シミュレーションプログラム "iEarth GPS") (マウスホイール対応)

 GPS(Global Positioning System:全地球測位システム)とはアメリカが軍事用に打ち上げたGPS衛星からの信号をカーナビなどのGPS受信機で受取り、現在位置を知るシステムです。
 24個(+予備の衛星が数個)のGPS衛星は高度約20,200kmの上空を軌道傾斜角(赤道面に対する軌道面の傾き)55度で、およそ12時間で地球を1周しています。各衛星は昇交点経度が60度おきの6種類の軌道面毎に4個が配置されています。

 GPS衛星からはその衛星の位置(Xi, Yi, Zi)と電波の発信時刻Tiの情報が送られてきます。GPS受信機で受信した時刻Toと発信時刻Tiとの差から受信機と衛星間の距離Riがわかります。
  Ri2 = (Xi - Xo)2 + (Yi - Yo)2 + (Zi - Zo)2 = [c(To - Ti)]2 ・・・(式1)
  ここで、(Xo, Yo, Zo): 受信機の位置(未知数)
      c : 光速 (30万km/s)
従って、3個の衛星からの電波を受信すると上式が3個でき、この3元連立方程式を解くことにより未知数(Xo, Yo, Zo)が求められます。ただし、実際にはGPS受信機に搭載の時計の誤差凾煤i未知数)があるため、さらに1つの式が必要となり、4個の衛星からの情報をもとに受信機の位置が決定されます。

 ここでは、GPS衛星の動きとそれによる位置検出(測位)の基本原理を体験するための簡単なシミュレーションプログラムを作成しましたので紹介します。受信機の時計の誤差を無視して3個の衛星からの情報をもとに位置を検出しています。
 ● プログラムの使用方法
アプレット実行

・受信機の位置P1(経緯度)を入力します。これは実際には未知ですが、本プログラムではこれをもとに衛星と受信機の距離(すなわち信号の到達時間)を、ある誤差を含めて設定します。
 位置は地図上あるいは地球儀上で入力することもでき、また都市の一覧から指定することもできます。この場合は、「地図上の点PcをP1に設定」ボタンを押して、地点1を設定します。
・画面上には24個の衛星が地球の周りを周回している様子が表示されています。
・任意の時点で「位置検出」ボタンを押してください。すると、わかり易くするために衛星が停止し、信号が受信できる衛星に青色の外円が表示され、さらに位置検出計算に使用する衛星(3個)が赤の外円で表示されます。
・検出結果は画面右上の「検出地点(P2)」に経緯度が、画面右下に3次元座標値と座標誤差が表示されます。
 また、距離、経度、緯度の誤差も画面左下に表示されます。
 「step位置検出」ボタンを押すと、6分毎の位置検出ができます(「リスタート」で次へ)。
・平面地図は日本/世界の切り替えができ、またマウスホイールによる拡大縮小が可能です。
・右側の3D表示画面ではマウスホイールによる回転ができます。通常は地軸周りの回転、「俯角(β)変更」をチェックすると、前後方向の回転となります。
・また、画面右上の「凾煤=c 仰角=… h:m=…」の各エリア上でマウスホイールを回転すると、それぞれの値を簡単に変更することができます。
  凾煤F 受信機の時計の誤差(μs)
  仰角: 仰角マスク(受信機から見てこの角度より仰角の低い衛星からの信号は使用しない)
  α : 地軸周りの回転 (注)「俯角(β)変更」のチェックの有無に無関係に
  β : 前後方向の回転 (注)「俯角(β)変更」のチェックの有無に無関係に
  spd : 衛星の周回スピード(画面上の表示スピード) (注)初期状態では12秒で1回転
  m:h : 時:分 (0クリアされます)
 さらに、「reset」をクリックすると、これらの値をすべて初期状態に戻します。
(注1)地球は半径6,370kmの球体と仮定しています。
(注2)GPS衛星の軌道は半径 26,561kmの円軌道と仮定しています。図中の地球の大きさと衛星の軌道半径
    の比は、実際の比に合わせています。
(注3)(式1)は点(Xi, Yi, Zi)を中心とする半径Riの球面を表しています。3元連立方程式を解くことは
    これら3つの球面の交点を求めることになります。交点は通常2個ありますが、地表に近い方を採用します。

    実際のGPSでは次のように4つの式を連立させて解を求めます。
     [(X1-Xo)2 + (Y1-Yo)2 + (Z1-Zo)2]1/2 = c(To1-T1+冲) …(式2.1)
     [(X2-Xo)2 + (Y2-Yo)2 + (Z2-Zo)2]1/2 = c(To2-T2+冲) …(式2.2)
     [(X3-Xo)2 + (Y3-Yo)2 + (Z3-Zo)2]1/2 = c(To3-T3+冲) …(式2.3)
     [(X4-Xo)2 + (Y4-Yo)2 + (Z4-Zo)2]1/2 = c(To4-T4+冲) …(式2.4)
   (式2.2〜2.4)から(式2.1)を引くと凾狽ェ消去され、次のような3式が得られます。
     [(X2-Xo)2 + (Y2-Yo)2 + (Z2-Zo)2]1/2 - [(X1-Xo)2 + (Y1-Yo)2 + (Z1-Zo)2]1/2
            = c(To2-T2-To1+T1)
     [(X3-Xo)2 + (Y3-Yo)2 + (Z3-Zo)2]1/2 - [(X1-Xo)2 + (Y1-Yo)2 + (Z1-Zo)2]1/2
            = c(To3-T3-To1+T1)
     [(X4-Xo)2 + (Y4-Yo)2 + (Z4-Zo)2]1/2 - [(X1-Xo)2 + (Y1-Yo)2 + (Z1-Zo)2]1/2
            = c(To4-T4-To1+T1)

    各式は3次元空間上の2点からの距離の差が一定な点の集まりである双曲面を表しています。
    4元連立方程式を解くことはこれら3つの双曲面の交点を求めることになります。
(注4)位置P1の入力はあくまでも衛星と受信機間の距離(すなわち信号の到達時間)を設定するためのものであり、
    検出地点P2の計算はこの距離をもとに3球面の交点として行われます。
(注5)受信機の時計の誤差1μs(百万分の1秒)は距離にして約300mに相当します。
(注6)このプログラムは下記のプログラムをベースにして作成しています。
    地球上の2点間の距離を計算するプログラム "iEarth Distance"
GPSによる位置検出の基本原理を体験しよう(その2)(受信可能なGPS衛星の数)

ホーム