ブロックによるシミュレーション データの出力
この例では、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 倍です。