Main Content

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

Relational Operator

对输入执行指定的关系运算

  • 库:
  • Simulink / Commonly Used Blocks

    Simulink / Logic and Bit Operations

    HDL Coder / Commonly Used Blocks

    HDL Coder / HDL Floating Point Operations

    HDL Coder / Logic and Bit Operations

  • Relational Operator block

说明

Relational Operator 模块对输入执行指定的关系运算。为 Relational operator 参数选择的值确定模块是接受一个还是两个输入信号。

双输入模式

默认情况下,Relational Operator 模块使用您指定的 Relational operator 参数比较两个输入。第一个输入对应于上面的输入端口,第二个输入对应于下面的输入端口。(有关各种模块方向的端口顺序的说明,请参阅旋转或翻转后的端口位置。)

您可以在双输入模式中指定以下运算之一:

运算说明

==

如果第一个输入等于第二个输入,则为 TRUE

~=

如果第一个输入不等于第二个输入,则为 TRUE

<

如果第一个输入小于第二个输入,则为 TRUE

<=

如果第一个输入小于或等于第二个输入,则为 TRUE

>=

如果第一个输入大于或等于第二个输入,则为 TRUE

>

如果第一个输入大于第二个输入,则为 TRUE

您可以将输入指定为标量、数组或者标量与数组的组合。

对于...输出为...
标量输入标量
数组输入具有相同维度的数组,其中每个元素是对输入数组逐元素比较的结果
混合标量和数组输入数组,其中每个元素是将标量与对应的数组元素进行比较的结果

对于正数范围较小的输入,将使用舍入到最接近整数和饱和方法,脱机转换为另一个输入的数据类型。此转换发生在比较之前。

您可以使用 Output data type 参数指定输出的数据类型。如果为 true,则输出为 1;如果为 false,则输出为 0

提示

选择准确表示零的输出数据类型。满足此条件的数据类型包括有符号整数和无符号整数,以及所有浮点数据类型。

单输入模式

当您为 Relational operator 选择下列运算之一时,模块将切换到单输入模式。

运算说明

isInf

如果输入为 Inf,则为 TRUE

isNaN

如果输入为 NaN,则为 TRUE

isFinite

如果输入为有限值,则为 TRUE

对于非浮点输入,模块将生成以下输出。

数据类型运算模块输出
  • 定点

  • 布尔

  • 内置整数

isInf

False

isNaN

False

isFinite

true

数据类型传播的规则

当您的模块有一个或多个输入端口未指定数据类型时,将按以下规则进行数据类型传播。

当模块位于...而且...模块使用...
双输入模式两个输入端口均未指定数据类型 double 作为两个输入的默认数据类型
一个输入端口未指定数据类型指定了数据类型的输入端口的数据类型作为另一个端口的默认数据类型
单输入模式输入端口未指定数据类型 double 作为输入的默认数据类型

端口

输入

全部展开

第一个输入信号,指定为标量、向量或矩阵。

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

第二个输入信号,指定为标量、向量或矩阵。

Dependencies

要启用此端口,请将 Relational operator 设置为 “==”、“~=”、“<”、“<=”、“>=” 或 “>”。

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

输出

全部展开

输出信号,由 0 和 1 组成,具有与输入相同的维度。使用 Output data type 参数控制输出数据类型。

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

参数

全部展开

Main

指定比较两个输入的运算,或确定一个输入的信号类型。

  • ==” - 如果第一个输入等于第二个输入,则为 TRUE

  • ~=” - 如果第一个输入不等于第二个输入,则为 TRUE

  • <” - 如果第一个输入小于第二个输入,则为 TRUE

  • <=” - 如果第一个输入小于或等于第二个输入,则为 TRUE

  • >=” - 如果第一个输入大于或等于第二个输入,则为 TRUE

  • >” - 如果第一个输入大于第二个输入,则为 TRUE

  • isInf” - 如果输入为 Inf,则为 TRUE

  • isNaN” - 如果输入为 NaN,则为 TRUE

  • isFinite” - 如果输入为有限值,则为 TRUE

