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

创建和编辑信号数据

使用 Signal Editor 可创建和编辑输入信号并组织它们以用于多个仿真。您随后可以将信号数据保存到 MAT 文件以进行仿真或映射到根级端口。您可以通过以下方式访问 Signal Editor:

  • signalEditor 函数 - Signal Editor 从命令行启动。

  • Root Inport Mapper - 要为新信号数据创建 MAT 文件,请选择 Signals > New MAT-File。要链入现有方案中的现有信号数据文件并编辑该文件中的信号,请使用 Signals > Edit MAT-File

  • Signal Editor 模块

Signal Editor 仅适用于 MAT 文件。

您可以通过下列方式来操作信号:

  • 创建和编辑多个数据集的多个信号。

  • 使用信号符号通过 MATLAB® 表达式创建更复杂的信号。

  • 使用现有方案获取现有数据集以便对其编辑和创建信号。

  • 创建和编辑多维信号。

在编辑信号数据时:

  • 使用表格编辑或 MATLAB 修改信号数据。

  • 修改信号属性,例如名称、插值和单位属性。

  • 拖放信号以更改总线和数据集的信号层次结构。

  • 使用信号符号和变量来替换信号数据。

您也可以从外部源导入数据并在 Signal Editor 中编辑它们。有关详细信息,请参阅链入来自 Signal Builder 模块和 Simulink Design Verifier 环境的信号数据

Root Inport Mapper Signal Editor 与其他 Signal Editor 之间的差异

通常,无论您如何访问 Signal Editor,其用户界面都是相同的。以下是 Root Inport Mapper Signal Editor 的不同之处:

  • FILE 部分的 Save and SyncSAVE 命令保存并同步到 Root Inport Mapper。

  • Insert 部分的 Scenario 命令始终具有 Scenario from Model 选项。

如果使用模型名称来启动 signalEditor 函数,Signal Editor 用户界面将在 Insert 部分中显示 Scenario from Model 选项。

表编辑数据支持

Signal Editor 用户界面支持 Simulink® 支持的和可编辑的所有信号数据类型。

链入来自 Signal Builder 模块和 Simulink Design Verifier 环境的信号数据

您可以使用 Signals > Edit MAT-File 链入来自这些信源的 MAT 文件数据进行编辑。

链入来自 Signal Builder 的数据

您可以链入和编辑从 MAT 文件中的 Signal Builder 模块或 MATLAB 导出的数据。使用以下方法之一导出数据:

  • Signal Builder 模块的 File > Export Data > To MAT-file 选项,然后链入 MAT 文件。

  • 使用数据集的 signalbuilder get 函数,然后执行以下任一步骤:

    • 导入工作区中的数据集并保存到 MAT 文件

    • 将工作区中的数据集保存到 MAT 文件并导入该 MAT 文件

有关从 Signal Builder 模块导出的详细信息,请参阅导出信号组数据

链入来自 Simulink Design Verifier 环境的测试向量

您可以链入和编辑 Simulink Design Verifier 测试向量。此工作流需要 Simulink Design Verifier 许可证。

在链接之前,使用 Simulink Design Verifiersldvsimdata 函数将 Simulink Design Verifier 测试结构体转换为一组 Simulink.SimulationData.Dataset 对象。此文件包含一个测试向量结构体 sldvData。将输出保存到一个 MAT 文件,然后将该文件导入 Signal Editor 中。

使用方案来对输入进行分组和组织

Signal Editor 使用方案对输入进行分组和组织,并保存为 MAT 文件以用于单个仿真。要使用现有方案中的现有数据集创建信号数据,或创建一个空方案以向其中添加信号,请使用 Signal Editor 的 Scenario 菜单。

操作选项

从模型的根输入端口创建方案

选择 Scenario > Scenario from Model。(仅在从 Root Inport Mapper 访问 Signal Editor 时可用。)

您还可以将 signaleditor 函数与模型参数结合使用。

注意

使用此选项时,生成的方案包含具有输入端口的数据类型和维度的信号。

从头开始创建空方案和创建信号

