FlightModel

Sorry, Japanese page only

はじめに

自分で機体を作ってみたいという方々のために、フライトモデルについて、0.9.10 用A6M2 を題材に少しずつ書いていきたいと思います。XML に関する説明はここでは扱いません。

このドキュメントで扱うフライトモデルについて

FlightGear には JSBSim, UUIC, Yasim など幾つかのフライトモデルがあります。ここでは A6M2 が利用している Yasim のフライトモデルについて説明します。

フライトモデルに必要なファイル

フライトモデルに関するファイルは基本的に2つです。拡張子から分かるように、全てXML で記述されています。

  • 機体の設定ファイル (A6M2-set.xml)
  • フライトモデル (a6m2b.xml)

A6M2-set.xml にはキーや音の設定の他、フライトモデルのファイルや初期設定値等が記述されています。このファイルはどのフライトモデルでもほぼ同じ記述になります。a6m2b.xml には Yasim 用フライトモデルを記述します。これはフライトモデル毎にかなり記述が変わってきます。(実際、JSBSim を利用している c172p のフライトモデルファイルとは記述方法が全く異なります)

フライトモデルの記述内容

フライトモデル記述ファイル(a6m2b.xml) では機体を飛行させる為に必要な情報を記述します。これらの情報には機体の寸法、重さ、重心位置、エンジン出力、飛行特性等が含まれます。この章ではこれらの記述内容についてXMLタグの単位で説明して行きます。

airplane タグ

フライトモデル全てを包含するトップレベルのタグです。

<airplane mass="3704">
   <!-- ここに他のタグが全て列挙される -->    
</airplane>

mass="3704" は airplane タグの属性であり、機体の総重量から燃料分を差し引いた値(あるいは乾燥重量)を米ポンド(Lb)で記述します。A6M2 は1680 kg なので 3704 lb になります。ちなみに1kg は約2.2046 lb です。A6M2 の場合、総重量は6,164lb ですが、これだととてももっさりな挙動になります。またフライトギア上の機体には武器も予備タンクもありませんから、乾燥重量としました。

approach タグ

着陸時(アプローチ時)の機体の飛行パラメタを記述します。Yasim は JSBSim とは異なり、飛行特性を推定するために必要な航空力学上の詳細な係数を記述する必要がありません(従って比較的簡単にフライトモデルが記述できます)。このため、アプローチ時及び最高速時の機体の速度等様々なパラメタから、数百回のシミュレーションを行った上で飛行特性を推定します。

approach タグでは、アプローチ時の速度、迎え角、空燃費、スロットル位置、プロペラピッチ等のパラメタを記述します。以下に A6M2 の例を示します。

<approach speed="60" aoa="9">
  <control-setting axis="/controls/engines/engine[0]/throttle" value="0.30"/>
  <control-setting axis="/controls/engines/engine[0]/mixture" value="0.55"/>
  <control-setting axis="/controls/engines/engine[0]/propeller-pitch" value="0.6"/>
  <control-setting axis="/controls/engines/engine[0]/boost" value="0.0"/>
  <control-setting axis="/controls/flight/flaps" value="1.0"/>
  <control-setting axis="/controls/gear/gear-down" value="1"/>
</approach>

approach タグの属性として speed (60ノット), aoa (Angle of Attack: 迎え角) 9度を指定しています。アプローチ時の速度はストール速度、またはそれより若干速めに設定します。タグ内では、制御可能な操作機器の状態を記述します。1.0は全開であることを、0.0 は全閉であることを示します。A6M2 ではそれぞれ以下の意味になります。

  • スロットル 30%
  • 空燃費 55%
  • プロペラピッチ 60% (100% でピッチ角最大)
  • 過給機 0%
  • フラップ 100% (一番下に下ろしている)
  • ランディングギア 100% (ギアが降りている)

これらのパラメターを記述する際には、資料に記述された正確な値にこだわる必要はありません。ある程度の値を設定しておき、着陸時のストール直前の速度や最高速が資料等に記述されたものと一致するように調整すると良いでしょう。

cruise タグ

最高速で飛行中の状態を approach タグと同様に記述します。ここでの速度は「真速」です。従って計器から読み取れる速度ではなくカタログスペックを speed 属性に記述します。alt (altitude: 高度 )属性には 最高速で飛行する際の高度を ft 単位で指定します。A6M2 の場合、以下の記述に示す通り、高度 14927 ft で最高速度 288 kt になることを示します。

<cruise speed="288" alt="14927">
  <control-setting axis="/controls/engines/engine[0]/throttle" value="1.0"/>
  <control-setting axis="/controls/engines/engine[0]/mixture" value="1.0"/>
  <control-setting axis="/controls/engines/engine[0]/propeller-pitch" value="1.0"/>
  <control-setting axis="/controls/engines/engine[0]/boost" value="1.0"/>
  <control-setting axis="/controls/flight/flaps" value="0.0"/>
  <control-setting axis="/controls/gear/gear-down" value="0"/>
</cruise>

cruise タグ内の情報の意味は approach タグのものと同様です。最高速はカタログスペック通りに記述しても簡単に再現する事は難しいでしょう。従って、approach タグと同様に、テスト飛行と調整を繰り返す事となります。この際に注意すべき事は、計器速度と cruise の speed 属性に指定する真速は異なるということです。計器速度は高度が高くなるに従って真速よりも遅い値を示します。計器速度と新速との関係については別途説明します。

To be continued

Leave a comment

Please DO NOT post a crash log here. it's hard to read and is not worth reading for most of users. Email it to me directly with some additional information including exact FlightFear version, machine spec, and what was you doing when it went crash. Thank you.
Begin the comment with //pukiwiki if you want to write a comment in PukiWiki format.

You must be logged in to post a comment.