問題概要#
fdm.trim() 実行時に “Trim calculation failed: unable to trim” エラーが発生し、トリム状態が得られない。シミュレーションは実行できるが、安定飛行の初期条件が設定できない。
原因#
Cmalpha(迎角によるピッチングモーメント係数)が正の値になっていることが原因です。
Cmalphaは縦安定性を決定する係数であり、必ず負の値でなければなりません。正の値の場合、機体は縦不安定(ループ発散)となり、トリム計算が収束しません。
参考: [@jsbsim_refman_2024]
解決方法#
機体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_refman_2024]
予防策#
機体XML作成時に、Cmalphaの符号を必ずチェックします:
- PITCH軸に
Pitch_alphaまたはCmalphaが定義されているか - Cmalpha値が負の値(-0.5 ~ -0.1 /rad)であるか
- Excelテンプレート使用時に「Cmalpha < 0」のバリデーションルールを組み込む
特にCmalphaの符号は絶対に間違えないこと。初回トリム計算前に必ず目視確認します。
参照資料#
本記事の執筆にあたり、以下の資料を参照しました [@jsbsim_refman_2024; @xmlgen_github_main_2025]。筆者の過去調査データ(private repository: Cmalpha符号ミスによるトリム計算失敗事例)も活用しています。
関連記事#
- B-7: JSBSim空力微係数の基礎(Cmalphaをはじめとする空力微係数の詳細解説)
- E-1: Cmq欠落によるNaN発散(別の必須パラメータ)
- E-6: CD0過大によるトリム計算失敗(トリム問題の別の原因)
© 2025 Yaaasoh. All Rights Reserved.