Main Content

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

信号基础知识

信号是指在所有时间点都有对应值的时变量。您可以指定各种信号属性,包括:

  • 信号名称

  • 数据类型(例如,8 位、16 位或 32 位整数)

  • 数值类型(实数或复数)

  • 维度(一维、二维或多维数组)

在 Simulink® 中,信号是指 Simulink 模块图中的模块以及模块图本身所表示的动态系统的输出。模块图中的线条表示模块图所定义的信号之间的数学关系。例如,连接模块 A 的输出端口和模块 B 的输入端口的线条指明模块 B 的信号输出取决于模块 A 的信号输出。

Simulink 模块图用带有箭头的线条来表示信号。信号的来源是指在计算模块方法(方程)的过程中写入信号的模块。信号的目标是指在计算模块方法(方程)的过程中读取信号的模块。模型中信号的目标位置不一定表示模型中模块的仿真顺序。仿真顺序由 Simulink 自动确定。

注意

Simulink 信号是数学概念,不是物理实体。模块图中的线条表示模块之间的数学关系,而不是物理关系。Simulink 信号并不像沿着电线传输的电信号一样沿着连接模块的线条进行传输。模块图并不表示模块之间的物理连接。

您可以通过向模型中添加信源模块来创建信号。例如,可从 Simulink Sources 库向您的模型中添加一个 Sine, Cosine 模块实例,创建一条随时间沿正弦曲线变化的信号。要查看在模型中创建信号的模块的列表,请参阅Sources。您也可以使用 Viewers and Generators Manager 在模型中创建信号,而不使用模块。

信号线的线型

Simulink 模型可以包含许多不同类型的信号。当您构造模块图时,所有信号类型都显示为一条细细的实线。当您更新图或开始仿真之后,信号将以指定的线型显示。这些信号类型使您能够区分不同信号类型。在所有信号类型中,您只能自定义非标量信号类型。要了解详细信息,请参阅信号类型