编程用法

模块参数:Operator
类型:字符向量
值:'==' | '~=' | '<' | '<=' | '>=' | '>' | 'isInf' | 'isNaN' | 'isFinite'
默认值:'<='

选择此项以启用过零检测。有关详细信息,请参阅过零检测

编程用法

参数:ZeroCross
类型:字符向量、字符串
值: 'on' | 'off'
默认值:'on'

将采样时间指定为 -1 以外的值。有关详细信息,请参阅指定采样时间

依存关系

此参数不可见,除非将其显式设置为 -1 以外的值。要了解详细信息,请参阅不建议设置采样时间的模块

编程用法

模块参数:SampleTime
类型:字符向量
值:标量或向量
默认值:'-1'

数据类型

若要求所有模块输入具有相同的数据类型,请选中此复选框。清除此复选框后,输入可以具有不同数据类型。

Dependencies

Relational operator 设置为 “isInf”、“isNaN” 或 “isFinite” 时,此复选框不可用,因为在这些模式下,模块只有一个输入端口。

编程用法

模块参数:InputSameDT
类型:字符向量
'off' | 'on
默认值:'off'

指定输出数据类型。各选项的意义如下:

  • boolean” - 模块输出的数据类型为 boolean

  • Inherit:Logical(请参阅配置参数:Optimization)” - 模块使用 Implement logic signals as Boolean data 配置参数指定输出数据类型(请参阅Implement logic signals as Boolean data (vs. double))。

    注意

    此选项支持在 boolean 选项可用之前创建的模型。对于新模型,请使用其他选项之一,首选 boolean

  • fixdt(1,16)” - 模块输出具有指定的定点数据类型 fixdt(1,16)

    提示

    点击 Show data type assistant 按钮 以显示 Data Type Assistant,帮助您设置数据类型属性。有关详细信息,请参阅使用 Data Type Assistant 指定数据类型

  • <data type expression>” - 模块输出具有您指定为数据类型表达式的数据类型,例如 Simulink.NumericType

    提示

    要输入内置数据类型(doublesingleint8uint8int16uint16int32uint32),请将表达式用单引号引起来。例如,输入 'double' 而不是 double

编程用法

模块参数:OutDataTypeStr
类型:字符向量
值:'Inherit: Logical (see Configuration Parameters: Optimization)' | 'boolean' | 'fixdt(1,16)' | '<data type expression>'
默认值:'boolean'

指定定点运算的舍入模式。您可以选择:

Ceiling

朝正无穷方向舍入正数和负数。等同于 MATLAB® ceil 函数。

Convergent

将数值舍入到最接近的可表示值。如果出现对等情况,则舍入到最接近的偶数整数。等同于 Fixed-Point Designer™ convergent 函数。

Floor

朝负无穷方向舍入正数和负数。等同于 MATLAB floor 函数。

Nearest

将数值舍入到最接近的可表示值。如果出现对等情况,则朝正无穷方向舍入。等同于 Fixed-Point Designer nearest 函数。

Round

将数值舍入到最接近的可表示值。如果出现对等情况,则将正数朝正无穷方向舍入,将负数朝负无穷方向舍入。等同于 Fixed-Point Designer round 函数。

Simplest

在向负无穷大方向舍入和向零舍入之间选择,以生成尽可能有效的舍入代码。

Zero

将数值向零舍入。等同于 MATLAB fix 函数。

有关详细信息,请参阅Rounding (Fixed-Point Designer)

编程用法

模块参数:RndMeth
类型:字符向量
值:'Ceiling' | 'Convergent' | 'Floor' | 'Nearest' | 'Round' | 'Simplest' | 'Zero'
默认值:'Simplest'

模块特性

数据类型

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

直接馈通

多维信号

可变大小信号

过零检测

扩展功能

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

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

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

另请参阅

在 R2006a 之前推出