対話によるモデルのシミュレーション
シミュレーションの基礎
Simulink® エディターでモデルをシミュレートするには、ツールストリップの [実行] ボタン を使用します。[実行] ボタンは、Simulink エディター内のツールにも表示されます。Scope ビューアーのような、このボタンが含まれる任意のツールからシミュレートが可能です。
シミュレーションを開始する前に、シミュレーションの開始時間、終了時間、モデルを解くためのソルバーなどのオプションを指定できます (ソルバーの選択基準を参照)。これらのオプションは、[モデル化] タブの [モデル設定] をクリックして開くことができる [コンフィギュレーション パラメーター] ダイアログ ボックスで指定します。これらの設定は、モデルと共に "コンフィギュレーション セット" に保存されます。各モデルに対して複数のコンフィギュレーション セットを作成し、それらを切り替えてさまざまな設定の効果を確認できます。モデル コンフィギュレーション セットを参照してください。
既定の設定で、シミュレーションは 0.0 秒で開始し、10.0 秒で終了します。
メモ
Simulink ソフトウェアでは、時間と関連するすべてのパラメーター (サンプル時間など) は暗黙的に秒単位で表示されます。別の時間単位を使用する場合は、必要に応じてパラメーターをスケールします。
[ソルバー] コンフィギュレーション ペインを使用すると、現在選択されているシミュレーション コンフィギュレーションに対して別の開始時間および終了時間を指定できます。詳細については、[ソルバー] ペインを参照してください。
メモ
シミュレーション時間と実際のクロック時間は同じではありません。たとえば、10 秒間のシミュレーションの実行には通常クロック時間による測定結果と同じ 10 秒はかかりません。シミュレーションの実行に実際に必要な時間は、モデルの実数/複素数、ステップ サイズ、コンピューターのクロック速度など多くの要素によって異なります。
モデル コンフィギュレーション パラメーターの設定後、シミュレーションを開始できます。シミュレーションの一時停止、再開および停止には、ツールストリップのコントロールを使用します。また、同時に 1 つを超えるモデルをシミュレートすることもでき、そのため、あるモデルのシミュレーションの実行中に別のものを開始することもできます。
シミュレーション中は、ラインやブロックの追加や削除など、モデルの構造に変更を加えることはできません。しかし、以下はシミュレーション中に変更可能です。
終了時間、最大ステップ サイズなど、いくつかのコンフィギュレーション パラメーターを変更する。
ブロックのパラメーターを変更する。ただし、次の要素は変更してはなりません。
状態、入力、または出力の数
サンプル時間
ゼロクロッシングの数
ブロック パラメーターのベクトルの長さ
内部ブロックのワーク ベクトルの長さ
信号の次元
また、シミュレーション時にモデルを視覚的に調べることもできます。たとえば、ラインをクリックして、Floating Scope ブロックや Display ブロックのラインに引き継がれた信号を表示できます。モデルのシミュレーション時に端子の値を表示することもできます。デバッグのための端子の値の表示を参照してください。
シミュレーションの実行、一時停止および停止
モデルのシミュレーションを開始するには、[実行] ボタン をクリックします。シミュレーションを一時停止、再開または停止するには、ツールストリップの対応するコントロールを使用します。
モデルは指定された開始時間にシミュレーションを開始し、指定された終了時間まで実行します。シミュレーションの実行中、エディターの下部にシミュレーションの完了割合と現在のシミュレーション時間の情報が表示されます。
エラーが発生すると、シミュレーションは停止し、メッセージが表示されます。警告状態の発生の場合は、シミュレーションは完了します。どちらの場合も、エディターの下部にある診断リンクをクリックしてメッセージを確認し、エラーを特定できます。
一時停止は、現在のタイム ステップが実行を終了した後で有効になります。一時停止したシミュレーションの再開は、次のタイム ステップからです。
シミュレーションを停止させると、現在のタイム ステップが完了し、その後シミュレーションが停止します。
モデルの出力先がファイルまたはワークスペースの場合、シミュレーションの停止または一時停止によりデータの書き込みが行われます。
ブロックを使用してシミュレーションを停止または一時停止する方法
Stop Simulation ブロックを使用したシミュレーションの停止
Stop Simulation ブロックを使用すると、ブロックへの入力が非ゼロの場合にシミュレーションを停止できます。ブロックの入力がベクトルである場合、非ゼロ要素により、シミュレーションが終了します。
Stop Simulation ブロックをモデルに追加します。
Stop Simulation ブロックを、指定した終了時間に値が非ゼロになる信号に接続します。
たとえば、次のモデルでは、シミュレーション時間が 10 に到達すると、シミュレーションが停止します。
Assertion ブロックを使用したシミュレーションの一時停止
Assertion ブロックを使用すると、ブロックへの入力信号がゼロである場合に、シミュレーションを一時停止できます。Assertion ブロックは、set_param
コマンドを使用してシミュレーションを一時停止します。Simulink モデルの実行をコントロールする set_param
コマンドの使用方法の詳細については、プログラムによるシミュレーションの実行を参照してください。
モデルに Assertion ブロックを追加します。
Assertion ブロックを、目標とする一時停止時間に値がゼロになる信号に接続します。
Assertion ブロックのダイアログ ボックスで、[アサーションが失敗したときにシミュレーションを中止] チェック ボックスをオフにします。次のコマンドを [アサーションが失敗したときのシミュレーション コールバック] の値として入力します。
set_param(bdroot,'SimulationCommand','pause'), disp(sprintf('\nSimulation paused.'))
このモデルはこれらの設定で Assertion ブロックを使用して、シミュレーション時間が 5 に達するとシミュレーションを一時停止します。
シミュレーションが一時停止すると、ブロックがシミュレーションを一時停止させた時間を示すメッセージが表示されます。
シミュレーションは [続行] を使用して再開でき、これは一時停止しているどのシミュレーションについても同様に可能です。