読者です 読者をやめる 読者になる 読者になる

Butterfly_Effect( )

僕はとにかく地面と別れる方法を探しているんだ

Datcomで空力解析(その2)

はじめに

 Datcomで空力解析を行うためにはINPファイルの作成が必要.
以下のような形状の飛行機を解析したい場合の例を示します.
f:id:aeroelasticity:20150828003009p:plain

 INPファイルというのは何の変哲もないタダのtxtファイルで,中身は以下のようなものになっています.これはDatcomのマニュアルにあるExample 4ですが,少々冗長な部分があったので筆者が一部削っています.

 $FLTCON  NMACH=1.0, MACH(1)=0.6, 
  NALPHA=5.0, ALSCHD(1)=0.0,5.0,10.0,15.0,20.0, RNNUB(1)=3.1E6$
 $OPTINS SREF=694.2, CBARR=18.07, BLREF=45.6$
 $SYNTHS XCG=36.68, ZCG=0.0$
 $BODY NX=19.0,BNOSE=2.0,BTAIL=2.0,BLN=30.0,BLA=0.0,
   X(1)=0.0,  2.01,  5.49,  8.975, 12.47,
      15.97, 19.47, 22.89, 26.49,  30.0,
      33.51, 37.02, 40.53, 44.03,  47.53,
      51.02, 54.52, 57.99, 60.0,
   R(1)=0.0, 0.293, 0.752,  1.15, 1.48,
       1.76,  1.97,  2.13,  2.22, 2.25,
       2.22,  2.13,  1.97,  1.76, 1.48,
       1.15,  0.752, 0.293, 0.0$
NACA-W-6-65A004
NACA-H-6-65A004
 $WGPLNF CHSTAT=0.0, SWAFP=0.0, TWISTA=0.0, SSPNDD=0.0,
   DHDADI=0.0,DHDADO=0.0,TYPE=1.0$
 $SYNTHS XW=8.064,ZW=0.0,ALIW=0.0$
 $WGPLNF CHRDTP=0.0,SSPNE=6.205,SSPN=8.01,CHRDR=13.87,SAVSI=60.0$
 $SYNTHS XH=29.42,ZH=0.0,ALIH=0.0$
 $HTPLNF SSPNE=21.34,SSPN=22.82,CHRDR=26.62,SAVSI=38.52,CHSTAT=0.0,
   CHRDTP=3.80, SWAFP=0.0, TWISTA=0.0, SSPNDD=0.0,
   DHDADI=0.0,DHDADO=0.0,TYPE=1.0, SHB(1)=73.5,
   SEXT(1)=73.5,RLPH(1)=47.3$
CASEID BODY PLUS WING PLUS CANARD, EXAMPLE PROBLEM 4, CASE 1
NEXT CASE

 Datcomはこのテキストデータを読み込むことで解析結果を返してくれるわけです.したがって,Datcomを使いこなせるか否かはこのテキストデータをどこまで作り込めるかに懸かっています.
 見ての通り,それなりのモチベーションが無い限り投了したくなる代物ですが,ネット上には長ったらしい英語マニュアルしか無いという寂しい状況なので概要だけ紹介しておきます.
 予め断っておくと,INPファイルを自分で書こうとすると,英語マニュアルを全ページにわたって読む必要が出てきます.マニュアルの重要そうな一部だけを読んで書いてやろうとすると失敗します.少なくとも僕はそうでした.重要な情報が全域にわたって散らばってるからです.
 本記事ではそのマニュアルの中でも筆者が特に重要だと思った箇所に絞って概要説明をすることが目標です.この記事を読んだ人が自力でINPファイルを書けるまでインストラクションすることは,僕のキャパを超えています.

Datcomの適用可能範囲

 どんな解析ツールにも適用範囲というものがあります.Datcomの計算手法の詳細は分かりませんが,下の図を見る限りはかなり単純な手法によって計算されていることが示唆されます.
 おそらく,胴体/主翼/水平尾翼/垂直尾翼/その他という感じにコンポーネント毎に空力特性を算出した後に単純に足し合わせ,そこから干渉効果を差っ引いてる感じです.そのことを心の隅に置きながら下の図を眺めてみると,理解しやすいと思います.
f:id:aeroelasticity:20150828001830p:plain
 この図を見ると,例えば胴体+水平尾翼+垂直尾翼という組み合わせは解析できないことが分かります.また,遷音速(Transonic)領域は不得手なようです.解析を補完するためのデータテーブルの入力を要求されます.
 一方,亜音速領域では比較的自由度が高いようですが,超音速領域では単純なテーパー翼しか解析できないようです(ほとんどの飛行機はテーパー翼なため問題ないですが).

入力情報カテゴリ

Datcomの入力情報は下の図に示されるように13のカテゴリに分けられます.特に左側の8カテゴリが重要です.当然,解析対象によって入力が求められるカテゴリが異なります.これについて重要と思われるものをピックアップして簡単に見ていきます.

f:id:aeroelasticity:20150828002026p:plain

FLTCON : FLighT CONditions : 飛行条件

マッハ数やレイノルズ数,高度,機体仰角などの飛行条件をインプットします.変数がarrayになっているので,一度に複数の条件を入れてやることができます.

SYNTHS : SYNTHesiS : 統合情報

後述する各コンポーネントアセンブル情報を入力します.
以下の図で定義される変数により,機体の重心位置や,翼面の取り付け位置や角度を指定します.
f:id:aeroelasticity:20150828002038p:plain

BODY : ボディ

胴体コンポーネントの幾何情報を入力します.
入力方法は2通りありますが,より表現力が高いのは胴体を複数の断面のarrayとして表現する方法です.例えば,軸対称断面であれば断面のx座標のarrayと各位置における断面の半径のarrayを入力すればOKです.その場合,断面積arrayなどの入力は省くことが可能です.

WGPLNF : WinG PLaNForm : 主翼平面形

HTPLNF : Horizontal Tail PLaNForm : 水平尾翼平面形

VTPLNF : Vertical Tail PLaNForm : 垂直尾翼平面形

VFPLNF : Ventral Fin PLaNForm : ベントラルフィン平面形

各種の翼面の幾何情報を入力します.
以下の図で定義される変数によって幾何情報を指定します.
f:id:aeroelasticity:20150828002043p:plain

おわりに

 非常に荒っぽいインストラクションですが,何となくイメージは掴めたと感じてもらえれば幸いです.ひと通りこの記事を読んだ後,もう一度冒頭のINPファイルの例を眺めてもらえれば,「案外簡単だな」と思えると思います.ちなみにお察しの通り,DATCOMと付き合う上での一番のコツは,PLNFという文字列を見た時にPlanformの略記だなと即座に思い付く英単語力です.Datcomをダウンロードすると中にネームリストという名のpdfファイルが同梱されているので,単語帳だと思って頭に叩き込みましょう.それが最短ルートです.
 実際に書き始めると,とにかく解析条件がユニークに定まるまで変数を入力し続けていく作業になります.ちなみに変数を入れていく順番は基本的に順不同です.冒頭の例でも$SYNTHSカテゴリが複数回登場していますね.そのぐらいの寛容さはあります.筆者に根気があれば追々この記事をアップデートしていく予定ですが,賢明な読者諸氏は自分でマニュアルを読み進めていくほうが速いと思います・・・.