Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

Constant

生成常量值

  • Constant block

库:
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

设置配置参数以支持使用总线对象数据类型

要允许使用总线对象作为输出数据类型,请在开始仿真之前,将配置参数 > 诊断 > 数据有效性 > 高级参数 > 欠定初始化检测设置为简化。有关详细信息,请参阅 欠定初始化检测

端口

输出

全部展开

常量值,指定为实数或复数值标量、向量、矩阵或 N 维数组。默认情况下,Constant 模块输出的信号与常量值参数具有相同的维度、数据类型和复/实性。但是,您可以为输出指定 Simulink® 支持的任何数据类型,包括定点和枚举数据类型。

数据类型: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus

参数

全部展开

常设

为模块指定常量值输出。

  • 您可以输入 MATLAB 以矩阵方式运算的任何表达式,包括布尔关键字 truefalse

  • 如果您将输出数据类型设置为总线对象,则可以指定下列选项之一:

    • 与总线对象对应的完全 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

如果常量值参数的计算结果为包含 N 个元素的行或列向量,选中此复选框将输出长度为 N 的向量。

  • 如果常量值参数的计算结果为包含 N 个元素的行或列向量,则选中此复选框时,模块将输出长度为 N 的向量。

  • 清除此复选框后,如果常量值参数的计算结果为一个包含 N 个元素的行向量或列向量,模块将输出一个维度为 1×NN×1 的矩阵。例如,该模块输出 1×NN×1 矩阵。

编程用法

要以编程方式设置模块参数值,请使用 set_param 函数。

参数: VectorParams1D
值: 'on' (默认) | 'off'

指定仿真过程中 Constant 模块输出可以更改的时间间隔,例如,由于调整了常量值参数。

默认值 inf 表示模块输出永不更改。此设置可通过避免重新计算模块输出,加快仿真和代码生成速度。

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

编程用法

要以编程方式设置模块参数值,请使用 set_param 函数。

参数: SampleTime
值: 'inf' (默认) | scalar in quotes | vector in quotes
数据类型: char | string

信号属性

将软件检查的输出范围的下限值指定为有限的双精度实数标量值。

软件使用最小值执行下列操作:

提示

输出最小值不会饱和或剪切实际输出信号。请改用 Saturation 模块。

依存关系

输出数据类型指定 Simulink.ValueTypeSimulink.Bus 对象时,软件会忽略此参数的值。软件改用 Simulink.ValueType 对象或 Simulink.Bus 对象中的 Simulink.BusElement 对象指定的最小值。

编程用法

要以编程方式设置模块参数值,请使用 set_param 函数。

参数: OutMin
值: '[ ]' (默认) | scalar in quotes

将软件检查的输出范围的上限值指定为有限的双精度实数标量值。

软件使用最大值执行下列操作:

提示

输出最大值不会饱和或剪切实际输出信号。请改用 Saturation 模块。

依存关系

输出数据类型指定 Simulink.ValueTypeSimulink.Bus 对象时,软件会忽略此参数的值。软件改用 Simulink.ValueType 对象或 Simulink.Bus 对象中的 Simulink.BusElement 对象指定的最大值。

编程用法

要以编程方式设置模块参数值,请使用 set_param 函数。

参数: OutMax
值: '[ ]' (默认) | scalar in quotes

指定输出数据类型。

数据类型助手可帮助您设置数据属性。要使用数据类型助手,请点击 the Show data type assistant button。有关详细信息,请参阅使用数据类型助手指定数据类型

您可以指定以下任一选项:

  • 继承的数据类型

  • 内置 Simulink 数据类型 - 例如,指定 singleuint8。请参阅 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.ValueTypeSimulink.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>'

选择此参数可防止定点工具覆盖您在模块上指定的输出数据类型。有关详细信息,请参阅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 起) - 值类型。选择值类型将在右侧启用一个文本框,您可在其中输入要用于定义输出信号属性的值类型的名称。要创建或更改值类型,请点击文本框右侧的编辑

  • 表达式 - 计算结果为数据类型的表达式。选择表达式将在右侧启用一个文本框,您可以在其中输入表达式。

    不要将总线对象指定为表达式。

为此信号选择数据类型覆盖模式。

  • 当您选择继承时,软件从信号的上下文(即:从使用该信号的模块、Simulink.Signal 对象或 Stateflow® 图)中继承数据类型覆盖设置。

  • 当您选择 Off 时,软件忽略信号上下文的数据类型覆盖设置,并使用为信号指定的定点数据类型。

有关详细信息,请参阅使用数据类型助手指定数据类型

依存关系

要启用此参数,请点击显示数据类型助手按钮,并将模式设置为内置定点

提示

由于能够关闭单个数据类型的数据类型覆盖,您可以在应用数据类型覆盖时更好地控制模型中的数据类型。例如,您可以使用此选项确保数据类型满足下游模块的要求,而忽略数据类型覆盖设置。

指定定点数据是有符号还是无符号。有符号数据可以表示正值和负值,无符号数据只表示正值。

  • 有符号,将定点数据指定为有符号数据。

  • 无符号,将定点数据指定为无符号数据。

有关详细信息,请参阅使用数据类型助手指定数据类型

依存关系

要启用此参数,请将模式设置为定点

指定定点数据的定标方法,以避免发生溢出情况并最大限度地减少量化错误。有关详细信息,请参阅指定定点数据类型

依存关系

要启用此参数,请将模式设置为定点

指定存储量化整数的字的位大小。有关详细信息,请参阅指定定点数据类型

依存关系

要启用此参数,请将模式设置为定点

将定点数据类型的小数长度指定为正整数或负整数。有关详细信息,请参阅指定定点数据类型

依存关系

要启用此参数,请将定标设置为二进制小数点

指定定点数据类型的斜率。有关详细信息,请参阅指定定点数据类型

依存关系

要启用此参数,请将定标设置为斜率和偏置

将定点数据类型的偏置指定为任意实数。有关详细信息,请参阅指定定点数据类型

依存关系

要启用此参数,请将定标设置为斜率和偏置

模块特性

数据类型

Boolean | bus | double | enumerated | fixed point | half | integer | single

直接馈通

多维信号

可变大小信号

过零检测

扩展功能

C/C++ 代码生成
使用 Simulink® Coder™ 生成 C 代码和 C++ 代码。

PLC 代码生成
使用 Simulink® PLC Coder™ 生成结构化文本代码。

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

版本历史记录

在 R2006a 之前推出

全部展开