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

组块创建模型层次

  • 图书馆:
  • 金宝appSimulink / Ports &子系统

  • 子系统模块

描述

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

  • 非虚拟子系统 - 控制当子系统的内容被作为一个单一的单元(原子执行)来评价。创建仅运行在事件上的触发,函数调用,动作,或使输入发生(参见有条件地执行的子系统有条件地执行子系统和模型)。

  • 虚拟子系统 - 子系​​统既不是有条件的,也没有自动执行。虚拟子系统没有校验。如果要判断一个子系统是虚拟的,使用get_param函数布尔块参数IsSubsystemVirtual

原子子系统是子系统块与块参数治疗以原子单位选中。

一个代码使用子系统是子系统与参数块治疗以原子单位选择和参数功能包装设置为可重用的功能,指定子系统的功能代码生成格式。

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

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

  • 选择组成子系统的所有块和行,然后在选项卡,单击创建子系统。金宝app动态仿真模块®替换为一个块子系统块,连同必要的轮廓尺寸外港块反映进入和离开子系统的信号。

控件上绘制的输入端口的数量子系统块图标对应的数量轮廓尺寸子系统中的块。类似地,绘制在区块所对应的输出端口的数目的数目外港子系统中的块。

子系统模块支持金宝app信号标签传播通过子系统轮廓尺寸外港块。

注意

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

港口

输入

展开全部

放置一个轮廓尺寸在一个子系统块增加了一个外部输入端口到子系统块。端口标签的名称相匹配轮廓尺寸块。

使用轮廓尺寸块从本地环境得到信号。

数据类型:|||INT8|INT16|int32|int64|uint8|uint16|uint32|uint64|布尔|不动点|枚举|总线

产量

展开全部

放置一个外港块在一个子系统的输出端口子系统块。上的端口标签子系统块的名称外港块。

使用外港阻塞向本地环境发送信号。

数据类型:|||INT8|INT16|int32|int64|uint8|uint16|uint32|uint64|布尔|不动点|枚举|总线

参数

展开全部

代码生成选项卡上的参数要求金宝appSimulink的编码器™或嵌入式编码®执照。

主要

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

没有

不显示端口标签。

FromPortIcon

如果对应的端口图标显示信号名称,则在子系统块。否则,显示端口块名称。

FromPortBlockName

显示器上的对应的端口块的名称子系统块。

SignalName

如果信号名称存在,则显示连接到端口的信号的名称子系统块。否则,显示对应的端口块的名称。

程序中使用

参数ShowPortLabels
类型:特征向量
价值“FromPortIcon”|'FromPortBlockName'|'SignalName'
默认的“FromPortIcon”

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

读写

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

只读

启用子系统的开放而不是修改。如果子系统驻留在块库,你可以创建和打开链接到子系统,可以使和修改子系统的本地副本,但不能更改权限或修改原始库实例的内容。

NoReadOrWrite

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

注意

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

程序中使用

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

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

金宝appSimulink向函数传递两个参数:子系统的句柄和指定错误类型的字符向量。如果没有指定任何函数,如果执行子系统导致错误,Simuli金宝appnk将显示通用的错误消息。

程序中使用

参数ErrorFcn
类型:特征向量
价值''|“<函数名称>”
默认的''

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

有关更多信息,请参见符号解析符号解析过程

所有

解析此子系统使用的所有工作区变量的名称,包括那些用于指定块参数值和Simulink数据对象的名称(例如,金宝app金宝appSimulink.Signal对象)。

ExplicitOnly

仅解析用于指定块参数值、数据存储内存(不存在块)、信号和标记为“必须解析”的状态的工作区变量的名称。

没有一个

不解决任何工作空间变量名。

程序中使用

参数PermitHierarchicalResolution
类型:特征向量
价值'所有'|'ExplicitOnly'|'没有'
默认的'所有'

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

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

