Main Content

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

Simulink.sdi.Run.create

シミュレーション データ インスペクターに実行をインポートする

説明

runObj = Simulink.sdi.Run.create は、空の Simulink.sdi.Run オブジェクト runObj を作成します。関数 add または関数 Simulink.sdi.addToRun を使用して、Run オブジェクトに信号を追加できます。

runObj = Simulink.sdi.Run.create(runName)runName という名前の空の実行を作成します。

runObj = Simulink.sdi.Run.create(var) はスカラー ワークスペース変数 var 内のデータを含む実行を作成します。実行は入力変数に従って名前が付けられます。たとえば、vartimeseries オブジェクトの場合、実行名は timeseries オブジェクトの Name プロパティから取得されます。

runObj = Simulink.sdi.Run.create(runName,'file',filename) は、filename で指定されるファイル内のデータを含む実行を作成します。

runObj = Simulink.sdi.Run.create(runName,'file',filename,reader) はファイル リーダー reader を使用して、ファイル filename 内のデータを含む実行を作成します。インポートするデータをもつファイルをサポートする複数のファイル リーダーがシミュレーション データ インスペクターに登録される場合は、この構文を使用します。ファイルに使用できるリーダーを判別するには、関数 io.reader.getSupportedReadersForFile を使用します。

runObj = Simulink.sdi.Run.create(runName,'namevalue',sourceNames,sigValues) は cell 配列 sigValues 内のデータを含む実行を作成します。cell 配列 sourceNamessigValues cell 配列からインポートされた信号の RootSourceTimeSource、および DataSource プロパティを設定するために使用されるソース名を指定します。

すべて折りたたむ

ベース ワークスペースまたはファイル内のデータから実行を作成することで、データをプログラムによってシミュレーション データ インスペクターにインポートできます。この例では、データをワークスペースで作成してから、データが含まれるシミュレーション データ インスペクターの実行を作成するいくつかの方法を示します。

データの作成

ワークスペースでデータを作成します。シミュレーション データ インスペクターは時系列データを多くの形式でサポートします。この例では、timeseries形式とSimulink.SimulationData.Dataset形式を使用してデータを作成し、そのデータを MAT ファイルに保存します。

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

time = 0:0.2:20;

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';

Dataset 形式を使用すると、関連する信号データをまとめて 1 つのオブジェクトにグループ化できます。Dataset 形式はログ データの既定の形式であり、シミュレーションの入力データの読み込みでサポートされています。正弦波 timeseries データを含む Dataset オブジェクトを作成します。

sinusoids_ds = Simulink.SimulationData.Dataset;
sinusoids_ds = addElement(sinusoids_ds,cos_ts);
sinusoids_ds = addElement(sinusoids_ds,sine_ts);

各信号を係数 2 を使用してスケーリングし、Dataset オブジェクトを作成して結果の信号データを含めます。

doubSine = 2*sine_ts;
doubCos = 2*cos_ts;

doubSinusoids_ds = Simulink.SimulationData.Dataset;
doubSinusoids_ds = addElement(doubSinusoids_ds,doubSine);
doubSinusoids_ds = addElement(doubSinusoids_ds,doubCos);

最後に、timeseries データを MAT ファイルに保存します。

save sinusoids.mat sine_ts cos_ts

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

各セクションで作成する実行を表示するには、MATLAB™ コマンド ウィンドウに Simulink.sdi.view を入力してシミュレーション データ インスペクターを開きます。

Simulink.sdi.Run オブジェクトを使用する実行の作成

空の実行を作成し、ワークスペースまたはファイルのデータを実行に追加することで、シミュレーション データ インスペクターでデータを実行にインポートできます。タスクに応じて、関数Simulink.sdi.Run.createまたは関数Simulink.sdi.createRunを使用して空の実行を作成できます。関数 Simulink.sdi.Run.create は新しい実行のSimulink.sdi.Runオブジェクトを返し、関数 Simulink.sdi.createRun は新しい実行の実行 ID を返します。

この例では関数 Simulink.sdi.Run.create を使用して空の実行を作成し、その実行にわかりやすい名前と説明を指定してから、関数 add を使用して正弦および余弦の timeseries データを追加します。

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

add(sinusoidsRun,'vars',sine_ts,cos_ts)

この例では関数 Simulink.sdi.createRun を使用してシミュレーション データ インスペクターに My Waves という新しい実行を作成してから、関数 Simulink.sdi.addToRun を使用して正弦および余弦の timeseries データを実行に追加します。

runID = Simulink.sdi.createRun('My Waves');
signalID = Simulink.sdi.addToRun(runID,'vars',sine_ts,cos_ts);

ワークスペース変数からの実行の作成

ワークスペース内の単一の変数から実行を作成できます。実行の作成後、データを追加したり、別の実行を作成してその他のデータを含めたりすることができます。実行を作成するために使用する変数は、1 つの信号のみに対応するデータをもつ timeseries オブジェクトにすることも、あるいは複数の信号を含む Dataset オブジェクトにすることもできます。

