Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

For Each Subsystem

将算法应用于输入信号或封装参数的单个元素或子数组

  • For Each Subsystem block

库:
Simulink / Ports & Subsystems
HDL Coder / Ports & Subsystems

描述

For Each Subsystem 模块是一个预先配置的 Subsystem 模块,可以作为一个起点,用于创建在仿真时间步期间对输入信号或封装参数数组的每个元素或子数组都要重复执行的子系统。

For Each Subsystem block icon, displayed alongside contents of for-each subsystem, consisting of a For Each block, an Inport block, and an Outport block.

子系统中的模块组表示应用于原始信号或封装参数数组的单个元素(或子数组)的算法。在子系统内,具有状态的每个模块维护它所处理的每个元素或子数组的单独状态集。因此,此子系统的操作在行为上类似于复制原始输入信号或封装参数数组中每个元素的子系统的内容,然后使用其各自的子系统副本处理每个元素。随着该子系统中的模块集对元素(或子数组)的处理,该子系统串联结果以形成输出信号。

配置子系统

For Each Subsystem 模块包含 For Each 模块,该模块充当子系统的控制模块。指定 For Each 模块的参数,以配置将子系统输入或封装参数分解为元素或子数组,并配置将各个结果串联为输出信号。模块参数分区维度分区宽度分别指定对输入信号或封装参数数组进行切片的维度和每个切片的宽度。要对行向量进行分区,请将分区维度指定为 2。要对列向量进行分区,请将分区维度指定为 1。使用参数分区偏移量指定分区之间的间隙或重叠。指定迭代次数以将处理范围限制为部分数据。要了解有关模块参数的更多信息,请参阅 For Each

将输入信号分区到子系统

要为 For Each 子系统中的每次迭代指定要对哪些输入信号分区,请使用 For Each 模块的对话框中的输入分区选项卡。在指定要分区的信号时,指定分区维度分区宽度分区偏移量参数。

对子系统的封装参数进行分区

您可以对 For Each Subsystem 模块的封装参数进行分区。对于在每次迭代中结构相同但参数值不同的系统,分区非常有用。在这种情况下,针对每个参数更改模型来对额外输入参数进行分区非常繁琐。请改为将封装参数添加到 For Each 子系统中。有关详细信息,请参阅创建简单封装。要选择封装参数进行分区,请使用 For Each 模块对话框中的参数分区选项卡。有关详细信息,请参阅下文的选择分区参数

串联输出

通过在输出串联选项卡中指定串联维度来定义沿哪个维度串联结果。

模块为每个子数组生成的结果沿串联维度 1 堆叠。默认情况下,使用维度 1(y 轴),这意味着结果垂直堆叠。但是,如果指定的串联维度为 2,结果将沿水平方向(x 轴)串联。因此,如果该过程生成行向量,则串联的结果在第一种情况下是矩阵,在第二个种情况下是行向量。有关示例,请参阅Specifying the Concatenation Dimension in the For Each Block

选择分区参数

当选择要分区的输入信号或子系统封装参数时,您必须为每次迭代指定如何将其分解为元素或子数组。为分区维度分区宽度分区偏移量参数设置整数值。

作为说明,以如下形式的输入信号矩阵 A 为例:

A 3-by-3 matrix A with all nine elements displayed, showing d1 as the vertical dimension and d2 as the horizontal dimension

标签 d1 和 d2 分别定义维度 1 和 2。如果为分区维度和分区宽度均保留默认设置 1,为分区偏移量保留默认设置 0,则 Simulink® 会垂直于分区维度 1 以等于分区宽度(一个元素)的宽度进行切片:

A 3-by-3 matrix A, with all nine elements showing, partitioned into rows

矩阵 A 分解为以下三个行向量:

A 3-by-3 matrix A, decomposed into three 3-element row vectors

如果改为将 2 指定为分区维度,则 Simulink 将垂直于维度 2 进行切片来形成以下三个列向量:

A 3-by-3 matrix A, decomposed into three 3-element column vectors

除了将分区维度设置为 2 之外,如果再将分区宽度设置为 2 并将分区偏移量设置为 -1,Simulink 会将矩阵处理为两个重叠的 3×2 分区。

A 3-by-3 matrix A, decomposed into two overlapping 3-by-2 matrices

有关示例,请参阅Partitioning an Input Signal with the For Each Block

