本页对应的英文页面已更新,但尚未翻译。 若要查看最新内容,请点击此处访问英文页面。

If

使用类似于 if-else 语句的逻辑选择子系统执行

  • 库:
  • Simulink / Ports & Subsystems

说明

If 模块以及包含 Action Port 模块的 If Action Subsystem 模块实现 if-else 逻辑来控制子系统的执行。有关使用 If 模块的示例,请参阅 If 执行子系统

限制

If 模块具有以下限制:

  • 它不支持可调参数。在 Normal 模式或 Accelerator 模式下的仿真过程中,或在运行生成的代码时,不能调整 ifelseif 表达式的值。

    要实现可调整的 if-else 表达式,请在 If 模块外部调整表达式。例如,使用 Relational Operator 模块计算 If 模块外部的外部表达式或将可调参数作为输入添加到 If 模块。

  • 它不支持自定义存储类。请参阅Apply Built-In and Customized Storage Classes to Data Elements (Embedded Coder)。

  • If expressionElseif expressions 不能接受某些运算符,如 +, -, */

端口

输入

全部展开

输入 u1,u2,...,un 必须具有相同的数据类型。输入不能是任何用户定义的类型,例如枚举类型。

If 模块不直接支持定点数据类型。但是,可以使用 Compare To Constant 模块解决此限制。请参阅 If 执行子系统中对定点数据类型的支持。

If 模块不支持布尔数据类型。如果要将布尔信号输入到 If 模块,请使用 Data Type Conversion 模块将该信号转换为整数类型。

数据类型: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32

输出

全部展开

来自 ifelseelseif 端口的输出是到 If Action Subsystem 模块的动作信号。

对定点数据类型的支持

参数

全部展开

1

指定一个输入端口。

整数

指定输入端口的数量。模块端口的标签为 'u' 字符后跟数字 1,2,...,n,其中 n 等于您指定的输入的数量。

编程用法

模块参数NumInputs
类型:字符向量
'1' | '<integer>'
默认值'1'

连接到 if 端口的 If Action Subsystem 会在其关联的表达式计算结果为 true 时执行。

u1 > 0

指定当输入 u1 大于 0 时在输出端口上发送动作信号。

逻辑表达式

指定逻辑表达式。此表达式在 If 模块上与 if 输出端口相邻显示。

该表达式只能包含运算符 <, <=, ==, ~=, >, >=, &, |, ~, (), unary-minus。不允许使用 +, -, *, /^ 等运算符。该表达式不能包含数据类型表达式(例如 int8(6)),并且不能引用数据类型不是 doublesingle 的工作区变量。

编程用法

模块参数IfExpression
类型:字符向量
'u1 > 0' | '<logical expression>'
默认值'u1 > 0'

连接到 elseif 端口的 If Action Subsystem 在其表达式计算结果为 true 且所有 ifelseif 表达式为 false 时执行。

未指定逻辑表达式。

逻辑表达式列表

指定由以逗号分隔的逻辑表达式列表。当您选中 Show else condition 复选框时,表达式出现在 If 模块上的 if 端口下方及 else 端口上方。

表达式只能包含运算符 <, <=, ==, ~=, >, >=, &, |, ~, (), unary-minus。不允许使用 +, -, *, /^ 等运算符。表达式不能包含数据类型表达式(例如 int8(6)),并且不能引用数据类型不是 doublesingle 的工作区变量。

编程用法

模块参数ElseIfExpressions
类型:字符向量
'' | '<list of logical expressions>'
默认值''

if 端口和所有 elseif 端口表达式为 false 时,else 端口发送动作信号来执行所连接的 If Action Subsystem 模块。

on

显示 else 端口。

off

隐藏 else 端口。

编程用法

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

控制过零检测。

on

检测过零点。

off

不检测过零点。

编程用法

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

模块特性

数据类型

Boolean | double | integer | single

直接馈通

多维信号

可变大小信号

过零检测

扩展功能

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

在 R2006a 之前推出