[[機体データの作成]]~
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を元にこちらにまとめてみました。
そのため、基本的にA6M2を題材に解説していきます。
''また、誤訳誤記の指摘・加筆・修正等をお待ちしています。''


**<airplane> [#w4893fe0]
フライトモデル全てを包含するトップレベルのタグです。
-属性
--mass: 燃料が入っていないときの重量をポンド(lbs)で指定してください。
-使用例と解説
>
<airplane mass="3704">~
<!-- ここに他のタグが全て列挙される -->~
</airplane>~
<
mass="3704" は airplane タグの属性であり、機体の総重量から燃料分を差し引いた値(あるいは乾燥重量)を米ポンド(Lb)で記述します。A6M2 は1680 kg なので 3704 lb になります。ちなみに1kg は約2.2046 lb です。A6M2 の場合、総重量は6,164lb ですが、これだととてももっさりな挙動になります。またフライトギア上の機体には武器も予備タンクもありませんから、乾燥重量としています。

**&lt;approach&gt;[#b40371a2]
着陸時(アプローチ時)の機体の飛行パラメタを記述します。Yasim は JSBSim とは異なり、飛行特性を推定するために必要な航空力学上の詳細な係数を記述する必要がありません(従って比較的簡単にフライトモデルが記述できます)。このため、アプローチ時及び最高速時の機体の速度等様々なパラメタから、数百回のシミュレーションを行った上で飛行特性を推定します。
-属性
--speed:着陸時の速度を真対気速度(KTAS)で指定します。
--aoa:迎え角を指定します。
--fuel:燃料タンク内の燃料の量を0から1の間で指定します。デフォルト値は0.2です。
-使用例と解説
approach タグでは、アプローチ時の速度、迎え角、燃料の量(着陸重量に影響する)を属性として持っていて、&lt;control&gt;タグで空燃費、スロットル位置、プロペラピッチ等のパラメタを記述します。以下に A6M2 の例を示します。

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

この例では、approach タグの属性に speed (60ノット), aoa (Angle of Attack: 迎え角) 9度を設定しています。アプローチ時の速度はストール速度、またはそれより若干速めに設定します。タグ内では、制御可能な操作機器が、現在どんな状態にあるかを記述します。 1.0は全開であることを、0.0 は全閉であることを示します。A6M2 ではそれぞれ以下の意味になります。
-- スロットル 30%
-- 空燃費 55%
-- プロペラピッチ 60% (100% でピッチ角最大)
-- 過給機 0%
-- フラップ 100% (一番下に下ろしている)
-- ランディングギア 100% (ギアが降りている)

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

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

-属性
--speed:巡航速度を、真対気速度(KTAS)で指定します。
--alt:巡航時の海面高度をknotで指定します。
--fuel:この時の燃料タンク内の燃料の量を0から1の間で指定します。デフォルトでは0.2です。
-使用例と解説
A6M2 の場合、以下の記述に示す通り、高度 14927 ft で最高速度 288 kt になることを示します。
>
&lt;cruise speed="288" alt="14927"&gt;~
&lt;control-setting axis="/controls/engines/engine[0]/throttle" value="1.0"/&gt;~
&lt;control-setting axis="/controls/engines/engine[0]/mixture" value="1.0"/&gt;~
&lt;control-setting axis="/controls/engines/engine[0]/propeller-pitch" value="1.0"/&gt;~
&lt;control-setting axis="/controls/engines/engine[0]/boost" value="1.0"/&gt;~
&lt;control-setting axis="/controls/flight/flaps" value="0.0"/&gt;~
&lt;control-setting axis="/controls/gear/gear-down" value="0"/&gt;~
&lt;/cruise&gt;~
<
cruise タグ内の情報の意味は approach タグのものと同様です。最高速はカタログスペック通りに記述しても簡単に再現する事は難しいでしょう。従って、approach タグと同様に、テスト飛行と調整を繰り返す事となります。この際に注意すべき事は、計器速度と cruise の speed 属性に指定する真速は異なるということです。指示対気速度は高度が高くなるに従って真対気速度よりも遅い値を示します。
同じ真対気速度なら、指示対気速度は1000フィート上昇する毎に約2%づつ減っていきます。
例えば、4000フィート、QNH=29.92では、真対気速度と指示対気速度の誤差はおよそ8%です。このとき、指示対気速度で120ノットで飛んでいれば、それは真対気速度で約128ノットであることを意味します。

**&lt;cockpit&gt; [#edf6c7d3]
パイロットの視点位置を記述します。この位置は3Dモデルの中心を (0, 0, 0) とした相対座標として表現したもので、単位はメートルです。
-属性
--x,y,z:視点の位置(詳細は後述)
A6M2 では以下のようになります。
-使用例と解説
>
&lt;cockpit x="-0.44" y="0" z="0.774"/&gt;
<
この座標の割り出しは、3D モデリングツールでパイロットの視点にカーソルを合わせ、その座標を記録する事で行います。各軸は以下のようになります。
-- x軸: 機体の前後方向を示し、後方が正となります
-- y軸: 機体の左右方向を示し、右側が正となります
-- z軸: 機体の上下方向を示し、上側が正となります~
A6M2 の場合、パイロットの視点は3Dモデルの原点から前方に 0.44m, 上方に0.774m の位置になります。この位置が、コクピット視点の位置になります。

**&lt;fuselage&gt; [#n784a86f]
機体胴体の形状を両端の座標、最大幅、先細り具合、最大幅となる位置とで示します。fuselage タグの属性を以下に示します。機体胴体とはエンジンカウル先端(プロペラ軸は含みません)から機体の最後尾までの筒として捉えられます。以下に fuselage タグの属性について説明します。
-属性
--ax, ay, az : 胴体先端の中心座標 (座標軸と単位はcockpit タグの属性と同じ)
--bx, by, bz : 胴体末尾の中心座標
--width : 最大幅(通常、翼の付け根のx軸上の中心位置における胴体の幅)。単位はメートルです。
--taper : 胴体の先細り度合いを示す数値で、先端の幅を最大幅で割った値になります。0.0 で先端が点になり、1.0 では先端から末尾迄同じ幅となります。
--midpoint : 胴体の幅が最も広くなる位置
//--idrag : 胴体の発生する誘導抗力のための乗数を指定します。値を指定しない場合、1です。idrag="0"とすると、機体は誘導抗力を発生しません。(形状抗力、干渉抗力、造波抗力は発生します)
//--cx,cy,cz : 機体の「ローカル座標システム」上で発生している抗力のための要素です。
点xが航空機の先端にあって、y=0ならばzはxと垂直になります。~(不正確?)
例:幅の2倍の高さの機体の場合、cy=2、(前面の面積が2倍になっているため)cx=2と定義することが出来ます。

*&lt;wing&gt; [#vf34fa4f]
主翼の形状や特性を設定します。wing タグの属性では主翼の左半分の形状と抗力(ドラッグ)を指定します。この要素タグは一つしか使うことが出来ません。(しかし、後述するvstabタグを使えばさらに揚力を発生する面を追加することが出来ます。)
また、後述のstallタグやflap,slat,spoilerタグを子要素で持つことが出来ます。
[[航空実用辞典-翼型 airfoil, wing sectionと翼wing>http://www.jal.co.jp/jiten/dict/p030.html]]も参考にしてください。

-属性
--x, y, z: 主翼左半分の付け根の中心座標。単位はメートル
-- taper: 主翼の先細り具合を示す数値で、x軸上の翼端の長さを主翼の付け根(胴体と接する部分の主翼の長さ)で割った値となります。1.0で翼端と長方形の翼となり、0.0で翼端が点になります。
--length: 主翼の付け根部分の長さ
--chord: 主翼の幅(機体の幅を半分にした値)。
--camber: 翼型中心線(翼断面の上面と下面の中点を結んで得られる曲線)と翼弦線との距離を示します。翼の断面図において、上下の形状が対象であればキャンバー角は 0となります。一般的にキャンバーを大きくすれば失速時の迎え角(aoa)が増加します。これにより得られる最大揚力も増加しますが、同時に抵抗も増加します。
--dihedral: 主翼の取り付け角度。y軸と翼との角度を示します。
--idrag: 主翼により発生する誘導抗力の乗数を示します。一般的にアスペクト比の低い翼はアスペクト比の高い翼と比べると同じ迎え角に対して低い誘導抗力を発生させます。Yasim では、誘導抗力に関する推定は不十分であるため、アプローチ時のスロットル設定をチューニングするためにこの値を調整する必要があります(とはいうものの、非常に難しいです)。
--incidence: 翼の付け根部分の取り付け角を示します。前翼端が後翼端よりも高い場合はが正の値を示します。
--sweep: 主翼の後退角を示します。前翼後退角ではないので注意してください。A6M2 はほぼ 0となります。
--twist: 翼の付け根の迎え角と翼端の迎え角との差のことで、翼端の迎え角の方が小さければ負の値を示します。通常は負の値となり、翼端の迎え角の方が小さくなります(wash out:捻り下げ)

以下に A6M2 の wing タグを示します。wing タグ中では、失速時の挙動と、フラップ及びエルロンの設定をタグで記述します。これらのタグの説明は後述します。
>
&lt;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"&gt;~
&lt;stall aoa="14" width="5" peak="1.5"/&gt;~
&lt;flap0 start="0.0" end="0.4" lift="1.7" drag="1.9"/&gt;~
&lt;flap1 start="0.4" end="1.0" lift="1.4" drag="1.1"/&gt;~
&lt;control-input axis="/controls/flight/flaps" control="FLAP0"/&gt;~
&lt;control-output control="FLAP0" prop="/surface-positions/flap-pos-norm"/&gt;~
&lt;control-speed control="FLAP0" transition-time="7"/&gt;~
&lt;control-input axis="/controls/flight/aileron" control="FLAP1" split="true"/&gt;~
&lt;control-output control="FLAP1" side="left" prop="surface-positions/left-aileron-pos-norm"/&gt;~
&lt;control-output control="FLAP1" side="right" prop="surface-positions/right-aileron-pos-norm"/&gt;~
&lt;control-speed control="FLAP1" transition-time="1"/&gt;~
&lt;control-input axis="/controls/flight/aileron-trim" control="FLAP1" split="true"/&gt;~
&lt;/wing&gt;~
<
**&lt;hstab&gt;[#vf6810b7]
水平尾翼の左側の形状や特性を記述します。hstab は wing オブジェクトであるため、記述内容は wing タグと同等ですが、水平尾翼の「効き具合」を示す effectiveness 属性が追加されています。また、wing と同様に右半分はミラーされることになります。なお、hstab オブジェクトは xml ファイルに1つしか記述できません。以下に A6M2 の例を示します。

-使用例と解説
>
&lt;hstab x="-4.73" y="0.22" z="0.46" taper="0.439"
length="2.0" chord="1.43" sweep="-0.1" incidence="0.0" effectiveness="2.5"&gt;~
&lt;stall aoa="16" width="8" peak="1.5"/&gt;~
&lt;flap0 start="0.0" end="1.1" lift="1.6" drag="1.6"/&gt;~
&lt;control-input axis="/controls/flight/elevator" square="true" control="FLAP0"/&gt;~
&lt;control-input axis="/controls/flight/elevator-trim" control="FLAP0"/&gt;~
&lt;control-output control="FLAP0" prop="/surface-positions/elevator-pos-norm"/&gt;~
&lt;/hstab&gt;~
<
ここで注目すべき所は flap0 の翼端が 1.1 を越えていることです。これはエレベータの幅が翼の幅よりも長い事を示しています。決して正しい数値ではないのですが、カタログスペックの値だと揚力が十分に得られない場合や、アプローチ時の迎え角が小さくなりすぎる時に1.0 以上の数値を記述することで、実機に近いアプローチ体勢を実現する事ができます。~
effectiveness, flap0, stall, approach のパラメタはそれぞれ依存し合っていますので、この辺をチューニングするのは時間が掛かるでしょう。

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

-使用例
>
&lt;vstab x="-5.0" y="0" z="-0.6" taper="0.5" effectiveness="3.5"
length="1.6" chord="1.65" sweep="0"&gt;~
&lt;stall aoa="15" width="14" peak="1.5"/&gt;~
&lt;flap0 start="0" end="1" lift="1.6" drag="1.6"/&gt;~
&lt;control-input axis="/controls/flight/rudder" square="true" control="FLAP0" invert="true"/&gt;~
&lt;control-input axis="/controls/flight/rudder-trim" control="FLAP0" invert="true"/&gt;~
&lt;control-output control="FLAP0" prop="/surface-positions/rudder-pos-norm"
min="1" max="-1"/&gt;~
&lt;/vstab&gt;~
<
//**&lt;mstab&gt;
水平安定板のミラーリングをします。難解な計算の解答に関わらず、同じ形状の水平尾翼を必要なだけ持つことができます。

**&lt;stall&gt;[#ma3fadba]
wing タグ内に記述される子要素で、失速時の挙動を表します。stall タグではこの失速時の挙動を以下に示す3つの属性で決定します。
-属性
--aoa:失速時の迎え角 (最大揚力)を度(degrees)で示します。「迎え角」は胴体との角度ではなく、翼(翼弦線)と飛行方向の間の角である事に注意してください。なぜなら翼が胴体と並行に取り付けられているとは限らないからです。
--width: ストールの「幅」を示す角度です。この値が大きくなる程緩やかなストールとなります。捻り下げの無い翼(twist="0"の翼)にとっては、この値が小さいと非常に危険なストールとなります。捻り下げのある翼は翼全体が同時にストールしないため小さい値でも耐えられます。
--peak: 揚力がピークとなる高さを、45度におけるストール後の二次ピークとの相対値で表します。デフォルト値は1.5になっています。この値は「魔術」であり、通常は変更する必要はないでしょう。

**&lt;flap0&gt; , &lt;flap1&gt; , &lt;slat&gt; , &lt;spoiler&gt;[#lc8388aa]
stall タグと同様、 wing/hstab/vstab タグ内に記述することでエルロンやフラップなどの「舵」の位置、形状、及び効き具合を定義します。
-属性
--start: 翼上における舵の物理的な開始位置を指定します。0.0 は翼の付け根を、1.0 は翼端を示します。
--end: 翼上における舵の終端位置を指定します。値の意味は start と同じです。
--lift: 舵を最大にした際の揚力の乗数を示します。標準的なエルロンは 1.2 となり、大型ジェット機のフラップは2.0 となります。
--drag: lift と同様の条件における抗力の乗数を示します。フラップでは通常 lift より大きな値を指定します。
--aoa: slat のみの属性です。これは、slatを展開したときの失速時の迎え角がどれだけ大きくなるかを示しています。

-使用例と解説
A6M2 の主翼における flap0(フラップ), flap1(エルロン) は以下のようになります。
>
&lt;flap0 start="0.0" end="0.4" lift="1.7" drag="1.9"/&gt;~
&lt;flap1 start="0.4" end="1.0" lift="1.4" drag="1.1"/&gt;~
<

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

-- axis: 舵を操作するフライトギアのプロパティを指定します。flaps の場合 "/controls/flight/flaps" となります。同様に エルロンの場合は "/controls/flight/aileron" となります。これらのプロパティはフライトギアのメニューから "File &gt; Browse Internal Properties" を選択する事で閲覧できます。
-- control: 入力された値が、どこで利用されるかを指定します。
--- THROTTLE: スロットル
--- MIXTURE: 空燃費
--- REHEAT: アフターバーナー(unimpl.)
--- PROP:プロペラピッチ(unimpl.)
--- BRAKE: ランディングギアのブレーキ
--- STEER: ランディングギアのステアリング
--- FLAP0: フラップ0
--- FLAP1: フラップ1or機種によってはエルロン
--- SLAT: スラット
--- SPOILER: スポイラー
--- INCIDENCE:翼への入射角度
--- CYCLICAIL:サイクリックの横方向(固定翼機で言う、エルロンに相当)の入力・ローターへの出力(回転翼機のみ)
--- CYCLICELE:サイクリックの縦方向(固定翼機で言う、エレベータに相当)の入力・ローターへの出力(回転翼機のみ)
--- COLLECTIVE : コレクティブ・ピッチレバー(メインローターのピッチを制御)の入力・ローターへの出力(回転翼機のみ)
--- ROTORENGINEON :ローターの始動(未検証ですが、入力元が/controls/engines/engine[0]/magnetosでした。)(回転翼機のみ)
//--- WINCHRELSPEED : ウインチで牽引される速度
//そのほかにもありますので、FGFDM.cppを参照してください。
--invert: "true" を指定すると制御の方向を逆にできます。J7W の様に主翼が後ろにある場合などでエレベータの制御を上下逆にする場合に利用します。
-- split: "true" を指定すると左側にはプロパティの値が、右側にはプロパティの値の正負を反転した値(つまり、-1倍した値)がそれぞれ適用されます。
-- square: "true" を指定すると舵を操作する際に、プロパティの平方根を用います。少し舵を切った時の挙動を押さえたい時に利用します。プロパティの範囲が-1.0〜1.0の時のみ利用してください。
A6M2 のフラップでは次のように指定しています。
>
&lt;control-input axis="/controls/flight/flaps" control="FLAP0"/&gt;
<
//--src0/src1/dst0/dst1:
//この値が与えられると、出力値をソースと直接結び付けます。入力値の値の範囲をsrc0-src1とすると、それはdst0-dst1に直線的に結び付けられます。入力値範囲外では、値は固定されます。


**&lt;control-output&gt;[#gd5cd8c1]
各制御装置の状態を保存する為のフライトギアのプロパティを指定します。このタグにより書き出された値は、Nasal スクリプトや計器表示、アニメーション等で利用されます。指定されたプロパティに書き出される値は、control-input タグの属性や control-speed により加工された値となります。
-属性:
-- control: control-input タグと同じ
-- prop: 値を書き込むフライトギアのプロパティ名を指定します。どのプロパティに書き込むべきかは色々な機体のフライトモデルを参考にしてください。
//-- side: コントロールを分割することが出来るオプションです。"右"もしくは"左"のどちらかを選んでください。
//-- min/max:適用される出力値の上限・下限を指定します。

-使用例:
A6M2 のフラップ位置の書き出しは、次のようになります。
>
&lt;control-output control="FLAP0" prop="/surface-positions/flap-pos-norm"/&gt;~
<
フラップのアニメーションを行う時は、このプロパティを参照して、フラップの座標を計算しています。(A6M2/Model/a6m2b-anim.xml を参照してください)

**&lt;control-speed&gt;[#t97b9c99]
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 :コントロールするプロパティを指定します。
--transition-time :プロパティを変化させる所要時間を指定します。

-使用例~
>
&lt;control-speed control="FLAP1" transition-time="1"/&gt;~
<
この例ではフラップが下ろされた時に 1 秒掛けて指定された位置に移動することとなります。~

//**&lt;contorol-setting&gt;
//**&lt;thruster&gt;

**&lt;jet&gt;(要補足/修正。特に、デフォルト値関連) [#l63b8ddf]
''この項は翻訳が正確ではないかもしれないことに注意してください。''~
ターボジェット/ターボファンエンジンを定義します。これは&lt;control&gt;要素で制御され、推力をエンジンの重心位置と違う場所から発生させるために&lt;actionpt&gt;を子要素として持ちます。
--x,y,z: エンジンの取り付け位置を重心を基準にして指定します。また、&lt;actionpt&gt;要素が指定されない場合は、この場所で推力を発生させます。
--mass: エンジンの質量をlbsで指定してください。
--thrust: 海面高度での推力をlbsで指定してください。
--afterburner: アフターバーナー(オーグメンター、リヒート)使用時の出力をlbsで指定してください。デフォルトでは"推力増加"はありません。
--rotate: 推力の偏向の角度を記述します。指定していないときは0(真後ろ)です。(不正確:要補足)
--n1-idle: アイドル時のファン(もしくは低圧タービン)の回転を%で指定。未指定時は55です。
--n1-max: 最大時のファン(もしくは低圧タービン)の回転を%で指定。未指定時は102です。
--n2-idle: アイドル時の高圧タービンの回転%を指定。未指定時は73です。
--n2-max: 最大時の高圧タービンの回転%を指定。未指定時は103です。
--tsfc: 推力あたりの燃料消費量を指定します。デフォルトでは0.8(単位不明)ですが、現代的なターボファンエンジンでは、これよりもっと低くあるべきです。
--egt: 離陸時の排気ガスの温度を指定してください。デフォルトは1050(ケルビンか℃かは不明)です。
--epr:離陸時の排圧を比率で指示してください。(不正確。おそらく、標準大気圧との比率)
--exhaust-speed:排気の流速をktで指示してください。(おそらくTAS)
--spool-time :turbo-lag:出力(スロットル)を90%変化させたときにエンジンの反応が追いつくまでに何秒かかるかを指示します。
>
---N1・N2について
http://ja.wikipedia.org/wiki/%E7%94%BB%E5%83%8F:Turbofan_operation.png
n1は画像の緑色部分の回転を、n2は青色部分の回転を指します。
<

**&lt;propeller&gt;[#e3879f4c]
プロペラ及びエンジンについて記述します。このタグは、&lt;piston-engine&gt;または&lt;turbine-engine&gt;の子要素を必要とします。
-属性:
--x, y, z: プロペラ及びエンジンの重心座標を指定します。単位はm で座標系は他のタグの x,y,z の属性と同じく、3Dモデルの中心点からの位置になります。
--radius: プロペラの半径を m で記述します。
--mass: エンジン及びプロペラの重さをポンド (lb) で示します。
--moment: プロペラによるモーメントを kgm^2 (質量×半径の2乗) で示します。正/負でプロペラの回転方向を指定します。この値は現状推測値だそうです。A6M2 では試行錯誤の結果 80 で落ち着いています。
--cruise-speed: プロペラの最も効率のよい時の速度をkt で示します。機体の対地最高速度とは異なるそうですが、A6M2 では機体の最高速度としています。
--cruise-rpm: cruise-speed で指定した速度で飛行中のプロペラの回転数を示します。通常、エンジンの最大 RPM * ギア比となります。
--cruise-alt: sruise-speed で巡航中の高度をフィート(ft) で示します。
//--cruise-power: 
--takeoff-power: 離陸時の出力を記述します。A6M2 では940 hp を指定しています。
--takeoff-rpm: 離陸時のプロペラ回転数をrpm で示します。これも推測値となりますが、A6M2 では単純に cruise-rpm * (max-power / takeoff-power) で算出しています。
--gear-ratio: ギア比を示します。A6M2 では 0.6875 です。
--fine-stop: 最小のプロペラピッチを、cruise-rpm 時の理想ピッチに対する比で表現します。デフォルトでは 0.25 です。この値を大きくすると滑走時のプロペラ回転数が下がる傾向にあります。A6M2 では試行錯誤の上 0.9 と高めに設定しています。
--min-rpm, max-rpm: プロペラの最小/最大回転数をRPM で指定します。エンジンの最大/最小回転数にギア比を掛けたものとなります。
//--fine-stop:
//--coarse-stop:
//--contra

-使用例
>
&lt;propeller x="2.0" y="0" z="0"
radius="1.56"
mass="1175" moment="80"
cruise-alt="15000" cruise-power="950"
cruise-speed="288" cruise-rpm="1719"
takeoff-power="940" takeoff-rpm="1700"
gear-ratio="0.6875"
fine-stop="0.9"
min-rpm="550" max-rpm="1719"
&gt;~
&lt;actionpt x="2.36" y="0" z="0"/&gt;~
&lt;control-input axis="/controls/engines/engine[0]/propeller-pitch" control="ADVANCE" /&gt;~
&lt;!-- turbo-mul and wastegate-mp are set to +250mmHg (1.33 bar) --&gt;~
&lt;piston-engine
eng-power="950" eng-rpm="2500"
turbo-mul="1.333" wastegate-mp="39.372"
supercharger="1"
&gt;~
&lt;control-input axis="/controls/engines/engine[0]/throttle" control="THROTTLE"/&gt;~
&lt;control-input axis="/controls/engines/engine[0]/starter" control="STARTER"/&gt;~
&lt;control-input axis="/controls/engines/engine[0]/magnetos" control="MAGNETOS"/&gt;~
&lt;control-input axis="/controls/engines/engine[0]/mixture" control="MIXTURE"/&gt;~
&lt;control-input axis="/controls/engines/engine[0]/boost" control="BOOST"/&gt;~
&lt;/piston-engine&gt;~
&lt;/propeller&gt;~
<
この例でも分かるように propeller タグ内には actionpt, piston-engine, control-input のサブ要素があります。以下では actionpt 及び piston-engine タグについて説明します。control-input に関しては、単発機であれば、この例の通りに記述して問題ありません。

**&lt;piston-engine&gt;[#p4d183eb]
ピストンエンジンの特性を記述します。先述したとおり、propeller タグのサブ要素として記述しなければなりません。
-:
--eng-power: 最大出力を hp で記述します。A6M2 では 950 hp です。
--eng-rpm: エンジンの最大回転数を記述します。A6M2 では 2500 rpm です。
--displacement: エンジンの排気量(inch^3)を示します。A6M2 ではカタログ通りに記述したら出力が大きく下がったので利用していません。
--compression:  エンジンの圧縮比を示します。A6M2 ではカタログ通りに記述したら出力が大きく下がったので利用していません。
--turbo-mul: 過給圧の乗数を記述します。A6M2 では最大 :+250mmHg (1.333 気圧)ですので1.333となります。
--wastegate-mp: 最大過給圧の上限を inHg で記述します。A6M2 では 1.333 気圧ですので、39.72 inHg(=1.333 気圧) としています。turbo-mul を 1.333 以上にしてもこの値で打ち止めとなります。
--supercharger: 過給器がターボではなくスーパーチャージャーの場合 1 とします。A6M2 はスーパーチャージャーなので 1 となります。
--turbo-lag: ターボ過給器でパワーを90%変化させたときに、過給圧の変化が追いつくまでのタイムラグを秒で記述します。

**&lt;turbine-engine&gt;[#md84d183] 
''この項は翻訳が正確ではないかもしれないことに注意してください。''~
タービンエンジン(ターボプロップ)を定義します。この要素は、&lt;propeller&gt;タグの子要素でなければなりません。
-属性:
--eng-power: 最大馬力をhpで指定します。ピストンエンジンの時と違い、巡航高度での出力を指定してください。
--eng-rpm :eng-powerで指定したパワーを発生する時のエンジンの回転数を指示します。これは、プロペラのシャフトの回転数であることに注意してください。この時、親要素の&lt;propeller&gt;タグ内で、gear-ratioを指示してはいけません。
--alt :eng-powerで指定したパワーを発生する高度を指示します。これは、十分高くなければなりませんが、flat-rating powerより低くなければなりません。
--flat-rating :エンジンの許容される最大の出力を指定します。ほとんどのターボプロップエンジンは、エンジンの損傷を防ぐために特定の高度、温度域より下で使用されます。
--min-n2: スロットルレバーを0位置にしたときの、N2タービンの回転速度をパーセントで指示します。
--max-n2: スロットルレバーをMAX位置にしたときの、N2タービンの回転速度をパーセントで指示します。
--bsfc: 1hpあたりの燃料消費量を、lbs/時 で指示します。

**&lt;actionpt&gt;[#fc6859e4]
propeller、もしくはjetタグのサブ要素であり、プロペラの位置情報orジェットエンジンの推力が発生する位置を記述します。
-属性:
--x, y, z: プロペラの回転中心orジェットエンジンの推力の発生する位置を 3D モデルの中心点からの座標として表現します。単位はメートルです。

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

-属性
--x,y,z : 脚を完全に降ろした時の車輪の先の位置を指定してください。
--compression : 脚がストロークできる長さをメートルで指定してください。
//--initial-load : 
--upx/upy/upz : 脚を格納する時、足を縮める方向を指定してください。デフォルトでは垂直(0,0,1)が使用されます。
これらは、向きを指定するだけに使います。 - 長さが&lt;compression&gt;で指定されるのと同様に、方向は垂直である必要はありません。
--sfric : タイヤの静摩擦係数を指定します。デフォルト値は0.8です。
--dfric : タイヤの動摩擦係数を指定します。デフォルト値は0.7です。'訳者注:普通は、静摩擦係数&lt;動摩擦係数となる点に注意してください。'
--spring : 自動生成のバネ定数へ乗ずる数を指定して、バネの強さを指定します。値を大きくするとバネは硬くなります。値を小さくするとバネを柔らかくします。以下の、ダンパーの減衰力と大きな関わりがあります。
--damp : 自動生成のダンパー定数への無次元の係数を指定して、ダンパーの減衰力を指定します。値を増やすと、ギアの伸縮はゆっくりになります、値を減らすと、ギアが活発に動きます。
//--on-water : 
//--on-solid : 
//--speed-planing : 
//---spring-factor-not-planning : 
//---reducde-friction-by-extension :
//---ignored-by-solver :
バネの強さに対して減衰力過大の場合、バネでショックを吸収できずに機体が撥ねることがあります。逆に減衰力不足の場合、いつまでも機体の振動が収まりません。
ダンパーの減衰力とスプリングの強さの調整で機体を安定させられないならば、compressionの長さを大きくしてみてください。

-使用例と解説:
A6M2の左メインギアはこのようになっています。
>
&lt;gear x="0.91" y="1.75" z="-1.918" compression="0.2" spring="0.7" damp="2.2" dfric="0.05" sfric ="0.10"&gt;~
&lt;control-input axis="/controls/gear/brake-left" control="BRAKE"/&gt;~
&lt;control-input axis="/controls/gear/brake-parking" control="BRAKE" split="true"/&gt;~
~
&lt;!-- ここから先は固定脚には不要です。--&gt;~
&lt;control-input axis="/controls/gear/gear-down" control="EXTEND"/&gt;~
&lt;control-speed control="EXTEND" transition-time="6"/&gt;~
&lt;control-output control="EXTEND" prop="/gear/gear[0]/position-norm"/&gt;~
&lt;/gear&gt;~
<
**&lt;hook&gt; [#r1987e71]
着艦フック、もしくは緊急制動用フック(F-15等)を定義します。~
# ''この項は機体データやソースコードから推測したものです。正確かどうかは分りません。''

-属性:
--x,y,z : フックの取り付け位置を指定します。
--length : フックの長さを指定します。
--down-angle : フックの角度の下限を指定します。
--up-angle : フックの角度の上限を指定します。

参考のため、A6M2のhook要素を転載します。
>
&lt;hook x="-4.00" y="0.0" z="-0.400" length="1.5" down-angle="70" up-angle="-5"&gt;~ 
&lt;control-input axis="/controls/gear/tailhook" control="HEXTEND"/&gt;~
&lt;control-speed control="HEXTEND" transition-time="3"/&gt;~
&lt;/hook&gt;~
<

**&lt;launchbar&gt; [#m28ed06b]
艦載機等の、ランチバー(もしくはストラップ)を定義します。~
# '''この項の不正確な可能性が高い部分はコメントアウトしています。正しい翻訳であるならば、コメントアウトを外してください。'''
-属性:
--x,y,z : 飛行機側の、ランチバーが取り付けられた場所を指定します。
--length : ランチバーの、機体側から先端までの長さを指定します。
--down-angle : ランチバーの水平より下向きの最大角度を指定します。
--up-angle : ランチバーの水平より上向きの最大角度を指定します。
--holdback-{x,y,z} : カタパルトの固定具を取り付ける位置を指定します。
--holdback-length : カタパルト側の固定具のマウントポイントからの長さを指定します。角度の上限と下限はランチバーと同じなので、特に指定しない点に注意してください。
-- control-speed: transition-time 属性で射出時間(秒)を設定します。通常は1で構いません。
~
--A6M2での使用例:
>
&lt;launchbar x="0.0" y="0.0" z="-0.99" length="1.470" down-angle="90" up-angle="0" holdback-x="0.0" holdback-y="0.0" holdback-z="-0.69" holdback-length="1.65"&gt;~
&lt;control-input axis="/controls/gear/launchbar" control="LEXTEND"/&gt;~
&lt;control-speed control="LEXTEND" transition-time="1"/&gt;~
&lt;/launchbar&gt;~
<

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

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

-属性:
--x,y,z : タンクの位置を指定します。
--capacity : 燃料タンクの容量をポンドで指定します。ガロンではありません。YASimは燃料の密度変化をサポートしています。
--jet : bool型変数です。これがtrueなら燃料タンクの中身はJet-Aとして処理されます。そうでないなら、ガソリンの密度を使用します。
//より入念な密度設定(例えば、lbs/gal.で)を行いやすいようにするつもりです。

**&lt;ballast&gt; [#ba437ca0]
これは重心位置を調整するために設定します。バラスト設定は、&lt;aircraft&gt;タグで定義した、航空機の無燃料重量の一部を特定の場所に置く時に指定します。残った重量は胴と翼のいたる所に「知的に」配分されるでしょう。
もう一度以下の点に注意してください。これは無燃料重量を変えません。(バランス調整用の死重は自重に含まれます。)
-属性:
--x,y,z : バラスト位置を指定します。
--mass : 質量をポンドで指定して、指定した場所に置きます。負の値を与えることも出来る点に注意してください。これは、航空機のテールを軽くする時に必要になるかもしれません。 

**&lt;weight&gt; [#v98c60e7]
これは乗員乗客・荷物、そのほか自重に含まれない物(例:飲料水・機内食・サービス用品等。軍用機なら、ミサイルや爆弾の類)を定義します。実際の質量がここで指定されないときは、代わりに(訳注:nasalを利用して)プロパティへのマッピングを使用します。
これはパネルなど、外部からのコードで重量を操作することを許します。(貨物の設定をpreference filesから読み込んだり、ランタイム等で爆撃機を使って爆撃したり、等)
-属性:
--x,y,z : 重量の位置を指定します。
--mass-prop : プロパティツリー上での名前を指定します。この重さはポンドであらわしてください。
--size : 空気力学の上での"サイズ"をメートルであらわしてください。これが重要になるのは、重量物が機外に取り付けられた場合で、抗力の発生源になりうるからです。爆弾のように空力面が考慮されている物なら、その幅を使用してください。
そうでない物は、あなた自身が決めてください。デフォルトでは0です。(機内の積荷として扱います。)

**&lt;solve-weight&gt; [#x388f63b]
&lt;approach&gt;、&lt;cruise&gt;タグの子要素として記述します。weightタグで荷物を積んでいるときの着陸・巡航に関する設定を解決します。
デフォルトでは、全ての積荷に与えられた番号がゼロであると仮定します。
-属性:
--idx : ファイル中の何番目のweightかを、ゼロから始まる番号で指定します。
--weight : 重量の設定を、ポンドで指定してください。

//**&lt;hitch&gt;
//**&lt;tow&gt;
//**&lt;winch&gt;

**&lt;rotor&gt; [#s8f1fabc]
'''この項は翻訳が正確ではないかもしれません'''
ヘリコプターのローターを指定します。これは1つだけ、2つ、あるいはもっとたくさんの&lt;rotor&gt;を書くことが出来ます。
ローターを指定した場合、&lt;wing&gt;や&lt;hstab&gt;を指定する必要はなくて、&lt;approach&gt;と&lt;cluise&gt;は無視されるでしょう。
//Instead stored...と書いてあったけど、C182はJSBSim機なのでこの一行を省略。

-属性:(要補足・修正。)
--name : ローターの名前を指定します。(いくつかのデータは /rotors/name に保存されています。)回転数、cone angle、ヨー角度、ロールの角度が保存されています。
ブレード1枚ごとに位置の角度、ピッチ角、入射角が保存されます。全ての角度は「度」で指定され、正の数はいつも「up」を意味します。
これは完全にテストされたわけではありませんが、少なくともローターが半時計周りに回るように働きます。
--x,y,z : ローターの中心の位置を指定します。
--nx,ny,nz :ローター中心から垂直になる位置(上)を指定します。
--fx,fy,fz : ローターから見て「前」になる方向を指示します。正常で無い場合、コンピュータによって修正されるでしょう。
--diameter : ローター直径をメートルで指定します。
--numblades: ブレードの枚数を指定します。
--weightperblade:ブレード1枚の重さをポンドで指定します。
--relbladecenter : ブレードの相対的な重心を指示します。多分、100%正しく解釈されないでしょう;0.5から初めて、少しずつ値を変更してください。
//--chord : 
//--twist : 
//--taper :
//--rel-len-where-incidence-is-measured :
//--rel-len-blade-start : 
--rpm : 回転数を指示します。
//--phi0 : 
--ccw : ローターの回転方向を指示します。回転軸の真上から見たとき時計周りなら"false"、反時計回りなら"true"です。(Bo105のローターは反時計回りです)
--maxcollective : ローターの最大ピッチ角を指定します。
--mincollective : ローターの最小ピッチ角を指定します。
--maxcyclicele : 最大の、サイクリックをエレベータのように動作させるためのピッチ角
--mincyclicele : 最小の、サイクリックをエレベータのように動作させるためのピッチ角
--maxcyclicail : 最大の、サイクリックをエルロンののように動作させるためのピッチ角
--mincyclicail : 最小の、サイクリックをエルロンののように動作させるためのピッチ角
//--airfoil-incidense-no-lift : 
//--incidence-stall-zero-speed :
//--incidence-stall-half-sonic-speed:
//--lift-factor-stall : 
//--drag-factor-stall :
//--stall-change-over : 
//pitch絡み全部書き直した方が早いかも
--pitch_a : forceatpitch_aで指定した力を発生させるピッチ角を指定します
--forceatpitch_a : ローターのピッチ角がpitch_aで指定した角度の時に生み出す力をlbf(重量ポンド)指示します。例えば、ホバリングのピッチの場合、揚力は自重と等しくなります。
--pitch_b : poweratpitch_bで指定したパワーを発生するピッチ角を指示します。
--poweratpitch_b : ローターがpitch_bのピッチ角の時必要とするパワーをkWで指定します。(例えば、Bo105では、メインローターはエンジン出力の90%を使用して、9%はテイルローターを回すのに使用されます。残りの1%は発電や駆動ロスなど)これはトルクの計算に使用されます。
--poweratpitch_0 : ローターのピッチ角がゼロの時に必要な力をkWで指定します。これもトルクの計算に使用されます。
--notorque : これを"true"にセットすると、計算上、常にトルクが0になります。これはローターのパラメータの調整にとても役立つでしょう。
--flapmin : 最小のフラッピング角度を指示します。(通常、この値になることはありません)
--flapmax : 最大のフラッピング角度を指示します。(通常、この値になることはありません)
--flap0 : ローターが回転していないときのフラッピング角度を指示します(翻訳不正確)
--dynamic : これはローターへの入力に対する結果・反応を変えるでしょう。通常は1を使用してください。(多分、1より小さい場合はローターの反応は敏感で、1より大きい値の場合、反応が鈍感になるでしょう。)多分、Bell UH-1のローターをシミュレートするのに役に立ちます。
--rellenflaphinge : 相対的なローターの中心からフラッピングヒンジまでの長さを指示します。ヘリコプターを上から見た図を見ればこのデータを取ることができます。(Bell206で0、一般的なローターで0.05)フラッピングヒンジの無い機種(Bo105,Lynx)では平均的な値である0.2を使用してください。この値は、ローターの働きを極端に変えます。
--delta3 : いくつかのローターは、delta3効果があり、ローターがフラッピングしているとき、入射角を減らします。殆どのヘリコプターがそうであるように、値を0にすることは、ローターが1度動く毎にフラッピング角度が変化しないことを意味していて、値を1にすると、1度回転するごとに1度フラッピングします。したがって、delta3は回転中、入射角が減るごとにフラッピングさせる要素です。例えば、Boのテールローターのdelta3は、1です。
--delta : フラッピングの平均的なダンピングのための要素です。1はひとつの近似の解析結果を意味しているにすぎません。controlの入力へのローターシステムの反応が非常に強い結果になります。もし、あなたがサイクリックへの入力に対するフラッピング角度を知っているなら、あなたはこの値を変えて調整することができます。
もしくは、あなたが最大のロールレートを知っているなら・・・(そこからdelta3を調整してみてください)
--translift : ヘリコプターには、トランジショナルリフトがあり、それは乱流で計算が難しいので、このシミュレーションでは現象学的に対策します。調整の時は、1から始めてください。
--dragfactor : ロータークラフトの回転するローターの抗力は、それが止まっている時の抗力より大きいです。計算が難しいので、現象学的に加えてください。

--説明
#br
全てのローターは、エンジン(ROTORENGINEON)やコレクティブ(COLLECTIVE)、サイクリック(CYCLICELE,CYCLICAIL)の入力のため&lt;control&gt;の子要素を必要とします。
#br
ローターのシミュレーションは"ベータ"で、まだ実装が終わっていません。従って、あまり挙動を細かく調整しようとしないでください。

//&lt;rotorgear&gt;

----
07/12/01〜07/12/11
--新規作成(フォーラムの[[フライトモデル解説>http://www.jp.flightgear.org/modules/newbb/viewtopic.php?topic_id=379&post_id=1262&order=0&viewmode=flat&pid=1068&forum=7#forumpost1262]]に、自分が[[機体データの作成]]内に書いていた、docs/README.yasimの翻訳文を統合し、さらに追記) -sambar

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

>1.0.0向けに修正開始。(修正完了までコメントアウト) 2007/12/19 sambar

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