一个原子箱是一个图形对象,帮助你封装图形,真值表,MATLAB®,和Simu万博1manbetxlink®函数在单独的名称空间中。只在Stateflow中支持原子盒万博1manbetx®Simulink模型万博1manbetx中的图表。原子盒允许:
作出小的修改功能的图表在许多国家或层次结构的级别后,更快的仿真。
重用的跨多个图表和模型相同的功能。
对于在同一图表的不同部分工作的人来说,团队开发的易用性。
手动检查图表中特定功能的生成代码。
原子框看起来不透明,包含标签原子在左上角。如果从库,标签使用链接原子箱链接出现在左上角。
这个例子说明了如何使用链接的原子框,重复使用多个图表和模型的图形功能。
这个函数取得时间
是在库模型的图表中定义的吗sf_timer_utils_lib
。图形函数返回在C图仿真时间,其中等效MATLAB®功能getSimulationTime
是不可用的。
该模型sf_timer_function_calls
由两个结构类似的图表组成。每张图表都包含一对州(一个
和乙
)及原子盒子(时间
)从库中图表相连。在状态入口动作一个
调用函数取得时间
并将其值存储为T0
。保护转换的条件一个
至乙
再次调用函数,并将其输出与参数进行比较Ť
。
顶级车型sf_timer_modelref
在多个引用块中重用计时器函数。因为没有导出函数,所以您可以使用顶部模型中引用块的多个实例。
原子盒结合了普通盒和原子子图表的功能。原子框:
改善复杂图表的组织和清晰度。
万博1manbetx支持作为库链接使用。
万博1manbetx支持生成可重用代码。
允许映射输入、输出、参数、数据存储内存和输入事件。
原子盒只包含函数。它们不能遏制国家。向原子框添加状态会导致编译时错误。
要调用一个函数驻留在从原子禁区外位置的原子中,使用点表示法来指定它的完整路径:
atomic_box_name。function_name
明确链接原子框中对函数的依赖关系。
全局命名空间避免了污染。
不会影响生成代码的效率。
您可以通过转换现有框或从库模型链接图表来创建原子框。在创建原子框之后,通过右键单击原子框并进行选择来更新变量的映射子图表映射。欲了解更多信息,请参阅为原子子图表和框映射变量。
要为函数创建允许更快调试和代码生成工作流的容器,请将现有的box转换为原子box。在图表中,右键单击一个普通框并选择集团与Subchart>原子Subchart。标签原子出现在框的左上角。
转换过程给出了原子框它自己,该框在图表中访问每一个数据对象的副本。本地数据复制作为数据存储内存。其他数据,包括输入和输出数据的范围内,不会改变。
如果一个框包含任何状态或消息,则不能将其转换为原子框。
要创建跨多个图表和模型中重复使用功能的集合,创建一个从库模型的链接。图表复制在图书馆模型,并将其粘贴到另一个模型的图表。如果库图只包含的功能和无状态,显示为一个带有标签链接原子箱链接在左上角。
该建模方法最小化了可重复使用的功能的维护。当你修改库中的原子中,您的更改传播到所有图表和模型的链接。
如果库图包含任何状态,则在图中显示为链接的原子子图。欲了解更多信息,请参阅利用原子Subcharts创建可重用的子组件。
转换的原子框回正常盒通过合并与图表-父数据到其映射subchart-与父母数据对象中移除所有其变量映射。
如果原子框是一个库链接,请右键单击该原子框并选择图书馆链接>禁用链接。
若要将原子框转换为子图表框,请右键单击原子框并清除集团与Subchart>原子Subchart复选框。
若要将子图表框转换回普通框,请右键单击子图表并清除集团与Subchart>子图表复选框。
如果有必要,重新安排你的图表中的图形对象。
你可以不是一个原子框转换为正常盒,如果:
原子框将参数映射到表达式而不是单个变量名。例如,映射一个参数数据1
这些表达式中的一个防止原子盒到正常盒的转化:
3
data2 (3)
DATA2 + 3
这两个条件都为真:
原子框包含MATLAB函数或真值表函数使用MATLAB作为动作语言。
原子框不会将每个变量映射到主图表中同名的变量。
假设你要测试的变化的序列的函数库。该功能是包含许多国家或若干层级,所以重新编译整个图表可能需要很长的时间图表的一部分。如果您在原子框中定义的功能,重新编译时只盒子,而不是对整个图表。欲了解更多信息,请参阅减少图表的编译时间。
假设你有一组功能在多个图表和模型的使用。该功能驻留在库模型,以使更方便的配置管理。为了在其他模型中使用的功能,您可以:
配置库图以导出功能,并在模型中创建到库图的链接。
将库图链接为模型的每个图表中的原子框。
使用这些功能的模型可以出现在顶级车型引用块。当功能被导出,你只能使用一个参考块的情况下对每个顶级模特。欲了解更多信息,请参阅模型参考要求和限制(万博1manbetx模型)。
随着原子箱,就可以避免此限制。因为没有出口的图表功能,可以在顶级车型使用引用的功能块的多个实例。
假设多人都在图表的不同部分工作。如果您存储在一个链接的原子箱式中,各库,不同的人可以在不同的库工作,在不影响图表的其他部分。欲了解更多信息,请参阅将图表分成不同的单元。
假设您想要检查由万博1manbetx仿真软件编码器™或嵌入式编码®为特定功能手动。您可以指定原子框的代码出现在单独的文件中,以避免搜索不相关的代码。欲了解更多信息,请参阅从原子子图表生成代码。