Main Content

Simulink の固定ステップ ソルバー

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

固定ステップ離散ソルバー

固定ステップ離散ソルバーは、固定されたステップ サイズを現在の時間に加えることで、次のシミュレーション ステップの時間を計算します。シミュレーション結果の精度と時間の長さは、シミュレーションに要するステップのサイズにより異なります。ステップ サイズが小さいと、結果は精度が高くなりますが、シミュレーションに要する時間が長くなります。既定では Simulink® でステップ サイズが選択されますが、自分でステップ サイズを選択することもできます。[auto] (既定の設定) を選択し、モデルが離散サンプル時間をもつ場合は、Simulink でステップ サイズがモデルの基本サンプル時間に設定されます。あるいは、離散レートをもたない場合は、Simulink はシミュレーションの開始時間と終了時間の差を 50 で除算した結果にサイズを設定します。

固定ステップ連続ソルバー

固定ステップ離散ソルバーのように固定ステップ連続ソルバーは、固定サイズのタイム ステップを現在時間に加えることで次のシミュレーション時間を計算します。連続ソルバーは、これらの各ステップに対して数値積分を行い、モデルの連続状態の値を計算します。これらの値は、前のタイム ステップにおける連続状態と現在のタイム ステップと前のタイム ステップとの中間点にある状態導関数 (マイナー ステップ) を使用して計算されます。

メモ

Simulink は、モデルに対して固定ステップ連続ソルバーを指定した場合でも、状態をもたない、または離散状態のみをもつモデルに対して固定ステップ離散ソルバーを使用します。

Simulink が用意している 2 種類の固定ステップ連続ソルバーには、陽的ソルバーと陰的ソルバーがあります。

これらの 2 種類の相違点は、速度と安定性にあります。陰的ソルバーは、陽的ソルバーよりも多い計算がステップごとに必要になりますが、より安定しています。したがって、Simulink の陰的固定ステップ ソルバーは、スティッフなシステムを解く場合、陽的固定ステップ ソルバーよりも優れています。陽的なソルバーと陰的なソルバーの比較については、陽的な連続ソルバーと陰的な連続ソルバーを参照してください。

陽的な固定ステップ連続ソルバー

陽的なソルバーは、状態と状態導関数の両方の現在値の陽的な関数として、次のタイム ステップでの状態の値を計算します。固定ステップの陽的ソルバーは数学的に次のように表されます。

x(n+1)=x(n)+hDx(n)

ここでは、以下のとおりです。

  • x は状態。

  • Dx は状態導関数を推定するソルバー依存の関数。

  • h はステップ サイズ。

  • n は現在のタイム ステップ。

Simulink には一連の陽的な固定ステップ連続ソルバーが用意されています。ソルバーは、モデルの状態導関数の計算に使用する特定の数値積分手法において異なります。次の表は、各ソルバーと、ソルバーが使用する積分手法の一覧です。この表では、最も複雑でないもの (ode1) から最も複雑なもの (ode8) まで、使用する積分手法の計算の複雑度の順にソルバーを示しています。

ソルバー積分手法精度の次数

ode1

オイラー法

1 次

ode2

Heun 法

2 次

ode3

Bogacki-Shampine 式

3 次

ode4

4 次のルンゲ・クッタ (RK4) 式

4 次

ode5

Dormand-Prince (RK5) 式

5 次

ode8

Dormand-Prince RK8(7) 式

8 次

これらのソルバーにはいずれもエラー制御メカニズムは備わっていません。したがって、シミュレーションの精度と時間の長さはソルバーによって取られるステップのサイズに直接依存します。ステップ サイズを小さくすると、結果はより正確になりますが、シミュレーションに要する時間が長くなります。また、同じステップ サイズであれば、ソルバーの次数が高いほどシミュレーション結果は正確になります。

モデルのソルバー タイプとして固定ステップを指定する場合、Simulink は既定で FixedStepAuto ソルバーを選択します。自動ソルバーは、中程度の計算量で、連続状態と離散状態の両方を扱うことができる適切な固定ステップ ソルバーを選択します。離散ソルバーの場合と同様、モデルが離散レート (サンプル時間) をもつ場合は、Simulink でステップ サイズは既定の設定でモデルの基本サンプル時間に設定されます。モデルに離散レートがない場合は、Simulink はシミュレーションの合計時間を 50 で除算した結果を自動的に使用します。その結果、ソルバーは、モデルの指定したサンプルレートで、Simulink がモデルの離散状態を更新するために必要なシミュレーション時間ごとにステップを取ります。ただし、これは既定のソルバーがモデルの連続状態を正確に計算することを保証するものではありません。したがって、許容できる精度とシミュレーション時間の短縮の両方を実現するために、他のソルバーと異なる固定ステップ サイズのどちらかまたは両方の選択が必要となる場合があります。

陰的な固定ステップ連続ソルバー

陰的なソルバーは、以下の式で示しているように、次のタイム ステップでの状態を、現在のタイム ステップでの状態と次のタイム ステップでの状態導関数の陰関数として計算します。

x(n+1)x(n)hDx(n+1)=0

Simulink には ode14xode1be の 2 つの陰的な固定ステップ ソルバーが用意されています。このソルバーは、ニュートン法と現在の値の外挿を使用して、次のタイム ステップでの状態の値を計算します。モデルの状態の次の値を計算するためにソルバーが使用する Newton 法の反復回数と外挿の次数を指定できます。Fixed-step size (fundamental sample time)を参照してください。選択した反復回数が多く、外挿の次数が高いほど、精度は高くなりますが、ステップ サイズごとの計算の負荷が大きくなります。

参考

関連するトピック