选择 Scenario > Blank Scenario

从 MATLAB 工作区导入方案

选择 Scenario > From Workspace

在您建立方案后:

插入信号

要将信号插入方案中,请选择方案,然后点击 Insert 部分中的信号类型。

  • Signal

    使用 Signal 拆分按钮指定信号数据的定义方式:

  • Bus

  • Ground

  • Function Call

    如果您需要为具有显式周期性采样时间的根输入端口提供函数调用信号,请插入一个接地信号。然后,Simulink 会自动执行该函数调用。

新信号出现在 Scenarios and Signals 部分。

您还可以插入具有相同类型的多个信号。有关详细信息,请参阅创建具有相同属性的信号

要更改层次结构中的信号顺序或更改信号名称,请参阅更改信号名称和层次结构顺序

要编辑信号的属性,请注意:

请参阅。

创建信号和信号数据

从现有模型数据(方案)创建信号数据或从空方案开始。您可通过以下方式向方案中添加信号和数据:

插入信号后,点击 Plot/Edit 复选框查看并绘制数据。

如果数据未按预期绘制,请使用 Zoom & Pan 部分中的 Fit to window 按钮。对于多维信号,还需要确保为所编辑的列数据选择了正确的绘图。

使用工具栏上的 MeasureZoom & Pan 部分浏览绘图。

  • Measure 部分,使用 Data Cursors 按钮以在绘图中显示一个或两个游标。这些游标显示绘图中数据点的 T 和 Y 值。要查看数据点,请点击绘图线条上的点。

  • Zoom & Pan 部分中,选择您要如何缩放和平移信号图。缩放仅适用于选定的轴。

    缩放或平移的类型要点击的按钮

    沿 T 和 Y 轴放大。

    沿时间轴放大。选择图标后,在图上拖动鼠标以选择要放大的区域。

    沿数据值轴放大。选择图标后,在图上拖动鼠标以选择要放大的区域。

    缩小绘图。

    使绘图适合图窗。选择图标后,点击图窗以放大绘图,使之填满图窗。

    向上、向下、向左或向右平移图。选择图标。在图上按住鼠标左键,并将鼠标移至要查看的图区域。

使用基本信号数据

要添加和编辑基本信号数据,请选择信号并点击关联的 Plot/Edit 复选框。系统随即显示信号图。在信号图下方是表格编辑器。

  • 要插入或删除信号的数据行,请分别使用

  • 要更改信号数据的数据类型,请从下拉列表中选择类型。

    注意

    您不能将数据类型更改为定点数据类型或从定点数据类型更改为其他数据类型。

  • 要更改每个信号的时间或数据,请编辑数据行的关联列,然后点击 Apply 以更新信号图。

    注意

    如果数据是定点数据,则将鼠标悬停在表中的数据上会显示数据的摘要

    • 理想值 - 请求的值。

    • 定点值 - 将理想值转换为定点值所产生的值。

    • 绝对误差 - 值的绝对误差。

    • 相对误差 - 转换值与原始值之间的差异。

    • 其他错误消息,例如误差是上溢还是下溢。

  • 要更改绘图或表格区域的大小,请上下移动分隔线。

  • 要创建多维信号,请使用以下方法之一。有关详细信息,请参阅添加和编辑多维信号

    • 在 Default Properties for Insertion 对话框中,在 Dimensions 参数中输入大于 1 的维度。

    • 在 Author and Insert 对话框中,在 Data 参数中输入用于创建多维信号的 MATLAB 表达式。

您可以使用 MATLAB 表达式,而不是使用表格编辑器定义信号数据。

使用 MATLAB 表达式和变量创建信号

