20160327nhito1

宇宙航空研究開発機構(JAXA)のX線天文衛星「ひとみ」が通信を絶ってから1か月近くが過ぎた。当初は謎に包まれていた原因も分析が進み、およその可能性が判明してきたところだ。そこで、前回の記事では書ききれなかったより詳しい解説とともに、筆者が考える疑問点や問題点を述べていくこととする。

[前回記事リンク]X線天文衛星「ひとみ」、2重のトラブルで「自分で回った」と推定

問題その1、スタートラッカ異常時のアルゴリズム

20160415_0007

まず第一に、最初のトラブルと考えられている姿勢制御システムの問題について、改めて整理しよう。

「ひとみ」の姿勢制御システムは、2つの方法で自分の姿勢(向き)を知ることができる。慣性基準装置(IRU)とスタートラッカ(STT)だ。

IRUは、衛星を回転させたときの反動を測定する装置だ。回転いすに座った状態で目をつぶり、いすを回された感じを想像すると良いだろう。回されたときに受ける力を測定することで、自分が回り始めたことがわかる。これを精密に測定することで回転を推定するのがIRUだ。このような原理だから、精密と言っても実際の回転速度との間にはわずかな誤差が必ずある。

もうひとつのSTTは、星空を撮影して、見える星の方向によって衛星の姿勢を判定するものだ。撮影した星空とメモリー上の星座表を比較し、ぴったり合う方角が今の衛星の姿勢ということだ。カメラで撮影するので、カメラが地球を向いているとわからない、放射線などによるノイズで誤った値を出すことがある、といった問題がある。

つまり、IRUとSTTは互いに得意とすることが異なり、補完するようにして使わなければならない。IRUは姿勢を常時知ることができるが、だんだん誤差が増えていくので、STTを使って補正しなければならない。STTはその時点での姿勢を知ることができるが、知ることができないこともあるし、誤作動もする。だから基本的にはIRUを使って姿勢を把握し、STTはそれをチェックするという使い方だ。

3月26日4時10分、STTが現在の衛星の姿勢を算出した。その直前にIRUが算出した姿勢には誤差があるため、STTが算出した姿勢とは差がある。このため、見かけ上衛星が回転しているように見える。通常はSTTが衛星の姿勢を算出し続けると、実際には回転していないことがわかり、回転数の誤差推定値は小さくなっていく。

ところが今回は、4時10分から短時間でSTTにリセットが掛かってしまい、大きな誤差推定値が保持されてしまった。衛星は実際には回転していないにも関わらず、1時間に21.7度というゆっくりした回転をしていると、衛星は錯覚してしまった。このため、3分ほどで姿勢の誤差は1度を超えてしまい、再度姿勢を算出したSTTは姿勢制御コンピューターに「故障している」と判断されてしまった。ここまでは前回の解説の通りだ。

通常の200倍の誤差でもそのまま採用

さて、ここで疑問だ。STTの誤差が1度を超えたら故障と判断するのは良い。しかしなぜ、回転速度が毎時21.7度という大きな誤差は、問題視されなかったのだろうか。ゆっくり回転しているというのは見た目の話で、1時間で21.7度というのは天文観測の誤差としては異常に大きい。地球の自転は1時間に15度だから、アマチュア天文家が使用する天体望遠鏡でも、この速度でゆっくりと向きを変える装置が付いている。「ひとみ」の姿勢センサーの誤差は地球の自転よりずっと速かったのだから、天文衛星としてはあまりにも大きい。

IRUの誤差がこれほど大きくなることは、通常はあり得ない。毎時21.7度というのは衛星のZ軸、望遠鏡を「ひねる」方向の誤差なのだが、実際には望遠鏡を上下左右に「振る」方向であるX軸やY軸にも1度程度の誤差があったという。通常のIRUの誤差は0.1度程度で、X軸Y軸でも通常の10倍の誤差なのだが、Z軸の誤差はなんと通常の200倍もあったのだ。

「ひとみ」のコンピューターはこの、通常の200倍もの巨大な誤差推定値を疑わずに使い続け、3分後にSTTが算出した1度の差を故障と判断してしまった。もちろん、コンピューターが自分の価値観でそう判断したのではない。そのようにプログラムされていたのだ。

