主要内容

子系统,原子子系统,代码复用子系统

组块以创建模型层次结构

  • 库:
  • 金宝appSimulink/端口和子系统

  • 子系统块

描述

一个子系统块包含模型或系统内的块的子集。的子系统块可以表示虚拟子系统或非虚拟子系统。

  • 非横穿子系统 - 子系​​统内容被评估为单个单元(原子执行)。创建仅当事件发生在触发,函数调用,动作或启用输入时仅运行的有条件执行的子系统(请参阅有条件执行的子系统和模型).

  • 虚拟子系统 - 子系​​统既不条件也不是原子执行。虚拟子系统没有校验和。要确定子系统是否是虚拟的,请使用get_param.函数的布尔块参数IsSubsystemVirtual

原子子系统是一个子系统使用block参数创建块视为原子单位选中。

代码重用子系统是一个子系统带参数的块视为原子单位选择和参数功能包装着手可重用的功能,指定子系统的功能代码生成格式。

要创建一个子系统,请执行以下操作之一:

  • 复制A.子系统从端口和子系统库中的块到模型中。然后通过打开块向子系统添加块子系统块并将块复制到其中。

  • 选择组成子系统的所有块和行,然后在多个选项卡上,单击创建子系统.金宝app动态仿真模块®将块替换为子系统块,以及必要的输入外港块以反映进入和离开子系统的信号。

输入端口的数量绘制在子系统块图标对应的数字输入子系统中的块。类似地,在块上绘制的输出端口数对应于外港子系统中的块。

子系统块支撑金宝app信号标签传播通过子系统输入外港块。

引用的子系统是存储在使用A引用的单独文件中的子系统子系统的参考块。要重用该子系统,请添加多个子系统的参考块引用相同的子系统文件。在运行时,引用子系统的行为与常规子系统相同。

港口

输入

全部展开

放置一个输入子系统中的块将外部输入端口添加到子系统街区。端口标签与端口的名称匹配输入块。

使用输入块以从本地环境获取信号。

数据类型:一半|单身的|双倍的|INT8.|int16|INT32.|INT64.|uint8.|uint16|UINT32.|uint64|布尔基|不动点|枚举|公共汽车

输出

全部展开

放置一个外港子系统中的块从中添加输出端口子系统块上的端口标签子系统块是外港块。

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

数据类型:一半|单身的|双倍的|INT8.|int16|INT32.|INT64.|uint8.|uint16|UINT32.|uint64|布尔基|不动点|枚举|公共汽车

参数

全部展开

代码生成选项卡上的参数需要金宝appSimulink编码器™或嵌入式编码器®许可证。

主要

选择如何显示端口标签子系统块图标。

没有一个

不要显示端口标签。

FromPortIcon

如果相应的端口图标显示信号名称,请在显示信号名称上显示信号名称子系统块。否则,如果块名称是默认名称,则显示端口块名称或端口号。

FromPortBlockName

接口上对应端口块的名称子系统块。

signalName.

如果已命名连接到端口的信号,则在屏幕上显示该信号的名称子系统块。否则,显示相应端口块的名称。

编程使用

参数ShowPortLabels
类型:特征向量
价值观“FromPortIcon”|“FromPortBlockName”|“信号名”
默认的“FromPortIcon”

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

读写

启用子系统内容的打开和修改。

只读

启用打开但不修改子系统。如果子系统驻留在块库中,则可以创建和打开指向子系统的链接,并可以制作和修改子系统的本地副本,但不能更改权限或修改原始库实例的内容。

NoReadOrWrite

禁用子系统的打开或修改。如果子系统驻留在库中,则可以在模型中创建链接到子系统,但无法打开,修改,更改权限或创建子系统的本地副本。

如果您尝试查看其子系统的内容,则不会收到响应读/写权限参数设置为NoReadOrWrite.例如,当双击这样一个子系统时,Simulink不会打开该子系统,也不会显示任何消息。金宝app

