機体データの作成~http://www.jp.flightgear.org/workshop/index.php?cmd=edit&help=true&page=%B5%A1%C2%CE%A5%C7%A1%BC%A5%BF%A4%CE%BA%EE%C0%AE%2FYASim%A5%D5%A5%E9%A5%A4%A5%C8%A5%E2%A5%C7%A5%EB%A4%CE%B2%F2%C0%E2 機体データの作成/YASimフライトモデルの解説 の編集 - JP FlightGear WorkShop

        Tatさんの書かれた、[[フライトモデル解説>http://www.jp.flightgear.org/modules/newbb/viewtopic.php?topic_id=379&post_id=1262&order=0&viewmode=flat&pid=1068&forum=7#forumpost1262]]と、FlightGear/docs/README.yasimを元にこちらにまとめてみました。

また、誤訳誤記の指摘・加筆・修正等をお待ちしています。
注意:現在、<rotor>,<rotorgear>の項目に限り、0.9.10向けの内容になっていて、1.0.0向けの内容はコメントアウト、もしくは翻訳中です

<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 タグを複数記述する必要があります。

<mstab>

水平安定板のミラーリングをします。難解な計算の解答に関わらず、同じ形状の水平尾翼を必要なだけ持つことができます。

<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 は次のように記述されています。

<control-setting>

このタグは<cruise>もしくは<approach>タグの内側で特別なセッティングをするのに使用されます。 例えば、アプローチ時のフラップの値や速度などを指定するのに使用されます。

<thruster>

非常にシンプルな「推力」のみを持つエンジンのオブジェクトを定義します。これはF-35BやYak-141を作る時に役に立ちます。これはスロットルの入力軸の値を推力の指定に直接結び付けます。これは燃料などを消費しません・・・

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

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

<propeller>

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

<piston-engine>

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

<turbine-engine>

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

<actionpt>

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

<gear>

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

<hook>

着艦フック、もしくは緊急制動用フック(F-15等)を定義します。

# この項は機体データやソースコードから推測したものです。正確かどうかは分りません。

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

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

<launchbar>

艦載機等の、ランチバー(もしくはストラップ)を定義します。

# この項の不正確な可能性が高い部分はコメントアウトしています。正しい翻訳であるならば、コメントアウトを外してください。

Nimitz などの空母ではノーズギア射出方式のカタパルトを採用しています。実機のA6M2にはノーズギアもありませんし、ストラップ式カタパルト射出用の装備はありませんが、空母から離陸するのは難しいだろうという事で無理矢理付けています :-p ストラップ(ランチバー)の取り付け位置はコックピット真下の胴体下部からフックが出ていることを想定して指定しています。ホールドバックの取り付け位置はコックピット真下の胴体下部になります。理論的には変ですが、とりあえず飛ばす為にこのような設定になっています。

<tank>

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

<ballast>

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

<weight>

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

<solve-weight>

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

<hitch>

ヒッチを定義します。これは、グライダーのウインチ牽引でのスタートや、動力機での曳航、あるいはヘリコプターでの機外への荷物の吊り下げに使用できます。マルチプレイで飛んでいるときでも曳航することが出来ます。(j3とbocianの例を見てください。)

<tow>

曳航用のトゥを定義します。これは<hitch>タグの子要素である必要があります。

<winch>

ウインチで牽引する場合、このタグを使用します。これは<hitch>タグの子要素である必要があります。

<rotor>

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


07/12/01〜07/12/11

hook, launcher の設定を Ki-84 から A6M2 へ変更(最新の Ki-84 及び実機にはにこれらは存在しないので)。いくつかコメントアウトされた記述で正しい物を採択。launchbar の解説を追加 2007/12/12 Tat

1.0.0向けに修正開始。(修正完了までコメントアウト) 2007/12/19 sambar <propeller>の、momentの計算式が間違っていたと思われる(文脈的に慣性モーメント)ので修正&訳文から追記(最後の /3は原文に書いてあったため記載・・・おそらく、空気抵抗や摩擦で、「2/3が回転運動が空気の流れや熱損失などになる」という意味だと思う。)

wing の chord, length の説明が逆だったのを修正 (私の説明が間違えていたようですね) 2007/12/28 Tat

1.0.0が出てしばらく期間が経った&rotor、rotorgearを除き1.0.0の内容に更新出来たので、当該項目を除いてコメントアウト解除


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