メインコンテンツ

Simulink.sdi.getRun

シミュレーション データ インスペクターの実行のデータにアクセス

説明

run = Simulink.sdi.getRun(runID) は、runID に対応する実行内のデータへのアクセスを提供する Simulink.sdi.Run オブジェクトを返します。シミュレーション データ インスペクターは実行の作成時に実行 ID を割り当てます。実行用の実行 ID は Simulink.sdi.getAllRunIDs または Simulink.sdi.getRunIDByIndex を使用して取得できます。

すべて折りたたむ

シミュレーション データ インスペクターのプログラムによるインターフェイスを使用して実行された多くのタスクは、まず解析するログ データまたはインポートされたデータに対応する Simulink.sdi.Run オブジェクトにアクセスします。たとえば、Run オブジェクトを使用して、実行内の個々の信号に対応する Simulink.sdi.Signal オブジェクトにアクセスできます。

この例では、関数 Simulink.sdi.Run.getLatest、関数 Simulink.sdi.getCurrentSimulationRun、または関数 Simulink.sdi.getRun を使用して Run オブジェクトにアクセスする方法を示します。

実行の作成

モデル sldemo_fuelsys はログ作成用に構成済みです。モデルのシミュレーションを実行するときに、シミュレーション データ インスペクターは自動的に実行を作成し、実行 ID を割り当てます。

load_system('sldemo_fuelsys')
sim('sldemo_fuelsys')

Simulink.sdi.Run.getLatest を使用した実行オブジェクトの取得

この例では、モデルをシミュレートしたときに作成された実行がシミュレーション データ インスペクターで最後に作成された実行です。最後に作成された実行にアクセスする場合は、関数 Simulink.sdi.Run.getLatest を使用します。

fuelsysRun = Simulink.sdi.Run.getLatest;

Simulink.sdi.getCurrentSimulationRun を使用した実行オブジェクトの取得

アクセスする実行は、シミュレーション データ インスペクターで最後に作成された実行ではない可能性があります。実行がモデルの最新のシミュレーションに対応する場合、関数 Simulink.sdi.getCurrentSimulationRun を使用して Run オブジェクトにアクセスできます。シミュレーションによってデータがシミュレーション データ インスペクターにストリーミングされるときに、関数 Simulink.sdi.getCurrentSimulationRun を使用して進行中のシミュレーションのデータにアクセスすることもできます。この関数は、複数のモデルを操作している場合に便利です。

この例では、モデルをシミュレートしたときに作成された実行が sldemo_fuelsys モデルの現在のシミュレーション実行です。

fuelsysRun = Simulink.sdi.getCurrentSimulationRun('sldemo_fuelsys');

実行 ID からの実行オブジェクトの取得

タスクにも実行 ID が必要である場合、関数 Simulink.sdi.getRun を使用して、実行データとメタデータが含まれる対応する Simulink.sdi.Run オブジェクトを取得できます。

runIDs = Simulink.sdi.getAllRunIDs;
runID = runIDs(end);
fuelsysRun = Simulink.sdi.getRun(runID);

この例では、信号を記録して作成されたシミュレーション データ インスペクター実行の Simulink.sdi.Run オブジェクトにアクセスする方法を示します。Simulink.sdi.Run オブジェクトから、ログに記録された信号データとメタデータが含まれる Simulink.sdi.Signal オブジェクトを取得できます。Signal オブジェクトと関数 plotOnSubPlot を使用して、データをシミュレーション データ インスペクターにプロットできます。

シミュレーション実行の作成および Run オブジェクトへのアクセス

vdp モデルは 2 つの信号を記録します。ログ データが含まれるシミュレーション実行を作成するには、モデルのシミュレーションを実行します。

mdl = "vdp";
sim(mdl);

シミュレーション データ インスペクターは、シミュレーションで作成された各実行に一意の数値実行 ID を割り当てるか、データをインポートするか、セッションを開くことによって実行を追跡します。直前に実行したシミュレーションの実行オブジェクトにアクセスするには、関数 Simulink.sdi.getAllRunIDs を使用して、返されるベクトルで最後の実行 ID を取ります。

runIDs = Simulink.sdi.getAllRunIDs;
runID = runIDs(end);

実行の実行 ID を取得すると、関数 Simulink.sdi.getRun を使用して実行に対応する Simulink.sdi.Run オブジェクトを取得できます。Run オブジェクトを使用して、実行内の信号の数など、実行に関連付けられているメタデータをチェックできます。

vdpRun = Simulink.sdi.getRun(runID);

vdpRun.SignalCount
ans = int32

4

Signal オブジェクトを使用したデータのプロット

関数 getSignalByIndex を使用して、Run オブジェクト vdpRun から信号にアクセスします。

signal1 = getSignalByIndex(vdpRun,1);
signal2 = getSignalByIndex(vdpRun,2);

関数 Simulink.sdi.setSubPlotLayout を使用して 2 行 1 列のレイアウトを指定します。

Simulink.sdi.setSubPlotLayout(2,1)

データをプロットする前に、既にプロットされている任意のデータを関数 Simulink.sdi.clearAllSubPlots を使用して消去します。

Simulink.sdi.clearAllSubPlots

サブプロットごとに 1 つの信号をプロットします。最初のサブプロットで信号をプロットするために、信号の checked プロパティを設定できます。最初のサブプロット以外のサブプロットで信号をプロットするには、関数 plotOnSubPlot を使用します。

signal1.Checked = true;
plotOnSubPlot(signal2,2,1,true);

プロットされたデータの表示

直前に作成したプロットを表示するには、関数 Simulink.sdi.view を使用してシミュレーション データ インスペクターを開きます。

The x1 and x2 signals plotted in the Simulation Data Inspector

入力引数

すべて折りたたむ

Simulink.sdi.Run オブジェクトを必要としている実行の実行 ID。シミュレーション データ インスペクターは実行の作成時に実行 ID を割り当てます。実行用の実行 ID は、Simulink.sdi.getAllRunIDs または Simulink.sdi.getRunIDByIndex を使用して取得できます。

出力引数

すべて折りたたむ

実行 ID に対応する実行の Simulink.sdi.Run オブジェクト。

バージョン履歴

R2011b で導入