Missile Datcomの基礎

Missiel Datcomは飛翔体の空力や性能の予備設計や解析のために広く使われている半経験則的なデータシート集の様なツールです。20年以上USAFや米国防衛企業によって無償で提供されていますが、ITAR規制品なので、米国内外へ輸出入のできないものです。日本では使えないので、MISSILE DATCOM User’s Manualを見ながらソフト内部でやってることを研究します。これはマニュアルを読むためのまとめです。なお、配布されている実行ファイルはexeファイルのようですが、Linuxなど*nix系であってもWineなど使えば実行可能とのこと。使い方は至って簡単で、実行ファイル（MD****.exeなど、例えばMD0311.exe）と一緒に計算したい条件を入れた入力ファイル(for005.dat)を同じフォルダに入れておき、実行ファイルを実行すれば出力ファイルが出てきます。

# Introduction意訳
飛翔体の予備設計迅速かつ経済的に飛翔体の構成設計において幅広い空気力学的な推定をする必要があります。
最終的な計上や空力性能はサブシステムつまりペイロードサイズや推進システム、打上げ機構に大きく依存します。
設計者は幅広い構成において正確に予測できる必要があります。
このソフトの基本的な目的は予備設計において正確に予測を行うことや、ユーザーに特定のアプリケーションにフィットする
代替方法を見つけさせる空力設計ツールを提供することです。



# 入出力の14ファイル
| ファイル名 | 使い方                                                        | サブルーチン        |
|:-----------|:--------------------------------------------------------------|:--------------------|
| for002.dat | for008.datから読み込まれた入力Namelist                        | READIN              |
| for003.dat | 空力データのプロットファイル                                  | PLOT3,PLTTRM,PLTUT9 |
| for005.dat | ユーザー入力ファイル                                          | CONERR              |
| for006.dat | プログラムアウトプットファイル                                | PRINTS,PRIIOM       |
| for008.dat | for005.datをエラーチェックしたもの                            | CONERR              |
| for009.dat | Bodyの幾何データ                                              | SBODY               |
| for010.dat | 迎角によるBodyの圧力係数データ                                | SOSE,VANDYK,HYPERS  |
| for011.dat | フィンの圧力係数データ                                        | FCAWPF              |
| for012.dat | ゼロ迎角・局所マッハ数のBodyの圧力係数データ                  | SOSE                |
| for020.dat | 力・モーメント等, Adaptive Modeling Language format           | PLOT20              |
| for021.dat | 力・モーメント等、Aviator Visual Design Simulator format      | PLOT21              |
| for022.dat | Tecplot互換の幾何ファイルBodyとフィンのみ。インレット等は無し | TECGRD              |
| for042.csv | 全ての標準データ                                              | PLOT42              |
| for043.csv | フィンデータ                                                  | PLOT43              |
| vpath*.dat | PRINT VORTEX コントロールカードのオプション選択時のみ出力。Tecplot互換の出力ファイル。Paraviewなどで可視化可能。ファイル名は“vpath_a4.00_m1.60.dat”のようになり下記条件に相当 α = 4, Mach = 1.6                                                             | VPRINT              |


for006.datとfor042.datは常に出力されるファイル。
for022.datは可視化ソフトTecplotのASCIIフォーマットで、Paraviewなどフリーのソフトで可視化が可能。

