GPS関連の話題を掲載していきます。
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
いよいよ大ずめです。前回「アルマナックデータによるGPS衛星の位置計算其の2」で離心近点角Eをニュートン法により算出しました。今回は、クライマックスです。
さてさて、ここまでくれば、後は気が楽です。
まず、前に「航法メッセージによる GPS衛星の位置の求め方 其の3」に記載した、平面軌道上のGPS衛星位置(x',y')を求める公式を利用して、2次元面での、GPS衛星位置を求めます。
これはもう簡単ですよね。
x' = a*cos(E) - a*e
y' = a*sqrt(1-e2)*sine(E)
これで算出できます。ここで、お分かりだとは思いますが念のため、aは長半径、eは離心率、Eは離心近点角になります。
あとは、アルマナックデータおよび、前回求めた離心近点角Eを当てはめて解くだけです。解くと以下のようになります。
x' = -11120449.437278792
y' = -24439569.638433773
さてさて、最後に、上記2次元座標を3次元座標に変換してやりますがこれも、「航法メッセージによる GPS衛星の位置の求め方 其の3」で記述した、回転行列を利用します。
まずは、行列を解きます。すると、
X = x' * cos(Ωk) * cos(ω) - x' * sin(Ωk) * sin(ω) * cos(i)
- y' * cos(Ωk) * sin(ω) - y' * sin(Ωk) * cos(ω) * cos(i)
Y = x' * sin(Ωk) * cos(ω) + x' * cos(Ωk) * sin(ω) * cos(i)
- y' * sin(Ωk) * sin(ω) + y' * cos(Ωk) * cos(ω) * cos(i)
Z = x' * sin(Ωk) * sin(i) + y' * cos(Ωk) * sin(i)
となります。少々見にくいですが、こんな感じになります。ここでΩkは前回求めた、現在時刻による昇交点経度、i、ωはどちらもアルマナックデータより取得できそれぞれ、軌道傾斜角、近地点引数になります。考え方のおさらいをしますと。
「3次元の軌道面は、2次元の軌道面をz 軸回りにω 回転させ,続いてx 軸まわりにi,z 軸回りにΩ 回転させたものである」
でしたよね。
さて、実際にときますと、以下のようになります。
X = -26312458.28576335
Y = -3442369.7618006254
Z = 4094091.9850355694
どうでしたか?とうとう3次元空間における、GPS衛星の位置情報が求まりました。これは紛れも無い解です。しかしながら、GPS受信機という意味では不十分です。といいますのは、航法メッセージの中にはアルマナックデータだけでなく、エフェメリスデータというものが入っており、こちらのほうが正確な情報を持っているのですが、残念ながら、このやり方では、エフェメリスデータに含まれる補正データがうまく扱えません。よって、新たな角度、真近点角を利用した方法に置き換える必要があります。え!じゃー最初からそれをおしえろよ!と言われるかもしれませんが、概念的には今までの内容を理解していれば、問題ありませんし、入門としては、今回の方法から入ったほうが分かりやすいと思います。
機会があれば、エフェメリスデータによるGPS衛星の3次元空間上での位置の求め方を公開したいと思います。
さてさて、ここまでくれば、後は気が楽です。
まず、前に「航法メッセージによる GPS衛星の位置の求め方 其の3」に記載した、平面軌道上のGPS衛星位置(x',y')を求める公式を利用して、2次元面での、GPS衛星位置を求めます。
これはもう簡単ですよね。
x' = a*cos(E) - a*e
y' = a*sqrt(1-e2)*sine(E)
これで算出できます。ここで、お分かりだとは思いますが念のため、aは長半径、eは離心率、Eは離心近点角になります。
あとは、アルマナックデータおよび、前回求めた離心近点角Eを当てはめて解くだけです。解くと以下のようになります。
x' = -11120449.437278792
y' = -24439569.638433773
さてさて、最後に、上記2次元座標を3次元座標に変換してやりますがこれも、「航法メッセージによる GPS衛星の位置の求め方 其の3」で記述した、回転行列を利用します。
まずは、行列を解きます。すると、
X = x' * cos(Ωk) * cos(ω) - x' * sin(Ωk) * sin(ω) * cos(i)
- y' * cos(Ωk) * sin(ω) - y' * sin(Ωk) * cos(ω) * cos(i)
Y = x' * sin(Ωk) * cos(ω) + x' * cos(Ωk) * sin(ω) * cos(i)
- y' * sin(Ωk) * sin(ω) + y' * cos(Ωk) * cos(ω) * cos(i)
Z = x' * sin(Ωk) * sin(i) + y' * cos(Ωk) * sin(i)
となります。少々見にくいですが、こんな感じになります。ここでΩkは前回求めた、現在時刻による昇交点経度、i、ωはどちらもアルマナックデータより取得できそれぞれ、軌道傾斜角、近地点引数になります。考え方のおさらいをしますと。
「3次元の軌道面は、2次元の軌道面をz 軸回りにω 回転させ,続いてx 軸まわりにi,z 軸回りにΩ 回転させたものである」
でしたよね。
さて、実際にときますと、以下のようになります。
X = -26312458.28576335
Y = -3442369.7618006254
Z = 4094091.9850355694
どうでしたか?とうとう3次元空間における、GPS衛星の位置情報が求まりました。これは紛れも無い解です。しかしながら、GPS受信機という意味では不十分です。といいますのは、航法メッセージの中にはアルマナックデータだけでなく、エフェメリスデータというものが入っており、こちらのほうが正確な情報を持っているのですが、残念ながら、このやり方では、エフェメリスデータに含まれる補正データがうまく扱えません。よって、新たな角度、真近点角を利用した方法に置き換える必要があります。え!じゃー最初からそれをおしえろよ!と言われるかもしれませんが、概念的には今までの内容を理解していれば、問題ありませんし、入門としては、今回の方法から入ったほうが分かりやすいと思います。
機会があれば、エフェメリスデータによるGPS衛星の3次元空間上での位置の求め方を公開したいと思います。
PR
この記事にコメントする
カレンダー
10 | 2024/11 | 12 |
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
カテゴリー
フリーエリア
最新コメント
最新記事
(01/29)
(01/06)
(11/23)
(11/21)
(10/10)
(10/10)
(09/12)
(08/04)
(08/03)
(07/31)
最新トラックバック
プロフィール
HN:
Slit
性別:
非公開
ブログ内検索
最古記事
(05/12)
(05/13)
(05/14)
(05/14)
(05/14)
(05/16)
(05/16)
(05/18)
(05/18)
(05/19)
アクセス解析