機体データの作成
Tatさんの書かれた、フライトモデル解説と、FlightGear/docs/README.yasimを元にこちらにまとめてみました。 そのため、基本的にA6M2を題材に解説していきます。 また、誤訳誤記の指摘・加筆・修正等をお待ちしています。

<airplane>

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

<approach>

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

<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 ではそれぞれ以下の意味になります。

これらのパラメターを記述する際には、資料に記述された正確な値にこだわる必要はなく、ざっくり言えば釣り合いが取れていればいいということになります。 (とりあえず、yasimテストプログラムでの計算結果が、Approach Elevator が -1.0000 以下でなければ大丈夫です。)
ある程度の値を設定しておき、着陸時のストール直前の速度や最高速が資料等に記述されたものと一致するように調整すると良いでしょう。

<cruise>

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

<cockpit>

パイロットの視点位置を記述します。この位置は3Dモデルの中心を (0, 0, 0) とした相対座標として表現したもので、単位はメートルです。

<fuselage>

機体胴体の形状を両端の座標、最大幅、先細り具合、最大幅となる位置とで示します。fuselage タグの属性を以下に示します。機体胴体とはエンジンカウル先端(プロペラ軸は含みません)から機体の最後尾までの筒として捉えられます。以下に fuselage タグの属性について説明します。

<wing>

主翼の形状や特性を設定します。wing タグの属性では主翼の左半分の形状と抗力(ドラッグ)を指定します。この要素タグは一つしか使うことが出来ません。(しかし、後述するvstabタグを使えばさらに揚力を発生する面を追加することが出来ます。) また、後述のstallタグやflap,slat,spoilerタグを子要素で持つことが出来ます。 航空実用辞典-翼型 airfoil, wing sectionと翼wingも参考にしてください。

以下に A6M2 の wing タグを示します。wing タグ中では、失速時の挙動と、フラップ及びエルロンの設定をタグで記述します。これらのタグの説明は後述します。

<wing x="0.0" y="0.4" z="-0.35" taper="0.44" incidence="-0.5" length="5.6" chord="2.464" sweep="0.0" dihedral="6.5" camber="0.05" twist="-1.8" idrag="1.25">
<stall aoa="14" width="5" peak="1.5"/>
<flap0 start="0.0" end="0.4" lift="1.7" drag="1.9"/>
<flap1 start="0.4" end="1.0" lift="1.4" drag="1.1"/>
<control-input axis="/controls/flight/flaps" control="FLAP0"/>
<control-output control="FLAP0" prop="/surface-positions/flap-pos-norm"/>
<control-speed control="FLAP0" transition-time="7"/>
<control-input axis="/controls/flight/aileron" control="FLAP1" split="true"/>
<control-output control="FLAP1" side="left" prop="surface-positions/left-aileron-pos-norm"/>
<control-output control="FLAP1" side="right" prop="surface-positions/right-aileron-pos-norm"/>
<control-speed control="FLAP1" transition-time="1"/>
<control-input axis="/controls/flight/aileron-trim" control="FLAP1" split="true"/>
</wing>

<hstab>

水平尾翼の左側の形状や特性を記述します。hstab は wing オブジェクトであるため、記述内容は wing タグと同等ですが、水平尾翼の「効き具合」を示す effectiveness 属性が追加されています。また、wing と同様に右半分はミラーされることになります。なお、hstab オブジェクトは xml ファイルに1つしか記述できません。以下に A6M2 の例を示します。

<vstab>

垂直尾翼の形状と特性とを記述します。hstab 同様に wing オブジェクトであるため、wing タグと同等の属性やサブ要素を記述します。hstab と同様に effectiveness 属性があります。wing タグや hstab タグと異なるところは、左右にミラーされないことです。これは複数の 垂直尾翼が存在する場合は、vstab タグを複数記述する必要があります。

<stall>

wing タグ内に記述される子要素で、失速時の挙動を表します。stall タグではこの失速時の挙動を以下に示す3つの属性で決定します。

<flap0> , <flap1> , <slat> , <spoiler>

stall タグと同様、 wing/hstab/vstab タグ内に記述することでエルロンやフラップなどの「舵」の位置、形状、及び効き具合を定義します。

<control-input>

舵の制御に用いるフライトギアのプロパティ名を定義します。wing, hstab, vstab, cruise 及び approach タグのサブ要素として記述することができます。control-input タグの必須属性は axis と contorl です。属性の説明は以下の通りです。

