Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

Simulink.Signal

指定信号的属性

说明

使用此对象可以创建工作区对象,这些对象可用来为信号或离散状态分配或验证属性,如数据类型、数值类型、维度等。

您可以使用信号对象进行如下操作:

  • 为信号源未赋值的信号属性(值为 -1auto)赋值。

  • 验证由信号源显式分配值的信号属性。这种属性具有除 -1auto 之外的值。成功的验证可以确保信号具有您想要的属性。

您可以在 MATLAB® 工作区或模型工作区中创建 Simulink.Signal 对象。

通过为信号或离散状态指定与引用 Simulink.Signal 对象的工作区变量相同的名称,使用信号对象来分配或验证信号或离散状态。

有关使用信号对象的详细信息,请参阅使用 Simulink.Signal 对象指定和控制信号属性数据对象

创建对象

通过以下方式创建 Simulink.Signal 对象:

说明

signalObj = Simulink.Signal 返回具有默认属性值的 Simulink.Signal 对象。

属性

全部展开

有关 Simulink.Signal 对象的属性对话框中的各项属性,请参阅Property 对话框

Simulink® Coder™ 为此信号生成代码所使用的信息。此属性的值是 Simulink.CoderInfo 类的对象。

有关详细信息,请参阅模型接口元素的 C 代码生成配置 (Simulink Coder)Choose Storage Class for Controlling Data Representation in Generated Code (Embedded Coder)

字符向量,用于指定此信号的数值类型。有效值为 'auto'(由 Simulink 确定)、'real''complex'

数据类型: char

字符向量,用于指定此信号的数据类型。

默认值 'auto' 指定应由 Simulink 确定数据类型。您可以指定内置数据类型(例如,'uint8''single')、数据类型(如 'half')或自定义数据类型。要指定自定义数据类型,请使用指定类型的 MATLAB 表达式(例如,您在基础工作区中创建的 Simulink.NumericType 对象的名称)。

要指定总线对象作为信号对象的数据类型,请使用 'Bus: <object_name>' 语法。有关指定总线对象作为数据类型时所需操作的详细信息,请参阅总线支持

示例: 'auto'

示例: 'int8'

示例: 'fixdt(1,16,5)'

示例: 'myAliasTypeObject'

示例: 'Enum: myEnumType'

示例: 'Bus: myBusObject'

数据类型: char

此信号的说明。此字段用于描述此信号。

此属性由 Simulink Report Generator 使用,并用于代码生成。

如果您拥有 Embedded Coder® 许可证,您可以在生成的代码中添加信号说明,作为变量声明的注释:

  • 为信号对象指定一个不同于 Auto 的存储类。

  • 在模型的 Configuration Parameters 对话框的 Code Generation > Comments 窗格中,选择模型配置参数 Simulink data object descriptions。有关详细信息,请参阅Simulink data object descriptions (Embedded Coder)

示例: 'This signal represents the rotation speed of the engine.'

数据类型: char

标量或向量,用于指定此信号的维度。

有效值包括 -1(默认值,指定任意维度)、N(指定向量大小为 N),或者 [M N](指定 MxN 的矩阵信号)。

要使用符号维度,请指定字符向量。

示例: [1 3]

示例: '[1 myDimParam]'

数据类型: double | char

信号的维度模式。有效值包括:

  • 'auto' - 允许可变大小和固定大小的信号。

  • 'Fixed' - 仅允许固定大小的信号。不允许可变大小的信号。

  • 'Variable' - 仅允许可变大小的信号。

有关可变大小信号的信息,请参阅可变大小信号基础知识

此信号可以具有的最大值。

默认值为 [](未指定)。应指定一个有限双精度标量实数值。

注意

如果您指定总线对象作为信号的数据类型,请不要在信号属性对话框上为总线数据设置最大值。Simulink 会忽略此设置。但请为指定作为数据类型的总线对象的总线元素设置最大值。有关总线元素的 Maximum 属性的信息,请参阅 Simulink.BusElement

Simulink 通过以下方式使用此值:

  • 更新模块图或开始仿真时,如果信号的初始值大于最大值,或者最大值在信号的数据类型范围外,Simulink 将生成错误。

  • 当您启用 Simulation range checking 诊断时,如果信号值大于最大值(请参阅Simulation range checking),Simulink 将在仿真过程中向您发出警报。

示例: 5.32

数据类型: double

此信号可以具有的最小值。

默认值为 [](未指定)。应指定一个有限双精度标量实数值。

注意

如果您指定总线对象作为信号的数据类型,请不要在信号属性对话框上为总线数据设置最小值。Simulink 会忽略此设置。但请为指定作为数据类型的总线对象的总线元素设置最小值。有关总线元素的 Minimum 属性的信息,请参阅 Simulink.BusElement

Simulink 通过以下方式使用此值:

  • 更新模块图或开始仿真时,如果信号的初始值小于最小值,或者最小值在信号的数据类型范围外,Simulink 将生成错误。

  • 当您启用 Simulation range checking 诊断时,如果信号值小于最小值(请参阅Simulation range checking),Simulink 将在仿真过程中向您发出警报。

示例: -0.92

数据类型: double

仿真执行第一个时间步之前的信号或状态值。

您可以指定计算结果为数值标量或数组的任何 MATLAB 表达式,包括工作区变量的名称。

在命令提示符或脚本中,即使您使用数字,也要将初始值指定为字符向量。

mySigObject.InitialValue='5.3';
mySigObject.InitialValue = 'myNumericVariable';

要为使用 double 之外的数值数据类型的信号指定初始值,请将初始值转换为信号数据类型。例如,您可以指定 'single(73.3)',以使用 73.3 作为数据类型为 single 的信号的初始值。

如果您使用总线对象作为信号对象的数据类型,请将 InitialValue 设置为字符向量,其中包含 0 或与总线对象匹配的 MATLAB 结构体。有关详细信息,请参阅 总线支持

如果初始值的计算结果为 MATLAB 结构体,则在 Configuration Parameters 对话框中,将 Underspecified initialization detection 设置为 “Simplified”。

如有必要,Simulink 将转换初始值,以确保类型、复/实性和维度与对应的模块参数值保持一致。如果您指定无效的值或表达式,当您更新模型时,将显示一条错误消息。此外,Simulink 也会对初始值执行范围检查。当信号的初始值位于指定的最小值、最大值和数据类型所对应的范围外时,软件将向您发出警报。

经典初始化模式:在此模式下,表示以下信号和状态的信号对象的初始值设置将覆盖对应的模块参数初始值(如果未定义,即指定为 []):

  • 条件执行子系统和 Merge 模块的输出信号

  • 模块状态

简化初始化模式:在此模式下,如果将信号对象附加到与条件执行子系统的 Outport 模块相连的信号线,Simulink 将使用来自 Simulink.signal 对象的 InitialValue。

示例: '15.23'

示例: 'myInitParam'

数据类型: char

更新此信号时应采用的速率。

有关详细信息,请参阅指定采样时间

示例: 0.001

示例: 2

数据类型: double

用来表示此信号值的物理单位(例如,英寸)。

有关详细信息,请参阅 Simulink 模型中的单位指定

示例: 'degC'

数据类型: char

示例

Simulink.Signal 示例

有关如何使用 Simulink.Signal 对象的示例,请参阅使用 Simulink.Signal 对象指定和控制信号属性数据对象

扩展功能

定点转换
使用 Fixed-Point Designer™ 设计和仿真定点系统。

在 R2006a 之前推出