# ForEach 子系统分块并行处理


# 引言

本示例展示了创建 ForEach 子系统的方式:在子系统块内部放置一个 ForEach 块。该子系统的功能是对输入信号的各个元素或子数组重复执行特定算法。此外,ForEach 子系统会为其处理的每个元素或子数组保持独立的块状态。

# 模型搭建

  1. 单击右侧打开示例按钮,在 Sysplorer 中打开所需文件。

  2. 双击打开 TileProcessing_SliceAcrossFirstDimension 子系统,放置一个 ForEach(使此子系统中的模块能够独立处理输入信号的元素(或子数组))模块,它位于库浏览器.Sysblock.SubSystem(选择子系统模块的设置).ForEach。此时普通子系统变为了 ForEach 子系统。

  3. 双击打开 ForEach 模块,单击勾选分区,将分区维度设置为 1、分区宽度设置为 2,单击确定保存设置。

  4. 双击打开 TileProcessing_SliceAcrossSecondDimension 子系统,放置一个 ForEach 模块,双击打开 ForEach 模块,单击勾选分区,将分区维度设置为 2、分区宽度设置为 2,单击确定保存设置。

  5. 双击键盘上 Backspace 按键回到主系统。

# 仿真设置

在进行仿真之前需要进行仿真设置,在软件上方功能区,单击主页 > 仿真设置按钮,打开仿真设置界面。在该界面设置开始时间 0,终止时间 1,输出区间步长 0.2。积分算法类型设置为定步长算法Euler(Runge-Kutta, 1 阶, 非刚性)容差 0.0001,积分步数 1,单击确定并保存到模型

# 仿真运行

您可使用上述步骤中搭建的模型进行仿真操作。如未通过上述步骤搭建完整模型,也可单击右侧打开示例按钮,使用提供的模型进行仿真。

单击主页 > 仿真,等待仿真运行结束。可在 disPlay 模块上看到运行结果