[[機体データの作成]]~
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]]を元にこちらにまとめてみました。
そのため、基本的にA6M2を題材に解説していきます。
そのため、基本的にA6M2を題材に解説していきますが、加筆などをお待ちしています。

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

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

>
&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;~
#br
<

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

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

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

//加筆者:sambar
//以下作業中の旧文書
//-&lt;cruise&gt;
//--巡航速度と高度を指示します。上記のような飛行機の状態を、&lt;control&gt;要素で含めなければいけません。特に、エンジンが巡航に十分な推力を発生させていることを確認してください!
//---speed:巡航時の真対気速度を指定します。
//---alt:巡航時の海面高度をknotで指定します。
//---fuel:燃料タンク内の燃料の量を0から1の間で指定します。デフォルト値は0.2です。
//#br
//-&lt;cockpit&gt;
//--コックピットの位置(パイロットの視点)を指定します
//---x,y,z:視点の位置(coordinates noteを参照してください)
//#br
//-&lt;fuselage&gt;
//--これは胴体を定義します。これは質量や空気による力を他の部品に伝えます。(翻訳途中)
//---ax,ay,az:胴体の前端
//---bx,by,bz:胴体の後端
//---width:胴体の幅をメートルで指定してください。
//---taper:胴体の先端の径を「胴体の径の倍数」(0〜1)で指定
//---midpoint:
////直訳すると、胴体(AとBの間の距離で表される)の最も広い部分の位置
//#br
//-&lt;wing&gt;
//--これは主翼を指定します。この要素タグは一つしか使うことが出来ません。(しかし、//後述するvstabタグを使えばさらに揚力を発生する面を追加することが出来ます。)主翼//は、&lt;stall&gt;を失速条件の指定のために子要素として持つべきです。
//また、操舵面(&lt;flap0&gt;,&lt;flap1&gt;,&lt;spoiler&gt;,&lt;slat&gt;)の制御に//関する子要素を指定して、また&lt;control&gt;子要素で入力を実際に操縦面に割り当て//てください。-->
-属性
--speed:巡航時の真対気速度を指定します。
--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ノットであることを意味します。

----07/12/01 -新規作成
** cockpit タグ [#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 の位置になります。この位置が、コクピット視点の位置になります。

** fuselage タグ [#n784a86f]
機体胴体の形状を両端の座標、最大幅、先細り具合、最大幅となる位置とで示します。fuselage タグの属性を以下に示します。機体胴体とはエンジンカウル先端(プロペラ軸は含みません)から機体の最後尾までの筒として捉えられます。以下に fuselage タグの属性について説明します。
-属性
--ax, ay, az: 胴体先端の中心座標 (座標軸と単位はcockpit タグの属性と同じ)
--bx, by, bz: 胴体末尾の中心座標
--width: 最大幅(通常、翼の付け根のx軸上の中心位置における胴体の幅)。単位はメートルです。
--taper: 胴体の先細り度合いを示す数値で、先端の幅を最大幅で割った値になります。0.0 で先端が点になり、1.0 では先端から末尾迄同じ幅となります。
--midpoint:胴体の幅が最も広くなる位置

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

** flap0, flap1, slat, spoiler タグ [#lc8388aa]
stall タグと同様、 wing タグ内に記述することでエルロンやフラップなどの「舵」の位置、形状、及び効き具合を定義します。
-属性
--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;~
<

** control-input タグ [#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: フラップ
--- FLAP1: エルロン (機種により異なる場合もある)
--- SLAT: スラット
--- SPOILER: スポイラー
--- INCIDENCE:翼への入射角度(?)
--以下ヘリのみ(サイクリック・コントロールスティックは、単にサイクリックと略す。)
--- CYCLICAIL:サイクリックの横方向(固定翼で言う、エルロンに相当)の入力・ローターへの出力
--- CYCLICELE:サイクリックの縦方向(固定翼で言う、エレベータに相当)の入力・ローターへの出力
--- COLLECTIVE : コレクティブ・ピッチレバー(ローターのピッチを制御)の入力・ローターへの出力
--- ROTORENGINEON :ローターの始動(未検証ですが、入力元が/controls/engines/engine[0]/magnetosでした。)
#br
--invert: "true" を指定すると制御の方向を逆にできます。J7W の様に主翼が後ろにある場合などでエレベータの制御を上下逆にする場合に利用します。
-- split: "true" を指定すると左側にはプロパティの値が、右側にはプロパティの値の正負を反転した値(つまり、-1倍した値)がそれぞれ適用されます。
-- square: "true" を指定すると舵を操作する際に、プロパティの平方根を用います。少し舵を切った時の挙動を押さえたい時に利用します。プロパティの範囲が-1.0〜1.0の時のみ利用してください。
A6M2 のフラップでは次のように指定しています。
&lt;control-input axis="/controls/flight/flaps" control="FLAP0"/&gt;

** control-output タグ [#gd5cd8c1]
各制御装置の状態を保存する為のフライトギアのプロパティを指定します。このタグにより書き出された値は、Nasal スクリプトや計器表示、アニメーション等で利用されます。指定されたプロパティに書き出される値は、control-input タグの属性や control-speed により加工された値となります。
-属性:
-- control: control-input タグと同じ
-- prop: 値を書き込むフライトギアのプロパティ名を指定します。どのプロパティに書き込むべきかは色々な機体のフライトモデルを参考にしてください。

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

** control-speed タグ [#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 は次のように記述されています。
-使用例~
&lt;control-speed control="FLAP1" transition-time="1"/&gt;~

この例ではフラップが下ろされた時に 1 秒掛けて指定された位置に移動することとなります。~

**rotorタグ [#t9442212]
(未翻訳)

----
07/12/01〜 -新規作成(フォーラムの[[フライトモデル解説>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


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