見出し画像

OpenMOMOのすすめ

OpenMOMOのすすめ
https://github.com/istellartech/OpenMOMO

 GitHubにてMOMOロケットの飛行ログを中心としたデータが公開されています。ロケットの運用に関してここまで詳細なデータを公開している組織は官民含めてそうありません。これほどのデータを目の前にして何もしないのは勿体ないというものです。これらデータからMOMO型ロケットの飛行の一端が分かるとともに、仕組みや制御が見えてきます。
 まずはイグニッションシーケンスに注目し、各パーツの役割や変化を読み解きます。

※この文章を書くにあたり公式側に一切の取材や確認作業を行っておりません。あくまで個人的な解釈の一つに過ぎない事をご了承ください。


・まずは絵的に理解する

 とりあえずこのファイルを参照してください。
https://github.com/istellartech/OpenMOMO/blob/master/MOMO_TF2/others/MOMO2%E5%8F%B7%E6%A9%9F%E9%85%8D%E7%AE%A1%E7%B3%BB%E7%B5%B1%E5%9B%B3_Ver2-RevB.pdf

 MOMO2号機の圧力燃料配管とエンジンやバルブとの関係を示した図面です。あくまで公開用資料であり、実際に飛行したものとは異なると思われますが、概略レベルではこういったものであると捉えて良いでしょう。公式公開画像や工場見学者による写真とも符合する点が多く、実際にも概ねこのような形になっていると考えられます。
 情報量が多く読み解くのには少々骨が折れますが、とりあえず下画像のような感じで理解してください。右の系統はバルブを駆動させる為の窒素系であり、今は無視します。

 概ねこのように接続されています。MOMO型ロケットは押し出しガスの圧力を弁開閉によって調整することで推進剤を適切な割合でエンジンに送り込む仕組みになっています。
 エタノールはメインエンジンとガスジェネレーター(GGG)に供給されており、液体酸素はメインエンジン燃焼室(MCC)・ガスジェネレーター(GGG)・点火器(イグナイタ)に供給されています。図では点火器が
 これをふまえてMOMO2-TF2の飛行を読み解きます。

・データを参照する

https://media.githubusercontent.com/media/istellartech/OpenMOMO/master/MOMO_TF2/telemetry_csv/UHF/telem1/telem1_pressure_gauges.csv
 まずはこのファイルをダウンロードし、表計算ソフトで開きます。
 エンジンまわりの動きを見たいのでデータを整理します。P1はヘリウム上流、P6は窒素上流の圧力で変化量が少ないので列削除します。エンジン点火前後の動きを見たいので、動きの少ないT-7以前を削除します。この状態でざっとグラフ化します。

 このグラフを観察します。T-6.3とT-5.8の間でP2(液酸加圧ヘリウム)P3(燃料加圧ヘリウム)P4(液酸タンク圧力)が変化し、次いでT-5.4の間でP8(ロール制御ガス圧力)が変化しています。その後にT-3.5とT-3.1の間にP8が上昇、T+0.2とT+0.6の間でP5(MCC圧力)が上昇しています。
 更に別のファイルを参照します。バルブの駆動状況も公開されていますので、そちらを参照します。
https://media.githubusercontent.com/media/istellartech/OpenMOMO/master/MOMO_TF2/telemetry_csv/UHF/telem1/telem1_sequence_and_valve.csv
 これはコンピュータ上のシーケンスとイグニッション及びバルブの動作状況を記録したデータです。controlは無視します。
 ignite_mainは主燃焼室のイグニッション用ハイブリッドエンジンのイグナイタへの通電コマンドを示していると考えられます。このデータでは0のみですが、より詳細なCバンドデータによるとT-1.4からT-1.0の間に1となっています(Cバンドテレメトリはデータ量が多過ぎ、全体を見通しにくいのでこの場ではエッセンスを抜き出す程度とします)。