默认情况下,处理输入信号或封装参数的所有分区。要处理部分分区,请在迭代次数中输入要处理的分区的数量。在上面的矩阵示例中,如果分区偏移量设置为 0(默认值),并且迭代次数设置为 2,则仅处理输入矩阵 A 的前 2 行或前 2 列。

注意

在 Simulink 中,只有信号被视为一维。封装参数是行向量或列向量,具体取决于其方向。要对行向量进行分区,请将分区维度指定为 2(沿列进行)。要对列向量进行分区,请将分区维度指定为 1(沿行进行)。

代码重用支持

对于某些模型,For Each Subsystem 模块可提高 Simulink Coder™ 生成代码的代码重用。假设有一个模型包含两个可重用的 Atomic Subsystem 模块,且对信号的每个元素应用相同的标量算法。如果这些子系统的输入信号维度不同,Simulink Coder 生成的代码中将包含两个不同的函数。您可以将这两个子系统替换为两个相同的 For Each Subsystem 模块,后两者配置为使用相同的算法处理其各自输入的每个元素。在这种情况下,Simulink Coder 生成的代码会包含一个根据输入信号的元素数进行参数化的函数。此函数被调用两次,即对模型中 For Each Subsystem 模块的每个唯一实例分别调用一次。对于其中每种情况,输入信号元素均具有不同的值。

多核执行支持

在快速加速模式下仿真模型时,Simulink 使用多核执行来加快 For Each 子系统的仿真速度。Simulink 自动为每个符合条件的 For Each 子系统探查其在快速加速模式下运行的前两个时间步,以比较并行和串行执行时间。然后,如果在仿真运行的后续时间步中指定 For Each 子系统进行并行多核执行会加快执行速度,则 Simulink 会指定采用这种方式。对于嵌套的 For Each 子系统,多核执行仅适用于顶层子系统。多核执行不适用于包含连续状态或 Function Caller 模块的 For Each 子系统。

要禁止给定 For Each 子系统的多核执行,请将该子系统内 For Each 模块的 MultithreadedSim 参数设置为 'off'

set_param(ForEachBlockName,'MultithreadedSim','off')

请注意,这是子系统中 For Each 模块的参数,而不是 For Each Subsystem 模块本身的参数。要禁止模型中所有 For Each 子系统的多核执行,请将模型的 MultithreadedSim 参数设置为 'off'

set_param(ModelName,'MultithreadedSim','off')

要重新启用多核执行,请将相关的 MultithreadedSim 参数设置为其默认值 'auto'

有关示例,请参阅Multithreaded Simulation Using For Each Subsystem

注意

如果以快速加速模式仿真模型或从模型生成代码,并且对 For Each 子系统中的封装参数进行分区,则 For Each Subsystem 中引用分区参数的任何表达式都必须为可调表达式。请参阅Tunable Expression Limitations (Simulink Coder)

S-Function 支持

For Each Subsystem 模块支持 C-MEX S-Function 和 2 级 MATLAB® S-Function,前提是 S-Function 使用以下方法之一支持多个执行实例:

  • C-MEX S-Function 必须在 mdlSetWorkWidths 方法中声明 ssSupportsMultipleExecInstances(S, true)

  • 2 级 MATLAB S-Function 必须在 setup 方法中声明 block.SupportsMultipleExecInstances = true

如果使用这些设定,则:

  • 不要使用全局变量或持久变量或在 S-Function 的用户数据内缓存运行时数据,如 DWork 和模块 I/O。

  • For Each Subsystem 模块中,对于 S-Function 处理的每个元素,各调用一次 S-Function 执行方法(从 mdlStart 直到 mdlTerminate)。因此,您必须确保不要在重复调用 mdlTerminate 时释放相同的内存。例如,假设某个 C-MEX S-Function 为 mdlSetWorkWidths 内的运行时参数分配内存。仅当在 mdlTerminate 中时,该内存才需要释放一次。作为一种解决方案,请在首次调用 mdlTerminate 后将指针设置为空。

限制

有关 For Each Subsystem 模块限制的信息,请参阅Limitations of For-Each Subsystems

端口

输入

全部展开

Subsystem 模块的信号输入,指定为标量、向量或矩阵。在 Subsystem 模块中放置一个 Inport 模块会为该模块添加一个外部输入端口。端口标签与 Inport 模块的名称相匹配。

使用 Inport 模块可以从局部环境中接收信号。

数据类型: half | single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus

输出

全部展开

Subsystem 模块输出的信号,以标量、向量或矩阵形式返回。在 Subsystem 模块中放置一个 Outport 模块会为该模块添加一个外部输出端口。端口标签与 Outport 模块的名称相匹配。

