メインコンテンツ

シミュレーション データ インスペクターでのシミュレーション データの表示

シミュレーション データ インスペクターを使用すると、シミュレーション中にログを取得したデータも含めて、設計プロセス全体を通して生成したデータを可視化できます。テスト データとその他の記録されたデータをシミュレーション データ インスペクターにインポートして、ログを取得したシミュレーション データと一緒に検証および解析することもできます。シミュレーション データ インスペクターへのデータのインポートの詳細については、ワークスペースまたはファイルからシミュレーション データ インスペクターへのデータのインポート (Simulink)を参照してください。

Simulink® モデル内でログを取得したシミュレーション データは、シミュレーション データ インスペクターに記録されます。シミュレーション データ インスペクターにはいくつかのタイプのプロットがあり、これらを使用してデータの複雑な可視化を簡単に作成できます。詳細については、シミュレーション データ インスペクターを使用したプロットの作成 (Simulink)を参照してください。

ログ データの表示

モデルのシミュレーションを実行すると、さまざまなタイプのログ データが自動的にシミュレーション データ インスペクターにストリーミングされます。シミュレーション データ インスペクターにストリーミングされたデータは、シミュレーション後も使用できます。ログが取得されたその他のタイプのシミュレーション データは、シミュレーションの一時停止時、停止時、または完了時にのみ、シミュレーション データ インスペクターに表示されます。ログが取得されたこれらのタイプのデータを表示するには、[コンフィギュレーション パラメーター] ダイアログ ボックスを開き、[データのインポート/エクスポート] ペインで [ワークスペース データのログをシミュレーション データ インスペクターに記録] を選択します。シミュレーション データのログの詳細については、シミュレーション データの保存 (Simulink)を参照してください。

シミュレーション データのタイプシミュレーション中およびシミュレーション後に表示できるデータシミュレーションの一時停止後、停止後、または完了後にのみ表示できるデータ
出力

Dataset 形式を使用してログが取得された出力データ

[ワークスペース データのログをシミュレーション データ インスペクターに記録] パラメーターを選択して、Dataset 以外の形式でログが取得された出力データ

信号データ

次のいずれかの方法でログが取得された信号データ

  • 信号のログ (Simulink)

  • Record (Simulink) ブロック

  • To Workspace (Simulink) ブロック

  • ワークスペースにデータのログを取るように構成した Scope (Simulink) ブロック (R2025a 以降)

[ワークスペース データのログをシミュレーション データ インスペクターに記録] パラメーターを選択している場合に、次の方法でログが取得された信号データ

  • To File (Simulink) ブロック

  • R2025a より前: ワークスペースにデータのログを取るように構成した Scope (Simulink) ブロック

ステート

Dataset 形式を使用してログが取得されたステート データ

[ワークスペース データのログをシミュレーション データ インスペクターに記録] パラメーターを選択して、Dataset 以外の形式でログが取得されたステート データ

データ ストアすべてのデータ ストア データ適用不可

メモ

Structure または Array 形式を使用して状態および出力のログを取得する場合は、シミュレーション データ インスペクターに記録するデータの時間も記録しなければなりません。

シミュレーション データ インスペクターの [検査] ペインのテーブルに使用可能なデータが表示されます。信号をプロットするには、信号の隣のチェック ボックスをオンにします。レイアウトを変更して、さまざまな可視化を追加し、シミュレーション データを解析できます。

The Inspect pane of the Simulation Data Inspector shows a time plot of the alpha, rad signal for two runs.

シミュレーション データ インスペクターは、受信したシミュレーション データをアーカイブを使用して管理します。既定では、新しいシミュレーションを開始するときに、以前の実行がアーカイブに移動します。アーカイブから信号をプロットすることも、アーカイブから作業領域に対象の実行をドラッグして戻すこともできます。

複素数データの表示

complexSignal モデルは、2 つの複素信号のログを取ります。Complex Square Wave 信号は、Outport ブロックを使用してログを取ります。Complex Sine Wave 信号は、信号のログを使用してログを取ります。モデルを開きます。

