Main Content

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

Subsystem

对各模块进行分组以创建模型层次结构

  • Subsystem block

库:
Simulink / Commonly Used Blocks
Simulink / Ports & Subsystems
HDL Coder / Ports & Subsystems

描述

Subsystem 模块包含模型或系统中的一组模块。Subsystem 模块可以表示虚拟子系统或非虚拟子系统。

  • 虚拟子系统有助于直观地组织模块图。当您对虚拟子系统中的模块进行组合或扩展虚拟子系统时,因为模块路径的更改,您可能会影响模块的执行顺序。虚拟子系统既不以原子方式执行也不自动执行。虚拟子系统没有校验和。

  • 非虚拟子系统,亦称原子子系统,有助于在功能上组织模块图。当您对一个非虚拟子系统中的模块进行组合或展开一个非虚拟子系统时,您会更改模型行为。当父模型执行时,每个非虚拟子系统作为单个模块或原子单元执行。一个非虚拟子系统中的模块会连续执行。

有关非虚拟子系统类型的信息,请参阅浏览子系统的类型

要确定子系统是虚拟子系统还是非虚拟子系统,请使用以下策略之一:

  • 检查模块的边框。表示虚拟子系统的模块有细边框。表示非虚拟子系统的模块有粗边框。

    Virtual and nonvirtual subsystem blocks

  • 使用 get_param 函数查询布尔值模块参数 IsSubsystemVirtual

Subsystem 模块上的端口对应于子系统内部的模块。有关详细信息,请参阅Connect Subsystems

Subsystem 模块通过子系统 InportOutport 模块支持信号标签传播。有关详细信息,请参阅信号标签传播

示例

全部展开

要创建子系统,您可以先添加一个 Subsystem 模块,然后向子系统添加内容。

在模型中插入一个 Subsystem 模块。

例如:

  1. 双击 Simulink® 画布以打开快速插入菜单。

  2. 在搜索框中,开始键入模块的名称。例如,键入 subsystem

  3. 在出现的列表中,选择要在模型中实现的子系统类型的模块。使用箭头键并按 Enter 键或点击该模块。

要查看或编辑子系统的内容,请双击 Subsystem 模块。要退出子系统,请在 Simulink 工具栏的左端下方,点击“后退”按钮 。有关如何在包含子系统的模型层次结构中导航的详细信息,请参阅Navigate Model Hierarchy

您可以通过将现有模型的一部分转换为子系统来创建子系统。

在 Simulink 画布中,拖动以绘制一个选择框来涵盖您要包含在子系统中的模型元素。选择框旁边会出现省略号。

Model contains a Transfer Fcn block and a Gain block selected, and an ellipsis next to the selection box

将鼠标在省略号上暂停。将展开一个操作栏。

Ellipsis replaced by an action bar, with the Create Subsystem option selected

在该操作栏中,点击创建子系统或另一个子系统选项。

In the block diagram, the Transfer Fcn block and a Gain block are replaced by a single Subsystem block. The signal line that connected to the input port of the Transfer Fcn block now connects to the input port of the Subsystem block, and the signal line that connected to the output port of the Gain block now connects to the output port of the Subsystem block.

为了提供信号进出子系统的接口,Subsystem 模块包含与输入端口和输出端口对应的模块。

当所选内容包含对应于输入和输出端口的模块时,新子系统包括这些模块的副本。新子系统不包含对应于控制端口的模块的副本。

要用其内容替换 Subsystem 模块,您可以展开子系统。

选择 Subsystem 模块。然后,在 Simulink 工具条的子系统模块选项卡上,点击展开

子系统的内容出现在标有被替换模块名称的区域中。

The top image show a Sine Wave block connected to a Subsystem block connected to a Scope block. The bottom image show the same block diagram with the Subsystem block replaced by its contents. The contents are in an area labeled Subsystem.

有关详细信息,请参阅Expand Subsystem Contents

要确定子系统是否为虚拟子系统,请使用具有布尔值模块参数 IsSubsystemVirtualget_param 函数。

打开示例。然后,打开 SubsystemExecution 模型。

open_system("SubsystemExecution");

检查名为 discrete cruise controller 的 Subsystem 模块是否为虚拟模块。

get_param("SubsystemExecution/discrete cruise controller",...
    "IsSubsystemVirtual")
ans = 
'off'

此子系统是非虚拟子系统。模块图标的粗边框表示子系统是非虚拟子系统。

检查名为 car dynamics 的 Subsystem 模块是否为虚拟模块。

get_param("SubsystemExecution/car dynamics","IsSubsystemVirtual")
ans = 
'on'

此子系统是虚拟子系统。

扩展示例

端口

输入

全部展开

在子系统中放置一个模块(如 InportIn Bus Element)会向 Subsystem 模块添加一个外部输入端口。

使用 InportIn Bus Element 模块可以从局部环境中获取信号。

有关详细信息,请参阅Connect Subsystems

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

重新初始化事件端口提供触发子系统重新初始化事件的函数调用控制信号,这会重置子系统的状态。

对于每个子系统重新初始化事件,子系统必须包含一个对应的 Reinitialize Function 模块。有关详细信息,请参阅使用初始化、重新初始化、重置和终止函数

要指定端口名称,请使用 Reinitialize Function 模块中 Event Listener 模块的事件名称参数。

依存关系

要启用这种类型的端口,请选择显示子系统重新初始化端口

输出

全部展开

在子系统中放置一个模块(如 OutportOut Bus Element)会从 Subsystem 模块添加一个输出端口。

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

有关详细信息,请参阅Connect Subsystems

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

