利用原子盒重用功能

一个原子箱是一个图形对象,帮助你封装图形,真值表,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_namefunction_name
使用函数调用的完整路径:

  • 明确链接原子框中对函数的依赖关系。

  • 全局命名空间避免了污染。

  • 不会影响生成代码的效率。

创建一个原子箱

您可以通过转换现有框或从库模型链接图表来创建原子框。在创建原子框之后,通过右键单击原子框并进行选择来更新变量的映射子图表映射。欲了解更多信息,请参阅为原子子图表和框映射变量

将普通盒子转换为原子盒子

要为函数创建允许更快调试和代码生成工作流的容器,请将现有的box转换为原子box。在图表中,右键单击一个普通框并选择集团与Subchart>原子Subchart。标签原子出现在框的左上角。

转换过程给出了原子框它自己,该框在图表中访问每一个数据对象的副本。本地数据复制作为数据存储内存。其他数据,包括输入和输出数据的范围内,不会改变。

注意

如果一个框包含任何状态或消息,则不能将其转换为原子框。

从库链接原子框

要创建跨多个图表和模型中重复使用功能的集合,创建一个从库模型的链接。图表复制在图书馆模型,并将其粘贴到另一个模型的图表。如果库图只包含的功能和无状态,显示为一个带有标签链接原子箱链接在左上角。

该建模方法最小化了可重复使用的功能的维护。当你修改库中的原子中,您的更改传播到所有图表和模型的链接。

如果库图包含任何状态,则在图中显示为链接的原子子图。欲了解更多信息,请参阅利用原子Subcharts创建可重用的子组件

将原子盒转换为普通盒

转换的原子框回正常盒通过合并与图表-父数据到其映射subchart-与父母数据对象中移除所有其变量映射。

  1. 如果原子框是一个库链接,请右键单击该原子框并选择图书馆链接>禁用链接

  2. 若要将原子框转换为子图表框,请右键单击原子框并清除集团与Subchart>原子Subchart复选框。

  3. 若要将子图表框转换回普通框,请右键单击子图表并清除集团与Subchart>子图表复选框。

  4. 如果有必要,重新安排你的图表中的图形对象。

你可以不是一个原子框转换为正常盒,如果:

  • 原子框将参数映射到表达式而不是单个变量名。例如,映射一个参数数据1这些表达式中的一个防止原子盒到正常盒的转化:

    • 3

    • data2 (3)

    • DATA2 + 3

  • 这两个条件都为真:

    • 原子框包含MATLAB函数或真值表函数使用MATLAB作为动作语言。

    • 原子框不会将每个变量映射到主图表中同名的变量。

何时使用原子箱

调试功能增量

假设你要测试的变化的序列的函数库。该功能是包含许多国家或若干层级,所以重新编译整个图表可能需要很长的时间图表的一部分。如果您在原子框中定义的功能,重新编译时只盒子,而不是对整个图表。欲了解更多信息,请参阅减少图表的编译时间

重用功能

假设你有一组功能在多个图表和模型的使用。该功能驻留在库模型,以使更方便的配置管理。为了在其他模型中使用的功能,您可以:

  • 配置库图以导出功能,并在模型中创建到库图的链接。

  • 将库图链接为模型的每个图表中的原子框。

使用这些功能的模型可以出现在顶级车型引用块。当功能被导出,你只能使用一个参考块的情况下对每个顶级模特。欲了解更多信息,请参阅模型参考要求和限制(万博1manbetx模型)。

随着原子箱,就可以避免此限制。因为没有出口的图表功能,可以在顶级车型使用引用的功能块的多个实例。

开发由多人使用图表

假设多人都在图表的不同部分工作。如果您存储在一个链接的原子箱式中,各库,不同的人可以在不同的库工作,在不影响图表的其他部分。欲了解更多信息,请参阅将图表分成不同的单元

检查生成的代码

假设您想要检查由万博1manbetx仿真软件编码器™或嵌入式编码®为特定功能手动。您可以指定原子框的代码出现在单独的文件中,以避免搜索不相关的代码。欲了解更多信息,请参阅从原子子图表生成代码

相关的话题