※このデータにはカンマ抜けがあります。1行目の「v31_statev18_state」を「v31_state,v18_state」へ修正してください。
 値openとcloseを条件付き書式で色付けしてみます。

 v21はGGGとMCCのイグニッション用ハイブリッドエンジンに繋がるマスター酸素バルブで、下流のv22も開くとMCCのイグニッション用ハイブリッドエンジン(MCCイグナイタ)に、v24も開くとGGGイグナイタに酸素が供給される仕組みです。このデータからv21はT-12に開くことが分かります。
 一方v22の動作状況は公開されていません。しかし推測することは出来ます。Cバンドテレメトリのt3熱電対データを参照するとT-10秒あたりから下がりはじめ、T-1.3頃から上昇に転じています。
 この事からT-10頃にv22が開かれたことでMCCイグナイタの低温酸素が熱電対を冷やし始め、約T-1.4秒のMCCイグナイタの点火により温度が上昇たことを推測できます。

 v29は燃料のメインバルブであり、このバルブへ開コマンドが発出されるモードとなる時刻をT+0としていると推測されます。下図はt4熱電対の温度ログです。MOMO-TF2の飛行ではGGGが想定外の高温となり、GGGから漏出した高温ガスによりv29に繋がるエアチューブが焼損し、v29がフェイルクローズした為にMCCの燃焼が停止し、墜落へと繋がったと考えられていますが、その前段階の様子が収められています。

 v31はGGG向け燃料のバルブであり、v29がcloseした直後にこちらもcloseしています。CバントテレメトリによるとT+4.9に弁動作指令に反して閉塞操作が始まり、T+5.1にcloseしていることから、こちらもv29同様にエアチューブの焼損による動作であると考えられます。上図はt4熱電対の温度変化であり、GGGイグナイタや弁動作のイベントと符合します。
 v26/v10/v13はT-6.2とT-5.7の間でopenしています。映像で約T-6にメインエンジンから低温酸素が噴出するのはこの予冷操作によるものと推測できます。

・MOMO-F2の圧力データのおさらい

 再度このグラフを確認しましょう。

 p8の圧力がGGGのイグナイタの点火で上がった後に燃焼開始で跳ね上がり、異常燃焼の開始とともに不安定となり、v31のクローズにより低下した事がわかります。

・エンジン構造の再確認

 バルブの動作と温度変化の概略が分かったところで配管系統図へ戻ります。これまでに読み解いたバルブの位置を確認してみましょう。主燃料バルブであり秒読みの原点にもなっているv29、予冷段階からopenとなる液体酸素のメインバルブv26が見えます。イグナイタはMCC及びGGGへ燃料が供給されるのに先だって点火されている必要があるので、v29やv31がopenになる前にv21がopenになるといった関係性が読み解けるかと思います。

実際のIG-1及びIG-2(MCCイグナイタ)は下図のようにMCC上部に突き刺さっています。