要使用 MATLAB 表达式和变量添加信号,请选择 Signal Editor 的 Signal > Author Signal 选项。

  • Time - 输入数据的时间范围。

  • Data - 输入信号的 MATLAB 表达式。

  • Data type - 选择或输入信号数据类型。

    • double

    • single

    • int8

    • uint8

    • int16

    • uin16

    • int32

    • uint32

    • boolean

    • fixdt(1,16)

    • fixdt(1,16,0)

    • fixdt(1,16,2^0,0)

    • string

    • Enum: <类名称>

    如果输入时间和数据,然后选择定点数据类型,则 Signal Editor 会显示为您的数据建议的定点数据类型。

    • 为了帮助您选择定点数据类型,请点击 Show Histogram 按钮 ()。点击此按钮将显示使用所选定点数据类型的信号数据的绘图。图显示:

      信息
      Values负、正和零信号值。
      Potential Overflows对可能溢出的信号值进行分 bin。
      In-Range对可接受范围内的信号值进行分 bin。
      Potential Underflows对可能下溢的信号值进行分 bin。

      要查看数据类型在直方图上可能存在的差异,请选择:

      • User Specified

      • Binary Scaling

      • Slope & Bias Scaling

      有关详细信息,请参阅Histogram Plot of Signal (Fixed-Point Designer)。

    • 要将建议的定点数据类型应用于您的数据,请点击 Use proposed data type button ()。

点击 Insert Signal 时,系统将处理信号,更新对话框中的信号信息,并将信号添加到 Scenarios and Signals 部分。此外,还会显示样本数、信号数据类型和信号维度。

要查看示例 TimeData 条目,请点击 Show Examples 按钮。要使用这些信号符号示例的信号进行试验,请点击相关联示例的 Apply Example 按钮。您还可以在插入之前修改示例。

例如,要创建正弦波,请点击对应示例旁边的 Apply Example 按钮,然后点击 Insert Signal 按钮。可以看到该对话框会显示样本数、信号数据类型和信号维度。

要查看信号,请取消 Author and Insert 对话框,导航到 Scenarios and Signals 部分,然后点击新信号的 Plot/Edit 按钮。如果信号具有实部和虚部,则这两个部分都显示在一个图中。

使用工具栏上的 MeasureZoom & Pan 部分浏览绘图。

如果数据未按预期绘制,请使用 Zoom & Pan 部分中的 Fit to window 按钮。对于多维信号,还需要确保为所编辑的列数据选择了正确的绘图。

  • Measure 部分,使用 Data Cursors 按钮以在绘图中显示一个或两个游标。这些游标显示绘图中数据点的 T 和 Y 值。要查看数据点,请点击绘图线条上的点。

  • Zoom & Pan 部分中,选择您要如何缩放和平移信号图。缩放仅适用于选定的轴。

    缩放或平移的类型要点击的按钮

    沿 T 和 Y 轴放大。

    沿时间轴放大。选择图标后,在图上拖动鼠标以选择要放大的区域。

    沿数据值轴放大。选择图标后,在图上拖动鼠标以选择要放大的区域。

    缩小绘图。

    使绘图适合图形。选择图标后,点击图窗以放大绘图,使之填满图窗。

    向上、向下、向左或向右平移图。选择图标。在图上按住鼠标左键,并将鼠标移至要查看的图区域。

提示

要生成具有线性间隔时间值的信号,请使用 linspace 函数,例如:

  • Time - linspace(0,10,101)

  • Data[0:0.1:10]

要在不使用 MATLAB 表达式的情况下编辑信号数据,请参阅使用基本信号数据

使用鼠标或触摸屏创建手绘信号数据

手绘信号数据是您以图形方式添加的数据。Signal Editor 允许您使用鼠标或触摸屏(如果可用且受支持)添加手绘信号数据。

要添加手绘信号数据,请选择 Signal Editor 中的 Signal > Draw Signal 选项。将打开 Draw 选项卡。

您可以绘制自己的信号线或点,使用 MATLAB 表达式输入数据,在画布上移动信号线或点,拍摄画布的线条的图像,并将数据添加到 Signal Editor 中。