编程使用

参数权限
类型:特征向量
价值观'readwrite'|'只读'|“NoReadOrWrite”
默认的'readwrite'

输入要调用的函数的名称如果在Simulink正在执行子系统时发生错误。金宝app

金宝appSimulink将两个参数传递给函数:子系统的句柄和指定错误类型的字符向量。如果未指定任何功能,则Simulink如果执行子系统,则显金宝app示通用错误消息,如果执行子系统会导致错误。

编程使用

参数ErrorFcn
类型:特征向量
价值观''|
默认的''

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

有关更多信息,请参阅符号分辨率符号解析过程

所有

解析此子系统使用的所有工作空间变量的名称,包括用于指定块参数值和Simulink数据对象的名称(例如,金宝app金宝app仿真软件。信号对象)。

ExplicitOnly

仅解决用于指定块参数值的工作空间变量的名称,数据存储存储器(其中没有块存在),信号和标记为“必须解析”的状态。

没有任何

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

编程使用

参数PermitHierarchicalResolution
类型:特征向量
价值观“所有”|'xingicically'|'没有任何'
默认的“所有”

导致Simul金宝appink在确定块方法的执行顺序时,将子系统视为一个单元。

远离的

在确定块方法执行顺序时,将子系统中的所有块视为与子系统在模型层次结构中的同一层。这可能导致子系统中块的方法的执行与子系统外块的方法的执行交叉。

在确定块方法的执行顺序时,将子系统视为一个单元。例如,当需要计算子系统的输出时,Simulink会先调用子系统中所有块的输出方法,然后再调用与之同级的其他块的输出方法金宝app子系统块。

编程使用

参数TreatAsAtomicUnit
类型:特征向量
价值观“关闭”|“上”
默认的“关闭”

尽量消除任何包含原子子系统的人工代数循环

远离的

不要试图消除任何包含原子子系统的人工代数循环。

尽量消除任何包含原子子系统的人工代数循环。

依赖性

要启用此参数,请选择视为原子单位范围。

编程使用

参数尖塔
类型:特征向量
价值观“关闭”|“上”
默认的“关闭”

指定如何计划子系统。

采样时间

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

周期性的分区

将子系统计划为定期分区。指定分区名称和与分区运行速率相对应的采样时间。

非周期分割

将子系统安排为非周期性分区。指定分区名称。

依赖性

要启用此参数,请选择视为原子单位范围。

编程使用

参数ScheduleAs
类型:特征向量
价值观'采样时间'|'独立豁免'|“UnconstrainedPartition”
默认的'采样时间'

指定子系统的分区名称。

依赖性

要启用此参数,请选择视为原子单位参数,并设置计划是周期性的分区非周期分割

编程使用

参数partitionName.
类型:特征向量
价值观''
默认的''

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

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

  • 如果所有块必须以相同的速率运行,则指定与此速率对应的采样时间为采样时间范围。

  • 如果子系统中的任何块指定了不同的采样时间(除了-1),当金宝app您更新或模拟模型时,Simulink会显示一条错误消息。例如,假设子系统中的所有块都必须运行5为确保这一点,请将子系统的采样时间指定为0.2.在本例中,如果子系统中的任何块指定的样本时间不是0.2-1, 或者,S金宝appimulink在更新或模拟模型时显示错误。

-1

指定继承的样本时间。如果子系统中的块可以以不同的速度运行,则使用此示例时间。

[Ts 0]

指定周期采样时间。

依赖性

要启用此参数,请选择视为原子单位范围。

编程使用

参数SystemSampleTime
类型:特征向量
价值观' 1 '|“(Ts 0)”
默认的' 1 '

指定执行变体的变体控制(条件)表达式金宝appSimulink函数块时,表达式的计算结果为真的

有关更多信息,请参阅金宝appsimulink.variant.

变体

逻辑(布尔)表达式的默认名称。

逻辑表达式

逻辑(布尔)表达式或a金宝appsimulink.variant.表示逻辑表达式的对象。

