迭代执行子系统和迭代器和迭代器子系统
迭代器子系统,如在迭代器和迭代器子系统,是一种逻辑执行子系统执行一次或多次在响应时间步长控制块子系统内部的块。控制块实现控制逻辑类似于表达的一种编程语言构造等而
循环或为
循环。
分区的每个子系统的信息,输入信号或面具参数分成单个元素或和一个算法适用于每一个看到的为每个子系统。
请注意
的而迭代器子系统和对迭代器子系统阻塞不能包含连续状态(例如,在连续块库)。示例中的所有块的时候子系统必须继承(1
)或常数(正)
。
模型在结构
的而迭代器子系统块是一个子系统块预配置作为起点来创建一个子系统,重复执行模拟时间步期间,一个逻辑(布尔)表达式是正确的。
重复块执行布尔表达式是正确的
这个例子展示了如何执行一个子系统,直到达到最大值。
打开模型ex_while_iterator_block
。
打开while-iterator子系统。
一个输入的1
(真正的
),而迭代器块激活子系统。在每个时间步,当前迭代数量添加到运行总直到到达最大金额。
的而结构模型可以用伪代码表示。
maximum_sum = 10金额= 0 iteration_number = 1 = TRUE
而(条件为真)和(iteration_number < = maximum_iterations)和=和+ iteration_number如果(总和> maximum_sum)条件= FALSE如果iteration_number = iteration_number + 1结束而结束
创建模型结构
创建模型的例子中,使用这个程序。
放置一个而迭代器子系统块的仿真软件金宝app®编辑器。双击子系统块来显示它的内容。
双击而迭代器块开放块参数对话框。设置最大迭代次数来
20.
和国家在开始来重置
。选择显示迭代数港口复选框。添加内存,关系操作符,总和块。连接块如图所示。为内存块,选择继承采样时间复选框。
迭代输出的数量而迭代器块添加到其先前的值,直到之和大于或等于最大求和轮廓尺寸块1。
导航到模型的顶层。
连接一个常数输入端口2块。这个街区提供了初始逻辑条件值而迭代器块。设置恒定值任何非零的数。
的而迭代器块需要一个初始逻辑条件(输入端口标记
集成电路
第一次迭代)。这个信号使而迭代器子系统块,必须源自外部子系统。如果这个值是零,第一次迭代。第二个连接常数输入端口1块。这个块提供了一个迭代算法的最大价值。该算法增加了连续的整数,直到达到最大值。
连接一个显示块输出端口1。这一块显示的迭代数而迭代器块输出端口。
运行一个仿真。
在一个时间步,添加的第一个四个迭代数量总额(
10
)。第五次迭代,sum (15
)大于最大金额(10
),迭代停止,等待下一个时间步。
请注意
仿真时间不提前在迭代执行而迭代器子系统块。然而,块子系统对待每个迭代的时间步。因此,在一个而迭代器子系统块,一块的输出状态(也就是说,一块的输出取决于其以前的输入),反映了其输入的值在前一个迭代的而
循环。输出是不反映了块输入以前的模拟时间步。例如,一个单位延迟块在一个迭代器子系统输出的值在上一次迭代的输入而
循环,不是以前的模拟时间步的值。
模型的结构
的对迭代器子系统块是一个子系统块预配置作为起点来创建一个子系统,重复执行仿真时间步中指定数量的迭代。
对指定次数的重复块执行
这个例子显示了一个子系统,重复执行仿真时间步中指定数量的迭代。
打开模型ex_for_iterator_block
。
打开for-iterator子系统。
迭代器块的输入指定的迭代的数量。在每个时间步,当前迭代添加到运行的总数量5
迭代。
的为结构模型可以用伪代码表示。
number_of_iterations = 5金额= 0
iteration_number = 1 number_of_iterations金额=和+ iteration_number结束
创建模型的结构
创建模型的例子中,使用这个程序。
放置一个对迭代器子系统块在模型编辑器中。金宝app双击子系统块来显示它的内容。
双击对迭代器块开放块参数对话框。集国家在开始来
重置
和迭代限制源来外部
。添加内存,总和,外港块。连接块如图所示。为内存块,选择继承采样时间复选框。
迭代输出的数量对迭代器块添加到其先前的值指定的迭代次数轮廓尺寸块1。
导航到模型的顶层。
连接一个常数输入端口1块。此块提供的迭代的数量对迭代器块。设置恒定值来
5
。连接显示块输出端口1和2。这些块显示的迭代数对迭代器块输出端口和总和内存块。
运行一个仿真。
在每个时间步,前五个迭代添加数字总额(
15
)。
使用赋值块
的对迭代器块的工作赋值在一个向量或矩阵块,重新分配值。这个例子显示了使用对迭代器块。注意在数据传递矩阵维度。
示例输出输入的正弦值2-by-5矩阵(2行5列)使用一个迭代器包含一个子系统赋值块。这个过程如下。
2-by-5矩阵输入选择器块和一个赋值块。
的选择器上一个2×1块矩阵从输入矩阵的列值的当前迭代值表示对迭代器块。
sin(2×1矩阵。
正弦值2×1矩阵传递给赋值块。
的赋值块,将原2-by-5矩阵作为它的输入,分配2×1矩阵回原始矩阵的列位置由迭代值表示。
请注意,赋值块拷贝第一个输入(Y0)输出(Y只在第一次迭代)。第二个输入的值(U)复制到输出在第一次和每次迭代。所有这些操作发生在一个时间步。
重新分配的行指定的参数对话框赋值块的例子[1,2]。因为只有两个原始矩阵中的行,你也可以指定1行(即所有行)。
请注意
的三角函数块已经能够把一个矩阵的正弦。这个例子使用了三角函数块只作为一个例子改变矩阵的每个元素的协作赋值块和一个对迭代器块。