<control-output>

各制御装置の状態を保存する為のフライトギアのプロパティを指定します。このタグにより書き出された値は、Nasal スクリプトや計器表示、アニメーション等で利用されます。指定されたプロパティに書き出される値は、control-input タグの属性や control-speed により加工された値となります。

<control-speed>

control-input で指定されたプロパティが変化した時の制御速度を指定します。例えば、']' キーを押してフラップを一段下げた場合に /controls/flight/flap は0.0から0.25に変化します。このとき control-speed で2秒と指定しておくと、フラップは2秒掛けて 0.25 の位置に移動する事になります。control-output で指定されたプロパティは 2秒間で 0 から 0.25 に徐々に変化します。A6M2 のフラップに対する control-speed は次のように記述されています。

<jet>(要補足/修正。特に、デフォルト値関連)

この項は翻訳が正確ではないかもしれないことに注意してください。
ターボジェット/ターボファンエンジンを定義します。これは<control>要素で制御され、推力をエンジンの重心位置と違う場所から発生させるために<actionpt>を子要素として持ちます。

<propeller>

プロペラ及びエンジンについて記述します。このタグは、<piston-engine>または<turbine-engine>の子要素を必要とします。

<piston-engine>

ピストンエンジンの特性を記述します。先述したとおり、propeller タグのサブ要素として記述しなければなりません。

<turbine-engine>

この項は翻訳が正確ではないかもしれないことに注意してください。
タービンエンジン(ターボプロップ)を定義します。この要素は、<propeller>タグの子要素でなければなりません。

<actionpt>

propeller、もしくはjetタグのサブ要素であり、プロペラの位置情報orジェットエンジンの推力が発生する位置を記述します。

<gear>

ランディングギアを定義します。脚一本につき一つの<gear>タグを使ってください。 <control>子要素を含めることで、ステアリングとブレーキを割り当てることが出来ます。

<hook>

着艦フック、もしくは緊急制動用フック(F-15等)を定義します。
この項は機体データやソースコードから推測したものです。正確かどうかは分りません。

参考のため、Ki-84のhook要素を転載します。

<hook x="-4.00" y="0.0" z="-0.400" length="1.32" down-angle="40" up-angle="-5">~ <control-input axis="/controls/gear/tailhook" control="HEXTEND"/>
<control-speed control="HEXTEND" transition-time="3"/>
</hook>

<launchbar>

艦載機等の、ランチバー(もしくはストラップ)を定義します。
この項の不正確な可能性が高い部分はコメントアウトしています。正しい翻訳であるならば、コメントアウトを外してください。

<tank>

燃料タンクを定義します。ファイルに書かれている順番に、0から番号が与えられます。最初に左タンクを書いた場合、その左タンクは、"tank[0]"になるでしょう。

<ballast>

これは重心位置を調整するために設定します。バラスト設定は、<aircraft>タグで定義した、航空機の無燃料重量の一部を特定の場所に置く時に指定します。残った重量は胴と翼のいたる所に「知的に」配分されるでしょう。 もう一度以下の点に注意してください。これは無燃料重量を変えません。(バランス調整用の死重は自重に含まれます。)

<weight>

これは乗員乗客・荷物、そのほか自重に含まれない物(例:飲料水・機内食・サービス用品等。軍用機なら、ミサイルや爆弾の類)を定義します。実際の質量がここで指定されないときは、代わりに(訳注:nasalを利用して)プロパティへのマッピングを使用します。 これはパネルなど、外部からのコードで重量を操作することを許します。(貨物の設定をpreference filesから読み込んだり、ランタイム等で爆撃機を使って爆撃したり、等)

<solve-weight>

<approach>、<cruise>タグの子要素として記述します。weightタグで荷物を積んでいるときの着陸・巡航に関する設定を解決します。 デフォルトでは、全ての積荷に与えられた番号がゼロであると仮定します。

<rotor>

この項は翻訳が正確ではないかもしれません ヘリコプターのローターを指定します。これは1つだけ、2つ、あるいはもっとたくさんの<rotor>を書くことが出来ます。 ローターを指定した場合、<wing>や<hstab>を指定する必要はなくて、<approach>と<cluise>は無視されるでしょう。


07/12/01〜07/12/11


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS