Main Content


Group blocks into functional subsystems, create model hierarchy

As a model increases in size and complexity, you can simplify it by grouping blocks into subsystems. A subsystem is a set of blocks that you group into a single Subsystem block.

Using subsystems:

  • Establishes a hierarchical block diagram, where a Subsystem block is on one layer and the blocks that make up the subsystem are on another.

  • Keeps functionally related blocks together.

  • Helps reduce the number of blocks displayed in your model window.

  • Establishes an interface with inputs and outputs.

When you make a copy of a subsystem, that copy is independent of the source subsystem. To reuse the contents of a subsystem across a model or across models, consider referenced subsystems, referenced models, or subsystems linked to a block in a custom library. For more information, see Explore Types of Model Components.

A subsystem can be virtual or nonvirtual. A virtual subsystem provides graphical hierarchy in a model. A nonvirtual subsystem provides graphical hierarchy and executes as a unit within a model.


SubsystemGroup blocks to create model hierarchy


expand all

Simulink.BlockDiagram.createSubsystemCreate subsystem containing specified set of blocks
Simulink.BlockDiagram.copyContentsToSubsystemCopy graphical contents from system to empty subsystem
Simulink.BlockDiagram.expandSubsystemReplace subsystem with subsystem contents
Simulink.SubSystem.convertToModelReferenceConvert subsystem to model reference
Simulink.SubSystem.copyContentsToBlockDiagramCopy graphical contents from subsystem to another model
Simulink.SubSystem.deleteContentsDelete contents of subsystem
convertAllSubsystemReferenceBlockToSubsystemConverts all subsystem reference blocks to regular Subsystem blocks (Since R2022a)
convertSubsystemReferenceBlockToSubsystemConverts a subsystem reference block to a regular Subsystem block (Since R2022a)
convertSubsystemToSubsystemReferenceConverts a Subsystem block to subsystem reference (Since R2022a)
getActiveInstancesReturns all the active instances of subsystem references (Since R2022a)
getAllDirtyInstancesReturns child Subsystem block diagrams that are referred in the given block diagram and are also being edited (Since R2022a)
getAllInstances Returns all subsystem reference blocks inside a block diagram (Since R2022a)
getAllReferencedSubsystemBlockDiagrams Returns all the child Subsystem block diagrams for a given block diagram (Since R2022a)
getNearestParentSubsystemReferenceBlock Returns the nearest parent subsystem reference for a block (Since R2022a)
getSystemOwningTheLockReturns the system that has acquired the lock for editing (Since R2022a)
isSystemLocked Checks if the system is locked due to an edit or update to the subsystem reference (Since R2022a)
Simulink.SubsystemReference.generateSignaturesGenerate unit test signatures of subsystem file (Since R2023a)
Simulink.SubsystemReference.getUnitTestNamesReturn names of unit tests of subsystem file (Since R2023a)
Simulink.SubsystemReference.removeSignaturesRemove previously generated unit test signatures of subsystem file (Since R2023a)
Simulink.SubsystemReference.showSignatureDiffDialogForSSOpen dialog to show difference in signatures of two subsystem blocks (Since R2023a)
Simulink.SubsystemReference.showSignatureDiffDialogForUnitTestsDisplay differences in signatures of Subsystem Reference block in model with unit test signatures of subsystem file (Since R2023a)


Model Reference Conversion AdvisorConvert subsystems to referenced models
Referenced Files PaneView, save, and close referenced subsystems and models (Since R2020b)



Subsystem References