Main Content

対話によるモデルのシミュレーション

シミュレーションの基礎

Simulink® エディターでモデルをシミュレートするには、ツールストリップの [実行] ボタン を使用します。[実行] ボタンは、Simulink エディター内のツールにも表示されます。Scope ビューアーのような、このボタンが含まれる任意のツールからシミュレートが可能です。

シミュレーションを開始する前に、シミュレーションの開始時間、終了時間、モデルを解くためのソルバーなどのオプションを指定できます (ソルバーの選択基準を参照)。これらのオプションは、[モデル化] タブの [モデル設定] をクリックして開くことができる [コンフィギュレーション パラメーター] ダイアログ ボックスで指定します。これらの設定は、モデルと共に "コンフィギュレーション セット" に保存されます。各モデルに対して複数のコンフィギュレーション セットを作成し、それらを切り替えてさまざまな設定の効果を確認できます。モデル コンフィギュレーション セットを参照してください。

既定の設定で、シミュレーションは 0.0 秒で開始し、10.0 秒で終了します。

メモ

Simulink ソフトウェアでは、時間と関連するすべてのパラメーター (サンプル時間など) は暗黙的に秒単位で表示されます。別の時間単位を使用する場合は、必要に応じてパラメーターをスケールします。

[ソルバー] コンフィギュレーション ペインを使用すると、現在選択されているシミュレーション コンフィギュレーションに対して別の開始時間および終了時間を指定できます。詳細については、[ソルバー] ペインを参照してください。

メモ

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

モデル コンフィギュレーション パラメーターの設定後、シミュレーションを開始できます。シミュレーションの一時停止、再開および停止には、ツールストリップのコントロールを使用します。また、同時に 1 つを超えるモデルをシミュレートすることもでき、そのため、あるモデルのシミュレーションの実行中に別のものを開始することもできます。

シミュレーション中は、ラインやブロックの追加や削除など、モデルの構造に変更を加えることはできません。しかし、以下はシミュレーション中に変更可能です。

  • 終了時間、最大ステップ サイズなど、いくつかのコンフィギュレーション パラメーターを変更する。

  • ブロックのパラメーターを変更する。ただし、次の要素は変更してはなりません。

    • 状態、入力、または出力の数

    • サンプル時間

    • ゼロクロッシングの数

    • ブロック パラメーターのベクトルの長さ

    • 内部ブロックのワーク ベクトルの長さ

    • 信号の次元

また、シミュレーション時にモデルを視覚的に調べることもできます。たとえば、ラインをクリックして、Floating Scope ブロックや Display ブロックのラインに引き継がれた信号を表示できます。モデルのシミュレーション時に端子の値を表示することもできます。端子の値のラベルを使用した信号値の表示を参照してください。

シミュレーションの実行、一時停止および停止

モデルのシミュレーションを開始するには、[実行] ボタン をクリックします。シミュレーションを一時停止、再開または停止するには、ツールストリップの対応するコントロールを使用します。

モデルは指定された開始時間にシミュレーションを開始し、指定された終了時間まで実行します。シミュレーションの実行中、エディターの下部にシミュレーションの完了割合と現在のシミュレーション時間の情報が表示されます。

  • エラーが発生すると、シミュレーションは停止し、メッセージが表示されます。警告状態の発生の場合は、シミュレーションは完了します。どちらの場合も、エディターの下部にある診断リンクをクリックしてメッセージを確認し、エラーを特定できます。

  • 一時停止は、現在のタイム ステップが実行を終了した後で有効になります。一時停止したシミュレーションの再開は、次のタイム ステップからです。

  • シミュレーションを停止させると、現在のタイム ステップが完了し、その後シミュレーションが停止します。

  • モデルの出力先がファイルまたはワークスペースの場合、シミュレーションの停止または一時停止によりデータの書き込みが行われます。

ブロックを使用してシミュレーションを停止または一時停止する方法

Stop Simulation ブロックを使用したシミュレーションの停止

Stop Simulation ブロックを使用すると、ブロックへの入力が非ゼロの場合にシミュレーションを停止できます。ブロックの入力がベクトルである場合、非ゼロ要素により、シミュレーションが終了します。

  1. Stop Simulation ブロックをモデルに追加します。

  2. Stop Simulation ブロックを、指定した終了時間に値が非ゼロになる信号に接続します。

たとえば、次のモデルでは、シミュレーション時間が 10 に到達すると、シミュレーションが停止します。

Assertion ブロックを使用したシミュレーションの一時停止

Assertion ブロックを使用すると、ブロックへの入力信号がゼロである場合に、シミュレーションを一時停止できます。Assertion ブロックは、set_param コマンドを使用してシミュレーションを一時停止します。Simulink モデルの実行をコントロールする set_param コマンドの使用方法の詳細については、プログラムによるシミュレーションの実行を参照してください。

  1. モデルに Assertion ブロックを追加します。

  2. Assertion ブロックを、目標とする一時停止時間に値がゼロになる信号に接続します。

  3. Assertion ブロックのダイアログ ボックスで、[アサーションが失敗したときにシミュレーションを中止] チェック ボックスをオフにします。次のコマンドを [アサーションが失敗したときのシミュレーション コールバック] の値として入力します。

    set_param(bdroot,'SimulationCommand','pause'),
    disp(sprintf('\nSimulation paused.'))

このモデルはこれらの設定で Assertion ブロックを使用して、シミュレーション時間が 5 に達するとシミュレーションを一時停止します。

シミュレーションが一時停止すると、ブロックがシミュレーションを一時停止させた時間を示すメッセージが表示されます。

シミュレーションは [続行] を使用して再開でき、これは一時停止しているどのシミュレーションについても同様に可能です。

参考

ブロック

関数

関連するトピック