JSBSim XML Generatorで機体XMLを生成した後、「中身がどうなっているか」気になりませんか?XMLファイルの構造を理解すると、細かい調整やトラブルシューティングが可能になります。

本記事では、JSBSim XMLファイルの全体構造と6つの主要セクションを解説します。

この記事で学べること#

  • JSBSim XMLファイルの全体構造
  • 6つの主要セクションとその役割
  • XMLファイルの読み方の基本
  • 次のステップ(詳細調整への道)

対象読者#

  • JSBSim XML Generatorで機体XMLを生成した方
  • XMLファイルの中身を理解したい方
  • 細かい調整をしたい方

JSBSim XMLファイルの全体構造#

JSBSim XMLファイルは、機体の飛行力学モデル(FDM: Flight Dynamics Model)を定義します。

基本構造:

<?xml version="1.0"?>
<fdm_config name="機体名" version="2.0">
  <fileheader>...</fileheader>
  <metrics>...</metrics>
  <mass_balance>...</mass_balance>
  <ground_reactions>...</ground_reactions>
  <propulsion>...</propulsion>
  <flight_control>...</flight_control>
  <aerodynamics>...</aerodynamics>
  <output>...</output>
</fdm_config>

ポイント: 各セクションが機体の特定の側面を定義します。


6つの主要セクション#

1. metrics(機体諸元)#

役割: 機体の基本サイズ・形状を定義

主要パラメータ:

  • wingarea: 翼面積(m²)
  • wingspan: 翼幅(m)
  • chord: 翼弦長(m)
  • wing_incidence: 翼の取り付け角(deg)

:

<metrics>
  <wingarea unit="M2"> 0.4 </wingarea>
  <wingspan unit="M"> 1.2 </wingspan>
  <chord unit="M"> 0.333 </chord>
</metrics>

ポイント: 機体の幾何形状を定義、空力計算の基準になります。

2. mass_balance(質量・重心)#

役割: 機体の質量、重心位置、慣性モーメントを定義

主要パラメータ:

  • emptywt: 空虚重量(kg)
  • location: 重心位置(X, Y, Z座標)
  • ixx, iyy, izz: 慣性モーメント(kg·m²)

:

<mass_balance>
  <emptywt unit="KG"> 0.2 </emptywt>
  <location name="CG" unit="M">
    <x> 0.25 </x>
    <y> 0.0 </y>
    <z> 0.0 </z>
  </location>
</mass_balance>

ポイント: 重心位置は機体の安定性に直結します。

3. aerodynamics(空力)#

役割: 揚力・抗力・モーメントの計算式を定義

主要パラメータ:

  • CL (揚力係数), CD (抗力係数), Cm (ピッチングモーメント係数)
  • 迎え角(alpha)、速度、舵角への依存性

:

<aerodynamics>
  <function name="aero/coefficient/CLalpha">
    <description>Lift_due_to_alpha</description>
    <product>
      <property>aero/qbar-psf</property>
      <property>metrics/Sw-sqft</property>
      <value> 4.5 </value>
      <property>aero/alpha-rad</property>
    </product>
  </function>
</aerodynamics>

ポイント: 最も複雑なセクション。機体の飛行特性を決定します。

4. propulsion(推進系)#

役割: エンジン・プロペラを定義

主要パラメータ:

  • エンジンタイプ(electric, piston, turbine等)
  • 最大推力
  • プロペラ直径、ピッチ
  • エンジン位置

:

<propulsion>
  <engine file="electric">
    <location unit="M">
      <x> 0.0 </x>
      <y> 0.0 </y>
      <z> 0.0 </z>
    </location>
  </engine>
</propulsion>

ポイント: エンジン・プロペラの外部ファイル参照が多いです。

5. flight_control(操縦系統)#

役割: エルロン、エレベーター、ラダーの動作を定義

主要パラメータ:

  • 操縦入力と舵角の関係
  • リミット、ゲイン
  • ミキシング(複数の舵の連動)

:

<flight_control name="FCS">
  <channel name="Pitch">
    <summer name="Pitch Trim Sum">
      <input>fcs/elevator-cmd-norm</input>
      <clipto>
        <min> -1 </min>
        <max>  1 </max>
      </clipto>
    </summer>
  </channel>
</flight_control>

ポイント: パイロット入力を実際の舵角に変換します。

6. ground_reactions(降着装置)#

役割: 車輪、ギアの位置と特性を定義

主要パラメータ:

  • 車輪位置
  • バネ定数、減衰係数
  • 摩擦係数

:

<ground_reactions>
  <contact type="BOGEY" name="NOSE">
    <location unit="M">
      <x> -0.3 </x>
      <y> 0.0 </y>
      <z> -0.1 </z>
    </location>
    <spring_coeff unit="N/M"> 500 </spring_coeff>
    <damping_coeff unit="N/M/SEC"> 50 </damping_coeff>
  </contact>
</ground_reactions>

ポイント: 離陸・着陸時の挙動を決定します。


XMLファイルの読み方のコツ#

セクションごとに分けて読む#

一度にすべて理解しようとしないことが重要です:

  1. まず metrics、mass_balance の基本パラメータから
  2. 次に propulsion、flight_control
  3. aerodynamics は後回しでOK

コメントを活用#

JSBSim XML Generatorが生成したXMLには、コメント(<!-- ... -->)が豊富に含まれています。

<!-- Wing area in square meters -->
<wingarea unit="M2"> 0.4 </wingarea>

ポイント: コメントを読むだけで、各パラメータの意味が分かります。

単位に注意#

JSBSim XMLでは、パラメータごとに単位(unit="...")が指定されています。

  • 長さ: M(メートル)、FT(フィート)
  • 面積: M2(平方メートル)、FT2(平方フィート)
  • 質量: KG(キログラム)、LBS(ポンド)

ポイント: 単位を間違えると、機体が正しく飛びません。


まとめ#

JSBSim XMLファイルの構造を理解できました。6つの主要セクション(metrics, mass_balance, aerodynamics, propulsion, flight_control, ground_reactions)の役割を学習しました。

XMLファイルを読めるようになると、細かい調整やトラブルシューティングが可能になります。


次のステップ#

XMLファイルの構造を理解したら、次は実際に調整してみましょう。

その他の関連記事:


参照資料#

本記事の執筆にあたり、以下の資料を参照しました:

公式ドキュメント#

オープンソースプロジェクト#

その他#

  • 筆者の過去調査データ(jsbsim_investigation, private repository)
    • XML構造の分析、各セクションの役割整理

© 2025 Yaaasoh. All Rights Reserved.

本記事の著作権はYaaasohに帰属します。引用部分については各引用元のライセンスが適用されます。