要创建信号数据,请在 Tools 部分:

  • 点击 Insert PointCtrl+P),然后在图形区域中点击,以此方式插入单个数据点。如果再添加其他点,工具会将这些点连接起来。触摸屏支持此操作。

  • 点击 Insert LineCtrl+L),然后在图形区域中点击,插入一条信号线。要延伸该信号线,请点击该信号线的端点并绘制延伸线。触摸屏支持此操作。

    提示

    当您插入信号或信号线时,画布会以最左边和最右边的端点为界添加一个着色区域。在 Insert Line 模式下,您无法在此着色区域内添加更多点。您可以在该着色区域之外添加其他信号线点。

  • 点击 Draw (Ctrl+D) 并在画布上绘制,以手绘方式绘制信号。触摸屏支持此操作。

  • 点击 ExpressionCtrl+E),使用 MATLAB 表达式绘制信号。输入创建信号点的时间和数据值,这些信号点是标量或向量,其点数与时间点匹配。

要选择或移动信号数据,请在 Signal 部分:

  • 点击 SelectCtrl+T),然后选择要选择的点或区域,以此方式来选择点或线。触摸屏支持此操作。

  • 点击 MoveCtrl+M),移动点或线。触摸屏支持此操作。

要编辑或删除信号数据,请在 Edit 部分:

  • 点击 Edit Point),更改一个点的数据。在 Edit Point 对话框中,输入新 TimeData 值。这些值必须为标量。

要使用画布,请使用 AlignShowZoom 部分中的工具。

  • 使用 Align 部分中的工具将画布中的图与网格对齐。与网格对齐有助于您在绘制信号时更好地控制数据准确度。例如,与 x 网格对齐可均匀分布采样信号值,与 y 网格对齐可控制斜坡信号的幅值。

  • 切换画布中数据点、网格线和数据标记的显示,浏览 AlignShow 部分中的命令。要放大和缩小画布,请参阅 Zoom & Pan。触摸屏支持这些操作。有关详细信息,请参阅创建信号和信号数据

要使用信号属性,请使用 Signal Properties 部分中的参数。例如,要在 Data type 参数中更改数据类型时查看更改后的信号值,请选择 Show result of cast to data type。原信号线是蓝色,更改后的值用黑线表示。下图显示一条负双精度值信号线,数据类型转换为 uint8。

要捕获信号数据的图像,请在 Capture 部分中,点击 Screenshot ()。在 Save a screenshot 对话框中,指定文件的名称和图形类型。

完成绘制信号后,在 Insert 部分:

  1. 若要将信号添加到 Signal Editor,请点击 Insert signal ()。

  2. 若要返回 Signal Editor 主窗口并检查信号是否已添加,请点击 Close draw tab ()。

  3. 若要在 Signal Editor 中观察绘制的信号数据,请点击层次结构中的信号名称。

有关如何添加手绘斜坡信号的示例,请参阅使用“与网格对齐”功能绘制斜坡以确保准确度

更改信号名称和层次结构顺序

Scenarios and Signals 部分中,您可以更改信号名称和层次结构顺序、创建信号副本以及删除信号。Simulink 会忽略信号名称中的前导和尾随空白。

  • 要更改信号名称,请双击该名称并进行更改。

  • 要更改信号的单位或插值,请点击加号,然后点击 UnitInterpolation 复选框。

    窗格随即更新,增加 UnitInterpolation 列。

    • Unit 列中,输入适当的单位表达式。有关建议的单位表达式列表,请参阅允许的单位

    • Interpolation 列中,从下拉列表中选择 “linear” 或 “zero order hold”。

      注意

      插值仅影响 Signal Editor 用户界面中的信号绘制。

  • 要更改层次结构中信号的顺序,请拖放该信号。例如,您可以将信号拖放到总线中。

    或者,使用 Adjust 部分中的 Move UpMove Down 按钮。

  • 要复制信号并将其粘贴到原始信号下,请右键点击信号并选择 Duplicate Signal

    或者,使用 Adjust 部分中的 Duplicate 按钮。您还可以调整所复制信号的默认属性。有关详细信息,请参阅创建具有相同属性的信号

  • 要复制信号并将其粘贴到层次结构中的其他位置,请选择 Copy,然后选择 Paste

创建具有相同属性的信号

