主要内容

重用功能通过使用原子盒子

一个原子的盒子是一个图形对象,帮助你封装的图形,真值表,MATLAB®和仿真软件万博1manbetx®函数在一个单独的名称空间。在独立Stateflow原子框不支持万博1manbetx®在MATLAB图表。原子框允许:

  • 速度仿真后小的变化和许多州一个函数在一个图表或水平的层次结构

  • 跨多个图表和模型重用相同的功能

  • 缓解人们的团队开发工作的不同部分相同的图表

  • 手动检查一个特定的函数生成的代码的一个图表

一个原子盒看起来不透明的,包括标签原子在左上角。如果你使用一个链原子盒子从图书馆,标签链接出现在左上角。

一个原子框的例子

这个例子展示了如何使用一个链原子框图形功能跨多个图表和模型重用。

这个函数取得时间在图书馆中定义一个图表模型sf_timer_utils_lib。图形函数返回仿真时间在相当于MATLAB®C图表功能getSimulationTime是不可用的。

该模型sf_timer_function_calls包括两个图表具有相似的结构。每个表包含两个州(一个B)和一个原子盒(时间从图书馆)有关图表。输入行动的状态一个调用函数取得时间并存储其值t0。守卫的过渡一个B再次调用函数,比较其输出与参数T

顶部模型sf_timer_modelref在多个引用模块重用计时器功能。因为没有导出功能,您可以使用多个实例的引用块模型。

使用原子框的好处

原子框组合框和原子子图表的功能正常。原子框:

  • 提高组织和清晰的复杂的图表。

  • 万博1manbetx支持使用库的链接。

  • 万博1manbetx支持可重用代码的生成。

  • 允许映射的输入、输出参数,数据存储内存和输入事件。

原子的盒子只包含函数。他们不能包含状态。添加一个国家一个原子盒子会导致一个编译时错误。

调用一个函数,它驻留在一个原子盒子在原子框外的位置,使用点符号来指定完整路径:

atomic_box_namefunction_name
使用函数调用的完整路径:

  • 表明依赖于函数与原子的盒子。

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

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

创建一个原子的盒子

您可以创建一个原子框转换现有的盒子或链接的图表库模型。创建原子框后,更新的映射变量原子框单击右键并选择子图表映射。有关更多信息,请参见变量映射为原子子图表和盒子

正常框转换成原子盒子

为你的函数创建一个容器,允许更快的调试和代码生成工作流,现有框转换成原子盒子。在你的图,右键单击一个正常的框和选择组和子图表>原子子图表。标签原子出现在框的左上角。

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

请注意

如果一个盒子包含任何州或消息,你不能把它转换成一个原子。

从图书馆链接一个原子盒子

创建一个函数集合多个图表和模型重用,从图书馆模型创建一个链接。复制粘贴图表在图书馆模型图表在另一个模型。如果图书馆图只包含函数,没有国家,似乎作为一个链原子盒子和标签链接在左上角。

这种建模方法最大限度地减少维护可重用的功能。当你修改原子盒子在图书馆,您的更改传播到所有的图表和模型中的链接。

如果图书馆图表包含任何状态,那么它看起来是一个有关原子子图表的图表。有关更多信息,请参见通过使用原子子图表创建可重用的子组件

原子框转换成一个正常的盒子

转换一个原子框回到一个正常的框移除所有的变量映射通过合并subchart-parented数据对象和chart-parented数据地图。

  1. 如果原子盒子是图书馆链接,右键单击原子框和选择库链接>禁用链接

  2. 将一个原子盒子子图表框,右键单击原子框和清晰组和子图表>原子子图表复选框。

  3. 子图表框转换回一个正常的框,右键单击子图表并清除组和子图表>子图表复选框。

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

你不能把一个原子盒正常盒如果:

  • 原子框以外的参数映射到一个表达式一个变量名。例如,映射参数data1这些表达式的防止原子转换盒正常盒:

    • 3

    • data2 (3)

    • data2 + 3

  • 这些条件都是正确的:

    • 原子框包含MATLAB函数或事实表函数,使用MATLAB作为行动的语言。

    • 原子框不每个变量映射到同名的变量在主图。

何时使用原子盒子

逐步调试功能

假设您想要测试的序列变化的库函数。函数是一个表,其中包含许多州的一部分或几个层次的水平,所以重新编译整个图表需要花很长时间。如果您定义的函数在一个原子,重新编译发生只盒子,而不是整个图表。有关更多信息,请参见减少编译时间的图表

重用功能

假设你有一组函数,用于多个图表和模型。居住在图书馆的功能模型,使更容易配置管理。使用函数在另一个模型中,您可以:

  • 配置库图表导出功能和创建一个链接的库图模型。

  • 链接库图作为一个原子模型的盒子在每个图表。

模型中使用这些函数可以显示为引用块模型。导出的函数时,您可以只使用一个实例的引用块为每个模型。有关更多信息,请参见模型参考需求和限制(万博1manbetx模型)

与原子的盒子,你可以避免这种限制。因为没有导出功能图表,您可以使用多个实例的引用块模型。

开发由多人使用图表

假设很多人正在不同部分的图表。如果你每个库函数存储在一个关联原子盒子,不同的人可以工作在不同的库,而不影响其他部分的图表。有关更多信息,请参见将图表分为单独的单位

检查生成的代码

假设您想要检查生成的代码万博1manbetx仿真软件编码器™或者嵌入式编码器®手动为一个特定的函数。您可以指定一个原子的代码框出现在一个单独的文件,以避免搜索无关的代码。有关更多信息,请参见从原子子图表生成代码

相关的话题