Main Content

本页对应的英文页面已更新,但尚未翻译。 若要查看最新内容,请点击此处访问英文页面。

配置信号记录

标记要记录的信号

通过使用以下方法之一标记信号来启用记录功能:

要标记信号进行记录,Simulink® Editor 菜单选项通常是最简单的方法。

启用了记录功能的信号称为记录的信号。默认情况下,Simulink 会为每个记录的信号显示一个记录的信号指示符

使用 Simulink 工具条启用日志记录

  1. 在 Simulink Editor 中,选择一个或多个信号。

  2. Simulation 选项卡上,点击 Log Signals

使用信号属性启用记录功能

  1. 在 Simulink Editor 中,右键点击信号。

  2. 从上下文菜单中,选择 Properties

  3. 在 Signal Properties 对话框中,在 Logging and accessibility 选项卡上选择 Log signal data

  4. 点击 OK

也可以右键点击选定的信号,然后从显示的上下文菜单中选择 Log Selected Signals

使用 Model Data Editor 启用记录功能

Model Data Editor 显示模型中信号的平面列表。您可以对此列表执行排序、分组和筛选操作。对于以下情况,可以使用此方法启用记录功能:

  • 同时记录许多信号。

  • 记录模块图中彼此不靠近的信号。

  • 记录大型模型或子系统层次结构中难以定位的信号。

要使用 Model Data Editor 选择要记录的信号,请执行以下操作:

  1. 打开 Model Data Editor。在 Modeling 选项卡上,点击 Model Data Editor 按钮。

  2. 在 Model Data Editor 中,选择 Signals 选项卡。

  3. 在下拉列表中选择 “Instrumentation”。

  4. 为要记录的信号选中 Log Data 列中的框。

有关 Model Data Editor 的详细信息,请参阅使用 Model Data Editor 配置数据属性

编程接口

要以编程方式为选定的模块启用信号记录,请使用输出 DataLogging 属性。可使用 set_param 命令设置此属性。例如:

  1. 在 MATLAB® 命令行窗口中打开一个模型。Type

    vdp
  2. 获取要记录的信号的端口句柄。例如,对于 Mu 模块输出端口信号。

    ph = get_param('vdp/Mu','PortHandles')
  3. 启用所需输出端口信号的信号记录。

    set_param(ph.Outport(1),'DataLogging','on')

    随即将出现记录的信号指示符。

记录引用模型信号

您可以记录引用模型中任何记录的信号。可使用 Signal Logging Selector 为模型引用层次结构配置信号记录。有关详细信息,请参阅Models with Model Referencing: Overriding Signal Logging Settings

指定信号级记录名称

您可以为 Simulink 用来存储信号记录数据的对象指定信号级记录名称。对于未命名的信号或与模型层次结构中的另一信号重名的信号来说,指定信号级记录名称非常有用。指定信号级记录名称(而不是使用 Simulink 生成的名称)可使记录的数据更容易分析。

要指定信号级记录名称,请使用以下方法之一

如果您不指定自定义信号级记录名称,Simulink 将使用信号名称。如果信号没有名称,Simulink 将使用空名称。

注意

信号级记录名称与模型级信号记录名称不同。模型级信号记录名称是包含整个模型的所有记录信号数据的对象的名称。默认的模型级信号记录名称为 logsout。有关模型级信号记录名称的详细信息,请参阅为信号记录数据指定名称

在 Simulink Editor 中指定信号级记录名称

  1. 在 Simulink Editor 中,右键点击信号。

  2. 从上下文菜单中选择 Signal Properties

  3. 指定记录名称:

    1. 在 Signal Properties 对话框中,选择 Logging and accessibility 选项卡。

    2. Logging name 列表中选择 “Custom”。

    3. 在旁边的文本字段中输入记录名称。