STTは星空を観測することで姿勢を算出するので、算出に失敗することもある。このためコンピューターは、STTとIRUの間に大きな不整合が生じた場合はSTTの方が異常と判断する。しかし、IRUの誤差をSTTで補正しているのに、その補正値の誤差が通常の200倍もあってもそれは異常と判断しなかった。「異常に大きなIRU誤差推定値」と「IRUとSTTの異常に大きな不整合」が同時に起きたということは、STTと誤差推定値のどちらが信用できるかわからない状態のはずだが、誤差推定値の方を採用してしまったのだ。

予備のスタートラッカも使用せず

また、STTは故障に備えて2つ搭載されているのだが、STT1が故障と判断されたあと、自動的にSTT2を使用するような設定にはなっていなかった。もしSTT2を起動していたら、STT1とSTT2は同じ値を出すのにIRUが異なっていることがわかっただろう。IRUの誤差推定値の方が異常だと判断できたのではないか。

STT2との比較も行わずにSTT1のデータを捨て続けて、巨大なIRU誤差推定値を採用し続けてしまうようなアルゴリズムが採用されてしまったのが、ひとつめの大きな問題点だ。

ただし、STTの故障と判断してSTTのデータを捨てる状態になったあと、地上で人間がデータを判断し、STTは故障していないと考えてIRUの誤差推定値をリセットすることは可能だ。「ひとみ」はそういう考えで設計されていた。そこで、第二の問題へと進む。

問題その2、姿勢変更後に地上で監視せず

20160408_hitomi-009

第二の問題点は、姿勢制御をしたタイミングと、そのあとの監視体制だ。

「ひとみ」のように地球の周囲の低い高度を回る衛星は、地球上の真下付近からしか見ることができない。見る、というのは実際に肉眼で見えるということではなく、地上から見て地平線より上の方角に位置しているという意味だ。このように衛星が地上から見える状態のことを「可視」と言う。「ひとみ」の場合、地上に設置されたパラボラアンテナ通信施設(地上局)の可視は十数分程度なので、この間に衛星に命令を送信したり、衛星からデータを送信して地上局で受信したりする。こういった通信のための地上局は、鹿児島県の内之浦と千葉県の勝浦にあり、送受信の制御は相模原の宇宙科学研究所(ISAS)で行っている。

「ひとみ」は約90分で地球を1周するが、その間に地球が自転してしまうので、通過する場所は1周ごとにずれていく。日本付近を通過していたかと思うと、だんだん通過点が西へ移動していき、そのうち日本上空を通らなくなる。そこで、スペインのマスパロマス、オーストラリアのミンゲニューにも地上局を設置し、日本では通信できない時間帯をサポートしている。ただし、どの地上局も可視の長さは十数分で、衛星と常時通信できるわけではないというのがポイントだ。

またミンゲニューとマスパロマスでは衛星からデータのダウンロードはしていない。その時点での衛星の状態データを、リアルタイムで送信しているだけだ。衛星の観測データではなく、温度や姿勢、電圧や圧力といったデータのことはHKと言う。HKとはハウスキーピング、つまり家の中のことという意味だ。マスパロマスとミンゲニューではHKデータだけ、それも過去のぶんをまとめてではなく、その時点の状態だけを送信し、地上回線で相模原の管制室へ送っている。

姿勢制御結果を見るのは20時間後

「ひとみ」は3月25日20時14分から内之浦局の可視が始まり、その後約90分おきに内之浦局と通信できる状況になった。20時28分から48分間かけて、望遠鏡を「超新星残骸」から「かに星雲」へ向ける姿勢変更を実施し、成功している。姿勢変更は地上から命令を送信して衛星が実行するので、可視の間に送信すれば次の可視では完了しているわけだ。そして姿勢変更中のログデータはまとめてダウンロードする。

内之浦の可視は3時13分に終わり、その次は23時39分まで20時間以上ない。ところが、「ひとみ」を「かに星雲」から「活動銀河核」へ向ける姿勢変更は3時1分から21分間かけて行われた。つまりISASの管制室は20時間もの間、内之浦局で姿勢制御の結果を受信することができない。

ただ、5時49分にはマスパロマス局の可視があるため、ここでHKを受信している。しかし、ISASでは内之浦局や勝浦局の可視以外では監視を行っておらず、データを記録するだけだった。7時31分に2回目のマスパロマス局可視、9時52分にミンゲニュー局可視があったが、これら3回のHKにはIRUとSTTが算出した姿勢が徐々にずれていく様子が記録されていた。もし地上から命令を送信してIRUの誤差推定値をリセットし、「ひとみ」を救うとすればこのミンゲニュー局がラストチャンスだったということになる。