・MOMO-TF2の観察を応用してMOMO-F3のテレメトリを読み解く

 MOMO-TF2に関して軽く解かったところでMOMO-F3を読みましょう。MOMO-TF1とMOMO-TF2には「CSVカラム意味.txt」といった形で読み解くためのリファレンスが用意されていましたが、MOMO-F3ではデータ系列が明確に示されておらず、データおよびプロット化画像のみが公開されています。即ちどのパラメータが何を意味するのか読み解く必要があります。

 P8およびP9は似た数値を示しておりこのグラフではほぼ完全に重なっています。数値からMCCの圧力である事が推測できます。MOMO-TF2ではMCCの圧力計が一時的に正しくない値を示したので、MOMO-F3ではMCCの圧力計を2本に増設したものと考えられます。

 MOMO-TF2とMOMO-F3のイグニッションシーケンスは多少異なる可能性が高いのですが、液体酸素を先行して流し予冷、後に燃料を流すという順序はエンジンに仕様上変更不能です。
 系統名からP2・P4・P6が燃料系、P3・P5は酸化剤系である事が推測できます。P2はMOMO2号機のP3にあたるの燃料加圧ヘリウム圧力、P3はMOMO2号機のP2にあたる酸化剤加圧ヘリウム圧力、P4は新設された燃料タンク圧力計、P5はMOMO2号機のP4相当、P6・P7は新設された推進剤圧、P8はMOMO2号機P5相当であり、P9はP8同様にMCC圧力を計測しています。
 P4・P5・P6・P7・P9の追加に関しては、MOMO-F2では推進剤の瞬間的な圧力変化によってGGGの異常燃焼が発生した為、推進剤圧力の監視を密にする為新設されたものと考えられます。

 なお推進剤配管に関してはMOMO-F2から変更されていると明言されているので、このまま適用して理解するのは不適切です。P6及びP7の波形はMCCの影響を強く受けていると考えられるので、MCCに近い位置考えられます。
 このような考え方でGGGやイグナイタ系統の圧力計や弁の位置を推測することが出来ます。この場合、機体個別の仕様の変化に気を付ける必要があります。例えばMOMO1はGGGを搭載していません。MOMO-CFT2以降及びMOMO-F3のイグナイタ用酸素は搭載酸化剤を使用せず、地上から供給されるよう変更されているとされています。

 MOMO-F4では折り紙飛行機射出装置の駆動用に窒素またはヘリウムの圧力ガスが供給されていると考えられます。
 今後も試験毎、機体毎に様々な変更が行われると考えられ、公開データOpenMOMOはそれらを読み解く道具になります。

・MOMO-F3のGGG

 以下はMOMO-F3の熱電対t7の温度であり、MOMO-TF2のt4熱電対と設置場所は異なると思われますが、波形からロール制御ガス温度計と考えられます。運転中は450度から500度程度で安定しており、燃料枯渇により燃焼終了の瞬間に混合比の変化から900度以上まで跳ね上がり、低温酸素で冷やされ、それが終わるとGGGの残熱から再加熱されていく様が記録されており、大変興味深いものですのでデータを観察してみてください。


・弁の動きとフェイルセーフ

 やや詳細な部分に立ち入って理解する為にはCバンドテレメトリを紐解く必要が出てきます。以下のcsvは113MBと大きなファイルですので、サーバー負荷を避けるためにローカル保存を行い、必ずある程度スペックに余裕のあるPCで開いてください。
https://github.com/istellartech/OpenMOMO/blob/master/MOMO_TF2/telemetry_csv/C_band/C_pc1_totallog.csv
 各列の示すデータは「CSVカラム意味.txt」から確認できます。先ずはMCC及びGGGの点火に使われる酸素を供給するバルブの動作に注目します。MOMO型の推進剤系の弁のうち駆動弁は全てボール弁(ball valve)であると考えられます。流路抵抗が少ない反面、流量調整には適さないので全開または全閉で使用する種類の弁となります。MOMO型のテレメトリには3つの値(0/1/2)しか見られず全開および全閉と遷移状態のみしか想定していない事が推測できます。
 点火系の親バルブであるv21(V・W列)を観察すると、約T-12まで0/2、約T-1.8まで1/2、約T-11.7まで1/0、約T+1.0まで1/1、約T+1.4まで0/1、約T+1.6まで0/0、以降0/2となっており、通常の閉開閉動作は0/2(close)-1/2-1/0-1/1(open)-0/1-0/0-0/2(close)である事が推測されます。

 次に、先に触れたMOMO-F2のMCCの運転と停止に関するv29の動作に注目しましょう。該当する部分はAB・AC列です。AB列はOBCコマンド、AC列はv29デバイス側ステータスとなっています。
