メインコンテンツ

シミュレーション ペーシング オプション

実経過時間に対するシミュレーション時間の比率を指定してシミュレーション速度を低下させる

説明

シミュレーション ペーシングを使用してシミュレーション速度を低下させると、モデルの解析や操作が容易になります。シミュレーションをペーシングすると、Scope ブロックや Dashboard ブロックなどの可視化の更新頻度が下がります。シミュレーション ペーシングを有効にした状態で、モデル内のパラメーターを変更し、モデルの変更による影響を確認できます。

シミュレーション ペーシングは、ソフトウェアが 1 秒のシミュレーション時間の結果を数ミリ秒のクロック時間で計算するモデルで役立ちます。

モデル参照階層をシミュレーションした場合、最上位モデルで指定されたシミュレーション ペーシング オプションのみが適用されます。参照モデルで指定されたシミュレーション ペーシング オプションは無視されます。

The Simulation Pacing Options dialog box

シミュレーション ペーシング オプション を開く

Simulink® ツールストリップの [シミュレーション][デバッグ]、または [モデル化] タブで [実行] ボタンの矢印をクリックします。次に、[シミュレーション ペーシング] を選択します。

In the Simulink Toolstrip, the Run list is expanded with the pointer paused on the Simulation Pacing option.

すべて展開する

モデル vdp を開きます。

mdl = "vdp";
open_system(mdl)

The model vdp.

モデルのシミュレーションを実行します。

out = sim(mdl);

シミュレーションはわずか数秒で完了します。

simMeta = getSimulationMetadata(out);
simMeta.TimingInfo.TotalElapsedWallTime
ans = 
5.0410

シミュレーション中に信号値がどのように変化するのかをより詳細に確認するために、シミュレーション ペーシングを有効にします。

  1. Simulink® ツールストリップの [シミュレーション] タブで [実行] ボタンの矢印をクリックし、[シミュレーション ペーシング] を選択します。

  2. [シミュレーション ペーシング オプション] ダイアログ ボックスで、[ペーシングを有効にしてシミュレーション速度を遅くする] を選択します。

あるいは、set_param 関数を使用してシミュレーション ペーシングを有効にします。

set_param(mdl,"EnablePacing","on")

[実行] ボタンのアイコンには、シミュレーション ペーシングが有効になっていることを示すクロックのアイコンが付いています。

ペーシングされたシミュレーション中に信号 x1x2 を表示するには、Scope ブロックをダブルクリックします。

モデルを再度シミュレートします。[シミュレーション] タブで [実行] をクリックします。または、関数 sim を使用します。

out = sim(mdl);

Scope ブロックが更新され、信号 x1x2 のシミュレーションの実行に応じたデータが表示されます。

The Scope block displays data through the current simulation time of approximately 7 seconds.

ペーシングされたシミュレーションの実行中は、ペーシングなしのシミュレーション時と同じように、ブロック パラメーターを変更したり、端子の値のラベルを追加および削除したり、モデル階層内を移動したりできます。シミュレーション中に、シミュレーション ペーシングを有効または無効にしたり、ペーシング レートを調整したりすることもできます。

たとえば、別のペーシング シミュレーションを実行し、シミュレーション中に Mu という名前のブロックの [ゲイン] パラメーターの値を変更します。このシミュレーションでは、実経過時間に対するシミュレーション時間の比率を下げることで、パラメーターを変更し、Scope ブロックで変更の影響を確認するのに十分な時間を確保します。

  1. [シミュレーション ペーシング オプション] ダイアログ ボックスで、値スライダーをドラッグするか、フィールドに値を入力して、シミュレーションのペースを実時間 1 秒あたりにシミュレーション時間約 0.35 秒の比率まで下げます。

  2. Simulink ツールストリップの [シミュレーション] タブで [実行] をクリックします。

  3. Mu という名前のブロックをダブルクリックします。

  4. マスクされたブロックのカスタム [ブロック パラメーター] ダイアログ ボックスのスライダーを使用して、[ゲイン] パラメーターの値を調整します。Scope ブロックで、信号 x1 および x2 に対する [ゲイン] パラメーターの変更による影響を監視します。

The Scope block displays the data for signals x1 and x2 through the current simulation time of approximately 11 seconds. The shape and amplitude of the signals change due to the changing gain value.

Dashboard ブロックでは、シミュレーション ペーシングを使用してシミュレーション速度を低下させながら、信号を表示し、モデル内の変数とパラメーターの値を調整できます。シミュレーション ペーシングを有効にして Dashboard ブロックを使用することで、モデルを直感的に理解し、モデル内のパラメーターを調整したときにモデルが変更に対してどのように反応するのかを把握できます。

モデル例では、シミュレーション ペーシングを使用して、シミュレーションのペースを実経過時間とほぼ同等、つまり実時間 1 秒あたり 1 シミュレーション秒程度に遅らせています。モデルには [Signal Select] というラベルの付いたボタンがあり、これを使用して、Dashboard Scope ブロックを使用して可視化される出力に正弦波またはノコギリ波のいずれの入力信号を渡すかを制御できます。

モデルを開いてシミュレーションを実行します。シミュレーション中に、[Signal Select] ボタンを押して離し、出力信号への影響を確認します。

モデル例の作成の詳細については、Push Button ブロックを使用した信号のマージの制御を参照してください。

関連する例

パラメーター

すべて展開する

シミュレーション速度を低下させるオプション。off または on として指定します。

プログラムでの使用

パラメーター: EnablePacing
値: "off" | "on"
既定の設定: "off"

実経過時間に対するシミュレーション時間のおおよその比率。正のスカラー数として指定します。既定では、シミュレーション ペーシングを有効にすると、ソフトウェアはシミュレーションを実経過時間 1 秒あたりシミュレーション時間約 1 秒の速度にします。

値スライダーまたはテキスト ボックスを使用して、おおよそのペーシング レートを指定できます。実経過時間に対するシミュレーション時間の比率は、値スライダーに表示されている範囲に限定されません。

依存関係

このパラメーターを有効にするには、[ペーシングを有効にしてシミュレーション速度を遅くする] を選択します。

制限

set_param 関数を使用した PacingRate パラメーターの値の調整は、以下の方法でラピッド アクセラレータ シミュレーションを実行する場合はサポートされていません。

  • Simulink エディターの使用

  • "start" シミュレーション コマンドの発行

    set_param(mdl,SimulationCommand="start")

プログラムでの使用

パラメーター: PacingRate
型: string | 文字ベクトル
値: 正のスカラー数
既定の設定: "1"

ヒント

  • [ステップを進める] または [ステップを戻す] をクリックしてシミュレーションをステップ実行する際に、シミュレーション ペーシングは適用されません。ステップを完了して [続行] をクリックすると、ペーシングが適用されるようになります。

  • シミュレーション ペーシングは意図的にシミュレーションを遅くするため、シミュレーション ペーシングが有効になっている場合、Simulink プロファイラーを使用したモデルのプロファイリングはサポートされません。Simulink プロファイラーを使用する場合は、シミュレーション ペーシングを無効にします。

  • Simulation オブジェクトを使用するシミュレーションおよび App Designer アプリでシミュレーション ペーシング オプションを指定および調整するには、setModelParameter 関数を使用します。

バージョン履歴

R2018a で導入