Subsystem Basics

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

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.

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, use referenced models or a library.

Types of Subsystem

A subsystem can be virtual or nonvirtual. A virtual subsystem provides graphical hierarchy in models and does not impact the execution of a model. A nonvirtual subsystem provides graphical hierarchy in models and executes as a single unit.

Simulink® classifies nonvirtual subsystems into these types:

Type of SubsystemDescription
Atomic Subsystem

Subsystem that executes as a single unit

Enabled Subsystem

Subsystem whose execution is enabled by external input.

Triggered Subsystem

Subsystem whose execution is triggered by external input.

Function-Call Subsystem

Subsystem whose execution is controlled by an external function-call input.

Enabled and Triggered Subsystem

Subsystem whose execution is enabled and triggered by external inputs.

Resettable Subsystem

Subsystem whose block states reset with external trigger.

If Action Subsystem

Subsystem whose execution is enabled by an If block

While Iterator Subsystem

Subsystem that repeats execution during a simulation time step while a logical condition is true.

For Iterator SubsystemSubsystem that repeats execution during a simulation time step for a specified number of iterations.
For Each Subsystem

Subsystem that repeats execution on each element or subarray of input signal and concatenates results.

Related Topics