Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

Simulink.sdi.clear

シミュレーション データ インスペクターからすべてのデータを消去する

説明

Simulink.sdi.clear は、シミュレーション データ インスペクターからすべてのプロットされた信号をクリアし、すべてのデータを削除します。関数 Simulink.sdi.clear は、シミュレーション データ インスペクターで構成した基本設定または設定に影響しません。関数 Simulink.sdi.clearPreferences を使用して、シミュレーション データ インスペクターの基本設定を既定値に戻します。関数 Simulink.sdi.clearAllSubPlots を使用して、シミュレーション データ インスペクターからデータを一切削除することなく、プロットされた信号をすべてクリアします。

すべて折りたたむ

この例では、シミュレーション データ インスペクター セッションを作成、保存、および読み込みます。この例では、データをモデル slexAircraftExample に記録し、ログ データをシミュレーション データ インスペクター セッションで可視化します。シミュレーション データ インスペクターを使用するたびに、セッションを作成および変更します。関数 Simulink.sdi.save を使用して、セッションのデータおよび関連する可視化設定を MLDATX ファイルに保存できます。後でデータを確認する場合は、関数 Simulink.sdi.load を使用してセッションを読み込むことができます。

シミュレーション データ インスペクターへのデータのログ記録

この例では、モデル slexAircraftExample のシミュレーションのデータをシミュレーション データ インスペクターに記録します。モデルはデータを記録するように設定されていません。モデルを読み込み、Stick 信号、alpha, rad 信号、および q, rad/sec 信号をログ記録するようマークします。

load_system('slexAircraftExample')

Simulink.sdi.markSignalForStreaming('slexAircraftExample/Pilot',1,'on')
Simulink.sdi.markSignalForStreaming('slexAircraftExample/Aircraft Dynamics Model',3,'on')
Simulink.sdi.markSignalForStreaming('slexAircraftExample/Aircraft Dynamics Model',4,'on')

この例では、モデルの 2 つのシミュレーションを実行します。最初のシミュレーションでは、Pilot ブロックからの正弦波出力を使用し、2 番目のシミュレーションでは矩形波出力を使用します。

set_param('slexAircraftExample/Pilot','WaveForm','sine')
sim('slexAircraftExample')

set_param('slexAircraftExample/Pilot','WaveForm','square')
sim('slexAircraftExample')

ログ データの可視化

シミュレーション データ インスペクターのプログラムによるインターフェイスを使用して、シミュレーションのログ データにアクセスできます。シミュレーション データ インスペクターのプログラムによるインターフェイスを使用してデータにアクセスするときに、関数を使用してシミュレーション データ インスペクターでプロットを作成できます。

まず、最新の 2 つの実行の実行 ID にアクセスしてから、対応する Simulink.sdi.Run オブジェクトを取得します。Run オブジェクトを使用することで、シミュレーションのログ データにアクセスできます。

runIDs = Simulink.sdi.getAllRunIDs;
sineRunID = runIDs(end-1);
squareRunID = runIDs(end);

sineRun = Simulink.sdi.getRun(sineRunID);
squareRun = Simulink.sdi.getRun(squareRunID);

モデルの入力と出力間の関係を解析するとします。2 つのシミュレーション実行から入力信号と出力信号の Simulink.sdi.Signal オブジェクトを取得します。

sineOut = getSignalByIndex(sineRun,1);
sineIn = getSignalByIndex(sineRun,3);

squareOut = getSignalByIndex(squareRun,1);
squareIn = getSignalByIndex(squareRun,3);

シミュレーション データ インスペクターでのサブプロットのレイアウトを 21 列に変更し、最初のシミュレーション実行の信号を上部のプロットに、2 番目の実行の信号を下部のプロットにプロットします。

Simulink.sdi.setSubPlotLayout(2,1)

plotOnSubPlot(sineIn,1,1,true)
plotOnSubPlot(sineOut,1,1,true)

plotOnSubPlot(squareIn,2,1,true)
plotOnSubPlot(squareOut,2,1,true)

シミュレーション データ インスペクター セッションの保存

プロットされたデータをシミュレーション データ インスペクターで表示するには、コマンド ウィンドウに Simulink.sdi.view と入力します。

次に、シミュレーション データ インスペクター セッションを MLDATX ファイルとして保存します。

Simulink.sdi.save('myData.mldatx')

シミュレーション データ インスペクター セッションの読み込み

シナリオを再現して後で同じデータを参照するには、シミュレーション データ インスペクターからデータをクリアして、サブプロットのレイアウトを 11 列にリセットします。

Simulink.sdi.clear
Simulink.sdi.setSubPlotLayout(1,1)

セッション ファイルを読み込み、データの操作を再開します。シミュレーション データ インスペクターを開いて、関数 Simulink.sdi.view を使用して結果を表示することができます。

Simulink.sdi.load('myData.mldatx');
R2011b で導入