主要内容

扩展子系统内容

要将子系统的内容移动到包含子系统的系统中,可以展开子系统。

例如,sldemo_enginewc模型包括燃烧子系统。

展开燃烧子系统后,最顶层的sldemo_enginewc模型包括燃烧子系统的模块和信号。展开将删除子系统Block和轮廓尺寸而且外港块。

为什么要扩展子系统?

如果您希望通过将子系统的内容提升一级来平展模型层次结构,则可以扩展子系统。

在重构模型时,扩展子系统是有用的。扁平模型层次结构可能是最终结果,也可能只是重构中的一个步骤。例如,您可以通过展开子系统将一组块拉到父系统,取消希望留在父系统中的块的选择,然后从剩余的选定块创建一个子系统。

您可以扩展哪些子系统?

您可以展开没有屏蔽、链接或注释的虚拟子系统。如果尝试使用Simulink扩展屏蔽、链接或注释子系统金宝app®编辑器中,一条消息提供了让Simulink修改子系统的选项,以便您可以展开子系统。金宝app

子系统类型 修改

戴面具的子系统

删除所有屏蔽信息

图书馆的链接

断开链接

注释掉子系统

取消子系统注释

您不能展开这些子系统:

  • 原子子系统

  • 有条件的子系统

  • 可配置子系统

  • 不同的子系统

  • 具有读/写权限参数设置为只读的NoReadOrWrite

  • 具有InitFcnStartFcnPauseFcnContinueFcn,或StopFcn回调

  • 具有链接需求的子系统(使用要求工具箱™软件)

扩展子系统

若要交互式展开子系统,右键单击a子系统块,并从上下文菜单中选择子系统和模型参考>扩展子系统

要以编程方式展开子系统,请使用金宝appSimulink.BlockDiagram.expandSubsystem函数。

提示

子系统扩展适用于当前选择的子系统级别。金宝appSimulink不扩展嵌套子系统层次结构中的其他子系统。

为了在扩展嵌套子系统时提高可读性,首先扩展您想要扩展的最高级别子系统,然后沿着层次结构向下扩展到您想要扩展的位置。

子系统扩容结果

当您扩展一个子系统时,Simulink:金宝app

  • 消除了子系统

  • 删除根目录轮廓尺寸、根外港,和Simscape™连接端口子系统中的块

  • 将进入子系统输入和输出端口的信号线直接连接到连接子系统的模型块的端口

  • 分布块和路由信号的可读性。

块路径

在您展开的子系统中,块的路径会发生变化。在展开之后,更新脚本和测试工具,这些脚本和工具依赖于您所展开的子系统中的块的分层路径。

信号名称和属性

如果在子系统外部或内部扩展一个缺少连接的子系统,Simulink将保留线路标签,但只使用其中一条线路的信号名称和属性。金宝app对于对应的行:

  • 作为一个子系统的输入端口,Simulink使用该金宝app子系统所在系统中的信号的信号名称和属性

  • 一个子系统输出端口,Simulink使用来自子系统金宝app的信号名称和属性

显示层

块的显示层(换句话说,对于重叠块,哪个块出现在前面或后面)在展开后不会改变。前面的街区子系统块保持在展开内容的上方,块保持在展开内容的下方子系统块保留在展开的内容下。

执行顺序和块优先级

当您编译一个模型时,Simulink会根据块执行的顺金宝app序对块进行排序。扩展一个子系统可以改变块路径名称,在极少数情况下,这可能会影响块的执行顺序。

如果您通过在子系统内设置块优先级来显式设置块执行顺序,则当您展开该子系统时,Simulink将删除这些块优先级设置。金宝app

数据存储

扩展包含其他子系统读取或写入的数据存储内存块的子系统可以改变所需的数据存储写入和读取顺序。您可能需要重新构造您的模型。详细信息请参见订单数据存储访问

相关的话题