Using Simulink    

Solverページ

Solver ページは、Simulation メニューから Parameters を最初に選択したとき、あるいは Solver タブを選択したときに表示されます。

Solver ページでは、以下のことが行えます。

シミュレーション時間

新しい値を Start timeStop time のフィールドに入力することによって、シミュレーションの開始時間と終了時間を変更することができます。デフォルトの開始時間は0.0秒で、デフォルトの終了時間は10.0秒です。

シミュレーション時間と実際のクロック時間は同じではありません。たとえば、10秒間のシミュレーションの実行には通常10秒はかかりません。シミュレーションの実行に必要な時間は、モデルの複雑さ、ソルバのステップサイズ、コンピュータのクロック速度など多くの要素によって異なります。

ソルバ

Simulinkモデルのシミュレーションには、連立常微分方程式(ODE)の数値積分が含まれます。Simulinkは、そのような方程式のシミュレーションに対していくつかのソルバを提供します。ダイナミックシステムの挙動が多様であることから、ソルバの中には、特定の問題を解くために他のソルバより効率的なものがあります。正確かつ高速の結果を得るためには、ソルバを選択し、パラメータを設定する際に注意が必要です。

可変ステップソルバと固定ステップソルバを選択することができます。可変ステップソルバ は、シミュレーション実行中にそのステップサイズを自動的に変更することができます。可変ステップソルバには、エラー制御とゼロクロッシング検出が用意されています。固定ステップソルバ は、シミュレーション実行中に同じステップサイズを使用します。固定ステップソルバには、エラー制御とゼロクロッシング検出機能はありません。ソルバの詳細については Using MATLAB を参照してください。

デフォルトのソルバ   ユーザがソルバを選択しないと、Simulinkがモデルの状態に応じてソルバを選択します。

可変ステップソルバ   可変ステップソルバとして、ode45, ode23, ode113, ode15s, ode23s および discrete を選択することができます。デフォルトは、状態をもつシステムの場合は ode45、状態をもたないシステムの場合は discrete です。

固定ステップソルバ   固定ステップソルバとして、ode5, ode4, ode3, ode2, ode1, および discrete から選択することができます。

シミュレーションで満足できない結果を生じている恐れがある場合には、シミュレーションの性能と精度の改良 を参照してください。

ソルバオプション

デフォルトのソルバパラメータは、ほとんどの問題に対して正確かつ効率的な結果を提供します。しかし、場合によっては、パラメータを調整すると性能が改良されることがあります(パラメータの調整については、シミュレーションの性能と精度の改良)を参照してください)。選択したソルバは、Solver パネルのパラメータ値を変更することによって調整することができます。

ステップサイズ

可変ステップソルバの場合、最大ステップサイズと推奨初期ステップサイズのパラメータを設定することができます。デフォルトでは、これらのパラメータは値 auto によって示されるように自動的に決定されます。

固定ステップソルバの場合、固定ステップサイズを設定することができます。デフォルトは auto です。

最大ステップサイズ   Max step size パラメータは、ソルバが使うことのできる最大の時間ステップを制御します。デフォルト値は、開始時間と終了時間から決定されます。

一般に、デフォルトの最大ステップサイズで十分です。ソルバの重要な挙動を捉えていない恐れがある場合には、パラメータを変更してソルバがあまり大きなステップを使わないようにすることができます。シミュレーション時間が非常に長い場合、デフォルトのステップサイズは、ソルバが解を見つけるには大きすぎる場合があります。また、モデルに周期的、または周期的に近い挙動が含まれ、その周期がわかっている場合には、最大ステップサイズをその周期の何分の1か(1/4など)に設定してください。

一般に、出力点が多い場合は、最大ステップサイズではなくリファインファクタを変更します。詳細については、リファインファクタ を参照してください。

初期ステップサイズ   デフォルトで、ソルバは開始時間における状態の導関数を検討することによって初期ステップサイズを選択します。最初のステップサイズが大きすぎると、ソルバは重要な挙動を飛び越す可能性があります。初期ステップサイズパラメータは、推奨する 最初のステップサイズです。ソルバはこのステップサイズを試みますが、エラー基準が満たされなければそれを小さくします。

誤差許容値

ソルバは、標準のローカル誤差制御法を用いて時間ステップごとに誤差をモニタします。各時間ステップの間、ソルバはステップの終端で状態値を計算し、ローカル誤差、すなわちこれらの状態値の予測誤差も判別します。それから、ローカル誤差を、相対的許容値(rtol )と絶対的許容値(atol )の関数である許容誤差 と比較します。誤差が任意 の状態に対する許容誤差より大きい場合には、ソルバはステップサイズを小さくして再び試みます。

i 番目の状態に対する誤差ei は、次式を満足する必要があります。

下の図は、状態のプロットと、許容誤差が相対的許容値と絶対的許容値で決められる領域を示しています。

auto (デフォルト)を指定すると、Simulinkは各状態に対する絶対許容誤差の初期値を1e-6に設定します。シミュレーションが進行すると、Simulinkは各状態に対する絶対許容誤差を、状態に対する相対許容誤差と状態とが最もかけ離れると仮定される最大値に再設定されます。従って、状態が0から1に変化し reltol が1e-3の場合、シミュレーションの終わりに abstol も1e-3に設定されます。また、状態が0から1000に変化するとき、abstol は1に設定されます。