信号类型线型
标量和非标量
非标量(启用 Wide nonscalar lines 选项 - 请参阅Wide Nonscalar Lines

控制信号

虚拟总线
非虚拟总线
总线数组
可变大小

信号属性

您可能希望在模型中指定信号属性,以便为信号指定名称或标签,准备要记录的数据,或在模型中自定义信号。使用 Property Inspector、Model Data Editor 或 Signal Properties 对话框来为以下各项指定属性:

  • 信号名称和标签

  • 信号日志记录

  • Simulink Coder™ 进行代码生成

  • 对信号进行说明

要在 Property Inspector 中访问信号属性,请首先显示 Property Inspector。在 Modeling 选项卡上,在 Design 下,点击 Property Inspector。选择信号之后,属性将显示在 Property Inspector 中。要使用 Model Data Editor(在 Modeling 选项卡上,点击 Model Data Editor),请检查 Signals 选项卡并选择一个信号。要使用 Signal Properties 对话框,请右键点击信号并选择 Properties。要了解每一种方式的优点,请参阅Add Blocks and Set Parameters

要以编程方式指定信号属性,请使用函数(例如 get_param)创建一个变量,该变量存储创建信号线的模块输出端口的句柄。然后使用 set_param 设置该端口的编程参数。例如:

p = get_param(gcb,'PortHandles')
l = get_param(p.Outport,'Line')
set_param(l,'Name','s9')

信号名称和标签

您可以在模型中以交互方式或编程方式命名信号。信号名称的语法要求取决于您如何使用该名称。最常见的情况包括:

  • 请勿使用小于号字符 (<) 作为信号名称的开头。

  • 信号名称可以解析为 Simulink.Signal 对象。(请参阅Simulink.Signal。)这种情况下,信号名称必须是合法的 MATLAB® 标识符。此标识符以字母字符开头,后跟字母数字或下划线字符,长度由函数 namelengthmax 指定。

  • 信号已经具有名称,因此可在数据记录中按名称进行标识和引用。(请参阅 使用信号记录导出信号数据。)此类信号名称可以包含空格和换行符。这些字符可以提高可读性,但有时需要特殊的处理技巧,如处理记录的名称中的空格和换行符中所述。

  • 信号名称的存在只是为了使模块图更清晰,没有任何计算意义。此类信号名称可以包含任何内容,且不需要特殊处理。

  • 信号是总线对象的一个元素。使用有效的 C 语言标识符作为信号名称。

  • Bus Creator 的输入必须具有唯一的名称。如果存在重复的名称,Bus Creator 模块将在所有输入信号名称后面追加 (signal#),其中 # 是输入端口的索引。

确保每个信号名称都是合法的 MATLAB 标识符可以处理各种模型配置。有些特殊的需求可能要求更改信号名称,以符合更严格的语法。您可以使用函数 isvarname 确定信号名称是否为合法的 MATLAB 标识符。

通过以下方法以交互方式命名信号:

  • 使用 Property Inspector(在 Modeling 选项卡上,在 Design 下,点击 Property Inspector

  • 使用 Model Data Editor(在 Modeling 选项卡上,点击 Model Data Editor)中的 Signals 选项卡

  • 从 Signal Properties 对话框。

默认情况下,信号名称以信号标签的形式显示在信号下面。

要以编程方式命名信号,请对信号使用 get_paramset_param 函数。下表概述如何在 Simulink Editor 中使用信号名称和标签。

任务操作
为信号线命名双击信号并键入其名称。
为已命名的信号线的分支命名双击分支。
为一个信号的每个分支命名 右键点击该信号,选择 Properties,然后使用对话框进行操作。
删除信号标签和名称删除标签中的字符,或者在 Signal Properties 对话框中删除名称。
只删除信号标签 右键点击标签,然后选择 Delete Label
打开信号标签文本框进行编辑

双击信号线。

点击标签。

选择信号线(不是标签),并使用 F2

Macintosh 平台上,选择信号线(不是标签)并使用 control+return

移动信号标签 将标签拖到同一信号线上的新位置。
复制信号标签Ctrl+拖动信号标签。
更改标签字体选择信号线(不是标签),然后在 Format 选项卡上,点击 Fonts for Model

信号显示选项

在模型图中显示信号属性可以提高模型的易读性。例如,在 Simulink Editor 中的 Debug 选项卡上,使用 Information Overlays 菜单在模型布局中包含有关信号属性的信息,例如:

  • 端口数据类型

  • 设计范围

  • Signal Dimensions

  • 信号解析

有关详细信息,请参阅显示信号属性

您还可以突出显示信号及其源或目标模块。有关详细信息,请参阅突出显示信号的源和目标

存储信号和状态的设计属性

可以使用模块参数和信号属性指定信号的设计属性,如数据类型、最小值和最大值、物理单位以及数值的复/实性。要配置状态,可以使用模块参数。当您使用这些模块参数和信号属性时,可将这些设定存储在模型文件中。

也可以使用存储在工作区或数据字典中的 Simulink.Signal 对象的属性来指定这些特性。请参阅 Simulink.Signal数据对象

请根据您的建模目的选择要采用哪种策略。

  • 要提高模型的可移植性、易读性和易于维护性,可将这些设定存储在模型文件中。使用 Property Inspector、Model Data Editor、模块对话框和信号属性对话框来访问参数和属性。您不需要保存和管理外部 Simulink.Signal 对象。可以考虑将模型配置参数 Signal resolution 设置为 “None”,以禁止模型使用 Simulink.Signal 对象。

    要使用可排序、分组和筛选的列表为信号配置设计属性和代码生成设置,请使用 Model Data Editor。通过此工具,您可以将设定存储在模型文件中,而不是使用 Simulink.Signal 对象。请参阅使用 Model Data Editor 配置数据属性

  • 要将这些设定与模型分开单独进行管理,请使用 Simulink.Signal 对象。然后可在平面列表中配置设定,平面列表可通过 Model Data Editor 或 Model Explorer 进行排序、分组和筛选。要决定在何处永久存储对象,请参阅确定在何处存储 Simulink 模型的变量和对象

测试信号

您可以对信号执行以下类型的测试:

最小值和最大值

对于许多 Simulink 模块来说,您可以为输出信号指定有效值范围。Simulink 提供了一项诊断,可对仿真过程模块所生成信号超出指定范围的情况进行检测。有关详细信息,请参阅指定信号范围

连接验证

许多 Simulink 模块对于能够接受的信号类型有限制。对模型进行仿真之前,Simulink 会检查所有模块,确保模块可以接受连接的端口所输出的信号类型,并能够在出现不兼容问题时报告错误。

要在运行仿真之前检测信号兼容性错误,请更新图。

方案

Signal Editor 模块显示可互换的方案组。使用 Signal Editor 可显示、创建、编辑和切换可互换方案。

方案可以帮助测试模型。

相关主题