メインコンテンツ

シミュレーション データ インスペクター

R2026b

データとシミュレーション結果を検査および比較し、モデルの設計を検証して反復します。

説明

シミュレーション データ インスペクターは、複数の種類のデータを可視化して比較します。

シミュレーション データ インスペクターを使用して、ワークフローの複数の段階で時系列データを検証および比較できます。タブを使用 (R2026b 以降)して、さまざまな可視化やレイアウトを整理することもできます。この例では、シミュレーション データ インスペクターによる設計サイクルのすべての段階のサポート方法について示します。

  1. シミュレーション データ インスペクターでのシミュレーション データの表示またはワークスペースまたはファイルからシミュレーション データ インスペクターへのデータのインポート

    シミュレーション データ インスペクターにデータのログを作成するように構成されたモデル内でシミュレーションを実行するか、ワークスペースまたはファイルからデータをインポートします。複数のタブを使用することで、モデルのブロック線図、パラメーター値、モデル コンフィギュレーションを繰り返し変更しながら、モデルの入力データを表示して確認したり、記録されたシミュレーション データを検証したりできます。シミュレーション データのログ記録の詳細については、シミュレーション データの保存を参照してください。

  2. シミュレーション データの検証

    複数のタブを使用して、シミュレーション データのさまざまな表示を整理します。各タブで、複数のサブプロットに信号をプロットしたり、指定されたプロットの座標軸を拡大/縮小したり、データ カーソルを使用してデータを理解および評価したりします。時間、配列、マップ、スパークライン、XY プロットなど、複数の可視化から選択できます。効果的なデータの表示の詳細については、シミュレーション データ インスペクターを使用したプロットの作成を参照してください。

  3. シミュレーション データの比較

    個々の信号またはシミュレーションの実行を比較し、相対許容誤差、絶対許容誤差、および時間の許容誤差との比較結果を解析できます。シミュレーション データ インスペクターの比較ツールでは、反復設計がサポートされており、また許容誤差の要件を満たしていない信号を強調表示できます。比較演算の詳細については、シミュレーション データ インスペクターでデータを比較する方法を参照してください。

  4. シミュレーション データ インスペクターのデータと表示の保存および共有

    シミュレーション データ インスペクターのデータとビューを保存して、他のユーザーと所見を共有します。

コマンド ラインからシミュレーション データ インスペクターを使用することもできます。詳細については、プログラムによるデータの検証およびプログラムによるデータの比較を参照してください。

The Inspect pane of the Simulation Data Inspector shows three subplots on a tab. The subplots show time plots of data gathered from three runs of the model sldemo_autotrans. The first subplot shows the EngineRPM signals from all three runs. The second subplot shows the ShiftLogic signals from all three runs. The third subplot shows the VehicleSpeed signal from all three runs.

シミュレーション データ インスペクター を開く

  • Simulink® ツールストリップ: [シミュレーション] タブで、[結果の確認] にある [データ インスペクター] をクリックします。

  • モデルから: 信号のストリーミング バッジをクリックしてシミュレーション データ インスペクターを開き、信号をプロットします。

  • MATLAB® コマンド プロンプト:

    • 「Simulink.sdi.view」と入力してシミュレーション データ インスペクターを開きます。

    • Simulink.sdi.plot を使用して、シミュレーション データ インスペクターを開いてデータをプロットします。

例

すべて展開する

実行を作成してそこにデータを追加してから、シミュレーション データ インスペクターのアクティブなタブでデータを表示します。

実行のデータの作成

2 つの timeseries オブジェクトを作成し、正弦信号と余弦信号のデータを含めます。各 timeseries オブジェクトに説明的な名前を付けます。

time = linspace(0,20,101);

sine_vals = sin(2*pi/5*time);
sine_ts = timeseries(sine_vals,time);
sine_ts.Name = "Sine, T=5";

cos_vals = cos(2*pi/8*time);
cos_ts = timeseries(cos_vals,time);
cos_ts.Name = "Cosine, T=8";

実行の作成とデータの追加

シミュレーション データ インスペクターを開くには、Simulink.sdi.view を使用します。

Simulink.sdi.view

データをワークスペースからシミュレーション データ インスペクターにインポートするには、Simulink.sdi.Run.create を使用して Simulink.sdi.Run オブジェクトを作成します。Run オブジェクトの Name プロパティおよび Description プロパティを使用して、メタデータ情報を追加します。

sinusoidsRun = Simulink.sdi.Run.create;
sinusoidsRun.Name = "Sinusoids";
sinusoidsRun.Description = "Sine and cosine signals with different frequencies";

