Signal Specification
指定信号所需的维度、采样时间、数据类型、数值类型和其他属性
库:
Simulink /
Signal Attributes
HDL Coder /
Signal Attributes
描述
Signal Specification 模块允许您指定连接到其输入和输出端口上的信号的属性。如果指定的属性与其端口上连接的模块所指定的属性冲突,软件将在编译模型时显示错误消息。例如,在仿真开始时,如果不存在冲突,该软件将从已编译的模型中消除 Signal Specification 模块。换句话说,Signal Specification 模块是虚拟模块。它的存在只是为了指定信号的属性,在模型的仿真中不起任何作用。
您可以使用 Signal Specification 模块确保信号的实际属性满足所需的属性要求。例如,假设您和一位同事负责设计同一个模型的不同部分。您可以使用 Signal Specification 模块将您负责的那部分模型与您同事负责的那部分连接起来。如果您的同事更改了某个信号的属性而没有通知您,则输入对应 Signal Specification 模块的属性将不匹配。当您尝试对模型进行仿真时,您会看到错误消息。
您还可以使用 Signal Specification 模块确保信号属性在整个模型中的正确传播。但是,如果有些模块收到或输出的信号具有未指定的属性,模型将没有足够的信息进行正确的属性传播。在这些情况下,Signal Specification 模块可以提供软件需要的信息。使用 Signal Specification 模块,还可以在模块缺少信号属性时帮助您提高模型的编译速度。
Signal Specification 模块支持信号标签传播。有关详细信息,请参阅信号标签传播。
示例
Modeling Objects with Identical Dynamics Using For Each Subsystem
Model multiple objects with identical dynamics using the For Each subsystem. The number of objects is parameterized by the length of the input signal.
端口
输入
Port_1 — 输入信号
标量 | 向量 | 矩阵 | N 维数组
要检查其属性的输入信号,指定为标量、向量、矩阵或 N 维数组。模块根据您在模块对话框中指定的属性检查输入信号的属性。如果属性不匹配,则模块会生成错误。
数据类型: single
| double
| half
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| Boolean
| fixed point
| enumerated
| bus
| image
输出
Port_1 — 输出信号
标量 | 向量 | 矩阵 | N 维数组
当信号的所有属性与对话框中指定的属性都匹配时,输出信号就是输入信号。如果属性不匹配,则模块会生成错误。
数据类型: single
| double
| half
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| Boolean
| fixed point
| enumerated
| bus
| image
参数
最小值 — 范围检查的最小值
[]
(默认) | 标量
将模块输出的最小值指定为有限双精度实数标量值。
软件使用此值执行:
仿真范围检查(请参阅指定信号范围)
定点数据类型的自动定标
依存关系
当数据类型指定 Simulink.ValueType
或 Simulink.Bus
对象时,软件会忽略此参数的值。软件改用 Simulink.ValueType
对象或 Simulink.Bus
对象中的 Simulink.BusElement
对象指定的最小值。
编程用法
模块参数:OutMin |
类型:字符向量 |
值:标量 |
默认值:'[ ]' |
最大值 — 范围检查的最大值
[]
(默认) | 标量
将模块输出的最大值指定为有限双精度实数标量值。
软件使用此值执行:
仿真范围检查(请参阅指定信号范围)
定点数据类型的自动定标
依存关系
当数据类型指定 Simulink.ValueType
或 Simulink.Bus
对象时,软件会忽略此参数的值。软件改用 Simulink.ValueType
对象或 Simulink.Bus
对象中的 Simulink.BusElement
对象指定的最大值。
编程用法
模块参数:OutMax |
类型:字符向量 |
值:标量 |
默认值:'[ ]' |
数据类型 — 输出数据类型
Inherit: auto (默认) | double | single | half | int8 | uint8 | int16 | uint16 | ...
指定所需的输出数据类型。如果输入信号的数据类型与您指定的值不匹配,则模块会生成错误或警告。
数据类型助手可帮助您设置数据属性。要使用数据类型助手,请点击 。有关详细信息,请参阅使用数据类型助手指定数据类型。
您可以指定以下任一选项:
继承的数据类型
内置 Simulink® 数据类型 - 例如,指定 single 或 uint8。请参阅 Simulink 支持的数据类型。
定点数据类型 - 使用
fixdt
函数。例如,指定 fixdt(1,16,0)。枚举数据类型 - 使用以
Enum:
开头的类型名称。例如,指定 Enum: myEnumType。总线数据类型 - 使用以
Bus:
开头的Simulink.Bus
对象的名称。例如,指定 Bus: myBusObject。Simulink 图像数据类型 - 如果您有 Computer Vision Toolbox™,请使用
Simulink.ImageType
(Computer Vision Toolbox) 对象的构造函数,并指定描述图像的属性。默认情况下,数据类型使用Simulink.ImageType(480,640,3)
表达式,分别表示图像的行、列和通道。值类型 - 使用以
ValueType:
开头的Simulink.ValueType
对象的名称。例如,指定 ValueType: windVelocity。自定义数据类型 - 使用指定类型的 MATLAB® 表达式。例如,您可以指定一个
Simulink.NumericType
对象,其DataTypeMode
属性设置为'Fixed-point: unspecified scaling'
以外的值。
当您指定 Simulink.ValueType
或 Simulink.Bus
对象作为数据类型时,会忽略 Signal Specification 模块的一些参数。例如,忽略 Signal Specification 模块的 Min、Max 和 Unit 参数。软件改用 Simulink.ValueType
对象或 Simulink.Bus
对象中 Simulink.BusElement
对象的对应属性。例如,假设一个模块将单位设置为 ft/s
。当该模块的数据类型指定以 m/s
为单位的 ValueType
对象时,该模块会使用 m/s
而不是 ft/s
作为单位。
编程用法
模块参数:OutDataTypeStr
|
类型:字符向量 |
值:'Inherit: auto' | 'double' | 'single' | 'half' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | 'boolean' | 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)' | 'string' | 'Enum: <class name>' | 'Bus: <object name>' | 'ValueType: <object name>' | <data type expression> | Simulink.ImageType(480,640,3)
|
默认值:'Inherit: auto'
|
锁定输出数据类型设置以防止被定点工具更改 — 防止定点工具覆盖数据类型的选项
off
(默认) | on
选择此参数可防止定点工具覆盖您在模块上指定的输出数据类型。有关详细信息,请参阅Use Lock Output Data Type Setting (Fixed-Point Designer)。
依存关系
当数据类型指定 Simulink.ValueType
对象时,软件会忽略此参数的值。
编程用法
模块参数:LockScale |
值:'off' | 'on' |
默认值:'off' |
需要非虚拟总线 — 仅接受非虚拟总线信号
off
(默认) | on
如果您指定总线对象作为数据类型,请使用此参数指定是否只接受非虚拟总线信号。
off
- 指定信号必须来自虚拟总线。on
- 指定信号必须来自非虚拟总线。
依存关系
要启用此参数,数据类型模块参数必须解析为 Simulink.Bus
对象。
编程用法
模块参数:BusOutputAsStruct
|
类型:字符向量 |
值:'off' | 'on'
|
默认值:'off'
|
单位(例如,m、m/s^2、N*m) — 模块的输入信号的物理单位
inherit
(默认) | <Enter unit>
指定模块的输入信号的物理单位。要指定单位,请在文本框中键入需要的值。随着您的键入,参数将显示可能匹配的单位。有关支持的单位列表,请参阅允许使用的单位制。
要约束单位制,请点击参数右侧的链接:
如果组件中存在 Unit System Configuration 模块,将打开其对话框。使用该对话框为组件指定允许和不允许使用的单位制。
如果组件中不存在 Unit System Configuration 模块,将显示模型的“配置参数”对话框。使用该对话框为模型指定允许和不允许使用的单位制。
依存关系
当数据类型指定 Simulink.ValueType
或 Simulink.Bus
对象时,软件会忽略此参数的值。软件改用 Simulink.ValueType
对象或 Simulink.Bus
对象中的 Simulink.BusElement
对象指定的单位。
编程用法
模块参数:Unit
|
类型:字符向量 |
值:'inherit' | '<Enter unit>'
|
默认值:'inherit'
|
维度(-1 表示继承) — 输入和输出信号的维度
-1
(默认) | n
| [m n]
指定输入和输出信号的维度。
-1
- 指定信号继承维度。n
- 指定宽度为n
的向量。[m n]
- 指定具有m
行n
列的矩阵。
依存关系
当数据类型指定 Simulink.ValueType
对象时,软件会忽略此参数的值。软件改用 Simulink.ValueType
对象指定的维度。
编程用法
模块参数:Dimensions
|
类型:字符向量 |
值:'-1' | n | [m n]
|
默认值:'-1'
|
可变大小信号 — 允许信号为可变大小、固定大小或两者皆可
继承 (默认) | 否 | 是
将信号指定为可变大小、固定大小或两者皆可。
inherit - 允许可变大小和固定大小的信号。
否 - 不允许可变大小的信号。
是 - 仅允许可变大小的信号。
当信号为可变大小的信号时,维度参数指定信号的最大维度。
依存关系
当数据类型指定
Simulink.Bus
对象时,仿真只允许具有禁用的总线对象的可变大小信号。当数据类型指定
Simulink.ValueType
对象时,软件会忽略此参数的值。软件改用Simulink.ValueType
对象指定的维度模式。
编程用法
模块参数:VarSizeSig
|
类型:字符向量 |
值:'Inherit' | 'No' | 'Yes'
|
默认值:'Inherit'
|
采样时间(-1 表示继承) — 采样时间间隔
-1
(默认) | 标量 | 向量
信号类型 — 信号的复/实性
自动 (默认) | 实数 | 复
指定输入和输出信号的复/实性。
自动 - 接受实部或复为数值类型。
实部 - 指定数值类型为实数。
复 - 指定数值类型为复数。
依存关系
当数据类型指定 Simulink.ValueType
或 Simulink.Bus
对象时,软件会忽略此参数的值。软件改用 Simulink.ValueType
对象或 Simulink.Bus
对象中的 Simulink.BusElement
对象指定的复/实性。
编程用法
参数:SignalType
|
类型:字符向量 |
值:'auto' | 'real' | 'complex'
|
默认值:'auto'
|
模式 — 数据类型模式
继承 (默认) | 内置 | 定点 | 枚举 | 总线对象 | 值类型 | 表达式
选择要指定的数据类别。有关详细信息,请参阅使用数据类型助手指定数据类型。
- 继承
数据类型的继承规则。选择
Inherit
将启用auto
。- 内置
内置的数据类型。选择
Built in
将启用一个可能值的列表:double
(默认值)single
int8
uint8
int16
uint16
int32
uint32
int64
uint64
boolean
- 定点
定点数据类型。
- 枚举
枚举数据类型。选择
Enumerated
将在右侧启用另一个文本框,您可以在其中输入类名称。- 总线对象
总线对象。选择总线对象将在右侧启用一个文本框,您可以在此处输入要用来定义总线结构的总线对象的名称。要创建或更改总线对象,点击文本框右侧的编辑。
- 值类型
值类型。选择值类型将在右侧启用一个文本框,您可在其中输入要用于定义信号属性的值类型的名称。要创建或更改值类型,请点击文本框右侧的编辑。
- 表达式
计算结果为数据类型的表达式。选择表达式将在右侧启用一个文本框,您可以在其中输入表达式。
不要将总线对象指定为表达式。
依存关系
要启用此参数,请点击显示数据类型助手按钮 。
符号性 — 有符号或无符号
有符号
指定定点数据是有符号还是无符号。有符号数据可以表示正值和负值,无符号数据只表示正值。
有符号,将定点数据指定为有符号数据。
无符号,将定点数据指定为无符号数据。
有关详细信息,请参阅使用数据类型助手指定数据类型。
依存关系
要启用此参数,请将模式设置为 Fixed point
。
数据类型覆盖 — 为此信号指定数据类型覆盖模式
Inherit
| Off
为此信号选择数据类型覆盖模式。
当您选择 inherit 时,Simulink 从信号的上下文(即:从 Simulink 中使用该信号的模块、
Simulink.Signal
对象或 Stateflow® 图)中继承数据类型覆盖设置。当您选择 off 时,Simulink 忽略信号上下文的数据类型覆盖设置,并使用为信号指定的定点数据类型。
有关详细信息,请参阅 Simulink 文档中的使用数据类型助手指定数据类型。
依存关系
要启用此参数,请将模式设置为内置或定点。
提示
由于能够关闭单个数据类型的数据类型覆盖,您可以在应用数据类型覆盖时更好地控制模型中的数据类型。例如,您可以使用此选项确保数据类型满足下游模块的要求,而忽略数据类型覆盖设置。
字长 — 存储量化整数的字的位大小
16
(默认) | 从 0 到 32 的整数
定标 — 定标定点数据的方法
最佳精度 (默认) | 二进制小数点 | 斜率和偏置
小数长度 — 指定定点数据类型的小数长度
0
(默认) | 标量整数
斜率 — 指定定点数据类型的斜率。
2^0
(默认) | 正实数值标量
偏置 — 指定定点数据类型的偏置。
0
(默认) | 实数值标量
模块特性
数据类型 |
|
直接馈通 |
|
多维信号 |
|
可变大小信号 |
|
过零检测 |
|
扩展功能
C/C++ 代码生成
使用 Simulink® Coder™ 生成 C 代码和 C++ 代码。
HDL 代码生成
使用 HDL Coder™ 为 FPGA 和 ASIC 设计生成 VHDL、Verilog 和 SystemVerilog 代码。
HDL Coder™ 提供影响 HDL 实现和综合逻辑的额外配置选项。
此模块有直通实现。
ConstrainedOutputPipeline | 通过移动设计中现有延迟的方式来放置在输出端的寄存器的数量。分布式流水线不会重新分发这些寄存器。默认值为 |
InputPipeline | 要在生成的代码中插入的输入流水线阶段数。分布式流水线和受限输出流水线可以移动这些寄存器。默认值为 |
OutputPipeline | 要在生成的代码中插入的输出流水线阶段数。分布式流水线和受限输出流水线可以移动这些寄存器。默认值为 |
此模块支持复信号的代码生成。
Simulink.ValueType
对象支持此模块支持 Simulink.ValueType
对象的生成代码。有关值类型的详细信息,请参阅Specify Common Set of Signal Properties as Value Type。
定点转换
使用 Fixed-Point Designer™ 设计和仿真定点系统。
版本历史记录
在 R2006a 之前推出
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)