Using Simulink | ![]() ![]() |
ソルバ
Simulinkは、ブロックの連続状態のカレント値を、状態の微係数を数値積分することによって計算します。数値積分のタスクは、ソルバと呼ばれるSimulinkコンポーネントによって行われます。Simulinkを使って、モデルのシミュレーションに用いるソルバを選択できます。Simulinkが提供するソルバは、固定ステップソルバと可変ステップソルバの2つのクラスに分けられます。
固定ステップソルバ
固定ステップソルバは、シミュレーションの時間区間を、ステップと呼ばれる一定間隔の整数倍に分割します。そのため、初期推定から開始すると、各時間ステップで、固定ステップソルバは変数のカレント値と微係数のカレント値から、つぎの時間ステップでのシステムの状態変数の値を計算します。推定の精度は、ステップサイズ、つまり連続する時間ステップ間に時間に依存します。 一般に、小さいステップサイズは、正確なシミュレーションを行いますが、システムの状態の計算に多くのステップが必要なため、実行時間が長くなります。
可変ステップソルバ
可変ステップソルバは、指定したレベルの精度を満たすために、ステップサイズをダイナミックに変化させます。そのようなソルバは、状態変数がゆっくりと変化するときには、ステップサイズを大きくし(状態微係数の大きさで示されるように)、状態変数が急速に変化するときには、ステップサイズを小さくします。可変ステップソルバは、アプリケーションによって実行速度を犠牲にすることなく、精度の良い結果を得ることができます。
メジャーステップとマイナーステップ
ソルバの中には、シミュレーション時間をメジャーステップとマイナーステップに細かく分けるものがあります。マイナー時間ステップは、メジャー時間ステップの下位区分を表わします。ソルバは、各メジャー時間ステップでの結果を生成します。マイナー時間ステップでの結果を使ってメジャー時間ステップでの結果の精度を改良します。
![]() | Atomicサブシステムと仮想サブシステム | ゼロクロッシングの検出 | ![]() |