Main Content

Simulink.sdi.clear

清除仿真数据检查器中的所有数据

说明

示例

Simulink.sdi.clear 清除所有绘制的信号,并从仿真数据检查器中删除所有数据。Simulink.sdi.clear 函数不影响您在仿真数据检查器中配置的预设项或设置。使用 Simulink.sdi.clearPreferences 函数将仿真数据检查器预设项重置为默认值。使用 Simulink.sdi.clearAllSubPlots 函数清除所有绘制的信号,而不删除仿真数据检查器中的任何数据。

示例

全部折叠

此示例创建、保存和加载一个仿真数据检查器会话。该示例将数据记录在模型 slexAircraftExample 中,并在仿真数据检查器会话中可视化记录的数据。每次使用仿真数据检查器时,您都会创建一个会话并可以对其进行修改。您可以使用 Simulink.sdi.save 函数将会话的数据和相关联的可视化设置保存在一个 MLDATX 文件中。当您以后要查看数据时,可以使用 Simulink.sdi.load 函数加载会话。

将数据记录到仿真数据检查器

此示例将模型 slexAircraftExample 的仿真数据记录到仿真数据检查器。该模型未配置为记录数据。加载该模型,并标记 Stickalpha, radq, rad/sec 信号进行记录。

load_system('slexAircraftExample')

Simulink.sdi.markSignalForStreaming('slexAircraftExample/Pilot',1,'on')
Simulink.sdi.markSignalForStreaming('slexAircraftExample/Aircraft Dynamics Model',3,'on')
Simulink.sdi.markSignalForStreaming('slexAircraftExample/Aircraft Dynamics Model',4,'on')

对于此示例,运行模型的两次仿真。在第一次仿真中,使用 Pilot 模块的正弦波输出,在第二次仿真中,使用方波输出。

set_param('slexAircraftExample/Pilot','WaveForm','sine')
sim('slexAircraftExample')
ans = 
  Simulink.SimulationOutput:
                logsout: [1x1 Simulink.SimulationData.Dataset] 
                   tout: [1235x1 double] 
                   xout: [1x1 Simulink.SimulationData.Dataset] 
                   yout: [1x1 Simulink.SimulationData.Dataset] 

     SimulationMetadata: [1x1 Simulink.SimulationMetadata] 
           ErrorMessage: [0x0 char] 

set_param('slexAircraftExample/Pilot','WaveForm','square')
sim('slexAircraftExample')
ans = 
  Simulink.SimulationOutput:
                logsout: [1x1 Simulink.SimulationData.Dataset] 
                   tout: [1381x1 double] 
                   xout: [1x1 Simulink.SimulationData.Dataset] 
                   yout: [1x1 Simulink.SimulationData.Dataset] 

     SimulationMetadata: [1x1 Simulink.SimulationMetadata] 
           ErrorMessage: [0x0 char] 

可视化记录的数据

您可以使用仿真数据检查器编程接口来访问记录的仿真数据。当您使用仿真数据检查器编程接口访问数据时,您可以使用函数在仿真数据检查器中创建绘图。

首先,访问最近两次运行的运行 ID,然后获取对应的 Simulink.sdi.Run 对象。Run 对象允许您访问记录的仿真数据。

runIDs = Simulink.sdi.getAllRunIDs;
sineRunID = runIDs(end-1);
squareRunID = runIDs(end);

sineRun = Simulink.sdi.getRun(sineRunID);
squareRun = Simulink.sdi.getRun(squareRunID);

假设您要分析模型的输入和输出之间的关系。获取两次仿真运行的输入和输出信号的 Simulink.sdi.Signal 对象。

sineOut = getSignalByIndex(sineRun,1);
sineIn = getSignalByIndex(sineRun,3);

squareOut = getSignalByIndex(squareRun,1);
squareIn = getSignalByIndex(squareRun,3);

将仿真数据检查器中的子图布局更改为 2×1,并将第一次仿真运行输出的信号绘制在顶部绘图中,将第二次运行输出的信号绘制在底部绘图中。

Simulink.sdi.setSubPlotLayout(2,1)

plotOnSubPlot(sineIn,1,1,true)
plotOnSubPlot(sineOut,1,1,true)

plotOnSubPlot(squareIn,2,1,true)
plotOnSubPlot(squareOut,2,1,true)

保存仿真数据检查器会话

要查看仿真数据检查器中的绘图数据,请在命令行窗口中输入 Simulink.sdi.view

然后,将仿真数据检查器会话保存为 MLDATX 文件。

Simulink.sdi.save('myData.mldatx')

加载仿真数据检查器会话

为了模拟您要稍后返回查看相同数据的场景,请清除仿真数据检查器中的数据,并将子图布局重置为 1×1

Simulink.sdi.clear
Simulink.sdi.setSubPlotLayout(1,1)

加载会话文件并继续处理数据。您可以使用 Simulink.sdi.view 函数打开仿真数据检查器并查看结果。

Simulink.sdi.load('myData.mldatx');

版本历史记录

在 R2011b 中推出