ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

シミュレーション精度の確認と改善

シミュレーション精度の確認

  1. モデルのシミュレーションを適切な時間実行します。

  2. 相対許容誤差を 1e-4 に下げるか (既定は 1e-3)、絶対許容誤差を小さくします。

  3. モデルを再度シミュレートします。

  4. 両方のシミュレーションの結果を比較します。

結果が大幅に異なっていなければ、解は収束しています。

シミュレーションが開始時に重要な動作を見逃すような場合は、初期ステップ サイズを小さくして、シミュレーションがその動作を飛ばさないことを確認します。

不安定なシミュレーション結果

シミュレーション結果が時間が経つにつれて不安定になる場合は、以下を考慮してください。

  • システムが不安定になっている可能性があります。

  • ode15s ソルバーを使用している場合は、最大次数を 2 に制限してみてください (ソルバーが A 安定であるための最大次数)。また、ode23s ソルバーを試すこともできます。

不正確なシミュレーション結果

シミュレーション結果が正確でない場合は、以下を考慮してください。

  • 値がゼロに近づく状態のモデルの場合、絶対許容誤差パラメーターが大きすぎると、シミュレーションがゼロに近い状態値の周辺領域のステップ数が少なすぎます。モデル コンフィギュレーション パラメーターの [ソルバー] ペインでこのパラメーター値を小さくするか、Integrator ブロックの Function ブロック パラメーターで個々の状態に合わせて調整してください。

  • 絶対許容誤差を小さくしてもシミュレーション精度が十分改善されない場合は、相対許容誤差パラメーターのサイズを小さくします。この変更で許容誤差を減らし、ステップ サイズを敢えて小さくしてステップ数を増やします。

モデル作成の構成によっても、予想外の結果や不正確なシミュレーション結果が生成される場合があります。

  • サンプル時間を継承する Source ブロックは、たとえば下流のブロックのサンプル時間が変更された場合に、異なるシミュレーション結果を生成することがあります (伝播が継承サンプル時間に影響を与える方法を参照)。

  • 代数ループにある Derivative ブロックは、ソルバーの精度が低下する可能性があります。

関連する例

詳細