問題概要#
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符号ミスによるトリム計算失敗事例
関連記事#
- E-1: Cmq欠落によるNaN発散(別の必須パラメータ)
- E-6: CD0過大によるトリム計算失敗(トリム問題の別の原因)
© 2025 Yaaasoh. All Rights Reserved.