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

物理シミュレーションに使用するソルバーの最適な選択

この選択を行う前に考慮する必要がある主なシミュレーションの概念については、物理シミュレーションでの重要な概念と選択肢を参照してください。

可変タイム ステップでのシミュレーション

一般的な Simscape™ モデルの場合、MathWorks では Simulink® 可変ステップ ソルバー ode15s と ode23t を推奨しています。この 2 種類のグローバル ソルバーには次のような特徴があります。

  • ode15s ソルバーは安定性が高いことが特徴ですが、振動が減衰してしまう傾向があります。

  • ode23t ソルバーは振動を取得できますが、安定性は低くなります。

Simscape モデルを使用すると、これらのソルバーは物理モデルの微分部分と代数部分の解を同時に求めるため、シミュレーションの精度と効率性が向上します。

固定タイム ステップによるシミュレーション — ローカルおよびグローバル固定ステップ ソルバー

Simscape モデルについては、MathWorks ではグローバル可変ステップ ソルバーをそのまま使用し、各ネットワークの Solver Configuration ブロックでモデル内の物理ネットワークをローカル固定ステップ ソルバーに切り替えることにより、固定ステップ ソルバーを実装することを推奨しています。ローカル ソルバーの選択肢は以下のとおりです。

  • 後退オイラー法では振動が減衰する傾向がありますが、安定性は (特にタイム ステップを大きくした場合に) 向上します。

  • 台形則ソルバーは振動を取得できますが、安定性は低くなります。

  • 分割ソルバーを使用すると、Simscape ネットワークに対応する方程式系全体をより小さい方程式系のカスケードに分割することにより、リアルタイム シミュレーションの速度を上げることができます。すべてのネットワークを分割できるわけではありません。ただし、システムが分割可能な場合は、このソルバーによってリアルタイム シミュレーションの速度が大幅に上がります。詳細については、分割ソルバーを使用したシミュレーションの高速化を参照してください。

いずれのローカル ソルバーを選択した場合でも、次の時点では強制的に後退オイラー法が適用されます。

  • シミュレーションの開始時。

  • 瞬間的な変化 (当該のブロックでの内部離散変化) が発生した直後。このような変化の例として、クラッチのロックとロック解除、バルブ アクチュエータの開放と閉鎖、Asynchronous Sample & Hold ブロックの切り替えなどがあげられます。

離散状態およびソルバーへの切り替え

  • 物理ネットワークをローカル ソルバーに切り替えると、グローバル ソルバーはそのネットワークが離散状態であると認識します。

  • モデル内の他の物理ネットワークがローカル ソルバーを使用していない場合、またはモデル内の Simscape 以外の部分が連続状態の場合、連続グローバル ソルバーを使用しなければなりません。

  • モデル内のすべての物理ネットワークがローカル ソルバーを使用していて、モデル内の Simscape 以外の部分がいずれも離散状態の場合、グローバル ソルバーは離散状態のみを認識します。このような場合、MathWorks では離散固定ステップ グローバル ソルバーを推奨しています。離散状態で固定コスト シミュレーションを実行する場合は、離散固定ステップ グローバル ソルバーを使用しなければなりません。

メモ

入力フィルター処理によって連続状態が発生する場合があります。離散ソルバーとローカル ソルバーの組み合わせを使用していて、連続状態を含むモデルに関するエラー メッセージが表示される場合は、モデル内の Simulink-PS Converter ブロックをチェックして、必要に応じて入力フィルター処理をオフにします。詳細については、入力信号のフィルター処理と時間微分の提供を参照してください。

固定ステップ シミュレーションで精度を最大限に引き上げる方法

ソリューションの精度が最優先となる場合は、グローバル Simulink 固定ステップ ソルバー ode14x を使用し、ローカル ソルバーは使用しないようにします。この陰的ソルバーは、物理システムに最適なグローバル固定ステップ ソルバーです。大部分のモデルについては ode14x の方が Simscape ローカル ソルバーより精度が高くなりますが、ローカル ソルバーと組み合わせて使用せずに単独で使用すると、計算処理が多くなり、処理速度が低下する場合があります。