使用 Outport 模块可以向局部环境发送信号。

数据类型: half | single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus

参数

全部展开

要以交互方式编辑模块参数,请使用属性检查器。在 Simulink 工具条中,在仿真选项卡的准备库中,选择属性检查器

常设

选择如何在 Subsystem 模块图标上显示端口标签。

  • - 不显示端口标签。

  • FromPortIcon - 如果对应的端口图标显示了信号名称,则在 Subsystem 模块上显示信号名称。否则,如果模块名称是默认名称,则显示端口模块名称或端口号。

  • FromPortBlockName - 在 Subsystem 模块上显示对应端口模块的名称。

  • SignalName - 如果连接到端口的信号已命名,则会在 Subsystem 模块上显示信号的名称。否则,显示相应端口模块的名称。

有关 Subsystem 模块上的端口标签编辑,请参阅Edit Port Labels on Subsystem Blocks

编程用法

要以编程方式设置模块参数值,请使用 set_param 函数。

参数: ShowPortLabels
值: 'FromPortIcon' (默认) | 'FromPortBlockName' | 'SignalName'

控制用户对子系统内容的访问。

  • ReadWrite - 允许打开和修改子系统内容。

  • ReadOnly - 允许打开但不允许修改子系统。如果子系统在模块库中,您可以创建和打开该子系统的链接,创建和修改子系统的本地副本,但不能更改权限或修改原始模块库实例的内容。

  • NoReadOrWrite - 禁止打开或修改子系统。如果子系统在模块库中,您可以在模型中创建该子系统的链接,但不能打开、修改、更改权限或创建子系统的本地副本。

如果您尝试查看其读取/写入权限参数设置为 NoReadOrWrite 的子系统的内容,将不会收到响应。例如,当您双击此类子系统时,软件不会打开该子系统,并且不显示任何消息。

编程用法

要以编程方式设置模块参数值,请使用 set_param 函数。

参数: Permissions
值: 'ReadWrite' (默认) | 'ReadOnly' | 'NoReadOrWrite'

输入软件执行子系统时,如果发生错误要调用的函数的名称。

该软件向函数传递两个参数:子系统的句柄以及指定错误类型的字符向量。如果未指定任何函数,当执行子系统导致错误时,软件将显示常规错误消息。

编程用法

要以编程方式设置模块参数值,请使用 set_param 函数。

参数: ErrorFcn
值: '' (默认) | function name in quotes
数据类型: char | string

选择是否解析此子系统引用的工作区变量的名称。

有关详细信息,请参阅符号解析符号解析过程

  • 全部 - 解析此子系统使用的所有工作区变量的名称,包括用来指定模块参数值和 Simulink 数据对象(例如,Simulink.Signal 对象)的工作区变量的名称。

  • ExplicitOnly - 只解析用来指定模块参数值、数据存储内存(不存在模块)、信号以及标有“must resolve”状态的工作区变量的名称。

  • - 不解析任何工作区变量名称。

编程用法

要以编程方式设置模块参数值,请使用 set_param 函数。

参数: PermitHierarchicalResolution
值: 'All' (默认) | 'ExplicitOnly' | 'None'

尝试消除任何包含原子子系统的人为代数环

  • off - 不尝试消除任何包含原子子系统的人为代数环。

  • on - 尝试消除任何包含原子子系统的人为代数环。

依存关系

要启用此参数,请选择视为原子单元

编程用法

要以编程方式设置模块参数值,请使用 set_param 函数。

参数: MinAlgLoopOccurrences
值: 'off' (默认) | 'on'

代码生成

设置“代码生成”选项卡上的参数需要具有 Simulink Coder 或 Embedded Coder® 许可证。

选择要为原子(非虚拟)子系统生成的代码格式。

  • 自动 - 软件将根据模型中存在的子系统的类型和实例数为您选择最佳格式。

  • 内联 - 软件无条件内联子系统。

  • 不可重用函数 - 如果将文件名选项设置为自动,则软件会将单独函数打包到模型文件中。如果使用不同的文件名将文件名选项设置为使用子系统名称使用函数名称用户指定,则软件将单独函数分别打包到独立的文件中。

    采用此设置的子系统生成的函数可能有参量,具体取决于 函数接口 参数设置。您可以使用参数 函数名称文件名(无扩展名) 分别为生成的函数和文件命名。这些函数不可重入。

  • 可重用函数 - 当模型中包含子系统的多个实例时,软件可以生成带参数的函数,该函数将允许重用子系统的代码。

    此选项还可生成带参数的函数,允许在为模型引用层次结构(其中引用的模型包含子系统的多个实例)生成的代码中重用子系统代码。在这种情况下,子系统必须是模块库中的子系统。