mdl = "complexSignal";
open_system(mdl)

The complexSignal model

モデルのシミュレーションを実行します。次に、シミュレーション データ インスペクターでシミュレーション データをプロットします。

out = sim(mdl);
Simulink.sdi.plot(out);

複素信号の可視化方法を制御するには、シミュレーション データ インスペクターの [プロパティ] ペインを使用します。以下の複素数形式のオプションを選択できます。

  • Magnitude

  • Magnitude-Phase

  • Phase

  • Real-Imaginary

信号テーブルから Complex Square Wave 信号を選択します。次に、[複素数形式] ドロップダウン メニューから [Real-Imaginary] を選択します。[複素数形式] として [Magnitude-Phase] または [Real-Imaginary] を選択すると、シミュレーション データ インスペクターでは信号の両方の成分がプロットされます。[Real-Imaginary] 形式の信号の場合、[ラインの色] で信号の実数成分の色を指定します。虚数成分は [ラインの色] の異なる色調で表示されます。

信号のログを使用してデータのログを取得する場合、モデル内で信号のInstrumentation Properties (Simulink)を使用して、信号の既定の複素数形式も変更できます。Complex Sine Wave 信号の [インストルメンテーションのプロパティ] にアクセスするには、その信号のログ バッジを右クリックし、[プロパティ] を選択します。[複素数形式] ドロップダウン メニューから [Magnitude-Phase] を選択します。

モデルのシミュレーションを再び実行し、シミュレーション データ インスペクターで Magnitude-Phase 形式を使用して Complex Sine Wave 信号を可視化します。

out = sim(mdl);

string データの表示

シミュレーション データ インスペクターで、信号データと共に string データのログを取得して表示できます。stringData モデルの Sine Wave ブロックの値が、スイッチが string の読み取り値 Positive または Negative のどちらを出力に送るかを制御します。モデルを開きます。

mdl = "stringData";
open_system(mdl)

The stringData model

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

out = sim(mdl);

シミュレーション データ インスペクターを開きます。

Simulink.sdi.view

信号テーブルから Sine WaveSwitch の信号を選択して、結果をプロットします。string 信号がグラフィカルな表示領域の下部に表示されます。

[データ カーソルを表示/非表示にします] を選択して、string 信号の値が正弦信号の値にどのように対応しているかを調べます。

複数の string 信号を 1 つのプロット上にプロットする場合、信号は、シミュレーションされた、またはインポートされた順に積み重なり、最近の信号が最上位に配置されます。たとえば、スイッチを制御する正弦波の位相を変更します。次に、モデルのシミュレーションを再び実行します。シミュレーション データ インスペクターで、両方の実行の信号をすべて選択して、両方のシミュレーション結果を 1 つのプロットで可視化します。ラインの色を変更して、2 つの実行を区別しやすくすることができます。2 回目の実行の string データは、初回の実行の string データの上に重ね合わされます。

多次元データの表示

シミュレーション データ インスペクターでは、多次元信号データの表示と解析ができます。多次元信号値をもつ信号を表示するには、配列プロットを使用します。モデル MultiDim には、それぞれが前の正弦波から 1 だけ垂直にずれた 6 つの Sine Wave ブロックがあり、Mux ブロックに接続しています。Mux ブロックの出力は、Outport ブロックを使用してシミュレーション データ インスペクターにログを取得します。

モデルのシミュレーションを実行します。次に、シミュレーション データ インスペクターを開きます。

mdl = "MultiDim";
sim(mdl);
Simulink.sdi.view

配列プロットにデータをプロットするには、[可視化とレイアウト] をクリックします。次に、[配列] を選択します。配列プロットに多次元のサンプル値をもつ信号をプロットすると、ステム プロットに特定の時点の各サンプル値が表示されます。プロットの右上隅に時間が表示されます。信号の次元が、信号名の隣に小かっこ付きで表示されます。たとえば、多次元信号 MultiDimSig には 6 チャネルがあるので、このデータの配列プロットには 6 つのマーカーがあります。