要创建具有相同预定义类型的信号,请使用 Adjust 部分中的 Duplicate 按钮。要更改预定义信号类型,请点击 Defaults 图标 。系统随即显示 Default Properties for Insertion 对话框。

  • Data type - 从下拉列表中选择信号数据类型。

  • Enumeration - 选择 “Enum” 数据类型时,将显示此参数。输入枚举的类名称。

    如果多次定义一个包含相同整数值的枚举类,例如:

    classdef(Enumeration) hEnumColors_duplicateValues < Simulink.IntEnumType
      enumeration
        Red(118)
        Yellow(-14)
        Blue(90)
        Green(87)
        White(-14)
        Black(198)
        Brown(90)
        Pink(118)
        Purple(90)
      end
      methods (Static = true)
        function retVal = getDefaultValue()
          retVal = hEnumColors_duplicateValues.Blue;
        end
      end
    end
    

    则 Signal Editor 会将第一个枚举值 (Red (118)) 视为标准值,并将同一基础整数 118 的所有后续实例视为等同于枚举名称 Red。换言之:Pink 等于 Red

  • Interpolation - 从下拉列表中选择 “linear” 或 “zero order hold”。

  • Unit - 输入适当的单位表达式。有关建议的单位表达式列表,请参阅允许的单位

  • Dimensions - 输入信号的维数。

  • Signal type - 从下拉列表中选择 “real” 或 “complex”。

  • Bus object - 从下拉列表中,选择要为其定义维度的总线对象。如果将 Bus object 参数保留为默认 <object name>,则 Signal Editor 会添加空总线。

  • Dimensions - 输入总线对象的维数。

MATLAB 表达式替换信号数据

无论您以何种方式创建原始信号数据,都可以随时使用 MATLAB 表达式替换信号数据。要替换信号数据,请在 Scenarios and Signals 部分中选择该信号,然后点击替换按钮 ()。使用 Author and Replace Signal Data 对话框替换信号数据的过程与使用 Author and Insert 对话框插入新表达式一样。有关详细信息,请参阅使用 MATLAB 表达式和变量创建信号

注意

您不能将数据类型更改为定点数据类型或从定点数据类型更改为其他数据类型。

提示

替换信号时,新信号的信号维度和复/实性必须与被替换的信号相同。

提示

要生成具有线性间隔时间值的信号,请使用 linspace 函数。例如,使用:

  • Time - linspace(0,10,11)

  • Data[0:10]

添加和编辑多维信号

要添加多维信号,请使用以下任一选项:

  • 在 Default Properties for Insertion 对话框中更改 Dimensions 属性,然后使用 Insert > Blank Signal 插入新信号。

  • 在 Author and Insert 对话框的 Data 参数中输入多维信号数据,例如 [(1:10)' (1:10)']

点击信号的 Plot/Edit 复选框时,表格区域将显示信号及其每个维度的列。您可以在表格区域中单独编辑数据,或点击替换按钮 以使用 MATLAB 表达式替换信号。使用 Author and Replace Signal Data 对话框替换信号数据的过程与使用 Author and Insert 对话框插入新表达式一样。有关详细信息,请参阅使用 MATLAB 表达式和变量创建信号

提示

替换信号时,新信号的信号维度和复/实性必须与被替换的信号相同。

例如,要创建具有两列且时间从 1 到 10 的信号数据,请执行下列操作:

  1. 在 Signal Editor 中,选择 Signal > Author Signal

  2. 输入具有两列且时间从 1 到 10 的信号数据:

    • Time - [1:10]

    • Data[(1:10)' (1:10)']

  3. 点击 Insert Signal

    层次结构将用新信号数据进行更新。

  4. 展开新信号,然后点击新信号数据的 Plot/Edit 复选框。随即可以看到与信号关联的图和表格数据。

    提示

    如果数据未按预期绘制,请使用 Zoom & Pan 部分中的 Fit to window 按钮。对于多维信号,还需要确保为所编辑的列数据选择了正确的绘图。

  5. 您可以直接在表中编辑数据。

    您也可以通过点击 Replace 按钮并在 Author and Replace Signal Data 对话框中输入新时间范围和数据,用新表达式完全替换数据。