确定的块的方法的执行顺序时处理子系统作为一个单元。例如,当它需要计算子系统的输出,Simulink中调用在子系统的所有块的输出的方法在相同的水平调用其他块的输出方法之前金宝app子系统块。

程序中使用

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

努力消除任何人工代数循环,即包括原子子系统

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

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

依赖

要启用此参数,请选择治疗以原子单位参数。

程序中使用

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

指定如何调度子系统。

采样时间

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

定期分区

调度子系统作为周期性分区。指定一个分区的名称和对应于该分区中运行的速率的采样时间。

非周期性分区

将子系统作为一个非周期分区进行调度。指定分区名。

依赖

要启用此参数,请选择治疗以原子单位参数。

程序中使用

参数ScheduleAs
类型:特征向量
价值“SampleTime”|“DiscretePartition”|“UnconstrainedPartition”
默认的“SampleTime”

指定分区子系统的名称。

依赖

要启用此参数,请选择治疗以原子单位参数,设置计划是定期分区非周期性分区

程序中使用

参数分区名
类型:特征向量
价值''
默认的''

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

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

  • 如果所有的块必须以同样的速度运行,指定样品时间对应于这个速度的值采样时间参数。

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

1

指定继承采样时间。使用此采样时间,如果在子系统中的块可以以不同的速率运行。

[TS 0]

指定周期性采样时间。

依赖

要启用此参数,请选择治疗以原子单位参数。

程序中使用

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

指定版本控制(条件)表达式执行的一个变体金宝appSimulink的功能方框当表达式求真正的

有关更多信息,请参见金宝appSimulink.Variant

变种

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

逻辑表达式

逻辑(布尔)表达或金宝appSimulink.Variant表示逻辑表达式的对象。

当表达式的计算值为时,将激活该函数真正的

如果你想为你的模型生成代码,在表达式定义变量金宝appSimulink.Parameter对象。

依赖

通过将启用此参数子系统块内不同的子系统块。

程序中使用

块参数:VariantControl
类型:特征向量
值:“变异”|“<逻辑表达式>”
默认:“变异”

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

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

金宝app当确定子系统的变量条件时,Simulink将子系统中的所有块视为与子系统本身在模型层次结构中的同一级别。

程序中使用

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

代码生成

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

汽车

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

排队

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

不可再利用的功能

如果文件名选择被设置为汽车金宝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包括sys_b.hsys_b.h包括sys_c.h,sys_c.h包括sys_a.h)。

依赖

  • 此参数需要金宝app仿真软件编码器执照。

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

程序中使用

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

指定的文件名不必是惟一的。但是,要避免使用导致循环依赖的非惟一名称(例如,sys_a.h包括sys_b.hsys_b.h包括sys_c.h,sys_c.h包括sys_a.h)。

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

依赖

  • 此参数需要金宝app仿真软件编码器执照。

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

程序中使用

参数RTWFileName
类型:特征向量
价值''|' <文件名> '
默认的''

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

void_void

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

空白subsystem_function(空白)

允许参数(优化)

生成一个使用参数而不是作为全局变量传递数据的函数。该规范减少了全局RAM。它可以减少代码大小,提高执行速度,并允许代码生成器应用额外的优化。例如:

(real_T rtu_In1, real_T rtu_In2, real_T *rty_Out1)
在某些情况下,生成优化的代码时,代码生成器可能不会生成具有参数的函数。

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

产生的函数的接口,匹配子系统的图形块接口使用的参数。生成的函数接口是可以预见的,不会改变。可预测的界面可以进行调试和测试代码,并与外部应用程序集成有用。例如,如果一个模型具有两个Inports和两个Outports,然后将所生成的函数接口是:

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

有关更多信息,请参阅:

依赖

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

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

程序中使用

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

产生子系统的功能代码,其中用于原子子系统内部数据从它的父模型分离并且由子系统拥有。

不产生子系统的功能代码,其中用于原子子系统内部数据从它的父模型分离并且由子系统拥有。

