フライトモデル解説
- このフォーラムに新しいトピックを立てることはできません
- このフォーラムではゲスト投稿が禁止されています
フライトモデル解説
msg# 1
Tat
投稿数: 375
自分で機体を作ってみたいという方々のために、フライトモデルについて、0.9.10 用A6M2 を題材に少しずつ書いていきたいと思います。ここで議論した内容も反映した上で、そのうち 作業場にでもまとめるとしましょう。(ので pukiwiki で書いておきます。) 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 属性に指定する真速は異なるということです。計器速度は高度が高くなるに従って真速よりも遅い値を示します。計器速度と新速との関係については別途説明します。
// その2へ続く
* このドキュメントで扱うフライトモデルについて
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 属性に指定する真速は異なるということです。計器速度は高度が高くなるに従って真速よりも遅い値を示します。計器速度と新速との関係については別途説明します。
// その2へ続く
投票数:18
平均点:5.56
フライトモデル解説 その2
msg# 1.1
Tat
投稿数: 375
引き続き、A6M2 のフライトモデルについてお届けします。
** cockpit タグ
パイロットの視点位置を記述します。この位置は3Dモデルの中心を (0, 0, 0) とした相対座標として表現したもので、単位はメートルです。A6M2 では以下のようになります。
<cockpit x="-0.44" y="0" z="0.774"/>
この座標の割り出しは、3D モデリングツールでパイロットの視点にカーソルを合わせ、その座標を記録する事で行います。各軸は以下のようになります。
- x軸: 機体の前後方向を示し、後方が正となります
- y軸: 機体の左右方向を示し、右側が正となります
- z軸: 機体の上下方向を示し、上側が正となります
A6M2 の場合、パイロットの視点は3Dモデルの原点から前方に 0.44m, 上方に0.774m の位置になります。この位置が、コクピット視点の位置になります。
** fuselage タグ
機体胴体の形状を両端の座標、最大幅、先細り具合、最大幅となる位置とで示します。fuselage タグの属性を以下に示します。機体胴体とはエンジンカウル先端(プロペラ軸は含みません)から機体の最後尾までの筒として捉えられます。以下にfuselage タグの属性について説明します。
- ax, ay, az: 胴体先端の中心座標 (座標軸と単位はcockpit タグの属性と同じ)
- bx, by, bz: 胴体末尾の中心座標
- width: 最大幅(通常、翼の付け根のx軸上の中心位置における胴体の幅)。単位はメートル
- taper: 胴体の先細り度合いを示す数値で、先端の幅を最大幅で割った値になります。0.0 で先端が点になり、1.0 では先端から末尾迄同じ幅となります。
// その3へ続く
** cockpit タグ
パイロットの視点位置を記述します。この位置は3Dモデルの中心を (0, 0, 0) とした相対座標として表現したもので、単位はメートルです。A6M2 では以下のようになります。
<cockpit x="-0.44" y="0" z="0.774"/>
この座標の割り出しは、3D モデリングツールでパイロットの視点にカーソルを合わせ、その座標を記録する事で行います。各軸は以下のようになります。
- x軸: 機体の前後方向を示し、後方が正となります
- y軸: 機体の左右方向を示し、右側が正となります
- z軸: 機体の上下方向を示し、上側が正となります
A6M2 の場合、パイロットの視点は3Dモデルの原点から前方に 0.44m, 上方に0.774m の位置になります。この位置が、コクピット視点の位置になります。
** fuselage タグ
機体胴体の形状を両端の座標、最大幅、先細り具合、最大幅となる位置とで示します。fuselage タグの属性を以下に示します。機体胴体とはエンジンカウル先端(プロペラ軸は含みません)から機体の最後尾までの筒として捉えられます。以下にfuselage タグの属性について説明します。
- ax, ay, az: 胴体先端の中心座標 (座標軸と単位はcockpit タグの属性と同じ)
- bx, by, bz: 胴体末尾の中心座標
- width: 最大幅(通常、翼の付け根のx軸上の中心位置における胴体の幅)。単位はメートル
- taper: 胴体の先細り度合いを示す数値で、先端の幅を最大幅で割った値になります。0.0 で先端が点になり、1.0 では先端から末尾迄同じ幅となります。
// その3へ続く
投票数:16
平均点:5.63
フライトモデル解説 その3
msg# 1.1.1
Tat
投稿数: 375
さて、翼の説明に入ります。
** wing タグ
主翼の形状や特性を設定します。wing タグの属性では主翼の左半分の形状と抗力(ドラッグ)を指定します。以下に属性について説明します。
- x, y, z: 主翼左半分の付け根の中心座標。単位はメートル
- taper: 主翼の先細り具合を示す数値で、x軸上の翼端の長さを主翼の付け根(胴体と接する部分の主翼の長さ)で割った値となります。1.0で翼端と長方形の翼となり、0.0で翼端が点になります。
- length: 主翼の付け根部分の長さ
- chord: 主翼の幅(機体の幅を半分にした値)。
- camber: 翼型中心線(翼断面の上面と下面の中点を結んで得られる曲線)と翼弦線との距離を示します。翼の断面図において、上下の形状が対象であればキャンバー角は0となります。一般的にキャンバーを大きくすれば失速時の迎え角(aoa)が増加します。これにより得られる最大揚力も増加しますが、同時に抵抗も増加します。
- dihedral: 主翼の取り付け角度。y軸と翼との角度を示します。
- idrag: 主翼により発生する誘導抗力の乗数を示します。一般的にアスペクト比の低い翼はアスペクト比の高い翼と比べると同じ迎え角 に対して低い誘導抗力を発生させます。Yasim では、誘導抗力に関する推定は不十分であるため、アプローチ時のスロットル設定をチューニングするためにこの値を調整する必要があります(とはいうものの、非常に難しいです)。
- incidence: 翼の付け根部分の取り付け角を示します。前翼端が後翼端よりも高い場合はが正の値を示します。
- sweep: 主翼の後退角を示します。前翼後退角ではないので注意してください。A6M2 はほぼ 0となります。
- twist: 翼の付け根の取り付け角と翼端の取り付け角との差のことで、翼端の取り付け角の方が小さければ負の値を示します。通常は負の値となり、翼端の取り付け角の方が小さくなります(ウォッシュアウト)
以下に 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="t
rue"/>
</wing>
** stall タグ
wing タグ内に記述し、ストール時の挙動を表します。stall タグではこのストール時の挙動を以下に示す3つの属性で決定します。
- aoa: ストール角(最大揚力)を角度で示します。この角度は胴体との角度ではなく、翼との角度を示す事に注意してください。なぜなら翼の incidence が常に 0 だとは限らないからです。
- width: ストールの「幅」を示す角度です。この値が大きくなる程緩やかなストールとなります。twist 値が0である翼にとっては、この値が小さいと非常に危険なストルとなります。twist した翼は翼全体が同時にストールしないため小さい値でも耐えられます。
- peak: 揚力がピークとなる高さを、45度におけるストール後の二次ピークとの相対値で表します。デフォルト値は1.5になっています。この値は「魔術」であり、通常は変更する必要はないでしょう。
** flap0, flap1, slat, spoiler タグ
stall タグと同様、 wing タグ内に記述することでエルロンやフラップなどの「舵」の位置、形状、及び効き具合を定義します。
- start: 翼上における舵の物理的な開始位置を指定します。0.0 は翼の付け根を、1.0 は翼端を示します。
- end: 翼上における舵の終端位置を指定します。値の意味は start と同じです。
- lift: 舵を最大にした際の揚力の乗数を示します。標準的なエルロンは 1.2 となり、大型ジェット機のフラップは2.0 となります。
- drag: lift と同様の条件における抗力の乗数を示します。フラップでは通常 lift より大きな値を指定します。
- aoa: slat のみの属性です。(A6M2 には存在しないので省略)
A6M2 の主翼における flap0(フラップ), flap1(エルロン) は以下のようになります。
<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 タグ
舵の制御に用いるフライトギアのプロパティ名を定義します。wing, hstab, vstab, cruise 及び approach タグのサブ要素として記述することができます。control-input タグの必須属性は axis と contorl です。属性の説明は以下の通りです。
- axis: 舵を操作するフライトギアのプロパティを指定します。flaps の場合 "/controls/flight/flaps" となります。同様に エルロンの場合は "/controls/flight/aileron" となります。これらのプロパティはフライトギアのメニューから "File > Browse Internal Properties" を選択する事で閲覧できます。
- control: 入力値を利用する制御装置を指定します。プロペラ機の場合、以下の値を指定できます。
-- THROTTLE: スロットル
-- MIXTURE: 空燃費
-- BRAKE: ランディングギアのブレーキ
-- STEER: ランディングギアのステアリング
-- FLAP0: フラップ
-- FLAP1: エルロン (機種により異なる場合もある)
-- SLAT: スラット
-- SPOILER: スポイラー
- invert: "true" を指定すると制御の方向を逆にできます。J7W の様に主翼が後ろにある場合などでエレベータの制御を上下逆にする場合に利用します。
- split: "true" を指定すると左側にはプロパティの値が、右側にはプロパティの値を政府反転した値がそれぞれ適用されます。
- square: "true" を指定すると舵を操作する際に、プロパティの平方根を用います。少し舵を切った時の挙動を押さえたい時に利用します。プロパティの範囲が-1.0〜1.0の時のみ利用してください。
A6M2 のフラップでは次のように指定しています。
<control-input axis="/controls/flight/flaps" control="FLAP0"/>
** control-output タグ
各制御装置の状態を保存する為のフライトギアのプロパティを指定します。このタグにより書き出された値は、Nasal スクリプトや計器表示、アニメーション等で利用されます。指定されたプロパティに書き出される値は、control-input タグの属性や control-speed により加工された値となります。control-output タグの属性は以下の通りです。
- control: control-input タグと同じ
- prop: 値を書き込むフライトギアのプロパティ名を指定します。どのプロパティに書き込むべきかは色々な機体のフライトモデルを参考にしてください。
A6M2 のフラップ位置の書き出しは、次のようになります。
<control-output control="FLAP0" prop="/surface-positions/flap-pos-norm"/>
フラップのアニメーションを行う時は、このプロパティを参照して、フラップの座標を計算しています。(A6M2/Model/a6m2b-anim.xml を参照してください)
** 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-speed control="FLAP1" transition-time="1"/>
この例ではフラップが下ろされた時に 1 秒掛けて指定された位置に移動することとなります。
** wing タグ
主翼の形状や特性を設定します。wing タグの属性では主翼の左半分の形状と抗力(ドラッグ)を指定します。以下に属性について説明します。
- x, y, z: 主翼左半分の付け根の中心座標。単位はメートル
- taper: 主翼の先細り具合を示す数値で、x軸上の翼端の長さを主翼の付け根(胴体と接する部分の主翼の長さ)で割った値となります。1.0で翼端と長方形の翼となり、0.0で翼端が点になります。
- length: 主翼の付け根部分の長さ
- chord: 主翼の幅(機体の幅を半分にした値)。
- camber: 翼型中心線(翼断面の上面と下面の中点を結んで得られる曲線)と翼弦線との距離を示します。翼の断面図において、上下の形状が対象であればキャンバー角は0となります。一般的にキャンバーを大きくすれば失速時の迎え角(aoa)が増加します。これにより得られる最大揚力も増加しますが、同時に抵抗も増加します。
- dihedral: 主翼の取り付け角度。y軸と翼との角度を示します。
- idrag: 主翼により発生する誘導抗力の乗数を示します。一般的にアスペクト比の低い翼はアスペクト比の高い翼と比べると同じ迎え角 に対して低い誘導抗力を発生させます。Yasim では、誘導抗力に関する推定は不十分であるため、アプローチ時のスロットル設定をチューニングするためにこの値を調整する必要があります(とはいうものの、非常に難しいです)。
- incidence: 翼の付け根部分の取り付け角を示します。前翼端が後翼端よりも高い場合はが正の値を示します。
- sweep: 主翼の後退角を示します。前翼後退角ではないので注意してください。A6M2 はほぼ 0となります。
- twist: 翼の付け根の取り付け角と翼端の取り付け角との差のことで、翼端の取り付け角の方が小さければ負の値を示します。通常は負の値となり、翼端の取り付け角の方が小さくなります(ウォッシュアウト)
以下に 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="t
rue"/>
</wing>
** stall タグ
wing タグ内に記述し、ストール時の挙動を表します。stall タグではこのストール時の挙動を以下に示す3つの属性で決定します。
- aoa: ストール角(最大揚力)を角度で示します。この角度は胴体との角度ではなく、翼との角度を示す事に注意してください。なぜなら翼の incidence が常に 0 だとは限らないからです。
- width: ストールの「幅」を示す角度です。この値が大きくなる程緩やかなストールとなります。twist 値が0である翼にとっては、この値が小さいと非常に危険なストルとなります。twist した翼は翼全体が同時にストールしないため小さい値でも耐えられます。
- peak: 揚力がピークとなる高さを、45度におけるストール後の二次ピークとの相対値で表します。デフォルト値は1.5になっています。この値は「魔術」であり、通常は変更する必要はないでしょう。
** flap0, flap1, slat, spoiler タグ
stall タグと同様、 wing タグ内に記述することでエルロンやフラップなどの「舵」の位置、形状、及び効き具合を定義します。
- start: 翼上における舵の物理的な開始位置を指定します。0.0 は翼の付け根を、1.0 は翼端を示します。
- end: 翼上における舵の終端位置を指定します。値の意味は start と同じです。
- lift: 舵を最大にした際の揚力の乗数を示します。標準的なエルロンは 1.2 となり、大型ジェット機のフラップは2.0 となります。
- drag: lift と同様の条件における抗力の乗数を示します。フラップでは通常 lift より大きな値を指定します。
- aoa: slat のみの属性です。(A6M2 には存在しないので省略)
A6M2 の主翼における flap0(フラップ), flap1(エルロン) は以下のようになります。
<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 タグ
舵の制御に用いるフライトギアのプロパティ名を定義します。wing, hstab, vstab, cruise 及び approach タグのサブ要素として記述することができます。control-input タグの必須属性は axis と contorl です。属性の説明は以下の通りです。
- axis: 舵を操作するフライトギアのプロパティを指定します。flaps の場合 "/controls/flight/flaps" となります。同様に エルロンの場合は "/controls/flight/aileron" となります。これらのプロパティはフライトギアのメニューから "File > Browse Internal Properties" を選択する事で閲覧できます。
- control: 入力値を利用する制御装置を指定します。プロペラ機の場合、以下の値を指定できます。
-- THROTTLE: スロットル
-- MIXTURE: 空燃費
-- BRAKE: ランディングギアのブレーキ
-- STEER: ランディングギアのステアリング
-- FLAP0: フラップ
-- FLAP1: エルロン (機種により異なる場合もある)
-- SLAT: スラット
-- SPOILER: スポイラー
- invert: "true" を指定すると制御の方向を逆にできます。J7W の様に主翼が後ろにある場合などでエレベータの制御を上下逆にする場合に利用します。
- split: "true" を指定すると左側にはプロパティの値が、右側にはプロパティの値を政府反転した値がそれぞれ適用されます。
- square: "true" を指定すると舵を操作する際に、プロパティの平方根を用います。少し舵を切った時の挙動を押さえたい時に利用します。プロパティの範囲が-1.0〜1.0の時のみ利用してください。
A6M2 のフラップでは次のように指定しています。
<control-input axis="/controls/flight/flaps" control="FLAP0"/>
** control-output タグ
各制御装置の状態を保存する為のフライトギアのプロパティを指定します。このタグにより書き出された値は、Nasal スクリプトや計器表示、アニメーション等で利用されます。指定されたプロパティに書き出される値は、control-input タグの属性や control-speed により加工された値となります。control-output タグの属性は以下の通りです。
- control: control-input タグと同じ
- prop: 値を書き込むフライトギアのプロパティ名を指定します。どのプロパティに書き込むべきかは色々な機体のフライトモデルを参考にしてください。
A6M2 のフラップ位置の書き出しは、次のようになります。
<control-output control="FLAP0" prop="/surface-positions/flap-pos-norm"/>
フラップのアニメーションを行う時は、このプロパティを参照して、フラップの座標を計算しています。(A6M2/Model/a6m2b-anim.xml を参照してください)
** 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-speed control="FLAP1" transition-time="1"/>
この例ではフラップが下ろされた時に 1 秒掛けて指定された位置に移動することとなります。
投票数:28
平均点:4.64
フライトモデル解説 その4
msg# 1.1.1.1
Tat
投稿数: 375
** hstab タブ
水平尾翼の左側の形状や特性を記述します。hstab は wing オブジェクトであるため、記述内容は wing タグと同等ですが、水平尾翼の「効き具合」を示す effectiveness 属性が追加されています。また、wing と同様に右半分はミラーされることになります。なお、hstab オブジェクトは xml ファイルに1つしか記述できません。以下に A6M2 の例を示します。
<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">
<stall aoa="16" width="8" peak="1.5"/>
<flap0 start="0.0" end="1.1" lift="1.6" drag="1.6"/>
<control-input axis="/controls/flight/elevator" square="true" control="FLAP0"/>
<control-input axis="/controls/flight/elevator-trim" control="FLAP0"/>
<control-output control="FLAP0" prop="/surface-positions/elevator-pos-norm"/>
</hstab>
ここで注目すべき所は flap0 の翼端が 1.1 を越えていることです。これはエレベータの幅が翼の幅よりも長い事を示しています。決して正しい数値ではないのですが、カタログスペックの値だと揚力が十分に得られない場合や、アプローチ時の迎え角が小さくなりすぎる時に1.0 以上の数値を記述することで、実機に近いアプローチ体勢を実現する事ができます。
effectiveness, flap0, stall, approach のパラメタはそれぞれ依存し合っていますので、この辺をチューニングするのは時間が掛かるでしょう。
** vstab タグ
垂直尾翼の形状と特性とを記述します。hstab 同様に wing オブジェクトであるため、wing タグと同等の属性やサブ要素を記述します。hstab と同様に effectiveness 属性があります。wing タグや hstab タグと異なるところは、左右にミラーされないことです。これは複数の 垂直尾翼が存在する場合は、vstab タグを複数記述する必要があります。
以下に A6M2 の例を示します。
<vstab x="-5.0" y="0" z="-0.6" taper="0.5" effectiveness="3.5"
length="1.6" chord="1.65" sweep="0">
<stall aoa="15" width="14" peak="1.5"/>
<flap0 start="0" end="1" lift="1.6" drag="1.6"/>
<control-input axis="/controls/flight/rudder" square="true" control="FLAP0" invert="true"/>
<control-input axis="/controls/flight/rudder-trim" control="FLAP0" invert="true"/>
<control-output control="FLAP0" prop="/surface-positions/rudder-pos-norm"
min="1" max="-1"/>
</vstab>
水平尾翼の左側の形状や特性を記述します。hstab は wing オブジェクトであるため、記述内容は wing タグと同等ですが、水平尾翼の「効き具合」を示す effectiveness 属性が追加されています。また、wing と同様に右半分はミラーされることになります。なお、hstab オブジェクトは xml ファイルに1つしか記述できません。以下に A6M2 の例を示します。
<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">
<stall aoa="16" width="8" peak="1.5"/>
<flap0 start="0.0" end="1.1" lift="1.6" drag="1.6"/>
<control-input axis="/controls/flight/elevator" square="true" control="FLAP0"/>
<control-input axis="/controls/flight/elevator-trim" control="FLAP0"/>
<control-output control="FLAP0" prop="/surface-positions/elevator-pos-norm"/>
</hstab>
ここで注目すべき所は flap0 の翼端が 1.1 を越えていることです。これはエレベータの幅が翼の幅よりも長い事を示しています。決して正しい数値ではないのですが、カタログスペックの値だと揚力が十分に得られない場合や、アプローチ時の迎え角が小さくなりすぎる時に1.0 以上の数値を記述することで、実機に近いアプローチ体勢を実現する事ができます。
effectiveness, flap0, stall, approach のパラメタはそれぞれ依存し合っていますので、この辺をチューニングするのは時間が掛かるでしょう。
** vstab タグ
垂直尾翼の形状と特性とを記述します。hstab 同様に wing オブジェクトであるため、wing タグと同等の属性やサブ要素を記述します。hstab と同様に effectiveness 属性があります。wing タグや hstab タグと異なるところは、左右にミラーされないことです。これは複数の 垂直尾翼が存在する場合は、vstab タグを複数記述する必要があります。
以下に A6M2 の例を示します。
<vstab x="-5.0" y="0" z="-0.6" taper="0.5" effectiveness="3.5"
length="1.6" chord="1.65" sweep="0">
<stall aoa="15" width="14" peak="1.5"/>
<flap0 start="0" end="1" lift="1.6" drag="1.6"/>
<control-input axis="/controls/flight/rudder" square="true" control="FLAP0" invert="true"/>
<control-input axis="/controls/flight/rudder-trim" control="FLAP0" invert="true"/>
<control-output control="FLAP0" prop="/surface-positions/rudder-pos-norm"
min="1" max="-1"/>
</vstab>
投票数:23
平均点:3.91
フライトモデル解説 その5
msg# 1.1.1.1.1
Tat
投稿数: 375
さて、今回で5回目になりました。そろそろプロペラに行ってみたいと思います。
** propeller タグ
プロペラ及びエンジンについて記述します。属性は以下の通りです。
- x, y, z: プロペラ及びエンジンの重心座標を指定します。単位はm で座標系は他のタグの x,y,z の属性と同じく、3Dモデルの中心点からの位置になります。
- radius: プロペラの半径を m で記述します。
- mass: エンジン及びプロペラの重さをポンド (lb) で示します。
- moment: プロペラにより発生するモーメントを kg/m^2 で示します。正/負によりプロペラの回転方向が決まります。この値は現状推測値だそうです。A6M2 では試行錯誤の結果 80 で落ち着いています。
- cruise-speed: プロペラの最も効率のよい時の速度をkt で示します。機体の対地最高速度とは異なるそうですが、A6M2 では機体の最高速度としています。
- cruise-rpm: cruise-speed で指定した速度で飛行中のプロペラの回転数を示します。通常、エンジンの最大 RPM * ギア比となります。
- cruise-alt: sruise-speed で巡航中の高度をフィート(ft) で示します。
- 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 で指定します。エンジンの最大/最小回転数にギア比を掛けたものとなります。
A6M2 では propeller タグは以下のように記述しています。
<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"
>
<actionpt x="2.36" y="0" z="0"/>
<control-input axis="/controls/engines/engine[0]/propeller-pitch" control="ADVANCE" />
<!-- turbo-mul and wastegate-mp are set to +250mmHg (1.33 bar) -->
<piston-engine
eng-power="950" eng-rpm="2500"
turbo-mul="1.333" wastegate-mp="39.372"
supercharger="1"
>
<control-input axis="/controls/engines/engine[0]/throttle" control="THROTTLE"/>
<control-input axis="/controls/engines/engine[0]/starter" control="STARTER"/>
<control-input axis="/controls/engines/engine[0]/magnetos" control="MAGNETOS"/>
<control-input axis="/controls/engines/engine[0]/mixture" control="MIXTURE"/>
<control-input axis="/controls/engines/engine[0]/boost" control="BOOST"/>
</piston-engine>
</propeller>
この例でも分かるように propeller タグ内には actionpt, piston-engine, control-input のサブ要素があります。以下では actionpt 及び piston-engine タグについて説明します。control-input に関しては、単発機であれば、この例の通りに記述して問題ありません。
** actionpt タグ
propeller タグのサブ要素であり、プロペラの位置情報を記述します。属性は以下の通りです。
- x, y, z: プロペラの回転中心を 3D モデルの中心点からの座標として表現します。単位は m です。
** piston-engine タグ
ピストンエンジンの特性を記述します。propeller タグのサブ要素として記述されるもので、属性は以下の通りです。
- eng-power: 最大出力を hp で記述します。A6M2 では 950 hp です。
- eng-rpm: エンジンの最大回転数を記述します。A6M2 では 2500 rpm です。
- 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 となります。
- displacement, compression: シリンダの全排気容量(inch^3) と圧縮比を示します。A6M2 ではカタログ通りに記述したら出力が大きく下がったので利用していません。
** propeller タグ
プロペラ及びエンジンについて記述します。属性は以下の通りです。
- x, y, z: プロペラ及びエンジンの重心座標を指定します。単位はm で座標系は他のタグの x,y,z の属性と同じく、3Dモデルの中心点からの位置になります。
- radius: プロペラの半径を m で記述します。
- mass: エンジン及びプロペラの重さをポンド (lb) で示します。
- moment: プロペラにより発生するモーメントを kg/m^2 で示します。正/負によりプロペラの回転方向が決まります。この値は現状推測値だそうです。A6M2 では試行錯誤の結果 80 で落ち着いています。
- cruise-speed: プロペラの最も効率のよい時の速度をkt で示します。機体の対地最高速度とは異なるそうですが、A6M2 では機体の最高速度としています。
- cruise-rpm: cruise-speed で指定した速度で飛行中のプロペラの回転数を示します。通常、エンジンの最大 RPM * ギア比となります。
- cruise-alt: sruise-speed で巡航中の高度をフィート(ft) で示します。
- 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 で指定します。エンジンの最大/最小回転数にギア比を掛けたものとなります。
A6M2 では propeller タグは以下のように記述しています。
<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"
>
<actionpt x="2.36" y="0" z="0"/>
<control-input axis="/controls/engines/engine[0]/propeller-pitch" control="ADVANCE" />
<!-- turbo-mul and wastegate-mp are set to +250mmHg (1.33 bar) -->
<piston-engine
eng-power="950" eng-rpm="2500"
turbo-mul="1.333" wastegate-mp="39.372"
supercharger="1"
>
<control-input axis="/controls/engines/engine[0]/throttle" control="THROTTLE"/>
<control-input axis="/controls/engines/engine[0]/starter" control="STARTER"/>
<control-input axis="/controls/engines/engine[0]/magnetos" control="MAGNETOS"/>
<control-input axis="/controls/engines/engine[0]/mixture" control="MIXTURE"/>
<control-input axis="/controls/engines/engine[0]/boost" control="BOOST"/>
</piston-engine>
</propeller>
この例でも分かるように propeller タグ内には actionpt, piston-engine, control-input のサブ要素があります。以下では actionpt 及び piston-engine タグについて説明します。control-input に関しては、単発機であれば、この例の通りに記述して問題ありません。
** actionpt タグ
propeller タグのサブ要素であり、プロペラの位置情報を記述します。属性は以下の通りです。
- x, y, z: プロペラの回転中心を 3D モデルの中心点からの座標として表現します。単位は m です。
** piston-engine タグ
ピストンエンジンの特性を記述します。propeller タグのサブ要素として記述されるもので、属性は以下の通りです。
- eng-power: 最大出力を hp で記述します。A6M2 では 950 hp です。
- eng-rpm: エンジンの最大回転数を記述します。A6M2 では 2500 rpm です。
- 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 となります。
- displacement, compression: シリンダの全排気容量(inch^3) と圧縮比を示します。A6M2 ではカタログ通りに記述したら出力が大きく下がったので利用していません。
投票数:20
平均点:4.00
Re: フライトモデル解説 その5
msg# 1.1.1.1.1.1
sambar
居住地: 岡山
投稿数: 484
Tatさん、詳細な解説、ありがとうございます。
最近FlightGear/docs/README.yasimを作業場の機体データの作成で追記させていただいてたのですが、Tatさんの記事をベースに作り直した物を、作業場に新しいページを作ってまとめようと思います。
#既にある記事と同じことを書かないように気をつけてたはずだったのに・・・。
最近FlightGear/docs/README.yasimを作業場の機体データの作成で追記させていただいてたのですが、Tatさんの記事をベースに作り直した物を、作業場に新しいページを作ってまとめようと思います。
#既にある記事と同じことを書かないように気をつけてたはずだったのに・・・。
投票数:24
平均点:3.75
Re: フライトモデル解説 その5
msg# 1.1.1.1.1.1.1
BBCTV
居住地: 茨城県、日本国
投稿数: 96
編集ありがとうございます。
投票数:16
平均点:4.38
Re: フライトモデル解説 その5
msg# 1.1.1.1.1.1.1.1
BBCTV
居住地: 茨城県、日本国
投稿数: 96
approach タグの速度(ノット)とは、最大速度のことですか?作業場のページを見ても、まあちょっと分からないのですが...(自分だけ分からなかったらいして?)
投票数:15
平均点:2.67
Re: フライトモデル解説 その5
msg# 1.1.1.1.1.1.1.1.1
sambar
居住地: 岡山
投稿数: 484
approachタグ内の速度は、着陸時の速度で、真対気速度で何ノットかを指定してください。
コックピットの計器で表示される「指示対気速度」でないことに注意してください。
真対気速度については、以下を参照してください。
http://www.jal.co.jp/jiten/dict/p267.html#02
#作業時に拙い編集をしてしまうことがよくありますので、そういった点をどんどん指摘していただけると助かります。
#今、A6M2で出てこなかった部分、例えばターボプロップエンジンとかジェットエンジン、ヘリコプターのローターについて翻訳しています。
コックピットの計器で表示される「指示対気速度」でないことに注意してください。
真対気速度については、以下を参照してください。
http://www.jal.co.jp/jiten/dict/p267.html#02
#作業時に拙い編集をしてしまうことがよくありますので、そういった点をどんどん指摘していただけると助かります。
#今、A6M2で出てこなかった部分、例えばターボプロップエンジンとかジェットエンジン、ヘリコプターのローターについて翻訳しています。
投票数:17
平均点:4.12
Re: フライトモデル解説 その5
msg# 1.1.1.1.1.1.1.1.1.1
BBCTV
居住地: 茨城県、日本国
投稿数: 96
ありがとうございます。
それと、迎え角についても分からないのですが...
そもそもの意味は分かるのですが、例えばF/A-18E/Fの迎え角はどうだ、となると迎え角の設定の仕方が分かりません。
それと、迎え角についても分からないのですが...
そもそもの意味は分かるのですが、例えばF/A-18E/Fの迎え角はどうだ、となると迎え角の設定の仕方が分かりません。
投票数:17
平均点:3.53
Re: フライトモデル解説 その5
msg# 1.1.1.1.1.1.1.1.1.1.1
sambar
居住地: 岡山
投稿数: 484
Jane's F/A-18(どのタイプかは不明)の資料を検索で見つけたので、その数字を利用して説明すると、着艦速度が130〜140ノット、AOAが8°で、スロットルが・・・低圧側タービンの回転数で50〜54%とだけ書かれていたので、その回転になるスロットル開度を20%と仮定した場合、こんな感じになると思います。
<approach speed="140" aoa="8">
<control-setting axis="/controls/engines/engine[0]/throttle" value="0.20"/>
<control-setting axis="/controls/engines/engine[1]/throttle" value="0.20"/>
<control-setting axis="/controls/flight/flaps" value="1.0"/>
<control-setting axis="/controls/gear/gear-down" value="1"/>
</approach>
また、スポイラー(エアブレーキ)はよくわからないので省略しました。
参考資料
http://www2g.biglobe.ne.jp/~bknight/crland.html
<approach speed="140" aoa="8">
<control-setting axis="/controls/engines/engine[0]/throttle" value="0.20"/>
<control-setting axis="/controls/engines/engine[1]/throttle" value="0.20"/>
<control-setting axis="/controls/flight/flaps" value="1.0"/>
<control-setting axis="/controls/gear/gear-down" value="1"/>
</approach>
また、スポイラー(エアブレーキ)はよくわからないので省略しました。
参考資料
http://www2g.biglobe.ne.jp/~bknight/crland.html
投票数:19
平均点:5.26
Re: フライトモデル解説 その5
msg# 1.1.1.1.1.1.1.1.1.1.1.1
BBCTV
居住地: 茨城県、日本国
投稿数: 96
ありがとうございます。
すごいですね。一体どうやって調べたらいいのか分からないような情報が多いですが...やはり大変ですね。
すごいですね。一体どうやって調べたらいいのか分からないような情報が多いですが...やはり大変ですね。
投票数:13
平均点:6.15
Re: フライトモデル解説 その5
msg# 1.1.1.1.1.1.1.1.1.1.1.1.1
Tat
投稿数: 375
留守中に沢山書かれていました。嬉しい事ですね。
さて、まとめて書きます。
approach タグには、着陸時の速度やフラップ、ギア、スロットル等の値を設定します。また、cruise タグで最高巡航速度に関するを記述します。
approach 時の迎え角の設定は yasim の場合、ざっくり言えば釣り合いが取れていればいいということになります。要は試行錯誤で着陸時(approach) のスロットルに依る推力と、フラップ、迎え角による抗力とが重心位置を基準にして釣り合い、着陸時のエレベータの調整で指定された速度で必要な揚力が得られればよいです。
これを確かめるには、実際にフライトモデルを書いて yasim というテストプログラムを走らせてみると良いでしょう。(Mac 版では配布されてませんが...)
以下に a6m2b.xml を 0.9.11-pre2 用 yasim で実行した結果を書いておきます。
Solution results: Iterations: 2924
Drag Coefficient: 2.758968
Lift Ratio: 661.215210
Cruise AoA: 1.008318
Tail Incidence: -0.924628
Approach Elevator: -0.782769
CG: x:0.176, y:-0.000, z:-0.003
Inertia tensor : 5845.352, -0.000, 376.145
[kg*m^2] -0.000, 8782.555, 0.000
Origo at CG 376.145, 0.000, 14470.111
細かい事はさておき Approach Elevator が -1.0000 以下でなければ大丈夫です。
重心位置を調べるには CG を見ればよいです。このx 軸の値が3D Model の座標と比較して、翼の前側付近(翼のx軸方向の長さの 1/4付近の所か、ちょい前)にあれば多分大丈夫です :-p
さて、まとめて書きます。
approach タグには、着陸時の速度やフラップ、ギア、スロットル等の値を設定します。また、cruise タグで最高巡航速度に関するを記述します。
approach 時の迎え角の設定は yasim の場合、ざっくり言えば釣り合いが取れていればいいということになります。要は試行錯誤で着陸時(approach) のスロットルに依る推力と、フラップ、迎え角による抗力とが重心位置を基準にして釣り合い、着陸時のエレベータの調整で指定された速度で必要な揚力が得られればよいです。
これを確かめるには、実際にフライトモデルを書いて yasim というテストプログラムを走らせてみると良いでしょう。(Mac 版では配布されてませんが...)
以下に a6m2b.xml を 0.9.11-pre2 用 yasim で実行した結果を書いておきます。
Solution results: Iterations: 2924
Drag Coefficient: 2.758968
Lift Ratio: 661.215210
Cruise AoA: 1.008318
Tail Incidence: -0.924628
Approach Elevator: -0.782769
CG: x:0.176, y:-0.000, z:-0.003
Inertia tensor : 5845.352, -0.000, 376.145
[kg*m^2] -0.000, 8782.555, 0.000
Origo at CG 376.145, 0.000, 14470.111
細かい事はさておき Approach Elevator が -1.0000 以下でなければ大丈夫です。
重心位置を調べるには CG を見ればよいです。このx 軸の値が3D Model の座標と比較して、翼の前側付近(翼のx軸方向の長さの 1/4付近の所か、ちょい前)にあれば多分大丈夫です :-p
投票数:22
平均点:5.00