問題概要#
Excel→JSBSim XML変換スクリプト実行時に UnsupportedUnitError: Unknown unit 'kg·mm²' エラーが発生。慣性モーメント入力時によく発生する。
原因#
慣性モーメント単位として kg·mm² を使用しているが、変換スクリプトはサポートしていないことが原因です。
変換スクリプトは g·mm²、g·cm²、kg·m²、slug·ft² のみサポートしています。kg·mm² は実用的には不適切(非常に小さい値になる)であり、意図的にサポート外とされています。
参考: JSBSim XML Generator - Unit Conversion Specification(CC BY-NC-SA 4.0、自作プロジェクト)
解決方法#
Excelテンプレートの「Unit」列を以下のサポート単位に修正します:
慣性モーメントのサポート単位#
- ✅
g·mm²(200g級小型機に推奨) - ✅
g·cm² - ✅
kg·m²(大型機向け) - ✅
slug·ft²(英単位系) - ❌
kg·mm²(サポート外)
よくある間違い#
| 誤った単位 | 正しい単位 | 備考 |
|---|---|---|
❌ kg·mm² | ✅ g·mm² または kg·m² | 小型機は g·mm² 推奨 |
❌ sqm | ✅ m² | 翼面積 |
❌ inch | ✅ in | 長さ |
参考: JSBSim XML Generator - Supported Units List(CC BY-NC-SA 4.0、自作プロジェクト)
予防策#
Excelテンプレートの単位セルにドロップダウンリストを設定し、サポート単位のみ選択可能にします:
- 単位セルを選択
- 「データ」→「データの入力規則」→「リスト」
- 元の値:
g·mm², g·cm², kg·m², slug·ft² - OK
変換スクリプトにユーザーフレンドリーなエラーメッセージを実装(「kg·mm²ではなくg·mm²を使用してください」)すると、さらに親切です。
参照資料#
- JSBSim XML Generator(CC BY-NC-SA 4.0、自作プロジェクト): https://github.com/Yaaasoh/jsbsim-xml-generator
- unit_conversion.py: サポート単位一覧
- README.md: 単位変換表
- 筆者の過去調査データ(private repository): 単位変換エラー事例
関連記事#
- A-3-2: Excel入力【第2回】基本パラメータ編(パラメータ入力の基礎)
- A-2-2: クイックスタート【第2回】XML生成編(XML生成の流れ)
© 2025 Yaaasoh. All Rights Reserved.