当表达式计算为时,函数被激活真的

如果要为模型生成代码,请将表达式中的变量定义为金宝app仿真软件。参数对象。

依赖性

通过添加a启用此参数子系统块在A内变型子系统块。

编程使用

块参数:VariantControl.
类型:字符向量
值:“变异”|'<逻辑表达>'
违约:“变异”

导致Simul金宝appink在传播变量条件时将子系统作为一个单元变异来源块或段变体水槽块。

金宝appSimulink将子系统视为一个单元,从中传播各种条件变异来源块或段变体水槽块。例如,当Simulink计算子系统的金宝app可变条件时,它将该条件传播到子系统中的所有块。

远离的

金宝appSimulink将子系统中的所有块视为在模型层次结构中与子系统本身处于同一级别,以确定其变化条件。

编程使用

参数TreatAsGroupedWhenPropagatingVariantConditions
类型:特征向量
价值观“上”|“关闭”
默认的“上”

代码生成

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

汽车

金宝app仿真软件编码器嵌入式编码器根据模型中存在的子系统实例的类型和数量为您选择最佳格式。

内联

金宝app仿真软件编码器和嵌入式编码器无条件内联子系统。

不可用的功能

如果Filename选项被设置为汽车金宝app仿真软件编码器并嵌入式编码器包在模型文件中单独函数。如果文件名选项被设置为使用子系统名称使用函数名称, 或者用户指定的使用不同的文件名,金宝app仿真软件编码器和嵌入式编码器包单独的功能在单独的文件。

具有此设置的子系统生成的函数可能具有参数,具体取决于功能界面参数设置。您可以使用参数来命名生成的函数和文件函数名称文件名(无扩展名).这些函数并不重新入口。

可重用的功能

金宝app仿真软件编码器嵌入式编码器生成一个带有参数的函数,当模型包含子系统的多个实例时,该函数允许重用子系统代码。

此选项还生成一个带参数的函数,允许在模型引用层次结构的生成代码中重用子系统代码,该模型引用层次结构包括引用模型的多个子系统实例。在这种情况下,子系统必须位于库中。

有关更多信息,请参阅:

提示

  • 当您希望将子系统的多个实例表示为一个可重用函数时,可以将其中一个人指定为汽车或者是可重用的功能.最好使用一个或另一个,因为使用两者都会为每个指定创建两个可重用功能。这些选择的结果仅在无法使用时不同。选择汽车不允许控制子系统代码的函数或文件名。

  • 可重用的功能汽车这些选项都试图确定一个子系统是否存在多个实例,以及代码是否可以重用。选项行为之间的区别在于,当不可能重用时:

    • 汽车产生内联代码,或者如果环境禁止内联,则为每个子系统实例生成单独的函数。

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

  • 如果您选择可重用的功能当生成的代码受源代码控制时,设置文件名选项使用子系统名称使用函数名称, 或者用户指定的.否则,只要修改模型,代码文件的名称会更改,这会阻止您的文件上的源控制。

依赖性

  • 此参数要求金宝app仿真软件编码器代码生成。

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

编程使用

参数RTWSystemCode
类型:特征向量
价值观'汽车'|“内联”|“那种一次性函数”|“可重用函数”
默认的'汽车'

选择如何金宝app仿真软件编码器名称它为子系统生成的函数。

如果您有嵌入式编码器许可证,则可以在配置参数上使用选项控制功能名称代码生成>标识符窗格。

汽车

使用默认命名约定指定唯一的函数名,模型_子系统(), 在哪里模型是型号和名称吗子系统是子系统的名称(或重用代码时相同的子系统)。

如果您选择可重用的功能对于功能包装参数且在模型引用层次结构中有多个可重用子系统的实例,以便为子系统生成可重复使用的代码,函数名的选择必须设置为汽车

使用子系统名称

使用子系统名称作为函数名称。默认情况下,函数名称使用命名约定模型_子系统

