Nonvirtual and Virtual Blocks

When creating models, you need to be aware that Simulink® blocks fall into two basic categories: nonvirtual blocks and virtual blocks. Nonvirtual blocks play an active role in the simulation of a system. If you add or remove a nonvirtual block, you change the model's behavior. Virtual blocks, by contrast, play no active role in the simulation; they help organize a model graphically. Some Simulink blocks are virtual in some circumstances and nonvirtual in others. Such blocks are called conditionally virtual blocks. The table lists Simulink virtual and conditionally virtual blocks.

Block NameCondition Under Which Block Is Virtual

Bus Assignment

Virtual if input bus is virtual.

Bus Creator

Virtual if output bus is virtual.

Bus Selector

Virtual if input bus is virtual.

Demux

Always virtual.

Enable

Virtual unless connected directly to an Outport block.

From

Always virtual.

Goto

Always virtual.

Goto Tag Visibility

Always virtual.

Ground

Always virtual.

Inport

Virtual unless the block resides in a conditionally executed or atomic subsystem and has a direct connection to an Outport block.

Mux

Always virtual.

Outport

Virtual when the block resides within any subsystem block (conditional or not), and does not reside in the root (top-level) Simulink window.

Selector

Virtual only when Number of input dimensions specifies 1 and Index Option specifies Select all, Index vector (dialog), or Starting index (dialog).

Signal Specification

Always virtual.

Subsystem

Virtual unless the block is conditionally executed or the Treat as atomic unit check box is selected.

You can check if a block is virtual with the IsSubsystemVirtual block property. See Block-Specific Parameters.

Terminator

Always virtual.

Trigger

Virtual when the output port is not present.

Related Topics