有关详细信息,请参阅:

提示

  • 如果您希望子系统的多个实例表示为一个可重用函数,可以为每个子系统指定自动可重用函数。最好是使用其中一个,因为使用两个将生成两个可重用函数,每个指定一个函数。仅当可以重用时,这些选项的结果才会有区别。选择自动则不允许控制子系统代码的函数或文件名。

  • 可重用函数自动选项都尝试确定是否存在子系统的多个实例,以及是否可以重用代码。者两个选项的行为区别体现在不能重用时:

    • 自动生成内联代码,或者在禁止内联的情况下为每个子系统实例生成一个单独的函数。

    • 可重用函数为模型中的每个子系统实例生成一个单独的参数函数。

  • 如果您在生成的代码处于源代码管理状态下时选择了可重用函数,请将文件名选项设置为使用子系统名称使用函数名称用户指定。否则,只要您修改模型,代码文件的名称就会改变,从而无法对文件进行源代码管理。

  • 如果您选择除自动内联以外的选项,并且使用模型配置参数状态,则代码生成器会生成单独的输出和更新方法。代码生成器不考虑为代码生成和仿真合并输出和更新方法设定。

依存关系

  • 此参数需要 Simulink Coder 许可证才能生成代码。

  • 要启用此参数,请选择视为原子单元

编程用法

要以编程方式设置模块参数值,请使用 set_param 函数。

参数: RTWSystemCode
值: 'Auto' (默认) | 'Inline' | 'Nonreusable function' | 'Reusable function'

选择软件如何命名它为子系统生成的函数。

如果您拥有 Embedded Coder 许可证,则可以使用“配置参数”对话框的代码生成 > 标识符窗格上的选项来控制函数名称。

  • 自动 - 使用默认的命名约定 model_subsystem() 指定唯一的函数名称,其中 model 是模型的名称,subsystem 是子系统的名称,或者,在重用代码时,也可以是相同子系统的名称。

    如果您为函数打包参数选择了可重用函数,而模型引用层次结构中存在可重用子系统的多个实例,则要为子系统生成可重用代码,必须将函数名称选项设置为自动

  • 使用子系统名称 - 使用子系统名称作为函数名称。默认情况下,函数名称使用命名约定 model_subsystem

    当子系统在模块库模块中而子系统参数 函数打包 设置为可重用函数时,如果您设置使用子系统名称选项,代码生成器将使用模块库模块的名称作为子系统函数名和文件名。

  • 用户指定 - 启用函数名称字段。输入任何合法的 C 或 C++ 函数名,此名称必须唯一。

有关详细信息,请参阅Generate Subsystem Code as Separate Function and Files (Simulink Coder)

依存关系

  • 此参数要求具有 Simulink Coder 许可证。

  • 要启用此参数,请将函数打包设置为不可重用函数可重用函数

编程用法

要以编程方式设置模块参数值,请使用 set_param 函数。

参数: RTWFcnNameOpts
值: 'Auto' (默认) | 'Use subsystem name' | 'User specified'

为子系统代码指定唯一的有效 C 或 C++ 函数名称。

如果您想为函数指定特定的名称,而不是让 Simulink Coder 代码生成器分配其自己自动生成的名称或者使用子系统名称,请使用此参数。有关详细信息,请参阅Generate Subsystem Code as Separate Function and Files (Simulink Coder)

依存关系

  • 此参数要求具有 Simulink Coder 许可证。

  • 要启用此参数,请将函数名称选项设置为用户指定

编程用法

要以编程方式设置模块参数值,请使用 set_param 函数。

参数: RTWFcnName
值: '' (默认) | function name in quotes
数据类型: char | string