当子系统位于库块中时,子系统参数功能包装被设置为可重用的功能,如果您设置使用子系统名称选项时,代码生成器使用库块的名称作为子系统函数名和文件名。

用户指定的

启用函数名称字段。输入任何合法的C或c++函数名,必须唯一。

有关更多信息,请参阅子系统函数的控制生成(金宝app仿真软件编码器)

依赖性

  • 此参数需要一个金宝app仿真软件编码器许可证。

  • 要启用此参数,请设置功能包装不可用的功能可重用的功能

编程使用

参数RTWFcnNameOpts
类型:特征向量
价值观'汽车'|“使用子系统名称”|“用户指定”
默认的'汽车'

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

如果您希望为函数指定一个特定的名称而不是允许金宝app仿真软件编码器代码生成器,以分配其自己的自动生成名称或使用子系统名称。有关详细信息,请参阅子系统函数的控制生成(金宝app仿真软件编码器)

依赖性

  • 此参数需要一个金宝app仿真软件编码器许可证。

  • 要启用此参数,请设置函数名的选择参数用户指定的

编程使用

参数RTWFcnName
类型:特征向量
价值观''|
默认的''

选择如何金宝app仿真软件编码器为它为子系统生成的函数命名单独的文件。

汽车

根据子系统的配置和模型中的实例数量,汽车产生不同的结果:

  • 如果代码生成器有不是为子系统生成一个单独的文件,子系统代码是在从子系统父系统生成的代码模块中生成的。如果子系统父级是模型本身,则会在内部生成子系统代码模型.c模型.cpp.

  • 如果您选择可重用的功能对于功能包装参数,并且生成的代码受源代码管理,请考虑指定文件名选项除了以外的价值汽车.这可以防止生成的文件名因不相关的模型修改而更改,这对于使用源控件来管理配置是有问题的。

  • 如果您选择可重用的功能对于功能包装参数且在模型引用层次结构中有多个可重用子系统的实例,以便为子系统生成可重复使用的代码,文件名选项必须设置为汽车

使用子系统名称

代码生成器使用作为文件名的子系统(或库块)名称生成单独的文件。

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

使用函数名称

代码生成器使用指定的函数名函数名的选择作为文件名。

用户指定的

此选项启用文件名(无扩展名)文本输入字段。代码生成器使用您输入的名称作为文件名。输入任何文件名,但不包含.c.cpp.(或任何其他)延伸。这个文件名不需要是唯一的。

虽然子系统源文件名不必是唯一的,但必须避免给出导致循环依赖的非唯一名称(例如,sys_a.h包括系统b.h系统b.h包括sys_c.h,及sys_c.h包括sys_a.h).

依赖性

  • 此参数需要一个金宝app仿真软件编码器许可证。

  • 要启用此参数,请设置功能包装不可用的功能可重用的功能

编程使用

参数RTWFILENAMEOPTS.
类型:特征向量
价值观'汽车'|“使用子系统名称”|'使用函数名称'|“用户指定”
默认的'汽车'

指定的文件名不必是唯一的。但是,避免给出导致循环依赖的非唯一名称(例如,sys_a.h包括系统b.h系统b.h包括sys_c.h,及sys_c.h包括sys_a.h).

有关更多信息,请参阅子系统函数的控制生成(金宝app仿真软件编码器)

依赖性

  • 此参数需要一个金宝app仿真软件编码器许可证。

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

编程使用

参数RTWFileName.
类型:特征向量
价值观''|
默认的''

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

void_void

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

void subsystem_function(void)

允许参数(优化)

生成使用参数而不是将数据作为全局变量传递的函数。该规范减少了全局RAM。它可能会减少代码大小,提高执行速度,并使代码生成器能够应用其他优化。例如:

无效子系统功能(实时rtu输入1、实时rtu输入2、实时rtu输出1)
在某些情况下,在生成优化代码时,代码生成器可能不会生成具有参数的函数。

