Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

在仿真数据检查器中查看仿真数据

您可以使用仿真数据检查器来可视化您在整个设计过程中生成的数据,包括您在仿真期间记录的数据。您还可以将测试数据和其他记录的数据导入仿真数据检查器,以便与记录的仿真数据一起进行检查和分析。有关将数据导入仿真数据检查器的详细信息,请参阅Import Data from Workspace or File into Simulation Data Inspector

您在 Simulink® 模型中记录的仿真数据会记录到仿真数据检查器中。仿真数据检查器提供几种类型的绘图,以便您轻松创建复杂的数据可视化。有关详细信息,请参阅 Create Plots Using the Simulation Data Inspector

查看记录的数据

当您仿真模型时,许多类型的记录数据会自动流式传输到仿真数据检查器。流式传输到仿真数据检查器的数据在仿真之后依旧可用。其他类型的仿真记录数据则仅在仿真暂停、停止或完成时才会出现在仿真数据检查器中。要查看这些类型的记录数据,请打开“配置参数”对话框,并在数据导入/导出窗格中,选择在仿真数据检查器中记录所记录的工作区数据。有关记录仿真数据的详细信息,请参阅保存仿真数据

仿真数据的类型仿真期间和仿真后可以查看的数据只能在仿真暂停、停止或完成后查看的数据
输出

使用 Dataset 格式记录的输出数据

当选中在仿真数据检查器中记录所记录的工作区数据参数时以 Dataset 之外的格式记录的输出数据

信号数据

使用以下方法之一记录的信号数据:

当选中在仿真数据检查器中记录所记录的工作区数据参数时,使用以下项记录的信号数据:

  • To File 模块

  • 配置为将数据记录到工作区的 Scope 模块

状态

使用 Dataset 格式记录的状态数据

当选中在仿真数据检查器中记录所记录的工作区数据参数时以 Dataset 之外的格式记录的状态数据

数据存储所有数据存储数据不适用

注意

当您使用 StructureArray 格式记录状态和输出时,您还必须记录数据记录到仿真数据检查器的时间。

仿真数据检查器在检查窗格的表中显示可用数据。要绘制信号,请选中信号旁边的复选框。您可以修改布局并添加不同可视化来分析仿真数据。

The Inspect pane of the Simulation Data Inspector shows a time plot of the alpha, rad signal for two runs.

仿真数据检查器使用存档管理传入的仿真数据。默认情况下,当您开始新仿真时,上一次运行会移至存档中。您可以从存档中绘制信号,也可以将关注的运行拖回工作区域中。

查看复数数据

complexSignal 模型记录两个复信号。Complex Square Wave 信号通过 Outport 模块来记录。Complex Sine Wave 信号通过信号记录来记录 。打开模型。

mdl = "complexSignal";
open_system(mdl)

The complexSignal model

对模型进行仿真。然后,在仿真数据检查器中绘制仿真数据。

out = sim(mdl);
Simulink.sdi.plot(out);

您可以使用仿真数据检查器中的属性窗格来控制如何可视化复信号。您可以从下列复信号格式选项中进行选择:

  • Magnitude

  • Magnitude-Phase

  • Phase

  • Real-Imaginary

从信号表中选择 Complex Square Wave 信号。然后,在复信号格式下拉菜单中,选择 Real-Imaginary。如果您为复信号格式选择 Magnitude-PhaseReal-Imaginary,仿真数据检查器会绘制信号的两个分量。对于 Real-Imaginary 格式的信号,线条颜色指定信号的实部的颜色,而虚部则以该线条颜色的不同深度显示。

The Complex Square Wave and Complex Sine Wave signals plotted in the Simulation Data Inspector using Real-Imaginary format

当您使用信号记录来记录数据时,您还可以使用模型中信号的 Instrumentation Properties 来更改信号的默认复信号格式。要访问 Complex Sine Wave 信号的插桩属性,请右键点击该信号的记录标记,然后选择属性。从复信号格式下拉菜单中,选择 Magnitude-Phase

再次仿真模型,以使用 Magnitude-Phase 格式在仿真数据检查器中可视化 Complex Sine Wave 信号。

out = sim(mdl);

The Simulation Data Inspector showing the Complex Square wave plotted using the Real-Imaginary format and the Complex Sine Wave is plotted using the Magnitude-Phase format.

查看字符串数据

您可以在仿真数据检查器中使用信号数据来记录和查看字符串数据。在模型 stringData 中,正弦波模块的值控制开关是否向输出发送读取 PositiveNegative 的字符串。打开模型。

mdl = "stringData";
open_system(mdl)

对模型进行仿真。

out = sim(mdl);

打开仿真数据检查器。从信号表中选择 Sine WaveSwitch 信号来绘制结果。字符串信号显示在图形查看区域的底部。

A sine wave and string data plotted in the Simulation Data Inspector

选择显示/隐藏数据游标 来检查字符串信号值与正弦信号值的对应关系。

A cursor displaying the values of the sine wave and the string data at time 2.8. The sine wave has a value of 0.32. The string data has a value of "Positive".

