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

ソルバーの比較

動的システムのシミュレーションは、モデル情報から指定された時間の間、連続タイム ステップで状態量を計算して行われます。システムの状態量をモデルから計算するプロセスは、モデルの解を求めることとして知られています。モデルを解く方法はどのシステムについても 1 つではありません。したがって、Simulink® は、"ソルバー" という一連のプログラムを提供しており、そのそれぞれが、モデルを解くための特定のアプローチを表します。[コンフィギュレーション パラメーター] ダイアログ ボックスを使って、モデルに最適なソルバーを選択することができます。

固定ステップ ソルバーと可変ステップ ソルバー

ステップ サイズの計算方法、つまり、固定ステップか可変ステップかに基づいて、Simulink が提供するソルバーを選択できます。

固定ステップ ソルバーでは、シミュレーションの開始から終了まで一定の時間間隔でモデルを解きます。時間間隔のサイズは、ステップ サイズとも呼ばれ、ステップのサイズは指定することもソルバーに選択させることもできます。一般に、ステップ サイズを小さくするとシステムのシミュレーションに要する時間が長くなりますが、結果の精度は向上します。

"可変ステップ ソルバー" では、シミュレーション中にステップ サイズが変化します。可変ステップ ソルバーでは、モデルの状態量が急激に変動しているときは精度を上げるためにステップ サイズが小さくなり、モデルの状態の変動が緩慢なときは不必要なタイム ステップを取ることを回避するためにステップ サイズが大きくなります。ステップ サイズの計算は、各ステップで計算のオーバーヘッドを加えますが、ステップの総数は減らすことが可能なため、急激に変化あるいは区分的に連続状態をもつモデルの指定したレベルの精度を保持するために必要なシミュレーション時間が増加します。

固定ステップ ソルバーと可変ステップ ソルバーでは、次のシミュレーション時間を、現在のシミュレーション時間とステップ サイズの和として計算します。[ソルバー] コンフィギュレーション ペインの [タイプ] コントロールによって、ソルバーのタイプを選択できます。固定ステップ ソルバーでは、ステップ サイズはシミュレーションを通して一定です。可変ステップ ソルバーでは、モデルのダイナミクスに応じ、ステップ サイズをステップごとに変えられます。特に、可変ステップ ソルバーでは、指定された許容誤差内に収まるようにステップ サイズの増減を行います。

これらのタイプの選択は、モデルの配布方法とモデルのダイナミクスに依存します。モデルからコードを生成し、実時間コンピューター システムでコードを実行する場合は、モデルをシミュレートするために固定ステップ ソルバーを選択してください。可変ステップ サイズをリアルタイム クロックにマッピングすることはできません。

モデルを生成コードとして展開するつもりがない場合は、可変ステップ ソルバーと固定ステップ ソルバー間での選択は、モデルのダイナミクスに依存します。可変ステップ ソルバーは、モデルのシミュレーション時間を著しく短縮する場合があります。可変ステップ ソルバーが一定レベルの精度においてこのように時間を短縮できるのは、必要に応じてステップ サイズを動的に調整できるためです。この方法では、要求ステップ数が減ります。固定ステップ ソルバーはシミュレーション全体を通して、精度の要件を満たす 1 つのステップ サイズを使用しなければなりません。シミュレーション全体でこれらの要件を満たすために、固定ステップ ソルバーは通常、ステップを小さくすることが求められます。

ex_multirate のモデル例は、可変ステップ ソルバーがマルチレート離散モデルについて、どのようにシミュレーション時間を短縮するかを示します。

モデルは、2 つの異なるレート、0.5 秒ごとと 0.75 秒ごとに出力を生成します。両方の出力を取り込むには、固定ステップ ソルバーはタイム ステップが (モデルの "基本サンプル時間" である) 0.25 秒でなければなりません。

[0.0 0.25 0.5 0.75 1.0 1.25 1.5 ...]

これに対し、可変ステップ ソルバーがステップを必要とするのは、モデルが出力を生成するときだけです。

[0.0 0.5 0.75 1.0 1.5 ...]

このスキームにより、モデルのシミュレーションに要するタイム ステップ数が大幅に削減されます。

連続ソルバーと離散ソルバー

Simulink では、連続ソルバーと離散ソルバーの両方が用意してあります。

ソルバー タイプを選択する場合は、特定のソルバーも選択できます。どちらのソルバーのセットにも、離散と連続が含まれています。離散ソルバーと連続ソルバーは、モデル ブロックに基づいて離散状態の値を計算します。離散状態を定義するブロックが、各タイム ステップでそれらの状態の値を計算します。ただし、離散ソルバーとは異なり、連続ソルバーでは数値積分を使用して、ブロックが定義した連続状態を計算します。ソルバーを選択する場合は、離散ソルバーと連続ソルバーのどちらを使用するか最初に決めます。

