成長できたと毎日思い続けられるように

SierからWeb業界に転身したWebエンジニアのブログ

なぜGPSは週数で管理されているのか考えてみた

こんにちは。

最近のニュースで話題になっていた、GPSの週数ロールオーバーについて気になったことを調べたのでメモとして書きました。

※あくまで専門家ではなく個人として考え方ですので、情報に誤りなどがある可能性があります。


まだ、このニュースをご存知ではない方は先にニュースを読んでからの方が内容の理解がスムーズかと思います。

 

internet.watch.impress.co.jp

 

GPS時の週数の仕組みについて

GPSで利用している時間管理の方法は、GPS時と呼ばれるもので管理されています。もう少し詳しくお話すると、GPS時は週数と秒で時間を管理しています。週数は、UTC協定世界時)と呼ばれているものです。その時間の1980年1月6日午前0時(日本時間の午前9時)を起点として、そこから0週として時間のカウントが行われています。例えば、その起点となっている時間から1時間経過したら0週3600秒となります。1ヶ月を30日とするすると1ヶ月経過した場合は、4週172,800秒となります。

 

ロールオーバーについて

週数は無限にカウントできる訳ではなく、GPS時の仕組みが作られた際に週数を格納できる枠を10ビットと定めており、10ビットの領域では0〜1023週までの情報しか格納することができません。


1〜10までの数字のカウントで例えて話すと、実際に目に見える桁数を1桁のみにした場合に、1、2、3・・・9とカウントしていき「9」までは問題なく表示することができます。しかし、9の次の10となった時に1桁しか表示することができないため、繰り上がった2桁目に表示されるはずの「1」が表示できる枠がないために捨てられてしまいます。残った1桁目の情報は「0」が表示されます。このこの時に、システムは10ではなく0と解釈することになり、「0」に戻るように見える現象をロールオーバーと言います。

 
今回話題になっているのは、10までのカウントからするとイメージしにくいかと思いますが、1023が「9」で1024が「10」とイメージして頂けると分かりやすいかと思います。


噛み砕いた方が分かりにくい方には、FURUNOという会社さんが作成されているPDFの資料が個人的には分かりやすかったです。

 

https://www.furuno.com/jp/gnss/datadownload/GNSS_Receiver_WeekNumberRollover_SE18-100-007-00_jp.pdf

 

なぜ週数で管理しているのか?

そもそも、なんでこんなロールオーバーなどが発生したりする面倒そうな時間管理方式になっているの?と疑問が湧きました。


あれこれ調べてみたところ、複数台のGPS衛星で同時にGPS情報を計測しており、その計測したデータを地上に送信して管理しているそうです。衛星から送信されて地上に届くまでに15秒ほどの時間差が生まれ、かつそれぞれの衛星でも到達時間がバラバラになるそうです。そのことを踏まえると普段私達が使っている様な時間管理の方法では、うるう年やうるう秒など時々時間の補正が入ってしまい、その補正の作業を複数台の衛星に対して同時に対応していくのは、宇宙空間ではかなりの難易度になりそうな気がしました。


そう考えると、衛星を宇宙に持っていく前に予めカウントする起点を決めて、それぞれの衛星で同期することなく経過した時間をカウントする方が正確に時間の経過を刻むことができると納得しました。