問題概要#
JSBSimシミュレーション開始後、わずか0.1秒程度で高度・速度・姿勢がNaNになり、即座に発散する。機体XMLファイルは正しく読み込まれているが、シミュレーションが継続できない。
原因#
Cmq(ピッチレート減衰係数)が機体XMLのPITCH軸に定義されていないことが原因です。
Cmqはピッチ運動の安定性を決定する絶対必須パラメータです。この値が欠落すると、JSBSimの数値積分が不安定になり、シミュレーションは数値的に発散します。
参考: JSBSim Reference Manual - Aerodynamic Coefficients(Public Domain)
解決方法#
機体XMLのaerodynamicsセクション、PITCH軸に以下のfunctionを追加します:
<function name="aero/moment/Pitch_rate">
<description>Cmq: pitch rate damping</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<property>metrics/cbarw-ft</property>
<value>-12.0</value> <!-- Cmq推奨値 -->
<property>aero/ci2vel</property>
<property>velocities/q-rad_sec</property>
</product>
</function>推奨値: -12.0 /rad(Rascalベース、小型固定翼機の典型値)
検証方法: XMLファイルを開き、Pitch_rateまたはCmqで検索します。見つからなければ、上記のfunctionを追加する必要があります。
参考: JSBSim Reference Manual - Pitch Moment Coefficients(Public Domain)
予防策#
機体XML作成時に、PITCH軸・ROLL軸・YAW軸の動安定微係数(Cmq, Clp, Cnr等)をテンプレートとして必ず含めます。
特にCmqは省略不可です。初回シミュレーション実行前に、以下のチェックリストで確認します:
- PITCH軸に
Pitch_rateまたはCmqが定義されているか - Cmq値が負の値(-5.0 ~ -20.0 /rad)であるか
- ROLL軸に
Clpが定義されているか - YAW軸に
Cnrが定義されているか
参照資料#
- JSBSim Reference Manual(Public Domain): 空力係数セクション
- JSBSim XML Generator(CC BY-NC-SA 4.0、自作プロジェクト): https://github.com/Yaaasoh/jsbsim-xml-generator
- 筆者の過去調査データ(private repository): Cmq欠落によるNaN発散事例
関連記事#
- E-2: Cmalpha符号ミスによるトリム計算失敗(縦安定性の別の重要係数)
- E-6: CD0過大によるトリム計算失敗(トリム問題の別の原因)
© 2025 Yaaasoh. All Rights Reserved.