用模块输出仿真数据
此示例说明 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 模块仅将最后三个收集的采样点写入工作区:70、80 和 90 秒。
To File 模块在 20、40、60 和 80 秒处收集数据。该数据同样表示在记录间隔内的每第 20 个采样时间。但是,To File 模块的采样时间是 To Workspace 模块的两倍。