主要内容

为每个子系统

将算法应用到单个元素或子数组的输入信号或面具参数

  • 每个子系统的块

库:
金宝app模型/港口和子系统
高密度脂蛋白编码器/港口和子系统

描述

为每个子系统块是一个子系统块预配置作为起点来创建一个子系统,重复执行模拟时间步中每个元素或子数组的输入信号或面具参数数组。

为每个子系统块图标,显示与内容For - Each子系统,为每个块组成的,一个尺寸块,和一个输出港。

子系统内部的组块代表算法应用于一个元素或子数组的原始信号或面具参数数组。在子系统内部,每个块都有状态维护单独的组为每个元素或子数组的过程。因此,这个子系统的操作相似的行为来复制子系统为每个元素的内容在原始输入信号或面具参数数组,然后处理每个元素使用其各自子系统的副本。组块的子系统流程元素或子数组子系统连接结果输出信号。

配置子系统

为每个子系统块包含一个为每一个块,作为一个子系统的控制块。指定的参数为每一个块配置子系统的分解或面具参数输入元素或子阵和个人配置连接结果输出信号。块的参数分区维度分区宽度指定的尺寸把输入信号或面具参数数组和每个片的宽度,分别。指定分区一个行向量分区维度作为2。指定分区一个列向量分区维度作为1。使用的参数分区抵消指定一个缺口或重叠分区。指定一个的迭代次数限制处理数据的一个子集。了解更多关于块参数,看看为每一个

分区子系统的输入信号

指定哪个输入信号划分为每次迭代for - each子系统,使用输入分区在对话框的选项卡为每一个块。当指定分区的一个信号,指定分区维度,分区宽度,分区抵消参数。

分区的面具参数子系统

你可以分区的面具参数为每个子系统块。分区是有用的系统在每个迭代中有相同的结构,但不同的参数值。在这种情况下,改变模型为每个参数分区额外的输入信号是麻烦。相反,添加一个面具参数for - each子系统。有关更多信息,请参见创建一个简单的面膜。选择屏蔽参数分区,使用参数分区选项卡的为每一个块对话框。有关更多信息,请参见选择分区参数,下面。

连接输出

定义的维度以及连接指定的结果连接尺寸输出连接选项卡。

每个子数组生成的结果块堆叠沿着连接尺寸。默认情况下,维度1 (y设在),这意味着结果是垂直堆放。然而,如果你指定一个连接尺寸的结果连接沿水平方向(x设在)。因此,如果这个过程生成行向量,然后连接结果是矩阵在第一种情况下,在第二种情况下一个行向量。

选择分区参数

当选择一个输入信号或子系统面具参数分区,您必须指定如何将它分解成每个迭代元素或子阵。整数的值分区维度,分区宽度,分区抵消参数。

作为一个例子,考虑一个输入信号矩阵一个的形式:

3 x3的矩阵与所有9个元素显示出来,显示d1竖直维度和d2水平维度

标签d1d2分别定义维度1和2。如果你保留默认设置1的宽度和分区维度和分区0分区的抵消,然后仿真软件金宝app®片垂直于分区维度1在一个宽度等于分区宽度,这是一个元素:

3 x3的矩阵A,所有9个元素显示,划分为行

这三个行向量矩阵分解为:

3 x3的矩阵A,分解转换为三个行向量

如果您指定2相反,比如分区维度模型片垂直于维度2形成三个列向量:金宝app

3 x3的矩阵A,分解转换为三个列向量

除了设置分区维度2,如果你设置分区宽度2分区抵消1,仿金宝app真软件使用两个重叠的3×2分区进行处理。

3 x3的矩阵A,分解成两个重叠的3×2矩阵

使用一个例子分区抵消参数,打开模型slexForEachOverlapExample

默认情况下,所有分区的输入信号或面具参数处理。处理分区的一个子集,输入分区的数量来处理的的迭代次数。在上面的矩阵的例子中,如果分区抵消被设置为0(默认)的迭代次数被设置为2,只有第一个2输入矩阵的行或列一个处理。

请注意

只考虑一维信号的仿真软件。金宝app面具参数行或列向量,根据他们的方向。划分一个行向量,指定分区的维度,在列。划分一个列向量,指定分区尺寸为1,沿行。

代码重用的支持金宝app

