このページの本文へ

ここから本文

テクノロジー

技術レポート:アーカイブ

Category:ロケット・宇宙機・人工衛星開発

ロケット搭載ソフトウェア用検証試験ツールの進化

ロケット搭載ソフトウェア用検証試験ツールの進化

H-IIA/H-IIBロケット用搭載ソフトウェアを検証するためのツールの1つとして、フルソフトウェア・シミュレーション検証試験ツールがある。
搭載ソフトウェアの実物を検証できる新しいフルソフトウェア・シミュレーション検証試験ツールを共同開発したため、その進化した新ツールについて紹介する。

ロケット搭載ソフトウェア用検証試験ツールの進化[PDFファイル]

参考情報:

  • この技術レポートは、当社が展開する宇宙・通信事業のロケット・宇宙機・人工衛星開発ソリューションに係る技術について著述されたものです。
  • ロケット・宇宙機・人工衛星開発ソリューションは、つくば事業所鎌倉事業所が提供しています。
1 *つくば事業部 第一技術部 **つくば事業部 中部分室
ロケット搭載ソフトウェア用検証試験ツールの進化
Evolution of tool to verify the on-board software for H-ⅠⅠA/H-ⅠⅠB rocket.
福田 修三*  堀田 学** Shuzo Fukuda, Manabu Hotta
H-ⅡA/H-ⅡBロケット用搭載ソフトウェアを検証するためのツールの1つとして、フルソフトウェア・シミュレーション検証試験ツールがある。 搭載ソフトウェアの実物を検証できる新しいフルソフトウェア・シミュレーション検証試験ツールを共同開発したため、その進化した新ツールについて紹介する。 As one of the tools to verify the on-board software for H-ⅡA/H-ⅡB rocket, the full-softwaresimulator(FSST) is essential and very important. MSS, JAXA and NEC have jointly developed a new FSST, which can verify the real on-boardsoftware. In this paper, we introduce this enhanced FSST and its evolution.
1.まえがき
 H-IIA/H-IIBロケット用フルソフトウェア・シミュレーション検証試験ツール(FSST)は、慣性センサユニット(IMU)などの各種センサ出力、エンジン操舵などの各種モデルの動作、ロケットの物理運動などを模擬するシミュレータと、H-IIA/H-IIBロケット用搭載ソフトウェア(OBS:On-Board Software)を結合し、閉ループで動作させるツールである(図1)。 これまでのFSSTは、OBSの一部を変更し再度コンパイルしたものを供試体として検証していた。なぜなら、実ロケットのリアルタイムOS(RTOS:Real-Time OperatingSystem)上でタスクとして動作するOBSを市販計算機の一般OS上で動作させる必要があったためである。 当社、宇宙航空研究開発機構(JAXA)殿、日本電気株式会社殿の3社で開発した新しいFSSTによって、OBSの実物(実ロケットにロードするモジュールそのもの)を供試体とし、実ロケットと同じRTOS上で動作させ検証することが可能となった。2.OBSとその検証について FSSTの進化について述べる前に、FSSTの供試体である“OBS”とFSSTの目的である“OBSの検証”について述べる。 OBSは、制御・管理モジュール、システム・モジュール、そして当社が担当し開発した航法・誘導モジュールの3つのモジュールから構成される。航法・誘導モジュールはIMUからの情報を基にまず航法計算としてロケットの現在位置・現在姿勢を把握し、次に誘導計算として目標地点に到達するための機体回転レートやエンジン停止時刻などを計算する。制御・管理モジュールは航法・誘導モジュールの計算結果や各種機体情報等を基にロケット機体の制御を行う。システム・モジュールは制御・管理モジュールによるロケット制御を実現するために誘導制御計算機(GCC)との入出力の仲介(I/Oインタフェース)を行う。これら3つのモジュールが連係して動作することにより、地上からの遠隔操作に依らない自律飛行が可能となる。 OBSの検証は、開発時と運用時(打上号機毎の定数を適用してのミッション適合性を含めた検証が実施され 航法・誘導モジュール制御・管理モジュールシステム・モジュールの3つで構成ダイナミクス模擬(搭載機器モデル、機体環境データ)入出力処理搭載ソフトウェア(OBS)シミュレータロケットの軌道および姿勢に基づく、慣性センサなどの各種センサ出力。搭載ソフトウェアの計算結果に基づく、エンジン舵角制御などの各種装置制御、シーケンス制御。図1 閉ループによる結合・動作MSS技報・Vol.23 25.新旧FSSTの相違 1章および4章で述べたとおり、新旧FSSTの大きな相違はOBSの実物を使用しているか否かである。その相違により新旧FSSTの構成は大きく異なるものとなった。 旧FSSTは、シミュレータの内側にOBSとのインタフェース(I/F)機能を作成し、そのI/F機能の内側に市販計算機で動作するように修正/コンパイルしたOBS を組み込んでいる(図2)。シミュレータ、I/F機能、OBSは共有メモリ下に置かれている。コンパイルしなおしたOBSを利用するためエミュレータ部分は存在しない。 新FSSTは、機体運動模擬部(FSST-SIM)と称するシミュレータ部分と誘導計算機模擬部(FSST-EML)と称するエミュレータ部分が完全に分離しており、両者間のデータのやり取りはTCP/IP通信で行っている(図3)。新FSSTでも共有メモリを使用したI/Fは可能であったが、検討の結果、TCP/IP通信を採用した。その主な理由は、TCP/IP通信の方がインタフェース分解点が明確でありFSST-SIMとFSST-EMLを別々に開発しやすく且つ問題発生時に問題点を明確にしやすいこと、FSST-る)で異なる点は多々あるものの大まかには3つに分類できる。まず各モジュール毎に単体検証、機能検証、統合検証が実施される。次に、各モジュールを結合したOBSと誘導制御系機器(実ハードウェア)を組み合わせた誘導制御系システム試験が実施される。そして最後に、フルソフトウェア・シミュレーション検証試験(以下、「FSST検証試験」と称す)として、各モジュールを結合したOBSを適用しての実ハードウェアを伴わないソフトウェアのみでの検証が実施される。3.FSSTの用途 OBSの各モジュールを結合した検証は、2章で示したとおり、誘導制御系システム試験およびFSST検証試験で実施される。 誘導制御系システム試験はOBSと誘導制御系機器(実ハードウェア)を組み合わせての試験であるため、実ハードウェアの異常・故障ケースの実行には制限がある。また試験規模が大きいため手軽に実施できない。よって、異常・故障ケースをソフトウェアのみで手軽に実施できるFSST検証試験が実施されている。 FSSTは実ハードウェアを伴わないソフトウェアのみでの検証ツールであるため、実ハードをソフトウェアでモデル化できれば、多様な事象に基づくOBSの動作を手軽に検証することが可能となる。4.FSSTの進化 H-IIA/H-IIBロケット用の新GCCとしてマイクロプロセッサHR5000(3)が適用されたことにより、2010年度から2011年度にわたってFSSTを作り変えることとなった。これまでのFSSTではOBSの実物ではなく市販計算機用に修正/コンパイルしたものを適用していたため、OBSの実物を適用できるようにHR5000エミュレータを導入しFSSTを進化させることとなった。 HR5000エミュレータとはGCCをソフトウェアで模擬したものである。HR5000エミュレータ上でOBSの実物を動作させることにより、実機上で動作させた場合と同じデータを取得可能となる。OBSの実動作を検証できれば信頼性は大きく向上する。 なお、HR5000エミュレータはあくまでGCCの模擬であるため、実機におけるGCCと実ハード間の入出力(I/O)データおよび実ハードのモデルは別途準備しなければならない。このI/Oデータおよび実ハードのモデルはシミュレータ(図1)が担っている。シミュレータ(≒FSST)OBS-NGMOBS-CMM(割り込み処理等除く)OBS-SYM(I/O ドライバおよびBIT ドライバ)  ・ダイナミクス模擬・搭載機器モデル(センサ、アクチュエータ、AGE モデル等)・入出力インタフェース(変数出力、各種入力処理等)・機体環境データ(エンジン特性、質量特性等)・関数戻り値等設定データ(故障・異常等状態設定)・搭載機器モデル用設定データOBS2OBS-CMM(割り込み処理等除く)OBS-SYM(I/O ドライバおよびBIT ドライバ)  OBS1I/O ドライバインタフェース機能システムコール関数OBS 実行制御管理シミュレータとOBS とのインタフェース機能FSST 入力ファイル図2 旧FSSTの構成3レータ機能にGCCをエミュレートする機能およびFSSTSIMとのTCP/IP通信機能を付加したプログラムである。FSST-SIMは、当社がJAXA殿との契約のもと開発/納入した飛行経路計算プログラム(ALMA: Analyzerfor Launch vehicle Motion and Attitude)を改修し、FSST検証試験に必要なモデルやFSST-EMLとのTCP/IP通信機能等を追加したプログラムである。このFSSTEMLとFSST-SIMを同期させ動作させることにより閉ループ解析(図1)が可能となる。 FSST-EMLの主な役割は、FSST-SIMから受け取ったダイナミクス・データを基にOBSを動作させることである。FSST-SIMの主な役割は、FSST-EMLから受け取ったOBSの指令を機体ダイナミクスに反映することである。 なお、FSST-EMLは日本電気株式会社殿がJAXA殿との契約のもと開発し、FSST-SIMは当社がJAXA殿との契約のもと開発した。SIMは32bit環境であるのに対しFSST-EMLは64bit環境であるため、共有メモリとした場合はFSST-SIMの開発/検証規模が大きくなると予想されたことである。 なお、TCP/IP通信の場合は開発時には便利であるが運用時には解析データを容易に確認できないというデメリットもある。例えばOBS内のある変数の値を利用したいという場合、共有メモリの場合はグローバル変数として定義することで容易に利用可能であるが、TCP/IP通信の場合はFSST-SIMとFSST-EMLの両者に該当変数が何かを共通認識させると共に、該当変数の値を通信データに追加しなければならない。新FSSTではこの欠点を通信データを工夫することで緩和している。詳細は7章で述べる。6.新FSSTの構成(誘導計算機模擬部と機体運動模擬部) FSST-EMLは、Simics(4() ハードウェアのシミュレーションを行う仮想プラットフォーム)のHR5000エミュFSSTNoNoYesYes誘導計算機模擬部(FSST-EML) 機体運度模擬部(FSST-SIM)シミュレータ部分からデータを受信(Socket 通信)エミュレータ部分への送信データの編集エミュレータ部分からデータを受信(Socket 通信)シミュレータ実行・ダイナミクス模擬・搭載機器模擬(センサ、アクチュエータ、 AGE モデル、等)・変数出力、各種入力処理等シミュレータ部分への送信データの編集全データ受信完了全データ受信完了SimicsOBS2・OBS-NGM・OBS-CMM・OBS-SYMOBS1・OBS-CMM・OBS-SYMOBS 実行・機体環境データ(エンジン特性、質量特性等)・関数戻り値等設定データ(故障・異常等状態設定)・搭載機器モデル用設定データモニタシンボル番号対応ファイル FSST 入力ファイル(シンボル番号に対応するシンボル名とそのデータ長を定義したファイル)シミュレータ部分へデータを送信(Socket 通信)エミュレータ部分へデータを送信(Socket 通信)データデータTCP/IP通信TCP/IP通信図3 新FSSTの構成MSS技報・Vol.23 4 その他の代表的なI/Fとしては、OBS定数を変更して検証する場合への対応としてOBSへのパッチ機能などがある。8.工夫点 特殊な工夫の代表例として、OBSが参照した定数値をモニタする方法を紹介する。 例えば、OBSが構造体配列で定義された定数を構造体へのポインタから間接参照している場合、グローバル変数を使用していないことからモニタシンボル番号(7章)によるアドレス特定ができずOBSが取り出した定数値をモニタすることはできない。なぜなら、ポインタをモニタしてもFSST-EMLとFSST-SIMではメモリ空間が異なるため、ポインタの先にある情報が異なり意味を持たないためである。 よって、モニタしたい定数を含む構造体配列の全体を一度モニタした後に、OBS内でのポインタ変化量を“モニタした構造体配列全体”に適用し、該当定数を特定し取り出すという処置を行っている。しかしこの場合、構造体配列のサイズが大きいとすぐに通信量の制限(シミュレーション時間に影響するため通信量を制限している)7.FSST-EMLとFSST-SIMとのインタフェース FSST-EMLとFSST-SIM間のI/FデータはTCP/IP通信でやり取りしているため、I/Fデータの仕様は、開発/検証の容易性を優先し設計した。 I/Fデータのレコード長は、モニタ用の変数データのみを可変長とし、その他のデータは全て固定長とした。ただし、FSST-SIMの仕様により可変長データの大きさはシミュレーション開始時に確定するため、シミュレーション中は可変長データについてもデータ量は一定であり固定長と同様に扱うことが可能となっている。バイトオーダーは適用する計算機が確定しているためlittleendianに固定とした。I/Fデータのファイル・フォーマットは全てに共通で表1のとおりとした。表1中のデータのタイプとは、設定に関するデータ、変数の値等々の送受信データの種類を識別するためのものである。 新FSSTではOBSの実物を使用しているためOBSの変数値を確認したい場合、その変数のアドレスを把握しダンプしなければならない。しかもOBSが改修された場合はアドレスが変化する可能性があるため、アドレスを固定にすることはできない。さらに、TCP/IP通信でFSST-SIMに変数値を送信するため、送信データが何の変数値なのかをFSST-SIMとFSST-EMLで共通に認識する必要がある。 新FSSTでは変数に対応する番号(モニタシンボル番号)を定義しその番号をFSST-SIMからFSST-EMLに送信することでモニタしたい変数が何かを共通認識できるようにしている。具体的変数名ではなく番号としたのは、データサイズを固定にできることと通信量が少なく済むためである。FSST-EMLはモニタシンボル番号に対応する変数のダンプを取得し物理量に変換しモニタシンボル番号と同じ並びでFSST-SIMに送信する。ダンプする際のアドレスはOBSの各モジュールをリンクした際のMAPファイルより取得する。モニタシンボル番号と変数の対応はモニタシンボル対応ファイルで行っている。モニタシンボル対応ファイルにはシンボル番号に対応する変数名とそのデータ長を定義している。このモニタシンボル対応ファイルはFSST-SIMとFSST-EMLの両方に外部ファイルとして与える。以上の処置を行うことで、FSST-SIMからFSST-EMLに送信するモニタシンボル番号さえ変更すれば、手軽に変数の値を確認することが可能となる(図4)。FSST-EMLモニタシンボル番号と変数の対応確認モニタシンボル番号モニタシンボルデータモニタシンボルデータ変数に対応するアドレスの特定FSST-SIM変数の値を受信変数の値を受信モニタシンボル番号と変数の対応確認変数の値をダンプ変数の値をダンプMAP ファイル(OBS をリンクした際のメモリ情報)モニタシンボル番号対応ファイル       (シンボル番号に対応するシンボル名とそのデータ長を定義したファイル)繰り返しヘッダー部(64ビット)(バイトオーダーはlittle endianに固定) データ部(バイトオーダーはlittle endianに固定)予備(28bit) データのタイプ(4bit) データのバイト数(32bit) データ(サイズはヘッダー部の指定にに従う)表1 I/Fデータのファイル・フォーマット図4 変数のモニタ方法510.むすび 今回の新FSSTの開発をとおして、色々な問題点や課題を認識することができた。これら問題点や課題を今後のFSSTの改善に活かし、OBSの検証およびロケットの開発・運用に貢献したいと考えている。 ロケットは大変高価なものである。その高価なロケットの打上げをソフトウェアの不具合に起因して失敗すれば、それは痛恨の極みである。なぜなら検証により問題点を解決できていれば防ぐことができたに違いないからである。ソフトウェアに対しては今まで幾重もの検証を実施し信頼性を高めてきた。この方針は今後も変わらないであろう。故にOBSの実物を検証できるFSSTは今後更に重要性を増す可能性がある。今後もFSSTの技術の維持・発展に努めていきたい。参考文献⑴ 第55回宇宙科学技術連合講演会論文:2D06 H-IIA/H-IIB ロケット用搭載ソフトウェア検証ツールの開発(横田清美、泉達司、石濱直樹、福田修三、堀田学、渡辺仁志、下村知子)⑵ NEC技報:http://www.nec.co.jp/techrep/ja/journal/g11/n01/110125.html  ロケット用誘導制御計算機の変遷と展望(林 伸善)⑶ HR5000:http://www.hirec.co.jp/eng/business/pdf/320MIPS64bitMPU.pdf⑷ Simics:http://www.windriver.com/japan/products/simics/index.htmlにかかってしまい他の変数を一切モニタすることができなくなる。よって、定数値については別途ソースファイルをコンパイル・リンクし、そのモジュールから値を取り出すことも可能とした(図5)。定数値をI/Fデータからモニタするか、別途コンパイル・リンクしたモジュールからモニタするかはFSST-SIMの設定で簡単に切り替えることができる。9.将来の課題、展望 市販の高スペックCPU(XeonⓇ X5690 3.46GHz)を使用しても新FSSTのシミュレーションに要する時間は実時間の約1.8倍である。8,000秒のシミュレーションを実施した場合、シミュレーション終了まで約14,400秒(約4時間)かかる計算になる。時間を要する原因はエミュレータを使用していることによる。新FSSTではなくALMA(飛行経路計算プログラム)にて8,000秒のシミュレーションを行うと数十秒程度で終了するため、エミュレータの負荷がいかに大きいかがわかる。シミュレーション時間の改善が今後の課題である。 将来の展望としては、誘導制御系システム試験の一部をFSSTで代行できる可能性があることである。代行できればロケット開発時およびロケット運用時のスケジュールの短縮、そして信頼性の向上に貢献できるものと思われる。FSST-EML FSST-SIM定数の構造体配列[0] 全体をモニタモニタする定数モニタ定数を特定定数の構造体配列[xx]〜定数の構造体配列[xx]〜〜〜モニタ定数を特定〜〜定義ソース・ファイル相対アドレス計算定数の構造体配列[xx]どちらでモニタするか選択別途コンバイル・リンクした定数モジュール図5 テーブル定数のモニタ方法