問題概要#

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翼面積
inchin長さ

参考: JSBSim XML Generator - Supported Units List(CC BY-NC-SA 4.0、自作プロジェクト)

予防策#

Excelテンプレートの単位セルにドロップダウンリストを設定し、サポート単位のみ選択可能にします:

  1. 単位セルを選択
  2. 「データ」→「データの入力規則」→「リスト」
  3. 元の値: g·mm², g·cm², kg·m², slug·ft²
  4. 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): 単位変換エラー事例

関連記事#


© 2025 Yaaasoh. All Rights Reserved.