选择软件如何命名它为子系统生成的函数的单独文件。

  • 自动 - 根据子系统的配置以及子系统在模型中的实例数,自动将生成不同的结果。

    • 如果代码生成器为子系统生成单独的文件,将在从子系统的父级系统生成的代码模块内生成子系统代码。如果子系统的父级就是模型本身,将在 model.cmodel.cpp 内生成子系统代码。

    • 如果您为函数打包参数选择了可重用函数,而您生成的代码处于源代码管理状态下,请不要将文件名选项值指定为自动。这样可以防止由于不相关的模型修改而更改生成的文件名,而在使用源代码管理来管理配置时,文件名的改变会产生问题。

    • 如果您为函数打包参数选择了可重用函数,而模型引用层次结构中存在可重用子系统的多个实例,则要为子系统生成可重用代码,必须将文件名选项设置为自动

  • 使用子系统名称 - 代码生成器将生成一个单独的文件,并使用子系统(或模块库模块)名称作为文件名。

    文件名选项设置为使用子系统名称时,如果模型中包含 Model 模块,或者正在为模型生成模型引用目标,则子系统文件名将被破坏。在这些情况下,子系统的文件名由子系统名称加上模型名称前缀构成。

  • 使用函数名称 - 代码生成器使用函数名称选项指定的函数名称作为文件名。

  • 用户指定 - 此选项将启用文件名(无扩展名) 文本输入字段。代码生成器将使用您输入的名称作为文件名。可以输入任何文件名,但不要带 .c.cpp(或任何其他)扩展名。此文件名不必是唯一的。

    虽然子系统源文件名不需要唯一,但必须避免使用不唯一名称,否则会导致循环依存关系。例如,sys_a.h 包括 sys_b.hsys_b.h 包括 sys_c.h,而 sys_c.h 包括 sys_a.h

依存关系

  • 此参数要求具有 Simulink Coder 许可证。

  • 要启用此参数,请将函数打包设置为不可重用函数可重用函数

编程用法

要以编程方式设置模块参数值,请使用 set_param 函数。

参数: RTWFileNameOpts
值: 'Auto' (默认) | 'Use subsystem name' | 'Use function name' | 'User specified'

您指定的文件名不必是唯一的。但是,避免使用非唯一名称,否则会导致循环依存关系。例如,sys_a.h 包括 sys_b.hsys_b.h 包括 sys_c.h,而 sys_c.h 包括 sys_a.h

有关详细信息,请参阅Generate Subsystem Code as Separate Function and Files (Simulink Coder)

依存关系

  • 此参数要求具有 Simulink Coder 许可证。

  • 要启用此参数,请将文件名选项设置为用户指定

编程用法

要以编程方式设置模块参数值,请使用 set_param 函数。

参数: RTWFileName
值: '' (默认) | filename in quotes
数据类型: char | string

选择如何在生成的函数中使用参数。

  • void_void - 生成不带参数的函数,并将数据作为全局变量进行传递。例如:

    void subsystem_function(void)

  • 允许参数(优化) - 生成带参数的函数,而不是将数据作为全局变量进行传递。此规范可以减少全局 RAM。此选项可以减小代码大小、提高执行速度,并支持代码生成器应用更多的优化。例如:

    void subsystem_function(real_T rtu_In1, real_T rtu_In2, 
                            real_T *rty_Out1)

    在某些情况下,当生成优化代码时,代码生成器可能不会生成具有参数的函数。

  • 允许参数(匹配图形接口) - 生成一个函数接口,该接口与 Subsystem 图形模块接口匹配的参数。生成的函数接口是可预知的,并且不会更改。可预知的接口对于调试和测试代码以及与外部应用程序集成非常有用。例如,如果模型有两个 Inport 模块和两个 Outport 模块,则生成的函数接口是:

    void subsystem_function(real_T rtu_In1, real_T rtu_In2, 
                            real_T *rty_Out1, real_T *rty_Out2)

有关详细信息,请参阅:

依存关系

  • 此参数需要 Embedded Coder 许可证和一个基于 ERT 的系统目标文件。

  • 要启用此参数,请将函数打包设置为不可重用函数

编程用法

要以编程方式设置模块参数值,请使用 set_param 函数。

参数: FunctionInterfaceSpec
值: 'void_void' (默认) | 'Allow arguments (Optimized)' | 'Allow arguments (Match graphical interface)'

生成其中原子子系统的内部数据与其父级模型分离且归子系统所有的子系统函数代码。

  • off - 不生成其中原子子系统的内部数据与其父级模型分离且归子系统所有的子系统函数代码。

  • on - 生成其中原子子系统的内部数据与其父级模型分离且归子系统所有的子系统函数代码。子系统数据结构的声明独立于父模型数据结构。带单独数据的子系统具有其自己的模块 I/O 和 DWork 数据结构。因此,为子系统生成的代码更容易跟踪和检验。数据分离还可以减小整个模型的全局数据结构的最大大小,因为它们被拆分成多个数据结构。

有关如何为原子子系统生成模块化函数代码的详细信息,请参阅为非虚拟子系统生成模块化函数代码 (Embedded Coder)