将信号添加到方案

此示例说明如何创建一个方案并从 Root Inport Mapper 工具链接到该方案。然后,您可以启动 Signal Editor 来操作并将信号添加到此方案。

  1. 在 MATLAB 命令行窗口中,通过键入以下命令创建一些数据:

    ts = timeseries([0;20],[0;10]); 
  2. 在 Simulink Editor 中,创建一个模型,其中包含三个 Inport 模块的、三个 Gain 模块、一个 Mux 模块和一个 Scope 模块。按如下所示连接这些模块:

  3. 将各 Gain 模块的增益分别设置为 51015

  4. 点击其中一个 Inport 模块,然后点击 Connect Input 按钮。

    系统随即显示 Root Inport Mapper 工具。

  5. 在 Root Inport Mapper 的 Link 部分中,选择 From Workspace

  6. 在 From Workspace 窗口中,输入用于存储 MAT 文件的名称,然后点击 OK

  7. 在 Signal Editor 的 Scenario 部分中,点击 Signals > Edit MAT-File

  8. 在 Edit Signal File 窗口中,选择新 MAT 文件,然后点击 OK

    系统随即显示 Signal Editor。

  9. 将信号 Signal 添加到方案中。右键点击该方案,然后选择 Insert > Blank Signal

    此操作会使用以下默认属性添加 Signal

    或者,通过点击 Insert 部分中的信号类型来插入信号,或使用 Signal 拆分按钮来使用信号符号创建信号。

  10. 更改要添加的信号的默认属性。在 Insert 部分中,选择 Defaults。在 Default Properties for Insertion 对话框中,将数据类型更改为 boolean,然后右键点击方案并选择 Insert > Blank Signal

    此操作将添加数据类型为 booleanSignal1

  11. 要检查数据类型是否为 boolean,请点击 Signal1 的绘图复选框。

处理信号中的数据

此示例说明如何为链接方案中的信号添加和删除数据。要创建要使用的模型和数据,请参阅将信号添加到方案

  1. 在 Signal Editor 的 Scenarios and Signals 部分中,点击信号 ts 的绘图复选框。

  2. 将一些数据添加到信号 ts

    1. 点击添加行图标 并添加一些信号。要在其他信号之间添加信号行,请点击位于前面的信号,然后点击添加行图标。

    2. 完成后,点击 Apply。点击 Apply 会更新绘图。

  3. 从信号中删除时间为 20 的行。选择 20,然后点击

  4. 或者,如果要将 ts 的所有信号数据替换为使用信号符号定义的信号,请点击替换按钮 并使用 Author and Replace Signal Data 对话框定义新数据。

使用“与网格对齐”功能绘制斜坡以确保准确度

此示例说明如何通过选择画布中的一些点来创建斜坡信号。

  1. 在 Signal Editor 中,选择 Signal > Draw Signal

  2. 要沿水平线和垂直线排列信号数据值,请选择 Snap X to GridSnap Y to Grid

  3. 在画布中,添加三个点:

    • 两个点水平对齐

    • 另一个点放在这两个点的右侧,并与之呈一定角度

  4. 在 Signal Properties 部分,在 Name 中,将信号名称更改为 Ramp,然后按 Enter

  5. 要将信号添加到 Signal Editor,请在 Insert 部分中,点击

  6. 要返回 Signal Editor 主窗口并检查信号是否已添加,请点击

  7. 要在 Signal Editor 中观察绘制的信号数据,请点击层次结构中 Ramp 信号名称的 Plot/Edit 复选框。

保存更改并将其发送给 Root Inport Mapper 工具

添加和修改完信号和方案后,使用 Save and Sync 按钮将更改保存到 MAT 文件。Signal Editor 还会将数据发送到 Root Inport Mapper 工具:

  • 如果 Root Inport Mapper 工具已加载方案,则 Root Inport Mapper 工具将使用新数据进行更新。

  • 如果 Root Inport Mapper 工具已映射方案且您的更改影响了映射,则 Root Inport Mapper 工具将取消方案的映射。

另请参阅

| | |

相关主题