Main Content

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

If Action Subsystem

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

  • 库:
  • Simulink / Ports & Subsystems

  • If Action Subsystem block

描述

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

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

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

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

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

对定点数据类型的支持

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

假设有如下不使用定点数据类型的浮点模型。要打开模型,请参阅 ex_if_block_floating_point

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

配置参数窗格

参数

设置

求解器

开始时间

0.0

 

停止时间

1.0

 

类型

Fixed-step

 

求解器

discrete (no continuous states)

 

定步长

0.1

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

模块

参数

设置

Repeating Sequence Stair

输出值的向量

[-2 -1 1 2].'

Repeating Sequence Stair1

输出值的向量

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

If

输入的数目

2

 

If 表达式

(u1 > 0) | (u2 > 0.5)

 

显示 else 条件

选中

Constant

常量值

-4

Constant1

常量值

4

Scope

坐标区数目

3

 

时间范围

1

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

可以将此模块图实现为采用定点数据类型的模型。要打开模型,请参阅 ex_if_block_fixed_point

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

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

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

模块

参数

设置

Compare To Constant

运算符

>

 

常量值

0

 

输出数据类型模式

Boolean

 

启用过零检测

off

Compare To Constant1

运算符

>

 

常量值

0.5

 

输出数据类型模式

Boolean

 

启用过零检测

off

If

输入的数目

2

 

If 表达式

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

模块特性

数据类型

Booleana | busa | doublea | enumerateda | fixed pointa | halfa | integera | singlea | stringa

直接馈通

多维信号

有限a

可变大小信号

有限a

过零检测

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

扩展功能

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

版本历史记录

在 R2006a 之前推出

另请参阅

模块