Main Content

Simulink.Signal

指定信号或离散状态特定于实例的属性

说明

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

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

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

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

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

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

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

要根据特定于应用的类型(如风速)对信号属性进行赋值或验证,请使用 Simulink.ValueType 对象。

创建对象

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

描述

示例

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

属性

全部展开

此 属性 为只读。

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

模型工作区中 Simulink.Signal 对象的存储类必须为 'Auto'

有关详细信息,请参阅C Data Code Interface Configuration for Model Interface Elements (Simulink Coder)Choose Storage Class for Controlling Data Representation in Generated Code (Embedded Coder)

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

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

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

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

  • 在模型的“配置参数”对话框的代码生成 > 注释窗格中,选择模型配置参数 Simulink 数据对象描述。有关详细信息,请参阅Simulink 数据对象描述 (Embedded Coder)

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

数据类型: char | string

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

默认值 'auto' 指定应由软件确定数据类型。

您可以指定内置数据类型,例如 'uint8''single'。有关更多选项,请参阅Simulink 支持的数据类型

要指定定点数据类型,请使用 fixdt 函数。例如,指定 'fixdt(1,16,5)'

要指定自定义数据类型,请输入指定该类型的 MATLAB 表达式,例如,引用 Simulink.NumericType 对象的基础工作区变量。

要指定枚举的数据类型,请在 Enum: 之后使用类型的名称。例如,指定 'Enum: myEnumType'

要将 Simulink.ValueType 对象指定为数据类型,请在 ValueType: 之后使用对象的名称。例如,指定 'ValueType: myValueType'

要将 Simulink.Bus 对象指定为数据类型,请在 Bus: 之后使用总线对象的名称。例如,指定 'Bus: myBusObject'。有关指定总线对象作为数据类型时所需操作的详细信息,请参阅总线支持

当您指定 Simulink.ValueTypeSimulink.Bus 对象作为数据类型时,将忽略 Simulink.Signal 对象的某些属性。例如,忽略 Simulink.Signal 对象的 MinMaxUnit 属性。软件改用 Simulink.ValueType 对象或 Simulink.Bus 对象中 Simulink.BusElement 对象的对应属性。

示例: 'auto'

示例: 'int8'

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

示例: 'myAliasTypeObject'

示例: 'Enum: myEnumType'

示例: 'ValueType: myValueType'

示例: 'Bus: myBusObject'

提示

当您以交互方式编辑数据类型时,要显示数据类型助手,请点击显示数据类型助手按钮 。有关详细信息,请参阅使用数据类型助手指定数据类型

数据类型: char | string

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

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

软件通过以下方式使用此值:

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

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

示例: -0.92

依存关系

DataType 指定 Simulink.ValueTypeSimulink.Bus 对象时,软件将忽略此属性的值。软件改用 Simulink.ValueType 对象或 Simulink.Bus 对象中的 Simulink.BusElement 对象指定的最小值。

提示

对于具有定点数据类型的信号对象,对话框显示存储的最小整数属性,这是信号应具有的最小值,指定为存储整数值。该值派生自真实值的最小值。

数据类型: double

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

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

软件通过以下方式使用此值:

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

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

示例: 5.32

依存关系

DataType 指定 Simulink.ValueTypeSimulink.Bus 对象时,软件将忽略此属性的值。软件改用 Simulink.ValueType 对象或 Simulink.Bus 对象中的 Simulink.BusElement 对象指定的最大值。

提示

对于具有定点数据类型的信号对象,对话框显示存储的最大整数属性,这是信号应具有的最大值,指定为存储整数值。该值派生自真实值最大值。

数据类型: double

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

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

示例: 'degC'

依存关系

DataType 指定 Simulink.ValueTypeSimulink.Bus 对象时,软件将忽略此属性的值。软件改用 Simulink.ValueType 对象或 Simulink.Bus 对象中的 Simulink.BusElement 对象指定的单位。

数据类型: char | string

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

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

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

示例: [1 3]

示例: '[1 myDimParam]'

依存关系

DataType 指定 Simulink.ValueType 对象时,软件会忽略此属性的值。软件改用 Simulink.ValueType 对象指定的维度。

数据类型: double | char | string

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

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

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

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

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

依存关系

DataType 指定 Simulink.ValueTypeSimulink.Bus 对象时,软件将忽略此属性的值。软件改用 Simulink.ValueType 对象或 Simulink.Bus 对象中的 Simulink.BusElement 对象指定的维度模式。

字符向量,用于指定此信号的数值类型。有效值包括 'auto''real''complex'

默认值 'auto' 指定软件应确定复/实性。

依存关系

DataType 指定 Simulink.ValueTypeSimulink.Bus 对象时,软件将忽略此属性的值。软件改用 Simulink.ValueType 对象或 Simulink.Bus 对象中的 Simulink.BusElement 对象指定的复/实性。

更新此信号值时的采样速率。

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

示例: 0.001

示例: 2

数据类型: double

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

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

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

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

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

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

如果初始值的计算结果为 MATLAB 结构体,请在“配置参数”对话框中,将欠定初始化检测设置为简化

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

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

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

  • 模块状态

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

示例: '15.23'

示例: 'myInitParam'

数据类型: char | string

示例

全部折叠

要使用信号对象控制模型中某个信号的特征,请使用与该信号相同的名称在工作区中创建对象。

创建一个名为 mySig 的信号对象。

mySig = Simulink.Signal;

将信号对象的数据类型设置为 'boolean'

mySig.DataType = 'boolean';

获取创建目标信号的模块端口的句柄。

portHandles = get_param('myModel/myBlock','portHandles');
outportHandle = portHandles.Outport;

指定输出信号的名称以匹配信号对象的名称。使用 'Name' 端口参数。

set_param(outportHandle,'Name','mySig')

通过将 'MustResolveToSignalObject' 端口参数设置为 'on',强制模型中的信号使用信号对象存储的属性。

set_param(outportHandle,'MustResolveToSignalObject','on')

要使用信号对象控制模型中某个信号的特征,请使用与该信号相同的名称在工作区中创建对象。

创建一个名为 mySig 的信号对象。

mySig = Simulink.Signal;

将信号对象的数据类型设置为 'boolean'

mySig.DataType = 'boolean';

指定输出信号的名称以匹配信号对象的名称。使用 'SignalName' 模块参数。

set_param('myModel/myOutport','SignalName','mySig')

通过将 'MustResolveToSignalObject' 模块参数设置为 'on',强制模型中的信号使用信号对象存储的属性。

set_param('myModel/myOutport','MustResolveToSignalObject','on')

您可以使用信号对象来控制模块(例如 Discrete-Time Integrator 模块)的状态特征。

创建一个名为 myState 的信号对象。

myState = Simulink.Signal;

将信号对象的数据类型设置为 'int16'

myState.DataType = 'int16';

指定状态的名称以匹配信号对象的名称。使用 'StateName' 模块参数。

set_param('myModel/myBlock','StateName','myState')

通过将 'StateMustResolveToSignalObject' 模块参数设置为 'on',强制模型中的状态使用信号对象存储的属性。

set_param('myModel/myBlock','StateMustResolveToSignalObject','on')

扩展功能

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

版本历史记录

在 R2006a 之前推出

全部展开