16時40分に再びミンゲニュー局上空を通過した「ひとみ」は既に壊れていたので、電波を送ってこなかった。トラブル発生から20時間を経た23時39分の内之浦局可視では、「ひとみ」はデータを読み取ることができないほど弱い電波を3分間だけ送信した。

文部科学省も運用を問題視

この点について、文部科学省の有識者委員会である宇宙開発利用部会では「なぜ、内之浦局の可視がない時間帯に姿勢変更を行ったのか」という疑問が出たが、JAXA側は「すでに運用が安定していたので大丈夫だと考えていた」と答えた。

一方、筆者はこう考える。次の内之浦の可視まで20時間もあるのに姿勢変更せずに待つということは、X線天文衛星としての限りある観測寿命を無駄にすることになる。ならば姿勢変更後の状況確認のため、マスパロマス局で結果を受信し、ISASで確認するべきではなかったか。

結果論と言われるかもしれない。しかし、(あまり金の話はしたくないが)「ひとみ」は開発費とH-IIAロケットの打ち上げ費を合わせて300億円を投入したビッグプロジェクトだ。そのような高価なシステムを運用しているのに、24時間体制で監視していないというのは一般論として異例ではないだろうか。

マスパロマス局の最初の可視で、STTが異常とみなされてデータを無視されていること、STTとIRUの姿勢データが大きくずれている(1時間半も経っているので、30度程度ずれていたはず)ことは人間の機微な判断を待たなくても、コンピューターによる簡易な判断(データを無視するフラグの判定、基準外の値、値同士の単純な引き算など)で異常アラートを出し、担当者を呼び出すといったことも技術的に可能だったはずだ。

問題その3、ISASの開発体制

201160426_isas

このように見ていくと、2つの問題は予想もできなかった問題と言うより、大規模システムの開発運用としてはいささか残念な部類の失敗に思える。大きな誤差が発生する可能性の高いアルゴリズムでありながら、1つの大きな誤差は見過ごし、もう1つの誤差は却下した。両方とも誤差が大きすぎると考えるか、両方とも許容範囲内と考えるようなアルゴリズムであればこのようなトラブルにはならなかった。また大規模システムでありながら24時間の監視体制をとらず、監視時間外に重要な作業を行ってしまった。

これらを「人為ミス」といった言葉で切り捨てるのは簡単だが、それは精神論に過ぎるだろう。そのような結果に至った原因を掘り下げなければならない。

宇宙開発利用部会では「ひとみ」の事故原因を探る小委員会が設置されることが決まった。しかし、部会委員からは「技術的な専門家だけでなく、システムエンジニアリングの専門家を委員に加えて、ISASの組織や開発体制もよく調べて欲しい」という意見が出された。「ひとみ」へ注がれる視線は、技術的な「何が起きたか」から組織的な「どうして起きたか」へ移りつつある。

高性能のハード、見過ごされたソフト、カバーしきれない運用

「ひとみ」の観測機器も衛星を制御するバス機器も、ハードウェアは最新の高性能なものだ。世界に類を見ないX線天文観測性能はハードウェアの能力向上に負うことは言うまでもない。しかし衛星開発に限らず、どんなプロジェクトでも予算とスケジュールの制約がある。システムの開発では、ハードウェアの開発が遅れるほど、ソフトウェアの開発にしわ寄せが行く。足りない分を運用でカバーしようとしても、運用にも費用が掛かる。24時間常駐する監視員の人件費はタダではない。

今のところ、「ひとみ」のハードウェアがトラブルの原因になったと判断できる情報はない。しかし、今回の記事では解説しなかったが、セーフホールドモードでのスラスタ噴射のパラメタに間違いがあったことは確認されており、この間違いがなければ姿勢制御アルゴリズムのミスがあっても衛星の分解という事態にまで至らなかった可能性が高い。ソフトウェアの問題が見過ごされたことと、24時間監視運用をしていなかったことは、こういった予算と時間の不足で容易に起きることだが、実際にどうだったのかは調査結果を待つほかない。

事故原因を探るということは、技術的な問題点を確認できれば良いというものでもなければ、問題を起こした個人を特定して糾弾すれば良いというものでもない。そのような問題が起きるに至った根本的な原因を解き明かし、今後に活かすことこそが重要だ。

Image Credit: 池下章裕、JAXA