Main Content

Simulink.sdi.getCurrentSimulationRun

進行中のシミュレーションまたは最後に完了したシミュレーションのデータにアクセスする

R2020a 以降

説明

runObj = Simulink.sdi.getCurrentSimulationRun(mdl) は、mdl によって指定されたモデルの進行中または最後に完了したシミュレーションに対応する Simulink.sdi.Run オブジェクトを返します。最後に完了したシミュレーションに対応する Run オブジェクトを削除した場合、関数 Simulink.sdi.getCurrentSimulationRun は空を返します。

すべて折りたたむ

シミュレーション データ インスペクターのプログラムによるインターフェイスを使用して実行された多くのタスクは、まず解析するログ データまたはインポートされたデータに対応する 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);

入力引数

すべて折りたたむ

アクセスするシミュレーション データが作成されたモデルの名前。string または文字配列として指定します。

例: 'vdp'

データ型: char | string

出力引数

すべて折りたたむ

進行中または最後に完了したシミュレーションに対応する Simulink.sdi.Run オブジェクト。

ヒント

  • 関数 Simulink.sdi.getCurrentSimulationRun を使用して、StopFcn モデル コールバック関数のログ データにアクセスできます。StopFcn コールバックの実行時にワークスペース変数データを使用することはできませんが、データがシミュレーション データ インスペクターにストリーミングされるため Run オブジェクトは使用できます。

  • 関数 Simulink.sdi.getCurrentSimulationRun を使用して実行データを並列ワーカーで解析し、実行データをシミュレーション データ インスペクターに送信するかどうかを判断できます。

バージョン履歴

R2020a で導入