ワークスペースで作成したデータを空の実行に追加します。

add(sinusoidsRun,"vars",sine_ts,cos_ts);
 0.091530s wall, 0.156250s user + 0.031250s system = 0.187500s CPU (204.9%)

シミュレーション データ インスペクターでのデータのプロット

各信号に対応する Simulink.sdi.Signal オブジェクトにアクセスするには、getSignalByIndex を使用します。Simulink.sdi.Signal オブジェクトのプロパティを使用して、信号のライン スタイルと色を指定し、シミュレーション データ インスペクターに信号をプロットできます。たとえば、各信号の LineColor プロパティと LineDashed プロパティを指定します。

sine_sig = getSignalByIndex(sinusoidsRun,1);
sine_sig.LineColor = [0 0 1];
sine_sig.LineDashed = "-.";

cos_sig = sinusoidsRun.getSignalByIndex(2);
cos_sig.LineColor = [1 0 0];
cos_sig.LineDashed = "--";

シミュレーション データ インスペクターのアクティブなタブのプロット領域で 2 行 1 列のサブプロット レイアウトを構成するには、Simulink.sdi.setSubPlotLayout を使用します。上のサブプロットに正弦信号をプロットし、下のサブプロットに余弦信号をプロットするには、plotOnSubPlot を使用します。

Simulink.sdi.setSubPlotLayout(2,1);

plotOnSubPlot(sine_sig,1,1,true);
plotOnSubPlot(cos_sig,2,1,true);

A 2-by-1 subplot layout for Tab1 in the Simulation Data Inspector. The sine signal is plotted in the upper subplot and the cosine signal is plotted in the lower subplot.

カーソルを使用したデータの検査

特定の時間における信号の値にアクセスするには、カーソルをプロットに追加します。たとえば、Sine 信号は、約 6 秒の時点で局所的最大値をもつように表示されます。1 つのカーソルをプロットに追加して、6 秒時点での信号値を確認します。

Simulink.sdi.setNumCursors(1)
Simulink.sdi.setCursorPositions("left",6)

The Simulation Data Inspector with a cursor positioned at 6 seconds in Tab1. The cursor is applied to both subplots.

2 点間での時間差を測定するか、定義した区間内の記述統計を抽出するには、2 つのカーソルを追加します。

Simulink.sdi.setNumCursors(2)
Simulink.sdi.setCursorPositions("left",5,"right",7)

The Simulation Data Inspector with two cursors positioned at 5 seconds and 7 seconds in Tab1.

max関数を使用して、カーソル間の Sine 信号の局所的最大サンプル値を判別します。

[t1,t2] = Simulink.sdi.getCursorPositions;
localMax = max(sine_sig,t1,t2)
localMax = 
0.9980

シミュレーション データ インスペクターを閉じてデータを保存

プロットされた信号データの検査が完了したら、シミュレーション データ インスペクターを閉じて、セッションを MLDATX ファイルに保存できます。

Simulink.sdi.close("sinusoids.mldatx")

シミュレーション データ インスペクターのプログラムによるインターフェイスを使用して、複数の実行の同じ信号に対するパラメーターを変更できます。この例では、0.1 の絶対許容誤差をデータの 4 つの実行すべての信号に追加します。

最初に、ワークスペースをクリアして、データを含むシミュレーション データ インスペクター セッションを読み込みます。セッションには、航空機用縦方向コントローラーの Simulink® モデルの 4 つのシミュレーションからのログ データが含まれます。

Simulink.sdi.clear
Simulink.sdi.load('AircraftExample.mldatx');

関数 Simulink.sdi.getRunCount を使用して、シミュレーション データ インスペクターに含まれている実行の数を取得します。この数値を、各実行で動作する for ループのインデックスとして使用できます。

count = Simulink.sdi.getRunCount;

次に、for ループを使用して 0.1 の絶対許容誤差を各実行の最初の信号に割り当てます。

for a = 1:count
    runID = Simulink.sdi.getRunIDByIndex(a);
    aircraftRun = Simulink.sdi.getRun(runID);
    sig = getSignalByIndex(aircraftRun,1);
    sig.AbsTol = 0.1;
end

関連する例

パラメーター

このアプリケーションで使用できるパラメーターはありません。

プログラムでの使用

Simulink.sdi.view では MATLAB コマンド ラインからシミュレーション データ インスペクターを開きます。

バージョン履歴

R2010b で導入

すべて展開する