![test.png](https://qiita-image-store.s3.amazonaws.com/0/40132/5e7bcf7e-4a58-ab14-daef-59c6580fe276.png)


# Namelist
| Namelist           | 定義するもの                       | 任意かどうか |
|:-------------------|:-----------------------------------|:-------------|
| $FLTCON            | 飛翔条件                           |              |
| \$AXIBOD or $ELLBOD | Body                               |              |
| $FINSET[1-9]       | [1-9]番目のフィン                  |              |
| $PROTUB            | 突起                               |              |
| $INLET             | インレット                         |              |
| $REFQ              | reference quantities               | 任意         |
| $DEFLCT            | panel incidence(deflection angles) | 任意         |
| $TRIM              | trim case                          | 任意         |
| $EXPR              | experimental input data            | 任意         |


# データ

![スクリーンショット 2016-05-02 19.33.32.png](https://qiita-image-store.s3.amazonaws.com/0/40132/2e20f27f-abd6-c4a9-3270-4e8b11119efd.png)
（引用：AFRL-RB-WP-TR-2011-3071）

| 記号          | 定義                                       | 座標軸    |
|:--------------|:-------------------------------------------|:----------|
| $C_N$         | 法線力係数 Normal Force                    | body axis |
| $C_L$         | 揚力係数 Lift                              | wind axis |
| $C_M$         | ピッチングモーメント係数                   | body axis |
| $X_{cp}$      | 圧力中心                                   |           |
| $C_A$         | 軸力係数 Axial Force                       | body axis |
| $C_D$         | 抗力係数 Drag                              |           |
| $C_Y$         | 横力係数 Side Force                        | body axis |
| $C_n$         | ヨーイングモーメント係数                   | body axis |
| $C_l$         | ローリングモーメント係数                   | body axis |
| $C_{N\alpha}$ | 迎角で微分した法戦力係数                   |           |
| $C_{m\alpha}$ | 迎角で微分したピッチングモーメント係数     |           |
| $C_{Y\beta}$  | 横滑り角で微分した横力                     |           |
| $C_{n\beta}$  | 横滑り角で微分したヨーイングモーメント係数 | body axis |
| $C_{l\beta}$  | 横滑り角で微分したローリングモーメント係数 | body axis |

BodyだけもしくはBodyとフィンの組み合わせの場合は下記も計算されます。全てbody axis

| 記号                | 定義                                          |
|:--------------------|:----------------------------------------------|
| $C_{Mq}$            | ピッチ角で2階微分したピッチングモーメント係数 |
| $C_{Nq}$            | ピッチ角で2階微分した法戦力係数               |
| $C_{Aq}$            | ピッチ角で2階微分した軸力係数                 |
| $C_{M\dot{\alpha}}$ | 迎角で2階微分したピッチングモーメント係数     |
| $C_{N\dot{\alpha}}$ | 迎角で2階微分した法戦力係数                   |
| $C_{lp}$            | ロール角で2階微分したローリングモーメント係数 |
| $C_{np}$            | ロール角で2階微分したヨーイングモーメント係数 |
| $C_{Yp}$            | ロール角で2階微分した横力係数                 |
| $C_{lr}$            | ヨー角で2階微分したローリングモーメント係数   |
| $C_{nr}$            | ヨー角で2階微分したヨーイングモーメント係数   |
| $C_{Yr}$            | ヨー角で2階微分した横力係数                   |


# 出力ファイルfor042.csvの中身
| ヘッダ | 中身                                                               |
|:-------|:-------------------------------------------------------------------|
| CASE   | 実行されたCase番号                                                 |
| RAD?   | 単位系定義がラジアンか度か(0 = degrees, 1 = radians)               |
| TRIM?  | trimするかどうか (0 = not trim, 1 = trim)                          |
| MACH   | マッハ数                                                           |
| RE     | レイノルズ数                                                       |
| ALT    | 高度                                                               |
| Q      | 動圧                                                               |
| BETA   | 横滑り角                                                           |
| PHI    | ロール角                                                           |
| SREF   | 参照面積                                                           |
| XCG    | ノーズから重心の距離                                               |
| XMRP   | 直径を1とした時のノーズから重心の距離の数                          |
| LREF   | 縦方向の参照長さ                                                   |
| LATREF | 横方向の参照長さ                                                   |
| ALPHA  | 迎角                                                               |
| CN     | 法線力係数                                                         |
| CM     | ピッチングモーメント係数                                           |
| CA     | 軸力係数                                                           |
| CA_0B  | ベースとなる抗力を含まない軸力係数                                 |
| CA_FB  | ベースとなる抗力を含む軸力係数                                     |
| CY     | 横力係数                                                           |
| CLN    | ヨーイングモーメント係数                                           |
| CLL    | ローリングモーメント係数                                           |
| CL     | 揚力係数                                                           |
| CD     | 抗力係数                                                           |
| CL/CD  | 揚抗比                                                             |
| X-C.P. | 重心から圧力中心までの距離を機体長さLREFで割った値。頭側だと＋、オシリ側だと―                                     |
| CNA    | Normal Force Coefficient change wrt Angle of Attack                |
| CMA    | Pitching Moment Coefficient change wrt Angle of Attack             |
| CYB    | Side-force Coefficient change wrt Sideslip Angle                   |
| CLNB   | Yawing Moment Coefficient change wrt Sideslip Angle                |
| CLLB   | Rolling Moment Coefficient change wrt Sideslip Angle               |
| CNQ    | Normal Force Coefficient change wrt Pitch Rate                     |
| CMQ    | Pitching Moment Coefficient change wrt Pitch Rate                  |
| CAQ    | Axial Force Coefficient change wrt Pitch Rate                      |
| CNAD   | Normal Force Coefficient change wrt Angle of Attack change Rate    |
| CMAD   | Pitching Moment Coefficient change wrt Angle of Attack change Rate |
| CYQ    | Side-force Coefficient change wrt Pitch Rate                       |
| CLNQ   | Yawing Moment Coefficient change wrt Pitch Rate                    |
| CLLQ   | Rolling Moment Coefficient change wrt Pitch Rate                   |
| CYR    | Side-force Coefficient change wrt Yaw Rate                         |
| CLNR   | Yawing Moment Coefficient change wrt Yaw Rate                      |
| CLLR   | Rolling Moment Coefficient change wrt Yaw Rate                     |
| CYP    | Side-force Coefficient change wrt Roll Rate                        |
| CLNP   | Yawing Moment Coefficient change wrt Roll Rate                     |


# コントロールカード
コントロールカードはプログラムのオプションを決める1行コマンドです。入力ファイルに必須ではありません。おおよそ、下記のように分けれられます。
* 中間計算を出力するかどうか
* 単位系の定義
* 複数のcaseの定義、入力したnamelistのデータを引き継ぐかどうか等
* caseタイトルやコメント
* 横方向の空力を計算しないやフィンで分けられた渦の効果を計算しないなど


| コマンド     | 引数       | 説明                                                 |
|:-------------|:-----------|:-----------------------------------------------------|
| BUILD        |            |                                                      |
| CASEID       | xxxx       | caseタイトル。72文字まで                             |
| DAMP         |            | 微係数の出力                                         |
| DELETE       |            |                                                      |
| DIM          | IN,FT,CM,M | システムの単位系、インチ、フィート、センチ、メートル |
| DERIV        | DEG,RAD    | 微係数の単位がdegかradか                             |
| HYPER        |            | マッハ1.2以上でbodyをニュートン流法を選ぶかどうか    |
| NACA         |            | 翼型                                                 |
| NAMELIST     |            | for002.datを出力                                     |
| NEXT CASE    |            | 複数caseを計算。条件の最後に書く                     |
| NOGO         |            | 計算しない                                           |
| NO LAT       |            | 横方向の微係数を計算しない                           |
| NO VORTEX    |            | フィンの後流の渦を計算しない                         |
| PART         |            | 空力データ一部のみ出力                               |
| PLOT         |            | for003.datの空力データが出力される                   |
| PRESSURES    |            | for010.dat,011,012の圧力データが出力される           |
| PRINT AERO   |            |                                                      |
| PRINT GEOM   |            |                                                      |
| PRINT VORTEX |            | vpath*ファイルを出力                                 |
| SAVE         |            |                                                      |
| SOSE         |            | Second-Order Shock Expansion methodを選択            |
| SPIN         |            |                                                      |
| TRIM         |            |                                                      |
| *            |            | *を付けるとコメント行                                |

SOSEコマンドは超音速領域でbodyにSecond-Order Shock Expansion methodを使うかどうか。マッハ数2.0以上では推奨。SOSEもHYPERも選択しなかった場合、Von Dyke Hybrid methodが使われる。この場合、先端が尖っていない場合は計算が失敗します。

## DIMコマンド
DIMコマンドは基本的にインチ、フィート、センチメートル、メートルの単位系を設定できますが、下記はそれぞれの単位系になるので注意

| Namelist | 変数  | DIM IN   | DIM FT   | DIM CM   | DIM M    |
|:---------|:------|:---------|:---------|:---------|:---------|
| FLTCON   | REN   | 1/ft     | 1/ft     | 1/m      | 1/m      |
| FLTCON   | ALT   | ft       | ft       | m        | m        |
| FLTCON   | VINF  | ft/s     | ft/s     | m/s      | m/s      |
| FLTCON   | PINF  | lbf/ft2  | lbf/ft2  | N/m2     | N/m2     |
| FLTCON   | TINF  | ランキン | ランキン | ケルビン | ケルビン |
| REFQ     | ROUGH | in       | in       | cm       | cm       |

ft:フィード
lbf:ポンド
in:インチ