このソルバーでは、タイム ステップごとのグローバルな陰的反復の回数を制限しなければなりません。この反復を制御するには、[コンフィギュレーション パラメーター] ダイアログ ボックスの [ソルバー] ペインで [Number Newton's iterations] パラメーターを設定します。

固定コストでのシミュレーション

Simscape モデルの多くでは、解を得るために 1 つのタイム ステップの中で複数回の反復が必要となります。タイム ステップごとのシミュレーションのコストを固定するには、この反復回数を制限しなければなりません。これはローカル ソルバーを使用している場合でも、ode14x などのグローバル ソルバーを使用している場合でも同じです。詳細は、制限なし、制限ありおよび固定コスト シミュレーションリアルタイム対応を可能にするための固定コスト シミュレーションを参照してください。

反復回数を制限するには、それぞれの物理ネットワークで Solver Configuration ブロックを開きます。[固定コストでの実行時整合性の反復を使用] を選択し、タイム ステップごとの非線形反復とモード反復の回数制限を設定します。

ヒント

大部分のシミュレーションでは、可変ステップ ソルバーによる固定コスト シミュレーションはできません。固定ステップ ソルバーのみを使用して固定コスト シミュレーションを実行するようにし、可変ステップ ソルバーを使用した固定コスト反復は行わないようにしてください。

ソルバーのパフォーマンスのトラブルシューティングと改善

速度に対する精度と安定性の基本的なトレードオフについて考慮する必要があります。タイム ステップや許容誤差の範囲を大きくするとシミュレーションの速度は向上しますが、精度と安定性は低下します。システムで突然な変化や急激な変化があった場合、許容誤差の範囲やステップ サイズが大きいと重大なエラーが発生する場合があります。以下に該当するシミュレーションでは、許容誤差やステップ サイズを小さくしてください。

  • 精度が十分でないか、または物理的にありえない結果になっている。

  • 状態値に不連続点がある。

  • 収束しないまま最小ステップ サイズに達している (このような場合は通常、タイム ステップ内で 1 つまたは複数のイベントが発生していたり、急激な変化が発生したりしています)。

これに該当するステップのいずれかまたはすべてにより精度は向上しますが、シミュレーションの実行速度は低下します。

ローカル ソルバーの場合

摩擦またはハード ストップが存在するモデルはローカル ソルバーでの処理が特に困難で、処理ができない場合や、タイム ステップを非常に小さくすることが必要となる場合があります。

台形則ソルバーを使用する場合、タイム ステップを大きくすると振動性 "リンギング" の問題が発生する可能性が高くなります。ローカル ソルバーでタイム ステップを大きくする場合は、後退オイラー法を使用してください。

ODE システムの場合

場合によっては、モデルは従属変数ではない代数の ODE システムにまとまることがあります。(Simscape モデルによる物理システムの表現を参照)その場合、任意のグローバル Simulink ソルバーを使用できます。物理モデリングに関して特別に考慮する項目はありません。このような場合、陽的ソルバーが最適となることがよくあります。

  • 慎重な解析によって、モデルが ODE システムで表されるかどうかを判別することができます。

  • Simscape モデルを Simscape 言語による数学的表現で作成する場合に、表されるシステムが ODE であるかどうかを直接判別できます。

大規模なシステムの場合

システム状態の数によっては、Solver Configuration ブロックの [Linear Algebra] 設定の値を変更すると、シミュレーションの効率性が向上する場合があります。

小規模なシステムの場合、[Full] を選択すると処理が速くなります。大規模なシステムの場合は、[Sparse] を選択した方が一般的には速くなります。

スティッフ - ノンスティッフ混合システムでの複数のローカル ソルバーの例

この例では、Simscape モデルに 3 つの物理ネットワークがあります。

  • 2 つのネットワーク (1 番と 3 番) でローカル ソルバーが使用されています。このため、グローバル ソルバーはこの 2 つのネットワークを離散状態であると認識します。内部的には、これらのネットワークは引き続き連続状態です。これらのネットワークのスティッフの程度はそれぞれ中程度と高程度です。

    これらのネットワークの 1 つ (1 番) で、後退オイラー法 (BE) ローカル ソルバーが使用されています。もう一方 (3 番) では台形則 (TR) ローカル ソルバーが使用されています。

  • 残りのネットワーク (2 番) ではグローバル Simulink ソルバーが使用されています。モデルでは、このネットワークの状態は連続状態として認識されます。このネットワークはスティッフではなく、完全な ODE です。陽的グローバル ソルバーを使用します。

  • モデルでは少なくとも 1 つのネットワークが連続状態として認識されているため、連続ソルバーを使用しなければなりません。ただし、ネットワーク 2 を削除し、モデルに Simulink 状態が存在しない場合は、Simulink は自動的に離散グローバル ソルバーに切り替えます。