Main Content

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

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

説明

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

シミュレーション データ インスペクターを使用して、ワークフローの複数の段階で時系列データを検証および比較できます。この例では、シミュレーション データ インスペクターによる設計サイクルのすべての段階のサポート方法について示します。

  1. シミュレーション データ インスペクターでのシミュレーション データの表示またはImport Data from Workspace or File into Simulation Data Inspector

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

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

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

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

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

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

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

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

The Inspect pane of the Simulation Data Inspector shows three subplots. 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 を使用して、シミュレーション データ インスペクターを開いてデータをプロットします。

すべて展開する

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

実行のデータの作成

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

time = linspace(0,20,100);

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 を使用して、ワークスペースで作成したデータを空の実行に追加します。

add(sinusoidsRun,"vars",sine_ts,cos_ts);

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

関数 getSignalByIndex を使用して、信号データが含まれる Simulink.sdi.Signal オブジェクトにアクセスします。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 = "--";

関数 Simulink.sdi.setSubPlotLayout を使用して、シミュレーション データ インスペクターのプロット領域で 21 列のサブプロット レイアウトを設定します。次に、関数 plotOnSubplot を使用して、上のサブプロットに正弦信号をプロットし、下のサブプロットに余弦信号をプロットします。

Simulink.sdi.setSubPlotLayout(2,1);

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

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

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

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

関数 Simulink.sdi.plot を使用して、シミュレーション結果をシミュレーション データ インスペクターでプロットできます。モデル vdp を開きます。このモデルはファン デル ポールの 2 階微分方程式をモデル化します。モデルの詳細については、Van der Pol Oscillatorを参照してください。

mdl = "vdp";
open_system(mdl)

The vdp model

モデルをシミュレートします。モデルは 2 つの信号 x1 および x2 を記録します。シミュレーション結果は、out という名前の単一の SimulationOutput オブジェクトに保存されます。

out = sim(mdl);

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

Simulink.sdi.plot(out);

Simulation results are plotted on two vertically aligned subplots in the Simulation Data Inspector. The x1 signal is plotted in the upper subplot. The x2 signal is plotted in the lower subplot.

シミュレーション データ インスペクターのプログラムによるインターフェイスを使用して、複数の実行の同じ信号に対するパラメーターを変更できます。この例では、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 で導入