参数

全部展开

要以交互方式编辑模块参数,请使用属性检查器。在 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 - 在确定模块方法的执行顺序时,将子系统视为一个单元。例如,当需要计算子系统的输出时,软件会先调用子系统中的所有模块的输出方法,然后再调用与 Subsystem 模块同一级别的其他模块的输出方法。

编程用法

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

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

选中此参数可显示重新初始化事件端口。清除此参数可删除这些端口。

依存关系

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

编程用法

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

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

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

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

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

依存关系

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

编程用法

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

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

指定如何调度子系统。

  • 采样时间 - 指定此子系统中的所有模块是必须以相同的速率运行,还是能可以不同的速率运行。

  • 周期性分区 - 将子系统作为周期性分区进行调度。指定分区名称和与分区运行的速率对应的采样时间。

  • 非周期性分区 - 将子系统作为非周期性分区调度。指定分区名称。

依存关系

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

编程用法

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

参数: ScheduleAs
值: 'Sample time' (默认) | 'Periodic partition' | 'Aperiodic partition'

指定子系统的分区的名称。

依存关系

要启用此参数,请选择视为原子单元,并将调度类型设置为周期性分区非周期性分区

编程用法

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

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

指定此子系统中的所有模块是必须以相同的速率运行,还是能可以不同的速率运行。

  • -1 - 继承采样时间。

  • [Ts 0] - 周期性采样时间。

如果子系统中的模块可以不同的速率运行,则为子系统指定继承采样时间 (-1)。

如果所有模块必须以相同的速率运行,则将与此速率对应的采样时间指定为采样时间参数的值。

如果子系统中的任何模块指定了不同的采样时间(而不是 -1inf),则当您更新或仿真模型时,软件会显示错误消息。例如,假设子系统中的所有模块必须以 5 次/秒的速率运行。要确保这个速率,请将子系统的采样时间指定为 0.2。在此示例中,如果子系统中的任何模块指定了除 0.2-1inf 之外的其他采样时间,则当您更新或仿真模型时,软件将显示错误。

依存关系

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

编程用法

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

参数: SystemSampleTime
值: '-1' (默认) | '[Ts 0]'

指定当从 Variant Source 模块或者向 Variant Sink 模块传播变体条件时,软件是否将子系统视为一个单元。

  • on - 当从 Variant Source 模块或者向 Variant Sink 模块传播变体条件时,软件会将子系统视为一个单元。例如,当软件计算子系统的变体条件时,软件会将该条件传播到子系统中的所有模块。

  • off - 在确定模块的变体条件时,软件将子系统子中的所有模块视为与子系统处于模型层次结构中的同一级别。

编程用法

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

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

代码生成

设置“代码生成”选项卡上的参数需要具有 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'

子系统引用

指定要引用的子系统文件。有关子系统引用的信息,请参阅Create and Use Referenced Subsystems in Models

依存关系

要访问此参数,请在子系统引用部分中,点击转换

有关如何将子系统转换为引用子系统的详细信息,请参阅Convert Subsystem to a Referenced Subsystem

编程用法

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

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

模块特性

数据类型

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

直接馈通

多维信号

a

可变大小信号

a

过零检测

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

替代配置

全部展开

Atomic Subsystem 模块选中视为原子单元参数。

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

Subsystem Reference 模块引用存储在子系统文件 (.slx) 中的子系统。有关详细信息,请参阅Create and Use Referenced Subsystems in Models

库:
Simulink / Ports & Subsystems

Enabled Subsystem 是包含 Enable 模块的模板。

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

Triggered Subsystem 是包含 Trigger 模块的模板,其中触发器类型设置为上升沿

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

Enabled and Triggered Subsystem 是包含 Enable 模块和 Trigger 模块的模板,其中触发器类型设置为上升沿

库:
Simulink / Ports & Subsystems

Resettable Subsystem 是包含 Reset 模块的模板。

库:
Simulink / Ports & Subsystems

If Action Subsystem 是用于创建子系统的模板,该子系统的执行由 If 模块控制。子系统包含 Action Port 模块。

库:
Simulink / Ports & Subsystems

Switch Case Action Subsystem 是用于创建子系统的模板,该子系统的执行由 Switch Case 模块控制。子系统包含 Action Port 模块。

库:
Simulink / Ports & Subsystems

Function-Call Subsystem 是包含 Trigger 模块的模板,其中触发器类型设置为函数调用

库:
Simulink / Ports & Subsystems

For Iterator Subsystem 是包含 For Iterator 模块的模板。

库:
Simulink / Ports & Subsystems

While Iterator Subsystem 是包含 While Iterator 模块的模板。

库:
Simulink / Ports & Subsystems

For Each Subsystem 是包含 For Each 模块的模板。

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

自 R2022a 起

Message Polling Subsystem 是包含 Trigger 模块的模板,其中触发器类型设置为消息,并且触发时间设置为在采样时间命中点上Trigger 模块替换 Inport 模块。

库:
Simulink / Messages & Events

自 R2022a 起

Message Triggered Subsystem 是包含 Trigger 模块的模板,其中触发器类型设置为消息触发时间设置为在消息可用时Trigger 模块替换 Inport 模块。

库:
Simulink / Messages & Events

CodeReuseSubsystem 模块选中视为原子单元参数,并将函数打包设置为可重用函数

库:
Simulink / Ports & Subsystems

自 R2022b 起

Neighborhood Processing Subsystem 是包含 Neighborhood 模块的模板。

库:
Simulink / Matrix Operations

扩展功能

版本历史记录

在 R2007a 中推出