有关如何对原子子系统应用内存段的详细信息,请参阅Override Default Memory Placement for Subsystem Functions and Data (Embedded Coder)

依存关系

  • 此参数需要 Embedded Coder 许可证和一个基于 ERT 的系统目标文件。

  • 要启用此参数,请将函数打包设置为不可重用函数

编程用法

要以编程方式设置模块参数值,请使用 set_param 函数。

参数: FunctionWithSeparateData
值: 'off' (默认) | 'on'

选择软件如何将内存段应用于子系统初始化和终止函数。

  • 从模型继承 - 将根模型内存段应用于子系统函数代码。

  • 默认 - 不将内存段应用于子系统的系统代码,覆盖任何模型级的设置。

  • 感兴趣的内存段 - 将其中一个模型内存段应用于子系统。

提示

依存关系

  • 此参数需要 Embedded Coder 许可证和一个基于 ERT 的系统目标文件。

  • 要启用此参数,请将函数打包设置为不可重用函数可重用函数

编程用法

要以编程方式设置模块参数值,请使用 set_param 函数。

参数: RTWMemSecFuncInitTerm
值: 'Inherit from model' (默认) | 'Default' | 'The memory section of interest'

选择 Embedded Coder 如何将内存段应用于子系统执行函数。

  • 从模型继承 - 将根模型内存段应用于子系统函数代码。

  • 默认 - 不将内存段应用于子系统的系统代码,覆盖任何模型级的设置。

  • 感兴趣的内存段 - 将其中一个模型内存段应用于子系统。

提示

依存关系

  • 此参数需要 Embedded Coder 许可证和一个基于 ERT 的系统目标文件。

  • 要启用此参数,请将函数打包设置为不可重用函数可重用函数

编程用法

要以编程方式设置模块参数值,请使用 set_param 函数。

参数: RTWMemSecFuncExecute
值: 'Inherit from model' (默认) | 'Default' | 'The memory section of interest'

选择软件如何将内存段应用于子系统常量。

  • 从模型继承 - 将根模型内存段应用于子系统数据。

  • 默认 - 不要将内存段应用于子系统数据,将覆盖任何模型级的设置。

  • 感兴趣的内存段 - 将其中一个模型内存段应用于子系统。

提示

依存关系

  • 此参数需要 Embedded Coder 许可证和一个基于 ERT 的系统目标文件。

  • 要启用此参数,请将函数打包设置为不可重用函数,然后选择具有独立数据的函数参数。

编程用法

要以编程方式设置模块参数值,请使用 set_param 函数。

参数: RTWMemSecDataConstants
值: 'Inherit from model' (默认) | 'Default' | 'The memory section of interest'

选择软件如何将内存段应用于子系统内部数据。

  • 从模型继承 - 将根模型内存段应用于子系统数据。

  • 默认 - 不要将内存段应用于子系统数据,将覆盖任何模型级的设置。

  • 感兴趣的内存段 - 将其中一个模型内存段应用于子系统。

提示

依存关系

  • 此参数需要 Embedded Coder 许可证和一个基于 ERT 的系统目标文件。

  • 要启用此参数,请将函数打包设置为不可重用函数,然后选择具有独立数据的函数参数。

编程用法

要以编程方式设置模块参数值,请使用 set_param 函数。

参数: RTWMemSecDataInternal
值: 'Inherit from model' (默认) | 'Default' | 'The memory section of interest'

选择软件如何将内存段应用于子系统参数。

  • 从模型继承 - 将根模型内存段应用于子系统函数代码。

  • 默认 - 不将内存段应用于子系统的系统代码,覆盖任何模型级的设置。

  • 感兴趣的内存段 - 将其中一个模型内存段应用于子系统。

提示

依存关系

  • 此参数需要 Embedded Coder 许可证和一个基于 ERT 的系统目标文件。

  • 要启用此参数,请将函数打包设置为不可重用函数,然后选择具有独立数据的函数参数。

编程用法

要以编程方式设置模块参数值,请使用 set_param 函数。

参数: RTWMemSecDataParameters
值: 'Inherit from model' (默认) | 'Default' | 'The memory section of interest'

模块特性

数据类型

Booleana | busa | doublea | enumerateda | fixed pointa | halfa | integera | singlea

直接馈通

多维信号

a

可变大小信号

过零检测

a 实际支持的数据类型或功能取决于模块实施。

扩展功能

版本历史记录

在 R2010a 中推出