Main Content

ブロックによるシミュレーション データの出力

この例では、To Workspace ブロックがワークスペースに、To File ブロックがファイルにデータに書き込む方法を示します。

モデル例を開く

open_system('ex_ToWorkspace_ToFile');

既定のパラメーター値によるシミュレーション

1. 出力変数とファイルに名前を付けるには、[ブロック パラメーター] ダイアログ ボックスを使用するか、コマンド ラインを使用して、[変数名] および [ファイル名] ブロック パラメーターの値を変更します。

set_param('ex_ToWorkspace_ToFile/To Workspace',...
    'VariableName','simoutToWorkspace')

set_param('ex_ToWorkspace_ToFile/To File',...
    'FileName','simoutToFile.mat',...
    'MatrixName','simoutToFileVariable')

2. モデルのシミュレーションを実行します。

out = sim('ex_ToWorkspace_ToFile');

3. To Workspace ブロックと To File ブロックの入力信号を表示するには、スコープ ビューアーを開きます。

4. To File ブロックによって保存されたデータにアクセスするには、出力ファイルを読み込みます。

load('simoutToFile.mat')

5. To Workspace ブロックおよび To File ブロックによって保存されたデータをプロットします。

subplot(2,1,1)
plot(out.simoutToWorkspace,'-o')
legend('simoutToWorkspace')

subplot(2,1,2)
plot(simoutToFileVariable,'-o')
legend('simoutToFileVariable')

プロットから分かるように、既定のブロック パラメーター値を使用した場合、各ブロックによって保存されるデータは同じになります。

カスタム パラメーター値によるシミュレーション

1. 前のシミュレーションで得られたデータを取っておくため、出力変数とファイルに新しい名前を指定します。

set_param('ex_ToWorkspace_ToFile/To Workspace',...
    'VariableName','simoutToWorkspace2')

set_param('ex_ToWorkspace_ToFile/To File',...
    'FileName','simoutToFile2.mat',...
    'MatrixName','simoutToFileVariable2')

2. 収集するデータ量を変更するには、[直近のデータ点数に制限][間引き]、および [サンプル時間] ブロック パラメーターの値を変更します。

set_param('ex_ToWorkspace_ToFile/To Workspace',...
    'MaxDataPoints','3',...
    'Decimation','20',...
    'SampleTime','0.5')

set_param('ex_ToWorkspace_ToFile/To File',...
    'Decimation','20',...
    'SampleTime','1')

To File ブロックには、データ点を収集された最後のデータ点に制限するオプションは提供されていません。

3. コンフィギュレーション パラメーターの [単一のシミュレーション出力] を選択し、[ログ間隔] の値を変更します。

set_param('ex_ToWorkspace_ToFile',...
    'ReturnWorkspaceOutputs','on',...
    'LoggingIntervals','[20,90]')

4. モデルのシミュレーションを実行します。

out = sim('ex_ToWorkspace_ToFile');

5. To File ブロックによって保存されたデータにアクセスするには、出力ファイルを読み込みます。

load('simoutToFile2.mat')

6. To Workspace ブロックおよび To File ブロックによって保存されたデータをプロットします。

subplot(2,1,1)
hold on
plot(out.simoutToWorkspace2,'-*','DisplayName','simoutToWorkspace2')
hold off

subplot(2,1,2)
hold on
plot(simoutToFileVariable2,'-*','DisplayName','simoutToFileVariable2')
hold off

この例では、To Workspace ブロックは、20 秒、30 秒、40 秒 ... 90 秒のときにデータを収集します。データは、ログ間隔内の 20 回ごとのサンプル時間を表しています。シミュレーションが完了または一時停止すると、To Workspace ブロックは、最後に収集した 3 つのサンプル点のみをワーク スペースに書き込みます。つまり、70 秒、80 秒、および 90 秒です。

To File ブロックは、20 秒、40 秒、60 秒、80 秒のときにデータを収集します。データは、同様に、ログ間隔内の 20 回ごとのサンプル時間を表しています。ただし、To File ブロックのサンプル時間は、To Workspace ブロックのサンプル時間の 2 倍です。

参考

|