If Action Subsystem
由 If 模块使能执行的子系统。
- 库:
Simulink / Ports & Subsystems
描述
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 模块使用其默认配置。除下表中列出的参数外,仿真参数设置为其默认值。
配置参数窗格 | 参数 | 设置 |
---|---|---|
求解器 | 开始时间 |
|
停止时间 |
| |
类型 |
| |
求解器 |
| |
定步长 |
|
除下表中列出的参数外,模块参数设置为其默认值。
模块 | 参数 | 设置 |
---|---|---|
Repeating Sequence Stair | 输出值的向量 |
|
Repeating Sequence Stair1 | 输出值的向量 |
|
If | 输入的数目 |
|
If 表达式 |
| |
显示 else 条件 | 选中 | |
Constant | 常量值 |
|
Constant1 | 常量值 |
|
Scope | 坐标区数目 |
|
时间范围 |
|
对于此模型,如果输入 u1
大于 0
或输入 u2
大于 0.5
,则输出为 4
。否则,输出为 -4
。Scope 模块显示 Merge 模块在使用输入 u1
和 u2
时的输出。
可以将此模块图实现为采用定点数据类型的模型。要打开模型,请参阅 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 | 运算符 |
|
常量值 |
| |
输出数据类型模式 |
| |
启用过零检测 | off | |
Compare To Constant1 | 运算符 |
|
常量值 |
| |
输出数据类型模式 |
| |
启用过零检测 | off | |
If | 输入的数目 |
|
If 表达式 |
|
端口
输入
输出
模块特性
扩展功能
版本历史记录
在 R2006a 之前推出