シミュレーション データ インスペクターでのシミュレーション データの表示
シミュレーション データ インスペクターを使用して、シミュレーション時にログに記録したデータなど、設計プロセス全体を通して生成したデータを可視化できます。テスト データとその他の記録されたデータをシミュレーション データ インスペクターにインポートして、記録されたシミュレーション データと一緒に検査および解析することもできます。シミュレーション データ インスペクターへのデータのインポートの詳細については、Import Data from Workspace or File into Simulation Data Inspectorを参照してください。
Simulink® モデルでログに記録したシミュレーション データは、シミュレーション データ インスペクターのログに記録されます。シミュレーション データ インスペクターにはいくつかのタイプのプロットがあり、これらのプロットを使用して、データの複雑な可視化を簡単に作成できます。詳細については、シミュレーション データ インスペクターを使用したプロットの作成を参照してください。
ログ データの表示
ログに記録された多くのタイプのデータは、モデルのシミュレーション時にシミュレーション データ インスペクターに自動的にストリーミングされます。シミュレーション データ インスペクターにストリーミングされたデータは、シミュレーション後にも使用可能です。その他のタイプのログに記録されたシミュレーション データは、シミュレーションの一時停止時、停止時、または完了時にのみシミュレーション データ インスペクターで表示されます。そうしたタイプのログに記録されたデータを表示するには、[コンフィギュレーション パラメーター] ダイアログ ボックスを開き、[データのインポート/エクスポート] ペインで [ワークスペース データのログをシミュレーション データ インスペクターに記録] を選択します。シミュレーション データのログ記録の詳細については、シミュレーション データの保存を参照してください。
シミュレーション データのタイプ | シミュレーションの実行中および実行後に表示できるデータ | シミュレーションの一時停止、停止、または完了後に表示できるデータ |
---|---|---|
出力 |
| [ワークスペース データのログをシミュレーション データ インスペクターに記録] パラメーターがオンになっているときに |
信号データ | 以下のいずれかの方法でログに記録された信号データ
| [ワークスペース データのログをシミュレーション データ インスペクターに記録] パラメーターがオンになっているときに以下を使用してログに記録された信号データ
|
ステート |
| [ワークスペース データのログをシミュレーション データ インスペクターに記録] パラメーターがオンになっているときに |
データ ストア | すべてのデータ ストアのデータ | 該当なし |
メモ
Structure
または Array
形式を使用して状態および出力をログに記録する場合は、シミュレーション データ インスペクターに記録するデータの時間も記録しなければなりません。
シミュレーション データ インスペクターの [検査] ペインのテーブルには使用可能なデータが表示されます。信号をプロットするには、信号の隣のチェック ボックスをオンにします。レイアウトを変更して、さまざまな可視化を追加し、シミュレーション データを解析できます。
シミュレーション データ インスペクターは、受信したシミュレーション データをアーカイブを使用して管理します。既定では、新しいシミュレーションを開始するときに、以前の実行がアーカイブに移動します。アーカイブから信号をプロットすることも、アーカイブから作業領域に対象の実行をドラッグして戻すこともできます。
複素数データの表示
complexSignal
モデルは 2 つの複素信号をログ記録します。Complex Square Wave
信号は Outport ブロックを使用してログ記録されます。Complex Sine Wave
信号は信号ログを使用してログ記録されます。モデルを開きます。
mdl = "complexSignal";
open_system(mdl)
モデルをシミュレートします。次に、シミュレーション データ インスペクターでシミュレーション データをプロットします。
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を使用して信号の既定の複素数形式を変更することもできます。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)
モデルをシミュレートします。
out = sim(mdl);
シミュレーション データ インスペクターを開きます。
Simulink.sdi.view
信号テーブルから Sine Wave
信号および Switch
信号を選択して結果をプロットします。string 信号がグラフィカルな表示領域の下部に表示されます。
[データ カーソルを表示/非表示にします] を選択して、string 信号の値が正弦信号の値にどのように対応しているかを検証します。
複数の string 信号をプロット上にプロットするとき、信号は、シミュレーションされた、またはインポートされた順に積み重なり、最近の信号が最上位に位置しています。たとえば、スイッチを制御している正弦波の位相を変更します。次に、モデルのシミュレーションを再度実行します。シミュレーション データ インスペクターで、両方の実行のすべての信号を選択して、両方のシミュレーション結果を 1 つのプロットで可視化します。ラインの色を変更することで、2 つの実行を区別しやすくすることが可能です。2 つ目の実行の string データは、最初の実行の string データの上に重ねられます。
多次元データの表示
シミュレーション データ インスペクターで多次元信号データを表示および解析できます。多次元信号値をもつ信号を表示するには、配列プロットを使用します。モデル MultiDim
には 6 つの Sine Wave ブロックが含まれています。各 Sine Wave ブロックは前の Sin Wave から垂直方向に 1 ずつずれており、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を参照してください。
フレームベースのデータの表示
一部のアプリケーションは信号の複数のサンプルを "フレーム" にバッファーすることで、フレーム内の各サンプルを個別に処理するのではなく、単一の計算で処理します。フレームベースの信号を処理する場合、データをフレームごとに解析するか、バッファリングを解除してフレームなしで信号を解析することができます。
データを点ごとに処理するのではなくフレームで処理すると、一部のアプリケーションで必要となるパフォーマンスの向上がもたらされます。フレームベースの信号をサンプルベースとしてログ記録した場合、シミュレーション後にシミュレーション データ インスペクターでフレームを変換できます。シミュレーション データ インスペクターにおけるフレーム ベースのデータの表示の詳細については、View Multidimensional Signals Using the Array Plotを参照してください。
イベントベースのデータの表示
イベント データをログ記録またはシミュレーション データ インスペクターにインポートできます。この例では、モデル SimpleMessagesModel
で信号ログを使用して信号データおよびメッセージ データをログに記録します。モデルの詳細については、メッセージの送受信のアニメーション化および理解を参照してください。
mdl = "SimpleMessagesModel";
open_system(mdl)
モデルをシミュレートします。シミュレーション中に以下が行われます。
Sine Wave ブロックが正弦波信号を生成します。
0.1
秒ごとに、Send ブロックが正弦波信号の値をメッセージに変換し、Queue ブロックに送信します。Queue ブロックが Receive ブロックにメッセージを送信します。
Receive ブロックが再構成された正弦波信号を生成します。
out = sim(mdl);
シミュレーション データ インスペクターでデータをプロットします。シミュレーション データ インスペクターでメッセージ データがステム プロットとして表示されます。ステムの値は、特定のシミュレーション時間についてメッセージ ペイロードとして取得された正弦波のサンプルです。
Simulink.sdi.plot(out);