在 Model Explorer 中指定信号级记录名称

  1. 在 Model Explorer 的 Model Hierarchy 窗格中,选择包含要为其指定记录名称的信号的节点。

  2. 如果 Contents 窗格中未显示 LoggingName 属性,请将 LoggingName 属性添加到当前视图中。有关列视图的详细信息,请参阅 Model Explorer

  3. 使用 LoggingName 列为一个或多个信号输入记录名称。

以编程方式指定信号特定的记录名称

要以编程方式为选定的模块启用信号记录,请使用输出端口 DataLogging 属性。可使用 set_param 命令设置此属性。

  1. 在 MATLAB 命令行窗口中打开一个模型。例如,键入:

    vdp
  2. 获取要记录的信号的端口句柄。例如,对于 Mu 模块输出端口信号:

    ph = get_param('vdp/Mu','PortHandles');
  3. 启用所需输出端口信号的信号记录:

    set_param(ph.Outport(1),'DataLogging','on');

    随即将出现记录的信号指示符。

  4. 输入使用 DataLoggingNameModeDataLoggingName 参数的命令。例如:

    set_param(ph.Outport(1),'DataLoggingNameMode','Custom');
    set_param(ph.Outport(1),'DataLoggingName','x2_log');

限制记录的数据

您可以通过以下方式限制为信号记录的数据量:

  • 指定抽取因子

  • 将保存的样本数限制为仅最近使用的样本

您可以使用 Signal Properties 对话框、Model Explorer、Signal Logging Selector 或编程方式限制为信号记录的数据。下面介绍前两种方法。

使用 Signal Properties 限制记录的数据

  1. 在 Simulink Editor 中,右键点击信号。

  2. 从上下文菜单中选择 Signal Properties

  3. 在 Signal Properties 对话框中,点击 Logging and accessibility 选项卡。然后选择下面的一个或两个选项:

    • Limit data points to last

    • Decimation

使用 Model Explorer 限制记录的数据

  1. 在 Model Explorer 的 Model Hierarchy 窗格中,选择包含要限制记录数据量的信号的节点。

  2. 如果 Contents 窗格中未显示 DataLoggingDecimation 属性或 DataLoggingLimitDataPoints 属性,请将其中一个或两个都添加到当前视图中。有关列视图的详细信息,请参阅 Model Explorer

  3. 要指定抽取因子,请编辑 DecimationDecimateData 属性。要限制记录的样本数量,请编辑 LimitDataPoints 属性。

为记录的信号设置采样时间

要为记录的信号设置采样时间,请使用 Signal Properties 对话框中的 Sample Time 选项。此选项:

  • 将设计与检验分离,因为您不需要插入 Rate Transition 模块来为记录的信号使用一致的采样时间

  • 减少了为连续时间信号记录的数据量,这与为连续信号设置抽取值无关

  • 消除了对具有不同采样时间的信号的记录数据进行后处理的需要

使用说明

不要为下列各项指定采样时间:

  • 基于帧的信号

  • 条件子系统(例如,函数调用子系统或触发子系统)和条件引用模型,它们需要继承的采样时间

如果在 SIL 模式下进行仿真,信号记录将忽略您为记录的信号指定的采样时间。

当您标记信号以进行记录时,Simulink 将插入一个隐藏的 To Workspace 模块。当您为记录的信号指定采样时间时,Simulink 将插入一个隐藏的 Rate Transition 模块和一个隐藏的 To Workspace 模块。

为信号记录指定采样时间不会影响仿真结果。但是,对于记录的信号,信号记录输出可能会因您是否指定采样率而有所不同。例如,插值方法可能会因您是否为信号记录指定采样时间而有所不同。假设有一个模型中包含一个连续信号,并且采样时间是继承的 (-1)。为该信号记录的输出的插值方法为 linear

logsout.get(1).Values.DataInfo
tsdata.datametadata
  Package: tsdata

  Common Properties:
               Units: ''
       Interpolation: linear (tsdata.interpolation)

如果您将采样时间更改为连续 (0),则为该信号记录的输出的插值方法为 zoh(零阶保持)。

相关主题