このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
getDataset
クラス: Simulink.sdi.WorkerRun
名前空間: Simulink.sdi
ワーカー実行データのデータセットを作成する
構文
dataset = workerRun.getDataset
dataset = workerRun.getDataset(domain)
説明
は、dataset
= workerRun.getDatasetSimulink.sdi.WorkerRun
オブジェクトに対応するデータの Simulink.SimulationData.Dataset
オブジェクトを返します。
は、dataset
= workerRun.getDataset(domain
)domain
で指定されたスコープに制限された Simulink.sdi.WorkerRun
オブジェクトに対応するデータの Simulink.SimulationData.Dataset
オブジェクトを返します。
入力引数
domain
— スコープ指定子
'signals' | 'outports'
Simulink.SimulationData.Dataset
オブジェクトで返すデータを選択するスコープ制限引数。
'signals'
は、Dataset
で返されるデータをWorkerRun
の信号に制限します。'outports'
は、Dataset
で返されるデータをWorkerRun
の出力端子データに制限します。
出力引数
dataset
— Simulink.SimulationData.Dataset
オブジェクト
Simulink.SimulationData.Dataset
オブジェクト
Simulink.sdi.WorkerRun
オブジェクトからのデータを含む Simulink.SimulationData.Dataset
オブジェクト。
例
並列シミュレーションからデータにアクセス
この例では、さまざまな入力フィルターの時定数でモデル slexAircraftExample
の並列シミュレーションを実行し、シミュレーション データ インスペクターのプログラムによるインターフェイスを使用してデータにアクセスするいくつかの方法を示します。
設定
シミュレーション データ インスペクターが空であり、Parallel Computing Toolbox のサポートがローカル ワーカーで作成された実行を自動的にインポートするように、確実に設定されていることから始めます。次に、各シミュレーションで使用するフィルター パラメーター値のベクトルを作成します。
% Make sure the Simulation Data Inspector is empty, and PCT support is % enabled. Simulink.sdi.clear Simulink.sdi.enablePCTSupport('local') % Define Ts values Ts_vals = [0.01, 0.02, 0.05, 0.1, 0.2, 0.5, 1];
並列ワーカーの初期化
並列シミュレーションを実行するローカル ワーカーのプールを未作成の場合は、gcp を使用して作成します。spmd
コード ブロックで、slexAircraftExample
モデルを読み込み、ログに記録する信号を選択します。sim
を parfor
で使用する際のデータの同時実行の問題を回避するには、シミュレーション中に使用する一時ディレクトリをワーカーごとに作成します。
p = gcp;
Starting parallel pool (parpool) using the 'local' profile ... connected to 4 workers.
spmd % Load system and select signals to log load_system('slexAircraftExample') Simulink.sdi.markSignalForStreaming('slexAircraftExample/Pilot', 1, 'on') Simulink.sdi.markSignalForStreaming('slexAircraftExample/Aircraft Dynamics Model', 4, 'on') % Create temporary directory on each worker workDir = pwd; addpath(workDir) tempDir = tempname; mkdir(tempDir) cd(tempDir) end
並列シミュレーションの実行
parfor
を使用して 7 つのシミュレーションを並列実行します。各シミュレーションの Ts
の値を選択し、モデル ワークスペースで Ts
の値を変更します。次に、シミュレーションを実行し、Simulink.sdi.WorkerRun
オブジェクトの配列を作成して、シミュレーション データ インスペクターでデータにアクセスします。parfor
ループの後、別の spmd
セグメントを使用して一時ディレクトリをワーカーから削除します。
parfor index = 1:7 % Select value for Ts Ts_val = Ts_vals(index); % Change the filter time constant and simulate modelWorkspace = get_param('slexAircraftExample','modelworkspace'); modelWorkspace.assignin('Ts',Ts_val) sim('slexAircraftExample') % Create a worker run for each simulation workerRun(index) = Simulink.sdi.WorkerRun.getLatest end spmd % Remove temporary directories cd(workDir) rmdir(tempDir, 's') rmpath(workDir) end
並列シミュレーション出力から Dataset オブジェクトを取得
getDataset
メソッドは WorkerRun
から Dataset
オブジェクトにデータを格納し、簡単に後処理できるようにします。
ds(7) = Simulink.SimulationData.Dataset; for a = 1:7 ds(a) = workerRun(a).getDataset; end ds(1)
ans = Simulink.SimulationData.Dataset '' with 2 elements Name BlockPath __________ ________________________________________ 1 [1x1 Signal] alpha, rad ...rcraftExample/Aircraft Dynamics Model 2 [1x1 Signal] Stick slexAircraftExample/Pilot - Use braces { } to access, modify, or add elements using index.
並列シミュレーション出力から DatasetRef オブジェクトを取得
ビッグ データのワークフローの場合は、getDatasetRef
メソッドを使用して WorkerRun
に関連付けられているデータを参照します。
for b = 1:7 datasetRef(b) = workerRun(b).getDatasetRef; end datasetRef(1)
ans = DatasetRef with properties: Name: 'Run 3: slexAircraftExample' Run: [1×1 Simulink.sdi.Run] numElements: 2
シミュレーション データ インスペクターで並列シミュレーション データを処理
ローカルの Run
オブジェクトを作成し、シミュレーション データ インスペクター API を使用してデータの解析と可視化を行うこともできます。この例では各実行に対するフィルター時定数値を示すタグを追加します。
for c = 1:7 Runs(c) = workerRun(c).getLocalRun; Ts_val_str = num2str(Ts_vals(c)); desc = strcat('Ts = ', Ts_val_str); Runs(c).Description = desc; Runs(c).Name = strcat('slexAircraftExample run Ts=', Ts_val_str); end
ワーカー リポジトリをクリーンアップ
ワーカーが使用したファイルをクリーンアップし、ワーカー プールで実行するその他のシミュレーション用にディスク容量を解放します。
Simulink.sdi.cleanupWorkerResources
バージョン履歴
R2017b で導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)