Main Content

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

Relational Operator

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

  • Relational Operator block

库:
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 模块对输入执行指定的关系运算。为关系运算符参数选择的值确定模块是接受一个还是两个输入信号。

双输入模式

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

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

运算描述

==

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

~=

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

<

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

<=

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

>=

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

>

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

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

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

如果关系运算可以在硬件板上高效且准确地表示,则使用这种高效表示。否则,使用溢出饱和与指定的舍入模式将两个操作数都转换为一种公共类型。

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

提示

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

单输入模式

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

运算描述

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
复数支持:

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

依存关系

要启用此端口,请将关系运算符设置为 ==~=<<=>=>

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

输出

全部展开

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

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

参数

全部展开

常设

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

  • == - 如果第一个输入等于第二个输入,则为 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"

数据类型

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

依存关系

关系运算符设置为 isInfisNaNisFinite 时,此复选框不可用,因为在这些模式下,模块只有一个输入端口。

编程用法

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

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

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

  • 继承: Logical(请参阅配置参数:优化) - 模块使用将逻辑信号实现为布尔数据配置参数指定输出数据类型(请参阅将逻辑信号实现为布尔数据(而不是双精度数据))。

    注意

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

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

    提示

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

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

    提示

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

编程用法

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

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

向上

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

收敛

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

向下

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

最邻近值

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

舍入

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

最简

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

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

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

编程用法

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

选择要指定的数据类别。

  • 内置 - 指定内置数据类型。选择内置将启用 boolean

  • 继承 - 指定数据类型的继承规则。选择 inherit 将启用逻辑(请参阅 "配置参数":优化)

  • 定点 - 指定定点数据类型。

  • 表达式 - 指定计算结果为数据类型的表达式。

依存关系

要启用此参数,请点击显示数据类型助手按钮。

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

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

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

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

依存关系

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

提示

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

指定您希望定点数据为有符号还是无符号数据。有符号数据可以表示正值和负值,无符号数据只表示正值。有关详细信息,请参阅指定定点数据类型

依存关系

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

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

依存关系

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

指定定点数据的定标方法,以避免发生溢出情况并最大限度地减少量化错误。指定整数等效于指定二进制小数点位置并将小数长度设置为 0

依存关系

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

模块特性

数据类型

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

直接馈通

多维信号

可变大小信号

过零检测

扩展功能

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

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

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

版本历史记录

在 R2006a 之前推出

另请参阅