Main Content

While Iterator

While Iterator 子系统的控制模块

  • While Iterator block

描述

While Iterator 模块置于 Subsystem 模块中时,它将在输入条件的值为 true 或 1 时在当前时间步中重复执行子系统的内容。使用此模块实现与编程语言中的 while 循环等效的模块图。

While Iterator Subsystem 模块使用 While Iterator 模块进行了预配置。将 While Iterator 模块放置在 Subsystem 模块中会使其成为原子子系统。

端口

输入

全部展开

从逻辑条件计算出结果的信号。由于子系统在时间步内不是通过外部触发的,因此结果为 true (1) 或 false (0) 的条件计算必须在子系统内进行。

信号的数据类型和值可以是:

  • 逻辑(布尔)值 - true (1) 或 false (0)。

  • 数值 - true(任何正数或负数)或 false (0)。

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

带有初始逻辑条件的信号。在每个时间步的开始:

  • 如果 IC 为 false (0),则子系统在时间步内不执行。

  • 如果 IC 为 true(值不等于 0),则子系统开始执行并且只要 cond 信号为 true 就继续重复执行。

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

输出参量

全部展开

带有 While Iterator Subsystem 模块在每个时间步内执行次数的信号。

数据类型: double | int8 | int16 | int32

参数

全部展开

指定在一个时间步内允许的最大迭代次数。

-1

只要 cond 信号为 true(值不等于 0),则允许任意迭代次数。如果您指定 -1 并且 cond 信号永不变为 false (0),则仿真以无限循环方式运行。在这种情况下,停止仿真的唯一方法就是终止 MATLAB®

整数

一个时间步内的最大迭代次数。

编程用法

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

选择模块类型。

while

While Iterator 模块有两种输入:cond(逻辑条件)输入和 IC(初始逻辑条件)输入。IC 信号的信源必须在 While Iterator Subsystem 模块的外部。

在每个时间步的开始:

  • 如果 IC 输入为 true(值不等于 0),则在 cond 输入为 true 时子系统中的模块将重复执行。只要 cond 输入为 true 且迭代次数小于或等于最大迭代次数,此过程就会在时间步内继续。

  • 如果 IC 输入为 false,则 While Iterator 模块不执行子系统的内容。

do-while

While Iterator 模块有一个输入,即 cond(while 条件)输入。

在每个时间步中,只要 cond 输入为 true(值不等于 0),子系统中的模块就会重复执行。只要 cond 输入为 true,且迭代次数小于或等于最大迭代次数,此过程就会一直继续。

编程用法

模块参数WhileBlockType
类型:字符向量
'while' | 'do-while'
默认值'while'

选择如何处理时间步之间的模块状态。

保持

在时间步之间保持模块状态。模块状态值跨时间步保持不变。

重置

在每个时间步的开始和第一个迭代循环之前,将模块状态重置为其初始值。

编程用法

模块参数ResetStates
类型:字符向量
'held' | 'reset'
默认值'held'

控制是否为带有模块执行次数的信号显示输出端口。来自此端口的信号的值从 1 开始,随后每次迭代递增 1

off

删除输出端口。

on

为带有迭代序号的信号显示输出端口。

依存关系

选择此参数将启用输出数据类型参数。

编程用法

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

选择迭代序号信号的输出数据类型。此信号的值是在一个时间步内的迭代次数以及在时间步结束时的总迭代次数。信号允许的最大值由输出数据类型参数确定。例如,如果您将输出数据类型设置为 int8,则信号允许的最大值为 27-1。但是,如果将输出数据类型设置为 uint32double,则信号允许的最大值将限制为有符号 32 位整数 (int32) 的最大正值。有关不同整数类的值范围的详细信息,请参阅整数

int32

有符号 32 位整数。

uint32

无符号 32 位整数。

int16

有符号 16 位整数。

uint16

无符号 16 位整数。

int8

有符号 8 位整数。

uint8

无符号 8 位整数。

double

双精度浮点。

依存关系

选中显示迭代序号端口复选框可启用此参数。

编程用法

模块参数OutputDataType
类型:字符向量
'int32' | 'unt32'|'int16' | 'uint16'|'int8' | 'uint8'|'double'
默认值'int32'

版本历史记录

在 R2006a 之前推出