Main Content

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

If Action Subsystem

其执行由 If 模块使能的子系统

  • 库:
  • Simulink / Ports & Subsystems

  • If Action Subsystem block

Description

If Action Subsystem 模块是经过预先配置的 Subsystem 模块,可以作为一个起点,用来创建由 If 模块控制执行的子系统。If 模块计算逻辑表达式,然后根据计算结果输出动作信号。

Simulink 会忽略对 If Action Subsystem 模块设置的优先级。在这种情况下,请对启动子系统执行的 If 模块设置优先级。

合并来自 If Action Subsystem 模块的信号

此示例说明如何合并由 If 模块控制的信号。If 模块从一组子系统中选择 If Action Subsystem 模块的执行。无论 If 模块选择哪个子系统,您都可以使用 Merge 模块创建单个信号。Open model

If Action Subsystem 模块中的所有模块必须以与 If 驱动模块相同的速率执行。您可以通过将每个模块的采样时间参数设置为继承 (-1) 或与 If 模块采样时间相同的值来满足此要求。

对定点数据类型的支持

If 模块不直接支持定点数据类型。但是,可以使用 Compare To Constant 模块解决此限制。

假设有如下不使用定点数据类型的浮点模型

在此模型中,If Action Subsystem 模块使用其默认配置。除下表中列出的参数外,仿真参数设置为其默认值。

配置参数窗格

参数

设置

Solver

Start time

0.0

 

Stop time

1.0

 

Type

Fixed-step

 

Solver

discrete (no continuous states)

 

Fixed-step size

0.1

除下表中列出的参数外,模块参数设置为其默认值。

模块

参数

设置

Repeating Sequence Stair

Vector of output values

[-2 -1 1 2].'

Repeating Sequence Stair1

Vector of output values

[0 0 0 0 1 1 1 1].'

If

Number of inputs

2

 

If expression

(u1 > 0) | (u2 > 0.5)

 

Show else condition

选中

常量

Constant value

-4

Constant1

Constant value

4

Scope

Number of axes

3

 

Time range

1

对于此模型,如果输入 u1 大于 0 或输入 u2 大于 0.5,则输出为 4。否则,输出为 -4Scope 模块显示 Merge 模块在使用输入 u1u2 时的输出。

可以将此模块图实现为采用定点数据类型的模型

Repeating Sequence Stair 模块输出定点数据类型。

在模型的浮点版本中,Compare To Constant 模块实现 If 模块中使用的 If expression 的两个部分:(u1 > 0)(u2 > 0.5)OR 运算 (u1|u2) 仍然可以在 If 模块内实现。对于定点模型,也必须像在此模型中一样在 If 模块外部部分实现表达式。

定点模型的模块和仿真参数与浮点模型的模块和仿真参数相同,但有以下例外和补充:

模块

参数

设置

Compare To Constant

Operator

>

 

Constant value

0

 

Output data type mode

Boolean

 

Enable zero-crossing detection

off

Compare To Constant1

Operator

>

 

Constant value

0.5

 

Output data type mode

Boolean

 

Enable zero-crossing detection

off

If

Number of inputs

2

 

If expression

u1|u2

端口

输入

全部展开

在子系统模块中放置一个 Inport 模块会为该模块添加一个外部输入端口。端口标签与 Inport 模块的名称相匹配。

使用 Inport 模块可以从局部环境中获取信号。

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

在子系统模块中放置一个 Action Port 模块会为该模块添加一个外部输入端口并将该模块更改为 If Action Subsystem

Switch Case 模块到 Switch Case Action Subsystem 模块的点划线表示动作信号。动作信号是连接到 Switch Case Action Subsystem 模块的动作端口的控制信号。动作信号上的消息启动子系统的执行。

数据类型: action

输出

全部展开

在子系统模块中放置一个 Outport 模块会添加该模块的输出端口。子系统模块上的端口标签是 Outport 模块的名称。

使用 Outport 模块可以向局部环境发送信号。

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

模块特性

数据类型

Boolean[a] | bus[a] | double[a] | enumerated[a] | fixed point[a] | half[a] | integer[a] | single[a] | string[a]

直接馈通

多维信号

有限[a]

可变大小信号

有限[a]

过零检测

[a] 实际支持的数据类型或功能取决于模块实施。

扩展功能

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

另请参阅

模块

在 R2006a 之前推出