While Iterator
while-iterator*子系统的控制单元。
类型: WhileIterator
图书馆中的路径:
|
说明
在 Subsystem 块中的 While Iterator 块,如果输入条件的值为 "true (1)",则在当前时间步中执行一个子系统。使用此块可实现与编程语言中 while 循环等效的逻辑。
端口
输入
cond - 逻辑状态
标量
逻辑条件评估结果信号。由于子系统不会在时间步长内从外部启动,因此条件的真 (1
)或假 (0
)评估必须在子系统内部进行。
信号的数据类型和值可以是
-
逻辑(布尔)--"真(1)"或 "假(0)"。
-
数值 - "真(任何正数或负数)"或 "假 (0)"。
数据类型: Float16
, Float32
, Float64
, Int8
, Int16
, Int32
, Int64
, UInt8
, UInt16
, UInt32
, UInt64
, Bool
IC(初始逻辑条件) - 初始逻辑条件
标量
带有初始逻辑条件的信号。在每个时间步开始时
-
如果 IC 为假 (
0
),则在该时间步长内不执行子系统。 -
如果 IC 为真(值不等于 "0"),子系统开始执行,只要 cond 信号为真,子系统就一直重复执行。
依赖关系
要启用 IC 端口,请将 While 循环类型 参数设置为 "while"。
数据类型: Float16
, Float32
, Float64
, Int8
, Int16
, Int32
, Int64
, UInt8
, UInt16
, UInt32
, UInt64
, Bool
参数
最大迭代次数(-1 表示无限制) - 最大迭代次数
5(默认值) | -1
| `整数
设置时间步长内允许的最大迭代次数。
-
只要 cond 信号为真(值不等于
0
),-1
可以是任何迭代次数。
如果指定了-1
,而 cond 信号从未变为 false(0
),则模拟将无限循环运行。在这种情况下,停止模拟的唯一方法就是关闭 Engee。 -
整数 "是一个时间步长内的最大迭代次数。
块参数 |
|
类型 |
|
价值观 |
|
默认值 |
|
循环类型 - 块类型
while (default)
| `do-while
选择程序块类型。
-
while
- While Iterator 程序块有两个输入:cond 输入(逻辑条件)和 IC 输入(初始逻辑条件)。
IC 信号源必须在 While Iterator 子系统*程序块外部。
在每个时间步开始时:
- 如果 *IC 输入为真(值不等于 "0"),只要 cond 输入为真,子系统中的程序块就会重复执行。
只要*cond*输入为真,且迭代次数为 最大迭代次数,则该过程在一个时间步长内持续进行。
- 如果 IC 输入为假,While Iterator 块不会执行子系统的内容。 -
do-while
- While Iterator 块有一个输入,即 cond 输入(while 条件)。
在每个时间步,只要*cond*输入的值为真(不等于`0`),子系统中的块就会被执行。
只要*cond*输入端的值为真,且迭代次数为 最大迭代次数,该过程就会继续。
块参数 |
|
类型 |
|
价值观 |
|
默认值 |
|
显示迭代次数端口 - 控制输出端口显示
已禁用(默认) | 已启用
控制块执行次数信号的输出端口显示。
该端口的信号值从 1
开始,以后每迭代一次增加 1
。
-
disable
- 不显示输出端口。 -
enabled
- 显示迭代次数信号的输出端口。
块参数 |
|
类型 |
|
价值观 |
|
默认值 |
|