この構文を使用して単一のワークスペース変数から実行を作成するときに、実行はその実行を作成するために使用されたオブジェクトと同じ名前を取得します。

runID = Simulink.sdi.createRun(sine_ts);

関数 Simulink.sdi.createRun は、作成する実行の実行 ID を返します。関数Simulink.sdi.getRunを使用して、実行の Run オブジェクトにアクセスできます。

sineRun = Simulink.sdi.getRun(runID);
sineRun.Name
ans = 
'Sine, T=5'

複数のワークスペース変数から実行を作成

データがワークスペースの複数の変数に存在している場合、vars オプションを指定した関数 Simulink.sdi.createRun を使用して複数の変数からシミュレーション データ インスペクターの単一の実行にデータをインポートできます。この構文を使用して、指定した名前を使用する単一の変数の実行を作成することもできます。

この例では、正弦および余弦の timeseries オブジェクトのデータを含む My Sinusoids という実行を作成します。

runID = Simulink.sdi.createRun('My Sinusoids','vars',sine_ts,cos_ts);

実行の作成とソース名の指定

関数 Simulink.sdi.createRunnamevalue オプションを使用して実行を作成し、実行内の信号の名前を指定できます。この構文は、階層データから個々のリーフ信号をインポートする場合に特に役立つことがあります。

この例では、両方の Dataset オブジェクトのデータが含まれる実行を作成します。各 Dataset オブジェクトには複数の信号のデータが含まれるため、インポートされた実行データには階層があります。この例で使用される名前と値の構文は、各 Dataset オブジェクトに対応する階層ノードの名前を指定します。

runID = Simulink.sdi.createRun('Waves','namevalue',{'Sinusoids',...
    'BigSinusoids'},{sinusoids_ds,doubSinusoids_ds});

ファイル内のデータから実行を作成

関数 Simulink.sdi.createRun を使用して、ファイルのデータをシミュレーション データ インスペクターにインポートすることもできます。simusoids.mat ファイルのデータをインポートするには、file オプションを使用します。

runID = Simulink.sdi.createRun('Wave Data','file','sinusoids.mat');

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

実行からデータを作成

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 = [0 1 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')

入力引数

すべて折りたたむ

シミュレーション データ インスペクター内の実行。文字ベクトルまたは string として指定します。

例: 'Baseline Simulation'

シミュレーション データ インスペクター内の実行にインポートするデータを含むベース ワークスペース内の変数。シミュレーション データ インスペクターはサンプル値がサンプル時間に関連付けられている時間ベースのデータをサポートします。シミュレーション データ インスペクターでは、timeseriesSimulink.SimulationData.Dataset を含めたすべての読み込みデータ形式とログ データ形式がサポートされます。

例: myData

インポートしたデータのソース名。文字ベクトルの cell 配列として指定します。ソース名は、sigValues 入力で指定したデータから作成された Simulink.sdi.Signal オブジェクトの RootSourceTimeSource、および DataSource プロパティを設定するために使用されます。

2 番目の引数に対して 'namevalue' を指定する場合は sourceNames 入力を指定します。

例: {'sig1','sig2'}

インポートするデータ。ワークスペース変数の cell 配列として指定します。

2 番目の引数に対して 'namevalue' を指定する場合は sigValues 入力を指定します。

例: {var1,var2}

インポートするデータをもつファイルの名前。文字ベクトルとして指定します。2 番目の引数に対して 'file' を指定する場合は filename 入力を指定します。

シミュレーション データ インスペクターに組み込まれているファイル リーダーを使用して、以下のタイプのファイルから実行を作成できます。

組み込みリーダーではサポートされないファイルからデータをインポートしなければならない場合は、io.reader クラスを使用して独自のリーダーを書き込むことができます。組み込みリーダーの代わりに、任意のファイル拡張子に対して使用するカスタム リーダーを書き込むこともできます。例については、カスタム ファイル リーダーを使用したデータのインポートを参照してください。

例: 'simulation.mat'

ファイルからのデータのインポートに使用するファイル リーダー。文字配列として指定します。シミュレーション データ インスペクターは、ファイルで使用できる場合は登録されたカスタム リーダーの使用を優先します。リーダーを指定しない場合、シミュレーション データ インスペクターはファイルに対して最初に登録されたカスタム リーダーを使用します。カスタム リーダーが登録されていない場合、データは組み込みリーダーを使用してインポートされます。

次の場合にリーダー入力を指定します。

  • 組み込みリーダーを使用してカスタム リーダーでもサポートされているファイルのデータをインポートする場合。

  • 登録されている複数のカスタム リーダーがファイルをサポートしている場合。

ファイルのインポートに使用できるリーダーを判別するには、関数 io.reader.getSupportedReadersForFile を使用します。

例: 'MyExcelReader'

例: 'built-in'

出力引数

すべて折りたたむ

インポート データ。Simulink.sdi.Run オブジェクトとして返されます。空の Run オブジェクトを作成する場合、関数 add または関数 Simulink.sdi.addToRun を使用してベース ワークスペースまたはファイルからデータをインポートします。

R2017b で導入