产生子系统的功能代码,其中用于原子子系统内部数据从它的父模型分离并且由子系统拥有。该子系统的数据结构是从父模型的数据结构独立地声明。与单独的数据A子系统具有其自己的块I / O和DWork数据结构。其结果是,对于子系统生成的代码更易于跟踪和测试。数据分离也趋于减少全局数据结构的最大大小在整个模型,因为它们是分割成多个数据结构。

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

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

依赖

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

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

程序中使用

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

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

继承模型

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

默认的

不要存储器部分适用于子系统系统代码,重写任何模型级规范

感兴趣的记忆部分

应用模型存储部分之一的子系统

提示

依赖

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

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

程序中使用

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

选择嵌入式编码器如何将内存段应用到子系统执行函数。

继承模型

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

默认的

不要存储器部分适用于子系统系统代码,重写任何模型级规范

感兴趣的记忆部分

应用模型存储部分之一的子系统

提示

依赖

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

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

程序中使用

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

选择嵌入式编码器如何将内存段应用到子系统常量。

继承模型

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

默认的

不适存储器部分的子系统的数据,覆盖任何模型级规范

感兴趣的记忆部分

应用模型存储部分之一的子系统

提示

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

  • 可能的值取决于您为模型配置设置的内存部分包(如果有的话)。看到通过插入Pragmas控制数据和函数在内存中的位置(嵌入式编码)

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

  • 这些选项对于覆盖给定子系统的模型内存部分设置非常有用。有关如何将内存节应用到原子子系统的详细信息,请参见覆盖默认的内存位置的子系统功能和数据(嵌入式编码)

依赖

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

  • 要启用此参数,请设置功能包装不可再利用的功能并选择函数与单独的数据参数。

程序中使用

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

选择嵌入式编码器如何将内存段应用到子系统内部数据。

继承模型

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

默认的

不适存储器部分的子系统的数据,覆盖任何模型级规范

感兴趣的记忆部分

应用模型存储部分之一的子系统

提示

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

  • 可能的值取决于您为模型配置设置的内存部分包(如果有的话)。看到通过插入Pragmas控制数据和函数在内存中的位置(嵌入式编码)

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

  • 这些选项对于覆盖给定子系统的模型内存部分设置非常有用。有关如何将内存节应用到原子子系统的详细信息,请参见覆盖默认的内存位置的子系统功能和数据(嵌入式编码)

依赖

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

  • 要启用此参数,请设置功能包装不可再利用的功能并选择函数与单独的数据参数。

程序中使用

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

选择嵌入式编码器如何将内存段应用到子系统参数。

继承模型

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

默认的

不将内存部分应用到子系统系统代码中,从而覆盖任何模型级规范

感兴趣的记忆部分

应用模型存储部分之一的子系统

提示

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

  • 可能的值取决于您为模型配置设置的内存部分包(如果有的话)。看到通过插入Pragmas控制数据和函数在内存中的位置(嵌入式编码)

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

  • 这些选项对于覆盖给定子系统的模型内存部分设置非常有用。有关如何将内存节应用到原子子系统的详细信息,请参见覆盖默认的内存位置的子系统功能和数据(嵌入式编码)

依赖

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

  • 要启用此参数,请设置功能包装不可再利用的功能并选择函数与单独的数据参数。

程序中使用

参数RTWMemSecDataParameters
类型:特征向量
价值“继承模式”|“默认”|"感兴趣的记忆部分"
默认的“继承模式”

子系统的参考

依赖

要访问此参数,单击兑换按钮。

有关如何将子系统转换为被引用的子系统的详细信息,请参见将现有的子系统来引用子系统

块特性

数据类型

布尔[一种]|总线[一种]|[一种]|枚举[一种]|不动点[一种]|[一种]|整数[一种]|[一种]|字符串[一种]

直接引线

没有

多维信号

有限的[一种]

可变大小信号

有限的[一种]

过零检测

没有

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

扩展功能

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

介绍了在R2007a