某些型号的为每个子系统块提高代码重用金宝app仿真软件编码器™生成的代码。考虑一个模型包含两个可重用原子子系统块相同的标量算法应用于每个元素的信号。如果这些子系统的输入信号维度是不同的,金宝app仿真软件编码器生成的代码包括两个不同的函数。你可以用两个相同的替换这两个子系统为每个子系统块配置来处理每个元素各自的输入使用相同的算法。在这种情况下,金宝app仿真软件编码器生成的代码包含一个函数参数化输入信号元素的数量。这个函数被调用两次,一次为每一个独特的实例为每个子系统块模型。对于每一个在这些病例中,输入信号元素有不同的值。

多核执行支持金宝app

当你模拟模型在快速加速器模式中,仿真软件使用多核执行速度模拟for - each子系统。金宝app金宝app每个合格for - each子系统仿真软件自动配置文件前两个时间步它在快速加速器运行模式比较并行和串行执行时间。金宝app仿真软件然后指定for - each子系统并行、多核模拟运行的执行在随后的时间步骤如果这么做会加速执行时间。嵌套For - each子系统、多核执行仅适用于顶级子系统。多核执行并不适用于for - each包含连续状态或子系统函数调用者块。

抑制多核执行给定for - each子系统,设置MultithreadedSim参数的为每一个块内的子系统“关闭”

set_param (ForEachBlockName、“MultithreadedSim”、“了”)

注意,这是一个参数的为每一个块内的子系统,而不是为每个子系统块本身。抑制多核执行所有for - each子系统模型,设置MultithreadedSim模型的参数“关闭”

set_param (ModelName、“MultithreadedSim”、“了”)

重新启用多核执行,设置有关MultithreadedSim参数的默认值“汽车”

例如,看到的多线程为每个子系统仿真使用

请注意

如果你模拟模型快速加速器模式或从您的模型生成代码,然后分区面具for - each子系统参数,然后任何表达式for - each子系统内部引用一个分区的参数必须是一个可调的表情。看到可调表达的局限性(金宝app仿真软件编码器)

功能的支持金宝app

为每个子系统块既支持C-金宝appMEX S-functions和2级MATLAB®S-functions,提供功能支持多个执行实例使用这些技巧之一:金宝app

  • 一个C-MEX s函数必须声明ss金宝appSupportsMultipleExecInstances(年代,真的)mdlSetWorkWidths方法。

  • 一个2级MATLAB函数必须声明块。金宝appSupportsMultipleExecInstances = true的设置方法。

如果你使用这些规范:

  • 不缓存运行时数据如DWork和块I / O使用全局或持续变量或在用户数据的功能。

  • 在一个为每个子系统块,每个函数执行方法mdlStartmdlTerminate为每个元素被称为一次处理的功能。因此,你必须确保不免费重复调用相同的内存mdlTerminate。例如,考虑一个C-MEX s函数分配内存的运行时参数内mdlSetWorkWidths。只需要一次释放的内存mdlTerminate。作为解决方案,设置第一次调用后指针是空的mdlTerminate

限制

对信息的局限性为每个子系统块,看for - each子系统的局限性

港口

输入

全部展开

信号输入子系统块,指定为一个标量、向量或矩阵。放置一个轮廓尺寸块在一个子系统块将外部输入端口添加到块中。港标签匹配的名称轮廓尺寸块。

使用轮廓尺寸块接收信号从本地环境。

数据类型:一半|||int8|int16|int32|int64|uint8|uint16|uint32|uint64|布尔|不动点|枚举|公共汽车

输出

全部展开

信号输出子系统块,作为一个标量,返回向量或矩阵。放置一个外港块在一个子系统块将外部输出端口添加到块中。港标签匹配的名称外港块。

使用外港块将信号发送到当地的环境。

数据类型:一半|||int8|int16|int32|int64|uint8|uint16|uint32|uint64|布尔|不动点|枚举|公共汽车

块特征

数据类型

布尔一个|公共汽车一个|一个|枚举一个|不动点一个|一半一个|整数一个|一个

直接引线

没有

多维信号

是的一个

适应信号

没有

讨论二阶导数过零检测

没有

一个实际数据类型或能力取决于块实现的支持。金宝app

扩展功能

版本历史

介绍了R2010a