【RC機をJSBSimでモデル化する】シリーズ#
- ← 第1回: 機体諸元の準備
- 第2回(本記事): Excel入力とXML生成
前回(第1回)で機体諸元を準備しました。今回は、JSBSim XML Generatorを使って、Excelに入力し、XMLを生成します。
200g級RC機の具体例を使った実践的な手順を解説します。
この記事で学べること#
- JSBSim XML GeneratorのExcel入力方法
- 200g級RC機の諸元入力(実例)
- XML生成とファイル確認
- 生成したXMLのトリム探索
対象読者#
- 第1回(機体諸元の準備)を完了した方
- JSBSim XML Generatorを使いたい方
- 実践的な手順を知りたい方
Excel入力テンプレートを開く#
JSBSim XML Generatorをインストール済みの前提(未インストールの場合はA-2記事参照)。
Excelファイルの場所:
jsbsim-xml-generator/
└── templates/
└── aircraft_config.xlsxExcelで aircraft_config.xlsx を開きます。
機体諸元の入力#
前回(第1回)で準備した諸元を、Excelに入力していきます。
基本情報#
シート: “BasicInfo”:
| パラメータ | 値 | 備考 |
|---|---|---|
| Aircraft Name | MyRC200g | 機体名(任意) |
| Author | Your Name | 作成者名(任意) |
機体諸元#
シート: “Geometry”:
| パラメータ | 値 | 単位 |
|---|---|---|
| Wingspan | 1.2 | m |
| Wing Area | 0.4 | m² |
| Chord | 0.33 | m |
ポイント: Chordは自動計算される場合もありますが、手動で入力してOKです。
質量・重心#
シート: “Mass”:
| パラメータ | 値 | 単位 |
|---|---|---|
| Empty Weight | 0.25 | kg |
| CG X | 0.09 | m |
| CG Y | 0.0 | m |
| CG Z | 0.0 | m |
ポイント: CG Xは翼前縁からの距離。0.09mは翼弦長0.33mの約27%に相当します。
推進系#
シート: “Propulsion”:
| パラメータ | 値 | 単位 |
|---|---|---|
| Engine Type | electric | - |
| Max Thrust | 2.5 | N |
| Propeller Diameter | 0.23 | m (9インチ) |
| Propeller Pitch | 0.15 | m (6インチピッチ) |
ポイント: 推力は機体重量(2.45N)の約10倍に設定。
空力パラメータ#
シート: “Aerodynamics”:
| パラメータ | 値 | 備考 |
|---|---|---|
| CL0 | 0.4 | ゼロ揚力係数 |
| CLalpha | 5.0 | 揚力傾斜(1/rad) |
| CD0 | 0.03 | ゼロ抗力係数 |
| CDalpha | 0.5 | 抗力傾斜 |
| Cm0 | 0.0 | ピッチングモーメント |
ポイント: 空力パラメータは典型値を使用。後でトリム探索で調整可能です。
XML生成#
Pythonスクリプト実行#
JSBSim XML GeneratorのPythonスクリプトを実行します。
cd jsbsim-xml-generator
python src/generate_aircraft.py templates/aircraft_config.xlsx output/出力例:
Reading Excel file: templates/aircraft_config.xlsx
Generating JSBSim XML...
Writing: output/MyRC200g/MyRC200g.xml
Writing: output/MyRC200g/MyRC200g-set.xml
Writing: output/MyRC200g/Engines/...
Done! Aircraft files generated in: output/MyRC200g/生成ファイルの確認#
output/
└── MyRC200g/
├── MyRC200g.xml ← JSBSim FDMファイル
├── MyRC200g-set.xml ← FlightGear設定ファイル
├── Engines/
│ └── Electric_2.5N.xml
└── Systems/
└── FCS.xmlポイント: すべてのファイルが生成されていることを確認しましょう。
生成XMLの確認#
生成したXMLファイルを確認します。詳細はC-2記事参照。
簡易確認:
MyRC200g.xmlをテキストエディタで開く<metrics>セクションで翼幅・翼面積を確認<mass_balance>セクションで重量・重心位置を確認
例:
<metrics>
<wingarea unit="M2"> 0.4 </wingarea>
<wingspan unit="M"> 1.2 </wingspan>
</metrics>
<mass_balance>
<emptywt unit="KG"> 0.25 </emptywt>
<location name="CG" unit="M">
<x> 0.09 </x>
</location>
</mass_balance>ポイント: 入力した値が正しくXMLに反映されているか確認。
トリム探索#
生成したXMLが正しく動作するか、トリム探索でテストします。詳細はA-4記事参照。
python tests/test_trim_manual.py output/MyRC200g/MyRC200g.xml 15期待される出力:
Trim converged!
Elevator: -0.02 deg
Throttle: 0.35
Alpha: 5.2 deg
Pitch: 5.2 deg収束しない場合:
- 推力不足: Max Thrustを増やす
- 重心位置不適切: CG Xを調整(翼弦長の25-30%)
- 空力係数不適切: CL0, CLalphaを調整
まとめ#
200g級RC機の諸元をExcelに入力し、JSBSim XML Generatorで XMLを生成しました。トリム探索で動作確認も完了。
これで、FlightGearで飛ばす準備が整いました!
次のステップ#
XMLが生成できたら、次はFlightGearで実際に飛ばしてみましょう。
その他の関連記事:
- FlightGearでJSBSim機体を飛ばす - FlightGearでの飛行試験
- トリム探索機能の使い方 - トリムの詳細
- JSBSim XML出力の確認方法 - XML検証の詳細
参照資料#
本記事の執筆にあたり、以下の資料を参照しました:
オープンソースプロジェクト#
- JSBSim XML Generator - CC BY-NC-SA 4.0
- Excel入力テンプレート、XMLビルドスクリプト
公式ドキュメント#
- JSBSim Reference Manual - Public Domain
- XML File Format
その他#
- 筆者の過去調査データ(jsbsim_investigation, private repository)
- 200g級RC機の諸元データ、トリム探索経験
© 2025 Yaaasoh. All Rights Reserved.
本記事の著作権はYaaasohに帰属します。引用部分については各引用元のライセンスが適用されます。