当您在一个绘图上绘制多个字符串信号时,信号会按照它们仿真或导入的顺序堆叠,最新的信号位于最上层。例如,更改控制开关的正弦波的相位。然后,再次对模型进行仿真。在仿真数据检查器中,选择两次运行的所有信号,以在一个绘图上可视化两次仿真结果。您可以更改线条颜色以更好地区分这两次运行。第二次运行输出的字符串数据堆叠在第一次运行输出的字符串数据之上。

The results of two runs plotted in the Simulation Data Inspector. The string data from the newest run is stacked on top of the string data from the previous run.

查看多维数据

您可以在仿真数据检查器中查看和分析多维信号数据。要查看一个具有多维信号值的信号,请使用数组图。模型 MultiDim 包含 6 个 Sine Wave 模块,每个模块与前一个模块的垂直位移为 1,并连接到一个 Mux 模块。使用 Outport 模块将 Mux 模块的输出记录到仿真数据检查器中。

对模型进行仿真。然后打开仿真数据检查器。

mdl = "MultiDim";
sim(mdl);
Simulink.sdi.view

要在数组图上绘制数据,请点击“可视化和布局”。然后,选择数组。在数组图上绘制一个具有多维采样值的信号时,针状图会显示在给定时间每个采样的值。时间显示在图的右上角。信号的维度显示在信号名称旁边的括号中。例如,由于多维信号 MultiDimSig 包含六个通道,因此数据的数组图有六个标记。

An array plot in the Simulation Data Inspector displaying the sample values of the multidimensional signal MultiDimSig at time t=10 seconds

您还可以将一个多维信号的表示形式从一个具有多维采样值的信号转换为一组具有标量采样值的信号,后者称为通道。转换为通道后,您可以使用时间图、XY 绘图、地图或迷你图绘制数据。要查看在数组图上绘制多维信号与在时间图上绘制单个通道之间的差异,请再次运行仿真。

sim(mdl);

要将第二次运行中的多维信号转换为通道,请在仿真数据检查器中点击信号名称旁边的信号维度(显示在括号中)。然后,选择转换为通道

Conversion menu for a multidimensional signal in the Simulation Data Inspector

在“可视化和布局” 菜单中,选择一个 2x1 布局。下部子图是在数组图中用来自第一次运行的多维采样值绘制信号。上部子图是在时间图中绘制来自第二次运行的通道。要查看每个通道在特定时间的值,请在时间图中添加游标。要在子图中添加一个游标,请点击“显示/隐藏游标” 旁边的箭头。然后,选择一个游标

请注意,当您拖动游标时,数组图中的采样值会随之变化。在您随着时间的推移移动游标时,数组图中的每个采样值都会变化以显示该元素在该特定时间的值。在本例中,由于两次运行包含相同的数据,因此数组图中的值与时间图中每个对应通道的游标显示的值匹配。例如,当游标位于 3.6 秒处时,数组图右上角显示的时间也是 3.6,并且数组图中第一个采样的值等于时间图中 MultiDimSig(1) 信号的游标显示值。

The Simulation Data Inspector with two vertically aligned subplots. In the upper subplot, six sine wave signals are plotted in a time plot, and a cursor is positioned at 3.6 seconds. In the lower subplot, the MultiDimSig signal with multidimensional sample values is plotted in an array plot at 3.6 seconds.

您还可以通过回放数据来查看数组图中的值随时间的变化。点击显示/隐藏回放控件 。然后,点击回放

有关检查和分析多维信号数据(包括基于帧的数据)的详细信息,请参阅Analyze Multidimensional Signal Data

查看基于帧的数据

有些应用将一个信号的若干采样缓冲到一个中,通过一次性计算进行处理,而不是单独处理帧中的每个采样。当您处理基于帧的信号时,您可以逐帧分析数据,也可以删除缓冲并在没有帧的情况下分析信号。

以帧为单位(而不是逐点)处理数据可在某些应用场景实现所需的性能提升。当您将基于帧的信号记录为基于采样的信号时,您可以在仿真后在仿真数据检查器中转换帧。有关在仿真数据检查器中查看基于帧的数据的详细信息,请参阅View Multidimensional Signals Using the Array Plot

查看基于事件的数据

您可以将事件数据记录到或导入仿真数据检查器。在此示例中,模型 SimpleMessagesModel 使用信号记录来记录信号数据和消息数据。有关该模型的详细信息,请参阅Animate and Understand Sending and Receiving Messages

mdl = "SimpleMessagesModel";
open_system(mdl)

The SimpleMessagesModel model

对模型进行仿真。仿真期间:

  • Sine Wave 模块生成正弦波信号。

  • 每隔 0.1 秒,Send 模块就将正弦波信号的值转换为一条消息,并将其发送到 Queue 模块。

  • Queue 模块向 Receive 模块发送消息。

  • Receive 模块生成重新构造的正弦波信号。

out = sim(mdl);

在仿真数据检查器中绘制数据。仿真数据检查器将消息数据显示为针状图,其中针状的值是在给定仿真时间下用作消息有效负载的正弦波采样。

Simulink.sdi.plot(out);

The Sine Wave:1 and Receive:1 signals and the Send:1 and Queue:1 messages plotted in the Simulation Data Inspector. The messages are displayed as stem plots. The Send:1 signal is selected. Because Send:1 is a message, in the Properties pane, the Interp Method is none (event-based).

另请参阅

函数

相关主题