このデータは概ね以下のようになっています。約T+0まで0/2、約T+0.3まで1/2、約T+0.6まで1/0、約T+4.4まで1/1、約T+4.6まで1/0、データ終了まで1/2。
 約T+0までの間、主燃料バルブは閉じていなければならないので、OBCコマンド0はclose指令であり、デバイスステータス2はclose状態を指していると考えられます。
 約T+0.3までの間、コマンド1、デバイス2となっています。この状態はopenコマンドが送出されているがデバイス側が未動の状態であると考えられます。
 約T+0.6までの間、コマンド1、デバイス0となっています。この状態はopenコマンドが送出され、デバイス側が動作中(moving)であると考えられます。
 約T+4.4までの間、コマンド1、デバイス1となっています。この状態はopenコマンドが送出され、デバイス側がopen状態であると考えられます。
 約T+4.6までの間、コマンド1、デバイス0となっています。この状態はopenコマンドが送出され、デバイス側が動作中(moving)であると考えられます。コマンドに反して動作している原因はGGG異常燃焼による配管損傷により噴出したガスがエンジン上部(1F)内を焼き、v29に接続されたエアホースを焼損させたことで、v29が駆動力を失い、フェイルセーフ設計によって自動的にclose側へ遷移している為と考えられます。
 データ終了までの間、コマンド1、デバイス2となっています。この状態はopenコマンドが送出され、デバイス側はclose状態である事を示していると考えられます。先の遷移が終了し、エアホース焼損により自動的に弁がcloseされた為と考えられます。

 供給系バルブは上図のように動作するfail-close設計であり、ベント系はfail-open設計であると考えられます。これはバルブがコンピュータや制御窒素系との接続を失った際の機械的動作(バネ等による)であり、こうした仕組みはフェイルセーフと呼ばれます。
 ここで紹介したフェイルセーフはバルブ単独のものですが、コンピュータもまた正常側の閾値を超えた場合にMCCを制御停止させるフェイルセーフ設計を行っていると考えられます。

・UHFとC_bandについて

 MOMO型ロケットは2種類の帯域で機上コンピュータによって取りまとめられた様々なデータを送信しています。UHFは300MHzから3GHz、Cバンドは4から8GHzであり、CバンドはUHFよりも高ビットレートのデータを送信できる反面減衰が大きいので、飛行安全上重要度の高いデータはUHFに乗せて送信しています。更に安全策としてデータのビットレートを落として送信しており、Cバンドテレメトリに比べて情報の更新間隔が長くなっています。結果Cバンドテレメトリは1秒あたり最大数千回のデータ更新が出来るのに対し、UHFテレメトリは1秒あたり2回程度の更新頻度に留まっています。
 これらのデータの中で地上側で受信できたものの一部がOpenMOMOとして公開されています。

・MOMO3号機のフライトから3次元座標(ECEF)を読む

 MOMOロケットは飛行安全と飛行経路の制御の為に地球に対する位置を把握する必要があります。地表に対する位置を示すだけであれば緯度経度高度座標でも良いのですが、緯度経度高度座標は球状の座標系である為に地表からの高度が上がると緯度経度の格子の面積が変わり、距離や速度を表現しにくい弱点があります。
 一方ECEFは地球に固定された立方体状の座標系であり単位はメートル(m)です。地表からの高度が上がっても格子の大きさが変わらない為、距離や速度を表現しやすい座標系と言えます。
 ECEFを理解する第一歩として絵的にみていきましょう。以下のページ国土交通省国土地理院の『緯度・経度と地心直交座標の相互換算』にアクセスしてください。ECEFから緯度経度高度を算出する計算機ページです。
https://vldb.gsi.go.jp/sokuchi/surveycalc/surveycalc/transf.html

 「地心直交座標」をクリックして選択しておきます。次にMOMO3号機のテレメトリから座標を獲得しましょう。MOMO型ロケットはGPSモジュールfireflyを2系統搭載しており、OpenMOMOのMOMO-F3(TF3)では2系統および2系統を総合し緯度経度高度に変換したデータも公開されています。ここではGPSモジュールのうち1つのデータに注目します。