モデルに連続状態がない場合、Simulink は固定ステップ離散ソルバーまたは可変ステップ離散ソルバーに切り替わります。モデルに連続状態のみまたは連続状態と離散状態の組み合わせがある場合は、対象モデルのダイナミクスの基準に照らして残ったソルバーの選択肢から連続ソルバーを選択します。そうでない場合、エラーが発生します。

"連続ソルバー" は、数値積分を使って前のタイム ステップにおける状態と状態導関数から現在のタイム ステップにおけるモデルの状態量を計算します。連続ソルバーは、個々のブロックに基づいて各タイム ステップにおけるモデルの離散状態量の値を計算します。

離散ソルバーは主に、純粋な離散モデルを解くためのものです。モデルについて次のシミュレーション タイム ステップを計算し、それ以外のことは行いません。これらの計算では、モデルの各ブロックに基づいて個々の離散状態量を更新します。連続状態は計算されません。

ソルバー ライブラリには、固定ステップ離散ソルバーと可変ステップ離散ソルバーの 2 つの離散ソルバーが含まれます。固定ステップ ソルバーは既定の場合、モデルの最速ブロックにおける状態量の変化の速度に合わせてステップ サイズとシミュレーション速度を選択します。可変ステップ離散ソルバーは、モデルにおける実際の離散状態量の変化速度に合わせてシミュレーションのステップ サイズを調整します。この調整により不必要なステップを取ることが回避されるため、マルチレート モデルのシミュレーション時間が短縮されます。詳細については、システム内のサンプル時間を参照してください。

メモ

離散ソルバーは連続状態を処理できないため、連続状態と離散状態の両方を含むモデルの解を求める場合は連続ソルバーを使用しなければなりません。一方、状態のないモデルや離散状態のみの場合に連続ソルバーを選択しても、Simulink ソフトウェアでは離散ソルバーが使用されます。

陽的な連続ソルバーと陰的な連続ソルバー

方程式

x˙=f(x)

によって陽的なシステムを表現します。

x の任意の値に対して、f(x) に x を代入して式を評価し、 x˙ を計算できます。

次の形式の方程式

F(x˙,x)=0

は、陰的と見なされます。x の任意の値に対し、x˙ を計算するためには、この方程式を解かなければなりません。

陰的な線形システムは、次の方程式で表すことができます。

M(x).x˙=f(x)

M(x) は質量行列と呼ばれ、f(x) は強制関数です。モデルで物理モデリング ブロックを使用する場合、システムは陰的な線形システムになります。

これらすべてのシステムは、陰的な連続ソルバーによっても陽的な連続ソルバーによっても解けますが、陰的ソルバーは特に、スティッフな問題を解くために設計されています。陽的なソルバーはノンスティッフな問題を解きます。常微分方程式の問題は、目的の解がゆっくり変化する場合はスティッフと言われますが、急速に変動するより近い解もあります。そうなると数値的手法は、システムを解くために小さなタイム ステップをとらなければなりません。スティッフは効率性の問題です。システムのスティッフ性が高いほど、陽的なソルバーでは計算の実行時間が長くなります。スティッフなシステムは、ゆっくり変化する連続ダイナミクスと素早く変化する連続ダイナミクスの両方をもっています。

陽的ソルバーと比較すると、陰的ソルバーは振動動作に対してより高い安定性をもたらします。ただし、陰的ソルバーは計算量も多くなります。陰的ソルバーはヤコビ行列を生成し、ニュートン法のような方法を使用して、タイム ステップごとに一連の代数方程式を解きます。この余分なコストを削減するために、陰的ソルバーにはそのシミュレーション性能を向上させるための [ソルバーのヤコビ メソッド] パラメーターが用意されています。詳細については、陰的なソルバーに対するヤコビ メソッドの選択を参照してください。陰的な線形システムを解くには、陰的なソルバーの方が陽的なソルバーよりも効率的です。

1 ステップ連続ソルバーとマルチステップ連続ソルバー

Simulink ソルバー ライブラリには、1 ステップ ソルバーとマルチステップ ソルバーの両方が含まれています。1 ステップ ソルバーは、直前の時点における解、 および tn と tn-1 の間の複数の点における微分値を使用して、 を推定します。これらの点は、マイナー ステップです。

マルチステップ ソルバーは、以前の複数のタイム ステップにおける結果を使用して、現在の解を計算します。Simulink には、1 つの陽的マルチステップ ソルバー ode113 と、1 つの陰的マルチステップ ソルバー ode15s があります。どちらも可変ステップ ソルバーです。

単一次数連続ソルバーと可変次数連続ソルバー

この区別は、ソルバーが方程式系を解くために使用する次数に基づきます。2 つの可変次数ソルバー ode15sode113 はソルバー ライブラリに含まれています。これらのソルバーは、複数の次数を使用して方程式系を解きます。具体的には、陰的な可変ステップの ode15s ソルバーは 1 次~ 5 次方程式を使用し、陽的な可変ステップの ode113 ソルバーは 1 次~ 13 次方程式を使用します。ode15s に対しては、適用される最高次数を [最大次数] パラメーターを使用して制限できます。詳細については、最大次数を参照してください。

参考

| |