シミュレーション精度の確認と改善
シミュレーション精度の確認
モデルのシミュレーションを適切な時間実行します。
相対許容誤差を 1e-4 に下げるか (既定は 1e-3)、絶対許容誤差を小さくします。
モデルを再度シミュレートします。
両方のシミュレーションの結果を比較します。
結果が大幅に異なっていなければ、解は収束しています。
開始時にシミュレーションが重要な動作を見逃す場合は、初期ステップ サイズを小さくして、シミュレーションがその動作を飛ばすことのないよう確認します。
不安定なシミュレーション結果
シミュレーション結果が時間が経つにつれ不安定になる場合は、以下を考慮してください。
システムが不安定になっている可能性があります。
ode15s
ソルバーを使用している場合は、最大次数を 2 (ソルバーが A 安定であるための最大次数) に制限してみてください。また、ode23s
ソルバーを試用することもできます。
不正確なシミュレーション結果
シミュレーション結果が正確でない場合は、以下を考慮してください。
値がゼロに近づく状態をもつモデルの場合、絶対許容誤差パラメーターが大きすぎると、状態値がゼロに近い領域の周辺で、シミュレーションの取るステップ数が少なすぎることになります。モデル コンフィギュレーション パラメーターの [ソルバー] ペインでこのパラメーター値を小さくするか、Integrator ブロックの Function ブロック パラメーターで個々の状態に合わせて調整してください。
絶対許容誤差を小さくしてもシミュレーション精度が十分改善されない場合は、相対許容誤差パラメーターのサイズを小さくします。この変更で許容誤差を減らし、ステップ サイズを敢えて小さくしてステップ数を増やします。
モデル作成の構成によっても、予想外の結果や不正確なシミュレーション結果が生成される場合があります。
サンプル時間を継承する Source ブロックは、たとえば下流のブロックのサンプル時間が変更された場合に、異なるシミュレーション結果を生成することがあります (伝播が継承サンプル時間に影響を与える方法を参照)。
代数ループにある Derivative ブロックは、ソルバーの精度が低下する可能性があります。