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 模块仅将最后三个收集的采样点写入工作区:70、80 和 90 秒。

To File 模块在 20、40、60 和 80 秒处收集数据。该数据同样表示在记录间隔内的每第 20 个采样时间。但是,To File 模块的采样时间是 To Workspace 模块的两倍。

另请参阅

|