https://media.githubusercontent.com/media/istellartech/OpenMOMO/master/MOMO_TF3/telemetry_csv/UHF/telem1_ecef_gpsinfo_firefly_a.csv
 このデータは約T-20からT+518までをカバーしており、飛行前から高度113.4km達成時、そして射点から見て水平線の向こうの水面へ落下する直前の高度約1km程度までの、飛行のほぼ全行程が書かれています。
 上記csvファイルを開き、一番上の行に注目します。

 Tはシステム時刻、ecef_x,ecef_y,ecef_zそれぞれの値を組み合わせたものが座標です。2行目のx,y,z値を先ほどのウェブページに入力し、計算実行ボタンを押してください。

 
  右フレームにこのような結果が表示されれば成功です。大樹町のジオイド高は約24m程度、射点の標高が約8m、MOMO型ロケットのGPS装置はノーズコーンに付いていますので、機体全長の約10mを足します。
24+8+10=42
 42mが本来あるべき数値ですが、計算結果の楕円体高は61.304mとなっており、約19mの誤差があります。


 下フレームには地図上にピンが刺されています。これはECEFの楕円体高を無視し地図上へ投影した結果となります。

 拡大すると概ね射点と一致することがわかります。

 Google Earth Proで確認するには、左上の検索バーに「42°30'22.19"N, 143°27'23.23”E」と入力します。

 次に別の点を調べてみましょう。452行目、T+240.58のECEFを計算機に入力し、計算実行ボタンをクリックします。

 以下のような結果になれば成功です。楕円体高度は約113401mとなり、この前後を含めた値が公式発表の『最大高度 : 113.4 km』の根拠となっていると考えられます。
 こちらもGoogle Earth Proで確認しましょう。左の検索バーに「42°26'17.32"N, 143°42'35.37”E」と入力します。

 海上に現れたピンの上で右クリックしプロパティを選択します。

 現れたミニウインドウの『標高』タブをクリック、『地面に固定』のプルダウンを『海抜』へ変更、左の標高部分に「113401m」と入力しOKを押します。すると今設定したピンが宙へ移動します。見えない場合にはマウスホイールやテンキー「-(マイナス)」で調整してください。

 空中にピンが現れました。概ねこのあたりがMOMO-F3の最高到達高度付近となります。このままでは今一つ操作性が良くないのでもう一つの方法を試します。
 上メニューから追加-写真を選びます。現れたミニウインドウから写真タブを選び、緯度経度標高を10進法へ変換した「42.506165,143.456453,113401」と入力し、下のOKを押します。

 これでカメラ位置が追加されました。名前は特に変えなかったので「無題 - 写真オーバーレイ」という形で左の「場所」タブに入っています。

 左タブの「無題 - 写真オーバーレイ」をダブルクリックすると視点がその位置へ動きます。この状態で右上の視点コントロールをドラッグすると先ほど指定した座標からの眺め、即ちMOMO-F3の最高到達高度付近での眺めを望むことが出来ます。キーボードのCtrl+矢印キーでも同じ操作が出来ます。

 もう一つのデータを見てみましょう。946行目T+517.96のECEFを調べます。

 緯度経度と共に楕円体高178.811mという数が出てきました。別の計算機を使って水平距離を確認してみましょう。
 以下のページ国土交通省国土地理院の『距離と方位角の計算』にアクセスしてください。緯度経度から距離と方位を算出する計算機ページです。
https://vldb.gsi.go.jp/sokuchi/surveycalc/surveycalc/bl2stf.html
 出発点と到着点へT-19.94とT+517.96でそれぞれ求めた緯度経度を入力し、計算実行ボタンを押すと以下のようになります。

 出力から、T+517.96秒時点での緯度経度上の直線距離が約37kmである事と、相対位置が約108度である事がわかります。
 T+517.96は射点沖合37km楕円体高度178mから送信されたデータであり、MOMO-F3のフライトで最後に受信できた位置情報であると考えられますが、物理的に受信可能であったか確認します。カシオ計算機株式会社が提供している計算機サービス『地上から見渡せる距離』を利用します。