允许参数(匹配图形界面)

生成使用与子系统图形块界面匹配的参数的函数界面。生成的函数界面是可预测的且不会更改。可预测的界面可用于调试和测试代码以及与外部应用程序集成。例如,如果模型有两个输入端口和两个输出端口,则生成的功能界面为:

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

有关更多信息,请参阅:

依赖性

  • 此参数需要嵌入式编码器和基于erct的系统目标文件。

  • 要启用此参数,请设置功能包装不可用的功能

编程使用

参数FunctionInterfaceSpec
类型:特征向量
价值观“void_void”|“允许参数(优化)”|'允许参数(匹配图形界面)'
默认的“void_void”

生成子系统函数代码,其中原子子系统的内部数据与它的父模型分离,并由子系统拥有。

远离的

不要生成子系统函数代码,其中原子子系统的内部数据与它的父模型分离,并由子系统拥有。

生成子系统函数代码,其中原子子系统的内部数据与它的父模型分离,并由子系统拥有。从父模型数据结构独立地声明子系统数据结构。具有单独数据的子系统具有自己的块I / O和dwork.数据结构。因此,子系统生成的代码更易于跟踪和测试。数据分离还倾向于减少整个模型中全局数据结构的最大大小,因为它们被拆分为多个数据结构。

有关如何为原子子系统生成模块化功能代码的详细信息,请参阅为非宽度子系统生成模块化功能代码(嵌入式编码器)

有关如何将内存部分应用到原子子系统的详细信息,请参见覆盖子系统函数和数据的默认内存位置(嵌入式编码器)

依赖性

  • 此参数需要嵌入式编码器许可证和基于ERT的系统目标文件。

  • 要启用此参数,请设置功能包装不可用的功能

编程使用

参数FunctionWithSeparateData
类型:特征向量
价值观“关闭”|“上”
默认的“关闭”

选择嵌入式编码器如何将内存部分应用于子系统初始化和终止功能。

继承模型

将根模型内存部分应用于子系统功能代码

默认的

不要将内存部分应用于子系统系统代码,覆盖任何模型级规范

我们感兴趣的是记忆部分

将其中一个模型内存部分应用于子系统

提示

依赖性

  • 此参数需要嵌入式编码器软件和基于ERET的系统目标文件的许可证。

  • 要启用此参数,请设置功能包装不可用的功能可重用的功能

编程使用

参数RTWMemSecFuncInitTerm
类型:特征向量
价值观“从模型继承”|“默认”|'感兴趣的记忆部分'
默认的“从模型继承”

选择嵌入式编码器如何将内存部分应用于子系统执行功能。

继承模型

将根模型内存部分应用于子系统功能代码

默认的

不要将内存部分应用于子系统系统代码,覆盖任何模型级规范

我们感兴趣的是记忆部分

将其中一个模型内存部分应用于子系统

提示

依赖性

  • 此参数需要嵌入式编码器软件和基于ERET的系统目标文件的许可证。

  • 要启用此参数,请设置功能包装不可用的功能可重用的功能

编程使用

参数RTWMemSecFuncExecute
类型:特征向量
价值观“从模型继承”|“默认”|'感兴趣的记忆部分'
默认的“从模型继承”

选择Embedded Coder如何将内存部分应用于子系统常量。

继承模型

将根模型内存部分应用于子系统数据

默认的

不将内存部分应用于子系统数据,覆盖任何模型级规范

我们感兴趣的是记忆部分

将其中一个模型内存部分应用于子系统

提示

  • 指定的内存部分应用于生成的代码中相应的全局数据结构。有关为原子子系统生成的全局数据结构的基本信息,请参见标准的数据结构(金宝app仿真软件编码器)

  • 可能的值因您为型号配置设置的内存节包(如果有)而异。请参阅通过插入语控制数据和函数在内存中的位置(嵌入式编码器)

  • 如果您没有使用包配置模型,继承模型是唯一出现的值。否则,列表包括默认的和所有内存部分模型包包含。

  • 这些选项可用于覆盖给定子系统的模型内存节设置。有关如何将内存节应用于原子子系统的详细信息,请参阅覆盖子系统函数和数据的默认内存位置(嵌入式编码器)