また、多次元信号の表現を、多次元のサンプル値を含む単一信号から、チャネルと呼ばれるスカラーのサンプル値を含む信号セットに変換することもできます。チャネルに変換したら、時間プロット、XY プロット、マップ、またはスパークラインを使用して、データをプロットできます。配列プロットで多次元信号をプロットした場合と、個々のチャネルを時間プロットでプロットした場合の違いを確認するには、シミュレーションを再び実行します。

sim(mdl);

2 回目の実行の多次元信号をチャネルに変換するには、シミュレーション データ インスペクターで信号名の隣に小かっこ付きで表示されている信号の次元をクリックします。次に、[チャネルに変換] を選択します。

[可視化とレイアウト] メニューから 2x1 レイアウトを選択します。下側のサブプロットに、初回の実行からの多次元のサンプル値をもつ信号を配列プロットでプロットします。上側のサブプロットに、2 回目の実行からのチャネルを時間プロットでプロットします。特定の時間における各チャネルの値を表示するには、時間プロットにカーソルを追加します。サブプロットにカーソルを 1 つ追加するには、[データ カーソルを表示/非表示にします] の隣にある矢印をクリックします。次に、[1 つのカーソル] を選択します。

カーソルをドラッグすると、配列プロット内のサンプル値が変化することがわかります。時間に沿ってカーソルを移動すると、その特定の時点における要素の値を表示するよう、配列プロット内の各サンプル値の表示が変化します。この例では、両方の実行に同じデータがあるため、配列プロットの値は、時間プロット内の対応する各チャネルについてカーソルにより表示される値と一致します。たとえば、カーソルを 3.6 秒に配置すると、配列プロットの右上隅に表示される時間も 3.6 になり、配列プロットの最初のサンプル値は、時間プロット内の MultiDimSig(1) 信号についてカーソルにより表示される値と等しくなります。

また、データを再生することにより、配列プロット内の値が時間の経過とともに変化することもわかります。[再生コントロールの表示/非表示を切り替えます] をクリックします。次に、[再生] をクリックします。

フレームベース データなどの多次元信号データの検査と解析の詳細については、Analyze Multidimensional Signal Data (Simulink)を参照してください。

フレームベース データの表示

アプリケーションには、信号の複数のサンプルを "フレーム" にバッファーして、フレーム内の各サンプルを個別に処理する代わりに、単一の計算で処理するものがあります。フレームベースの信号を扱う場合、データをフレームごとに解析するか、バッファリングを解除してフレームを使用せずに信号を解析することができます。

データを点ごとに処理するのではなくフレームで処理すると、一部のアプリケーションで必要となるパフォーマンスを向上させることができます。フレームベースの信号をサンプルベースとしてログを取る場合、シミュレーション後にシミュレーション データ インスペクターでフレームを変換できます。シミュレーション データ インスペクターでのフレームベース データの表示の詳細については、View Multidimensional Signals Using the Array Plot (Simulink)を参照してください。

イベントベース データの表示

イベント データのログを取得またはシミュレーション データ インスペクターにインポートできます。この例のモデル SimpleMessagesModel は、信号ログを使用して信号データとメッセージ データのログを取ります。モデルの詳細については、メッセージの送受信のアニメーション化および理解 (Simulink)を参照してください。

mdl = "SimpleMessagesModel";
open_system(mdl)

The SimpleMessagesModel model

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

  • Sine Wave ブロックが正弦波信号を生成します。

  • 0.1 秒ごとに Send ブロックが正弦波信号の値をメッセージに変換し、Queue ブロックに送信します。

  • Queue ブロックがメッセージを Receive ブロックに送信します。

  • Receive ブロックが再構成した正弦波信号を生成します。

out = sim(mdl);

シミュレーション データ インスペクターでデータをプロットします。シミュレーション データ インスペクターにメッセージ データがステム プロットとして表示されます。ステムの値は、特定のシミュレーション時間にメッセージ ペイロードとして取得された正弦波のサンプルです。

Simulink.sdi.plot(out);

参考

関数

トピック