問題概要#

fdm.trim() 実行時に “Trim calculation failed: unable to trim” エラーが発生し、トリム状態が得られない。シミュレーションは実行できるが、安定飛行の初期条件が設定できない。

原因#

Cmalpha(迎角によるピッチングモーメント係数)が正の値になっていることが原因です。

Cmalphaは縦安定性を決定する係数であり、必ず負の値でなければなりません。正の値の場合、機体は縦不安定(ループ発散)となり、トリム計算が収束しません。

参考: JSBSim Reference Manual - Pitch Moment Coefficients(Public Domain)

解決方法#

機体XMLのaerodynamicsセクション、PITCH軸のaero/moment/Pitch_alpha functionを確認します:

<function name="aero/moment/Pitch_alpha">
  <product>
    ...
    <value>-0.50</value>  <!-- ← 負の値であることを確認 -->
    <property>aero/alpha-rad</property>
  </product>
</function>

推奨値: -0.50 /rad(Rascalベース、小型固定翼機) 典型的な範囲: -0.5 ~ -0.1 /rad

符号が正の場合は負に修正します。修正後、トリム計算を再実行してください。

参考: JSBSim Reference Manual - Stability Derivatives(Public Domain)

予防策#

機体XML作成時に、Cmalphaの符号を必ずチェックします:

  • PITCH軸にPitch_alphaまたはCmalphaが定義されているか
  • Cmalpha値が負の値(-0.5 ~ -0.1 /rad)であるか
  • Excelテンプレート使用時に「Cmalpha < 0」のバリデーションルールを組み込む

特にCmalphaの符号は絶対に間違えないこと。初回トリム計算前に必ず目視確認します。

参照資料#

  • JSBSim Reference Manual(Public Domain): ピッチモーメント係数、安定微係数
  • JSBSim XML Generator(CC BY-NC-SA 4.0、自作プロジェクト): https://github.com/Yaaasoh/jsbsim-xml-generator
  • 筆者の過去調査データ(private repository): Cmalpha符号ミスによるトリム計算失敗事例

関連記事#


© 2025 Yaaasoh. All Rights Reserved.