依赖性

  • 此参数需要嵌入式编码器许可证和基于ERT的系统目标文件。

  • 要启用此参数,请设置功能包装不可用的功能并选择具有独立数据的函数范围。

编程使用

参数RTWMemSecDataConstants
类型:特征向量
价值观“从模型继承”|“默认”|'感兴趣的记忆部分'
默认的“从模型继承”

选择Embedded Coder如何将内存段应用到子系统内部数据。

继承模型

将根模型内存部分应用于子系统数据

默认的

不将内存部分应用于子系统数据,覆盖任何模型级规范

我们感兴趣的是记忆部分

将其中一个模型内存部分应用于子系统

提示

  • 指定的内存部分应用于生成的代码中相应的全局数据结构。有关为原子子系统生成的全局数据结构的基本信息,请参见标准的数据结构(金宝app仿真软件编码器)

  • 可能的值因您为型号配置设置的内存节包(如果有)而异。请参阅通过插入语控制数据和函数在内存中的位置(嵌入式编码器)

  • 如果您没有使用包配置模型,继承模型是唯一出现的值。否则,列表包括默认的和所有内存部分模型包包含。

  • 这些选项可用于覆盖给定子系统的模型内存节设置。有关如何将内存节应用于原子子系统的详细信息,请参阅覆盖子系统函数和数据的默认内存位置(嵌入式编码器)

依赖性

  • 此参数需要嵌入式编码器许可证和基于ERT的系统目标文件。

  • 要启用此参数,请设置功能包装不可用的功能并选择具有独立数据的函数范围。

编程使用

参数RTWMemSecDataInternal
类型:特征向量
价值观“从模型继承”|“默认”|'感兴趣的记忆部分'
默认的“从模型继承”

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

继承模型

将根模型内存部分应用于子系统功能代码

默认的

不将内存部分应用于子系统系统代码,覆盖任何型号级规范

我们感兴趣的是记忆部分

将其中一个模型内存部分应用于子系统

提示

  • 指定的内存部分应用于生成的代码中相应的全局数据结构。有关为原子子系统生成的全局数据结构的基本信息,请参见标准的数据结构(金宝app仿真软件编码器)

  • 可能的值因您为型号配置设置的内存节包(如果有)而异。请参阅通过插入语控制数据和函数在内存中的位置(嵌入式编码器)

  • 如果您没有使用包配置模型,继承模型是唯一出现的值。否则,列表包括默认的和所有内存部分模型包包含。

  • 这些选项可用于覆盖给定子系统的模型内存节设置。有关如何将内存节应用于原子子系统的详细信息,请参阅覆盖子系统函数和数据的默认内存位置(嵌入式编码器)

依赖性

  • 此参数需要嵌入式编码器许可证和基于ERT的系统目标文件。

  • 要启用此参数,请设置功能包装不可用的功能并选择具有独立数据的函数范围。

编程使用

参数RTWMEMSECDATAPARAMETERS.
类型:特征向量
价值观“从模型继承”|“默认”|'感兴趣的记忆部分'
默认的“从模型继承”

子系统的参考

依赖性

要访问此参数,请单击该参数转变按钮。

有关如何将一个子系统转换为被引用的子系统的更多信息,请参见将现有子系统转换为引用的子系统

块特征

数据类型

布尔基一个|公共汽车一个|双倍的一个|枚举一个|不动点一个|一半一个|整数一个|单身的一个|细绳一个

直接馈通

多维信号

有限的一个

可变尺寸信号

有限的一个

讨论二阶导数过零检测

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

扩展能力

PLC的代码生成
使用Simulink®PLC编码器生成结构化文本代码™.金宝app

R2007a中引入