Constant
生成常量值
库:
Simulink /
Commonly Used Blocks
Simulink /
Sources
DSP System Toolbox /
Sources
HDL Coder /
Commonly Used Blocks
HDL Coder /
Sources
描述
Constant 模块生成实数或复数常量值信号。使用此模块提供常量信号输入。此模块是生成标量、向量还是混合输出要取决于:
常量值参数的维度
将向量参数解释为一维向量参数的设置
此模块的输出与常量值参数具有相同的维度和元素。如果为此参数指定向量,即您希望模块将其解析为向量,请选中将向量参数解释为一维向量复选框。否则,如果为常量值参数指定了向量,模块会将该向量视为一个矩阵。
提示
要输出常量枚举值,请考虑改用 Enumerated Constant 模块。Constant 模块提供不适用于枚举类型的模块参数,例如输出最小值和输出最大值。
使用总线对象作为输出数据类型
Constant 模块支持使用非虚拟总线作为输出数据类型。使用总线对象作为输出数据类型可以帮助简化您的模型。如果使用总线对象作为输出数据类型,请将常量值设置为 0
或者与该总线对象匹配的 MATLAB® 结构体。
对总线的常量值使用结构体
您指定的结构体中必须为总线对象所代表的总线中的每个元素包含一个值。模块输出为非虚拟总线信号。
您可以使用 Simulink.Bus.createMATLABStruct
创建一个与总线对应的完全结构体。
也可以使用 Simulink.Bus.createObject
从 MATLAB 结构体中创建一个总线对象。
如果输出总线中的信号元素使用除 double
之外的其他数字数据类型,则您可以通过使用定型表达式(例如 uint16(37)
)或非定型表达式(例如 37
)来指定结构体字段。要控制字段数据类型,您可以使用总线对象作为 Simulink.Parameter
对象的数据类型。要决定是使用定型表达式还是非定型表达式,请参阅Control Data Types of Initial Condition Structure Fields。
设置配置参数以支持使用总线对象数据类型
要允许使用总线对象作为输出数据类型,请在开始仿真之前,将配置参数 > 诊断 > 数据有效性 > 高级参数 > 欠定初始化检测设置为简化。有关详细信息,请参阅 Underspecified initialization detection。
示例
端口
输出
Port_1 — 常量值
标量 | 向量 | 矩阵 | N 维数组
常量值,指定为实数或复数值标量、向量、矩阵或 N 维数组。默认情况下,Constant 模块输出的信号与常量值参数具有相同的维度、数据类型和复/实性。但是,您可以为输出指定 Simulink® 支持的任何数据类型,包括定点和枚举数据类型。
数据类型: single
| double
| half
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| Boolean
| fixed point
| enumerated
| bus
参数
常设
常量值 — 常量输出值
1
(默认) | 标量 | 向量 | 矩阵 | N 维数组
为模块指定常量值输出。
您可以输入 MATLAB 以矩阵方式运算的任何表达式,包括布尔关键字
true
和false
。如果您将输出数据类型设置为总线对象,则可以指定下列选项之一:
与总线对象对应的完全 MATLAB 结构体
0
,以表示与总线对象的接地值对应的结构体
有关详细信息,请参阅使用总线对象作为输出数据类型。
对于非总线数据类型,Simulink 使用最邻近舍入方法和饱和溢出操作,自动将此参数从其值数据类型转换为指定的输出数据类型。
依存关系
当输出数据类型指定 Simulink.ValueType
对象时,软件会忽略常量值的数据类型。
当此参数指定 Simulink.Parameter
对象并且输出数据类型指定 Simulink.ValueType
对象时:
该模块使用
Simulink.ValueType
对象指定的最小值、最大值和数据类型。该模块使用由
Simulink.Parameter
对象指定的单位。对象指定的维度和复/实性必须匹配。
编程用法
要以编程方式设置模块参数值,请使用 set_param
函数。
参数: | Value |
值: | '1' (默认) | scalar in quotes | vector in quotes | matrix in quotes | array in quotes |
数据类型: | char | string |
将向量参数解释为一维向量 — 将向量视为一维
on
(默认) | off
如果常量值参数的计算结果为包含 N
个元素的行或列向量,选中此复选框将输出长度为 N
的向量。
如果常量值参数的计算结果为包含
N
个元素的行或列向量,则选中此复选框时,模块将输出长度为N
的向量。清除此复选框后,如果常量值参数的计算结果为一个包含
N
个元素的行向量或列向量,模块将输出一个维度为 1×N
或N
×1 的矩阵。例如,该模块输出 1×N
或N
×1 矩阵。
编程用法
要以编程方式设置模块参数值,请使用 set_param
函数。
参数: | VectorParams1D |
值: | 'on' (默认) | 'off' |
信号属性
输出最小值 — 范围检查的最小输出值
[]
(默认) | 标量
将软件检查的输出范围的下限值指定为有限的双精度实数标量值。
软件使用最小值执行下列操作:
某些模块的参数范围检查(请参阅指定模块参数的最小值和最大值)。
定点数据类型的自动定标。
从模型生成的代码的优化。此优化可删除算法代码,并影响某些仿真模式(如 SIL 或外部模式)的结果。有关详细信息,请参阅Optimize using the specified minimum and maximum values (Embedded Coder)。
提示
输出最小值不会对实际输出信号进行饱和处理或截断。请改用 Saturation 模块。
依存关系
当输出数据类型指定 Simulink.ValueType
或 Simulink.Bus
对象时,软件会忽略此参数的值。软件改用 Simulink.ValueType
对象或 Simulink.Bus
对象中的 Simulink.BusElement
对象指定的最小值。
编程用法
要以编程方式设置模块参数值,请使用 set_param
函数。
参数: | OutMin |
值: | '[ ]' (默认) | scalar in quotes |
输出最大值 — 范围检查的最大输出值
[]
(默认) | 标量
将软件检查的输出范围的上限值指定为有限的双精度实数标量值。
软件使用最大值执行下列操作:
某些模块的参数范围检查(请参阅指定模块参数的最小值和最大值)。
定点数据类型的自动定标。
从模型生成的代码的优化。此优化可删除算法代码,并影响某些仿真模式(如 SIL 或外部模式)的结果。有关详细信息,请参阅Optimize using the specified minimum and maximum values (Embedded Coder)。
提示
输出最大值不会对实际输出信号进行饱和处理或截断。请改用 Saturation 模块。
依存关系
当输出数据类型指定 Simulink.ValueType
或 Simulink.Bus
对象时,软件会忽略此参数的值。软件改用 Simulink.ValueType
对象或 Simulink.Bus
对象中的 Simulink.BusElement
对象指定的最大值。
编程用法
要以编程方式设置模块参数值,请使用 set_param
函数。
参数: | OutMax |
值: | '[ ]' (默认) | scalar in quotes |
输出数据类型 — 输出数据类型
继承: 从 '常量值' 继承 (默认) | 继承: 通过反向传播继承 | double | single | half | int8 | int16 | ...
指定输出数据类型。
数据类型助手可帮助您设置数据属性。要使用数据类型助手,请点击 。有关详细信息,请参阅使用数据类型助手指定数据类型。
您可以指定以下任一选项:
继承的数据类型
内置 Simulink 数据类型 - 例如,指定 single 或 uint8。请参阅 Simulink 支持的数据类型。
定点数据类型 - 使用
fixdt
函数。例如,指定 fixdt(1,16,0)。枚举数据类型 - 使用以
Enum:
开头的类型名称。例如,指定 Enum: myEnumType。总线数据类型 - 使用以
Bus:
开头的Simulink.Bus
对象的名称。例如,指定 Bus: myBusObject。值类型 (自 R2023b 起) - 使用以
ValueType:
开头的Simulink.ValueType
对象的名称。例如,指定 ValueType: windVelocity。您指定的值类型必须将DimensionsMode
设置为'Fixed'
。自定义数据类型 - 使用指定类型的 MATLAB 表达式。例如,您可以指定一个
Simulink.NumericType
对象,其DataTypeMode
属性设置为'Fixed-point: unspecified scaling'
以外的值。
当您指定 Simulink.ValueType
或 Simulink.Bus
对象作为数据类型时,将忽略 Constant 模块的输出最小值和输出最大值参数。软件改用 Simulink.ValueType
对象或 Simulink.Bus
对象中 Simulink.BusElement
对象的对应属性。例如,假设一个模块将输出最小值设置为 0
。当模块的输出数据类型指定 ValueType
对象并将 1
作为其最小值时,模块使用 1
而不是 0
作为其最小值。
编程用法
要以编程方式设置模块参数值,请使用 set_param
函数。
参数: | OutDataTypeStr |
值: | 'Inherit: Inherit from 'Constant value'' (默认) | 'Inherit: Inherit via back propagation' | 'double' | 'single' | 'half' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | 'boolean' | 'fixdt(1,16)' | 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)' | 'Enum: <class name>' | 'Bus: <object name>' | 'ValueType: <object name>' | '<data type expression>' |
锁定输出数据类型设置以防止被定点工具更改 — 防止定点工具覆盖输出数据类型
off
(默认) | on
选择此参数可防止定点工具覆盖您在模块上指定的输出数据类型。有关详细信息,请参阅Use Lock Output Data Type Setting (Fixed-Point Designer)。
编程用法
要以编程方式设置模块参数值,请使用 set_param
函数。
参数: | LockScale |
值: | 'off' (默认) | 'on' |
模式 — 要指定的数据的类别
继承 (默认) | 内置 | 定点 | 枚举 | 总线对象 | 值类型 | 表达式
选择要指定的数据类别。
继承 - 数据类型的继承规则。选择继承将在右侧启用另一个菜单。选择以下选项之一:
从 '常量值' 继承(默认值)
通过反向传播继承
内置 - 内置数据类型。选择内置将在右侧启用另一个菜单。选择以下选项之一:
double(默认值)
single
half
int8
uint8
int16
uint16
int32
uint32
int64
uint64
boolean
定点 - 定点数据类型。
枚举 - 枚举数据类型。选择枚举将在右侧启用另一个文本框,您可以在其中输入类名称。
总线对象 - 总线对象。选择总线对象将在右侧启用一个文本框,您可以在此处输入要用来定义总线结构的总线对象的名称。要创建或更改总线对象,点击文本框右侧的编辑。
值类型 (自 R2023b 起) - 值类型。选择值类型将在右侧启用一个文本框,您可在其中输入要用于定义输出信号属性的值类型的名称。要创建或更改值类型,请点击文本框右侧的编辑。
表达式 - 计算结果为数据类型的表达式。选择表达式将在右侧启用一个文本框,您可以在其中输入表达式。
不要将总线对象指定为表达式。
数据类型覆盖 — 为此信号指定数据类型覆盖模式
继承 | off
为此信号选择数据类型覆盖模式。
当您选择继承时,软件从信号的上下文(即:从使用该信号的模块、
Simulink.Signal
对象或 Stateflow® 图)中继承数据类型覆盖设置。当您选择 Off 时,软件忽略信号上下文的数据类型覆盖设置,并使用为信号指定的定点数据类型。
有关详细信息,请参阅使用数据类型助手指定数据类型。
依存关系
要启用此参数,请点击显示数据类型助手按钮,并将模式设置为内置或定点。
提示
由于能够关闭单个数据类型的数据类型覆盖,您可以在应用数据类型覆盖时更好地控制模型中的数据类型。例如,您可以使用此选项确保数据类型满足下游模块的要求,而忽略数据类型覆盖设置。
符号性 — 指定有符号或无符号
有符号 (默认) | 无符号
指定定点数据是有符号还是无符号。有符号数据可以表示正值和负值,无符号数据只表示正值。
有符号,将定点数据指定为有符号数据。
无符号,将定点数据指定为无符号数据。
有关详细信息,请参阅使用数据类型助手指定数据类型。
依存关系
要启用此参数,请将模式设置为定点。
定标 — 定标定点数据的方法
最佳精度 (默认) | 二进制小数点 | 斜率和偏置
字长 — 存储量化整数的字的位大小
16
(默认) | 从 0 到 32 的整数
小数长度 — 指定定点数据类型的小数长度
0
(默认) | 标量整数
斜率 — 指定定点数据类型的斜率。
2^0
(默认) | 正实数值标量
偏置 — 指定定点数据类型的偏置。
0
(默认) | 实数值标量
模块特性
数据类型 |
|
直接馈通 |
|
多维信号 |
|
可变大小信号 |
|
过零检测 |
|
扩展功能
C/C++ 代码生成
使用 Simulink® Coder™ 生成 C 代码和 C++ 代码。
HDL 代码生成
使用 HDL Coder™ 为 FPGA 和 ASIC 设计生成 VHDL、Verilog 和 SystemVerilog 代码。
HDL Coder™ 提供影响 HDL 实现和综合逻辑的额外配置选项。
您可以在 Constant 模块中使用可调参数,用于 HDL 代码生成。有关详细信息,请参阅Generate DUT Ports for Tunable Parameters (HDL Coder)。
架构 | 参数 | 描述 |
---|---|---|
默认 常量 | 无 | 此实现生成 Constant 模块的值。 |
逻辑值 | 无 | 默认情况下,此实现为信号中的每个位生成字符 'Z' 。例如,对于一个 4 位信号,此实现将生成 'ZZZZ' 。 |
{'Value', 'Z'} | 如果信号处于高阻抗状态,请使用此参数值。此实现为信号中的每个位生成字符 'Z' 。例如,对于一个 4 位信号,此实现将生成 'ZZZZ' 。 | |
{'Value', 'X'} | 如果信号处于未知状态,请使用此参数值。此实现为信号中的每个位生成字符 'X' 。例如,对于一个 4 位信号,此实现将生成 'XXXX' 。 |
ConstrainedOutputPipeline | 通过移动设计中现有延迟的方式来放置在输出端的寄存器的数量。分布式流水线不会重新分发这些寄存器。默认值为 |
InputPipeline | 要在生成的代码中插入的输入流水线阶段数。分布式流水线和受限输出流水线可以移动这些寄存器。默认值为 |
OutputPipeline | 要在生成的代码中插入的输出流水线阶段数。分布式流水线和受限输出流水线可以移动这些寄存器。默认值为 |
此模块支持复信号的代码生成。
逻辑值实现不支持
double
数据类型。如果为double
类型的常量值指定此实现,则会出现代码生成错误。当无限采样时间传播到在测设备 (DUT) 输出时,延迟平衡不支持采样时间设置为
inf
的 Constant 模块。如果在 HDL 代码生成期间存在无限采样率误差,则将采样时间设置为 -1。
Simulink.ValueType
对象支持此模块支持 Simulink.ValueType
对象的生成代码。有关值类型的详细信息,请参阅Specify Common Set of Signal Properties as Value Type。
PLC 代码生成
使用 Simulink® PLC Coder™ 生成结构化文本代码。
定点转换
使用 Fixed-Point Designer™ 设计和仿真定点系统。
版本历史记录
在 R2006a 之前推出R2023b: 将输出数据类型设置为 Simulink.ValueType
对象
输出数据类型参数支持具有固定维度的 Simulink.ValueType
对象。
当您将某个值类型指定为 Constant 模块的数据类型时,该值类型将覆盖由模块和常量值的数据类型指定的最小值和最大值。值类型验证常量值的维度、复/实性和单位。当这些属性不匹配时,软件会发出警告或错误。
例如,假设一个 Constant 模块:
将常量值设置为单位为
ft/s
的Simulink.Parameter
对象将输出数据类型设置为单位为
m/s
的Simulink.ValueType
对象
在模型编译期间,软件会发出警告,指出单位不匹配。Constant 模块使用 ft/s
作为单位。
再如,假设一个 Constant 模块:
常量值设置为
[2 3]
将输出数据类型设置为维度为
1
的Simulink.ValueType
对象
在模型编译期间,软件会引发错误,指出维度不匹配。复/实性不匹配也会导致错误。
Constant 模块不使用值类型的描述。
有关值类型的详细信息,请参阅Specify Common Set of Signal Properties as Value Type。
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)