https://keisan.casio.jp/exec/system/1179464017
 楕円体高178mからジオイド高24mを引いた154を入力し、計算ボタンを押します。

 計算によって獲られた見通し距離46.98kmという数は大気屈折を考慮し6%加算されていますので、その分を補正すると44.32kmとなります。この値は37kmを十分に上回っており、受信アンテナが海面高度であっても物理的に受信可能であったと推測されます。
 なおこの計算は地球を真球と仮定しており、計測誤差、計測後の送信の遅延、潮汐、電波の回り込み等の細かな事情を考慮していません。

 以下がMOMO-F3「宇宙品質にシフト MOMO3 号機」のプレスリリースです。これまで参照したり求めたりした数値が公式発表の元になっているであろう事が解るかと思います。
http://www.istellartech.com/7hbym/wp-content/uploads/2019/05/IST-PressRelease_2019050501.pdf

 ECEFはCG等で表現するにも非常に使い勝手の良い座標系です。例えばUnityで地球オブジェクトとロケットオブジェクトの位置関係を表現したい場合、時間経過に応じてECEFの値をロケットオブジェクトのVector3に代入するという非常にシンプルな方法で実装できてしてしまいます。

 実際にこのまま実装するとUnityの特性上ちょっとした不具合が起こり、それを解決するには少々工夫が必要ですが、ここでは触れません。

・公式Google Earth .kmlデータ

MOMO-F3及びMOMO-F4ではテレメトリの飛行軌跡から作成したと思われる.kmlファイルが公開されています。MOMO-F3であれば『OpenMOMO/MOMO_F3/others/MOMO3_result.kml』ファイルです。このページを開いてCtrl+Sでファイルに保存し、そのファイルをダブルクリックすればGoogle Earth Pro上で軌跡が表示されます。上画像はMOMO-F3とMOMO-F4の.kmlファイルを読み込んだ状態です。
 Google Earth Proはフリーで使用できるソフトですので、PCスペックに余裕があれば試してみることをお勧めします。

・クォータニオン

 回転によって姿勢を表現できる便利な概念です。飛行姿勢のみならず、ジンバルやロール制御、重心位置や飛行進路との関係性を読み解くには必須となる要素です。MOMO-F3ではgyro_1f_quaternion.csv等のファイルで公開されています。
 MOMO型のクォータニオンは先端(前部)を起点とし、下部(後部)に向いた軸を基準としている点に注意が必要です。
https://github.com/istellartech/OpenMOMO/blob/master/MOMO_TF2/others/MOMO2%20%E5%BA%A7%E6%A8%99%E7%B3%BB%E3%83%BB%E9%83%A8%E4%BD%8D%E5%90%8D%E7%A7%B0_%E4%B8%80%E8%88%AC%E5%85%AC%E9%96%8B%E7%94%A8.pdf
 またCGで機体姿勢を再現する際にも非常に有用であり、例えばUnity上で実装する場合には「-Q1,Q3,Q2,Q0」の順に代入するだけで実装できます。

 実際には基準軸を地球中心へ向ける、または射点地面に垂直にする操作が必要になりますが、ここでは触れません。

 上画像はUnity上で位置情報(ECEF)と姿勢情報(クォータニオン)を再現した例です。

・用語

※この記事での用語でありオフィシャルなものではありません。

MOMO-TF2/MOMO-F3/MOMO-F4
 フライト時の機体仕様またはフライト運用およびそのテレメトリを指します。

MOMOn号機
 フライト時とフライト前の仕様調整中を含む状態の呼称です。

MOMO型ロケット
 MOMO-TF1(窒素リアクションロール制御)、MOMO-TF2(ガスジェネレーターロール制御)、MOMO-F3(信頼性・生産性向上・通信秘匿性向上)、MOMO-F4(ペイロード増加)と主な部分でも大きく変化し続けています。ヘリウムタンク部の縦フレームの数は4>3>5>5と変化しておりその他にも、安定翼の強化と面積の減少、タンク間CFRPの肉厚化、MCCとGGGに分配する燃料系統の変更と、公表されているだけでも変更点が非常に多岐に渡っています。今後もノーズコーンの切り離し機能の追加や生産工数の最適化といった変更は行われる公算が高く、それらの総称として「MOMO型ロケット」と呼称することを提案します。

いいなと思ったら応援しよう!