計算された設定値が適切でない場合、適切な設定値を指定することができます。絶対的許容値に対する適切な値を決定するには、シミュレーションを複数回実行する必要があります。状態の大きさが幅広く変化する場合、状態に応じて異なる絶対的許容値を指定する方が適切かもしれません。これは、Integratorブロックのダイアログボックスで行うことができます。

ode15sに対する最大次数

ode15s ソルバは、1次から5次までのNDF公式に基づいています。次数が高い公式ほど精度は高くなりますが、安定性は低くなります。モデルがスティッフで、かつ安定性を必要とする場合は、最大次数を2に設定します(NDF公式がA-安定である最高次数)。ode15s ソルバを選択すると、ダイアログボックスにこのパラメータが表示されます。

もう1つの方法として、固定ステップの低次(およびA-安定の)ソルバである ode23s ソルバを使用することもできます。

Multitaskingオプション

固定ステップソルバを選択する場合、Simulation Parameters ダイアログボックスの Solver ページは、Mode オプションリストを表示します。リストを使って、つぎのシミュレーションモードのうちの1つを選択することができます。

MultiTasking.   このモードは、ブロック間で不正なサンプルレート遷移、つまり、異なるサンプルレートにおいて機能するブロック間の直接接続を検出した場合にエラーを発生します。リアルタイムマルチタスクシステムでは、タスク間の不正なサンプルレートの遷移により、他のタスクによって要求されたときに、タスクの出力が利用不可能になります。そのような遷移をチェックすることにより、マルチタスクモードは、実世界のマルチタスクシステムの有効なモデル作成に役立ちます。モデルの部分がコンカレントタスクを表わします。

rate transition ブロックを使って、モデルから不正なレート遷移を除去します。Simulinkは、2つのブロック、Unit Delay (Unit Delay を参照)とZero-Order Hold (Zero-Order Hold を参照)を提供します。不正な遅いブロックから速いブロックへの遷移を除去するには、遅いブロックの出力端子と速いブロックの入力端子の間で遅いレートで実行するUnit Delayブロックを挿入してください。不正な速いブロックから遅いブロックへの遷移を除去するには、速いブロックの出力端子と遅いブロックの入力端子の間で遅いレートで実行するZero-Order Holdブロックを挿入してください。詳細は、Real-Time Workshop Users Guide の第7章、"複数のサンプルレートをもつモデル" を参照してください。

SingleTasking.   このモードは、ブロック間のサンプルレートの遷移をチェックしません。このモードは、シングルタスクシステムのモデリング時に役立ちます。そのようなシステムにおいて、タスクの同期化は問題ではありません

Auto.   このオプションによって、Simulinkは、すべてのブロックが同じサンプルレートで操作される場合はシングルタスクモードを、モデルが異なるレートで操作されるブロックを含む場合はマルチタスクモードを利用します。

出力オプション

ダイアログボックスの Output options 領域では、シミュレーションが生成する出力量を制御することができます。つぎの3つのポップアップオプションから選択することができます。

リファインファクタ   シミュレーション出力が粗すぎる場合、Refine output の選択により、追加の出力点を提供します。このパラメータは、時間ステップ間に整数数の出力点を追加します。たとえば、リファインファクタが2の場合、各時間ステップでの出力と共に中間点での出力を提供します。デフォルトのリファインファクタは1です。

出力をスムーズにするには、ステップサイズを小さくする代わりにリファインファクタを変更する方がはるかに高速です。リファインファクタを変更すると、ソルバはそれらの点で連続的な拡張式を評価することによって追加点を生成します。リファインファクタを変更してもソルバが使用するステップは変わりません。

リファインファクタは可変ステップソルバに適用され、ode45 を使用するときに最も有効です。ode45 ソルバは、大きなステップを取ることができます。シミュレーション出力をグラフ化する場合、このソルバからの出力が十分滑らかでないことがあります。この場合には、リファインファクタを大きくしてシミュレーションを再度実行します。値を4にするとよりかなり滑らかな結果が得られるはずです。

追加出力の生成   Produce additional output を選択すると、ソルバが出力を生成する追加的な時間を直接指定することができます。このオプションを選択すると、Simulinkは、Solver ページに Ouput Times を表示します。このフィールドに追加する時間または追加する時間のベクトルを評価するMATLAB表現を入力します。追加出力は、追加する時間における連続拡張式を使って作成されます。リファインファクタと異なり、このオプションは、シミュレーションのステップサイズを変更するので、時間ステップは、追加出力に対してユーザが指定した時間と一致します。

指定出力のみの生成   Produce specified output only を選択すると、指定した出力時間でのみ シミュレーション出力を提供します。このオプションは、シミュレーションのステップサイズを変更するので、時間ステップは出力の生成のためにユーザが指定した時間と一致します。この選択は、異なるシミュレーションと比較するときに、シミュレーションが同時に出力を生成するようにする場合に有効です。

出力オプションの比較   サンプルシミュレーションは、つぎの時間で出力を生成します。

Refine output を選択し、リファインファクタ2を指定すると、つぎの時間で出力を生成します。

Produce additional output オプションを選択し、[0:10] を指定すると、つぎの時間で出力を生成します。

そして、可変ステップソルバが選択したステップ時間に応じて、追加された時間において、生成する場合もあります。

Produce Specified Output Only オプションを選択し、[0:10] を指定すると、つぎの時間で出力を生成します。


 Simulation Parametersダイアログボックス Workspace I/Oページ