在仿真数据检查器中查看仿真数据
您可以使用仿真数据检查器来可视化您在整个设计过程中生成的数据,包括您在仿真期间记录的数据。您还可以将测试数据和其他记录的数据导入仿真数据检查器,以便与记录的仿真数据一起进行检查和分析。有关将数据导入仿真数据检查器的详细信息,请参阅Import Data from Workspace or File into Simulation Data Inspector。
您在 Simulink® 模型中记录的仿真数据会记录到仿真数据检查器中。仿真数据检查器提供几种类型的绘图,以便您轻松创建复杂的数据可视化。有关详细信息,请参阅 Create Plots Using the Simulation Data Inspector。
查看记录的数据
当您仿真模型时,许多类型的记录数据会自动流式传输到仿真数据检查器。流式传输到仿真数据检查器的数据在仿真之后依旧可用。其他类型的仿真记录数据则仅在仿真暂停、停止或完成时才会出现在仿真数据检查器中。要查看这些类型的记录数据,请打开“配置参数”对话框,并在数据导入/导出窗格中,选择在仿真数据检查器中记录所记录的工作区数据。有关记录仿真数据的详细信息,请参阅保存仿真数据。
仿真数据的类型 | 仿真期间和仿真后可以查看的数据 | 只能在仿真暂停、停止或完成后查看的数据 |
---|---|---|
输出 | 使用 | 当选中在仿真数据检查器中记录所记录的工作区数据参数时以 |
信号数据 | 使用以下方法之一记录的信号数据:
| 当选中在仿真数据检查器中记录所记录的工作区数据参数时,使用以下项记录的信号数据:
|
状态 | 使用 | 当选中在仿真数据检查器中记录所记录的工作区数据参数时以 |
数据存储 | 所有数据存储数据 | 不适用 |
注意
当您使用 Structure
或 Array
格式记录状态和输出时,您还必须记录数据记录到仿真数据检查器的时间。
仿真数据检查器在检查窗格的表中显示可用数据。要绘制信号,请选中信号旁边的复选框。您可以修改布局并添加不同可视化来分析仿真数据。
仿真数据检查器使用存档管理传入的仿真数据。默认情况下,当您开始新仿真时,上一次运行会移至存档中。您可以从存档中绘制信号,也可以将关注的运行拖回工作区域中。
查看复数数据
complexSignal
模型记录两个复信号。Complex Square Wave
信号通过 Outport 模块来记录。Complex Sine Wave
信号通过信号记录来记录 。打开模型。
mdl = "complexSignal";
open_system(mdl)
对模型进行仿真。然后,在仿真数据检查器中绘制仿真数据。
out = sim(mdl); Simulink.sdi.plot(out);
您可以使用仿真数据检查器中的属性窗格来控制如何可视化复信号。您可以从下列复信号格式选项中进行选择:
Magnitude
Magnitude-Phase
Phase
Real-Imaginary
从信号表中选择 Complex Square Wave
信号。然后,在复信号格式下拉菜单中,选择 Real-Imaginary
。如果您为复信号格式选择 Magnitude-Phase
或 Real-Imaginary
,仿真数据检查器会绘制信号的两个分量。对于 Real-Imaginary
格式的信号,线条颜色指定信号的实部的颜色,而虚部则以该线条颜色的不同深度显示。
当您使用信号记录来记录数据时,您还可以使用模型中信号的 Instrumentation Properties 来更改信号的默认复信号格式。要访问 Complex Sine Wave
信号的插桩属性,请右键点击该信号的记录标记,然后选择属性。从复信号格式下拉菜单中,选择 Magnitude-Phase
。
再次仿真模型,以使用 Magnitude-Phase
格式在仿真数据检查器中可视化 Complex Sine Wave
信号。
out = sim(mdl);
查看字符串数据
您可以在仿真数据检查器中使用信号数据来记录和查看字符串数据。在模型 stringData
中,正弦波模块的值控制开关是否向输出发送读取 Positive
或 Negative
的字符串。打开模型。
mdl = "stringData";
open_system(mdl)
对模型进行仿真。
out = sim(mdl);
打开仿真数据检查器。
Simulink.sdi.view
从信号表中选择 Sine Wave
和 Switch
信号来绘制结果。字符串信号显示在图形查看区域的底部。
选择显示/隐藏数据游标 来检查字符串信号值与正弦信号值的对应关系。
当您在一个绘图上绘制多个字符串信号时,信号会按照它们仿真或导入的顺序堆叠,最新的信号位于最上层。例如,更改控制开关的正弦波的相位。然后,再次对模型进行仿真。在仿真数据检查器中,选择两次运行的所有信号,以在一个绘图上可视化两次仿真结果。您可以更改线条颜色以更好地区分这两次运行。第二次运行输出的字符串数据堆叠在第一次运行输出的字符串数据之上。
查看多维数据
您可以在仿真数据检查器中查看和分析多维信号数据。要查看一个具有多维信号值的信号,请使用数组图。模型 MultiDim
包含 6 个 Sine Wave 模块,每个模块与前一个模块的垂直位移为 1,并连接到一个 Mux 模块。使用 Outport 模块将 Mux
模块的输出记录到仿真数据检查器中。
对模型进行仿真。然后打开仿真数据检查器。
mdl = "MultiDim";
sim(mdl);
Simulink.sdi.view
要在数组图上绘制数据,请点击“可视化和布局”。然后,选择数组。在数组图上绘制一个具有多维采样值的信号时,针状图会显示在给定时间每个采样的值。时间显示在图的右上角。信号的维度显示在信号名称旁边的括号中。例如,由于多维信号 MultiDimSig
包含六个通道,因此数据的数组图有六个标记。
您还可以将一个多维信号的表示形式从一个具有多维采样值的信号转换为一组具有标量采样值的信号,后者称为通道。转换为通道后,您可以使用时间图、XY 绘图、地图或迷你图绘制数据。要查看在数组图上绘制多维信号与在时间图上绘制单个通道之间的差异,请再次运行仿真。
sim(mdl);
要将第二次运行中的多维信号转换为通道,请在仿真数据检查器中点击信号名称旁边的信号维度(显示在括号中)。然后,选择转换为通道。
在“可视化和布局” 菜单中,选择一个 2x1
布局。下部子图是在数组图中用来自第一次运行的多维采样值绘制信号。上部子图是在时间图中绘制来自第二次运行的通道。要查看每个通道在特定时间的值,请在时间图中添加游标。要在子图中添加一个游标,请点击“显示/隐藏数据游标” 旁边的箭头。然后,选择一个游标。
请注意,当您拖动游标时,数组图中的采样值会随之变化。在您随着时间的推移移动游标时,数组图中的每个采样值的显示都会变化以显示该元素在该特定时间的值。在本例中,由于两次运行包含相同的数据,因此数组图中的值与时间图中每个对应通道的游标显示的值匹配。例如,当游标位于 3.6
秒处时,数组图右上角显示的时间也是 3.6
,并且数组图中第一个采样的值等于时间图中 MultiDimSig(1)
信号的游标显示值。
您还可以通过回放数据来查看数组图中的值随时间的变化。点击显示/隐藏回放控件 。然后,点击回放 。
有关检查和分析多维信号数据(包括基于帧的数据)的详细信息,请参阅Analyze Multidimensional Signal Data。
查看基于帧的数据
有些应用将一个信号的若干采样缓冲到一个帧中,通过一次性计算进行处理,而不是单独处理帧中的每个采样。当您处理基于帧的信号时,您可以逐帧分析数据,也可以删除缓冲并在没有帧的情况下分析信号。
以帧为单位(而不是逐点)处理数据可在某些应用场景实现所需的性能提升。当您将基于帧的信号记录为基于采样的信号时,您可以在仿真后在仿真数据检查器中转换帧。有关在仿真数据检查器中查看基于帧的数据的详细信息,请参阅View Multidimensional Signals Using the Array Plot。
查看基于事件的数据
您可以将事件数据记录到或导入仿真数据检查器。在此示例中,模型 SimpleMessagesModel
使用信号记录来记录信号数据和消息数据。有关该模型的详细信息,请参阅Animate and Understand Sending and Receiving Messages。
mdl = "SimpleMessagesModel";
open_system(mdl)
对模型进行仿真。仿真期间:
Sine Wave 模块生成正弦波信号。
每隔
0.1
秒,Send 模块就将正弦波信号的值转换为一条消息,并将其发送到 Queue 模块。Queue 模块向 Receive 模块发送消息。
Receive 模块生成重新构造的正弦波信号。
out = sim(mdl);
在仿真数据检查器中绘制数据。仿真数据检查器将消息数据显示为针状图,其中针状的值是在给定仿真时间下用作消息有效负载的正弦波采样。
Simulink.sdi.plot(out);