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ファイルの読み方のコツ#
セクションごとに分けて読む#
一度にすべて理解しようとしないことが重要です:
- まず metrics、mass_balance の基本パラメータから
- 次に propulsion、flight_control
- 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ファイルの構造を理解したら、次は実際に調整してみましょう。
その他の関連記事:
- Excel入力テンプレート完全ガイド - 基本パラメータの調整
- トリム探索機能の使い方 - 調整後のテスト
- JSBSim XML出力の確認方法 - XMLファイルの検証
参照資料#
本記事の執筆にあたり、以下の資料を参照しました:
公式ドキュメント#
JSBSim Reference Manual - Public Domain
- XML File Format, FDM Configuration
JSBSim GitHub - LGPL 2.1+
- XMLスキーマ定義、サンプルファイル
オープンソースプロジェクト#
- JSBSim XML Generator - CC BY-NC-SA 4.0
- 生成XMLの分析、コメント設計
その他#
- 筆者の過去調査データ(jsbsim_investigation, private repository)
- XML構造の分析、各セクションの役割整理
© 2025 Yaaasoh. All Rights Reserved.
本記事の著作権はYaaasohに帰属します。引用部分については各引用元のライセンスが適用されます。