Main Content

Transition Between Operating Modes

A transition represents the passage of a reactive system from one operating mode to another. In a Stateflow® chart, a transition is a line with an arrowhead that typically connects two states. The source of the transition is the state where the transition begins and the destination of the transition is the state where the transition ends.

You can also create a transition path with more than one transition segment by using connective junctions. For example, you can create a transition path from a single source to multiple destinations or from multiple sources to a single destination. In this case, any intermediate transitions have a connective junction as a source or destination. For more information, see Combine Transitions and Junctions to Create Branching Paths.

A default transition is a special type of transition that has no source. In charts or states with exclusive (OR) decomposition and at least two substates, there must be a default transition path that is not guarded by a condition or triggered by an event. In the absence of history junctions, default transitions indicate the first substate to become active when the chart or superstate becomes active. For more information, see Use Default Transitions to Specify Initial Substate Activity for details.

For example, the states in this chart represent the operating modes of an air controller system with two fans. The transitions between the states PowerOn and PowerOff represent the change of mode as the air controller system turns on and off. The default transition to the state PowerOff indicates that the system is off when the chart wakes up at the start of the simulation. Similarly, in the states FAN1 and FAN2, the transitions between the substates represent the change of mode as each fan turns on and off and the default transition indicates that the fans are off when the superstate PowerOn becomes active. For more information on this example, see Model Synchronous Subsystems by Using Parallelism.

Chart that contains a hierarchy of exclusive and parallel states that represent the operating modes of an air controller system.

The parent of a transition is the lowest level state or chart that contains the source and destination of the transition. For instance, in the previous example, FAN1 is the parent state of the transitions between the substates FAN1.On and FAN1.Off. Similarly, FAN2 is the parent state of the transitions between the substates FAN2.On and FAN2.Off. In contrast, the parent of the transitions between the states PowerOn and PowerOff is the chart itself.

Create a Transition

You can add a transition to a new or existing destination.

  1. Point to the border of the source state or junction. The pointer changes to a crosshair.

  2. Click and drag away from the source state or junction. The Stateflow Editor provides graphical cues that allow you to add a junction or a state.

    New transition with graphical cues for adding a junction or state.

  3. Select a destination for the new transition:

    • To add a new state at the end of the transition, click the rectangular cue.

    • To add a new junction at the end of the transition, click the circular cue.

    • To connect the transition to an existing state or junction, drag the pointer to the desired destination.

  4. Enter a label for the transition and click away from the transition. The label specifies the conditions and triggers that make the transition valid, as well as any actions that the transition executes during simulation. For more information, see Define Actions in a Transition.

After you create a transition, you can use the Stateflow Editor to change the shape, source, destination, or label of the transition:

  • To reshape the transition, click and drag the midpoint of the transition.

  • To change the source or destination, click and drag an endpoint of the transition.

  • To edit the transition label, click the label text near the character position you want to edit. If your transition has an empty label, first select the transition.

  • To move the transition label, click and drag the label.

Create a Default Transition

  1. In the object palette, click the Default transition icon .

  2. On the chart canvas, click a side of the destination state or junction.

  3. Optionally, add a label for the default transition.

Tip

The size of the endpoint of the default transition is proportional to the arrowhead size. See Change Transition Arrowhead Size.

Define Actions in a Transition

The label for a transition specifies an event or message trigger and a condition that makes the transition valid, as well as a condition action and a transition action that the transition executes during simulation. Transition labels have this general format:

trigger[condition]{condition_action}/{transition_action}

Each part of the label is optional and can appear on a separate line. For more information on how the chart uses labels to determine the validity of transitions, see Evaluate Transitions.

Event and Message Triggers

A transition label starts with the name of an event or message that triggers the transition. To specify multiple event or message triggers, use the logical OR (|) operator.

A transition with an event trigger is valid only when the chart receives a broadcast of the specified event. A transition with a message trigger is valid only when the specified message is present in the message queue. For more information, see Synchronize Model Components by Broadcasting Events and Communicate with Stateflow Charts by Sending Messages.

For example, in this chart, the transitions between states PowerOff and PowerOn have event triggers. These transitions are valid when the source state is active and the chart receives a broadcast of the input event SWITCH.

Transitions that are triggered by an event.

Tip

You can use implicit events (such as change, enter, or exit) and temporal logic operators (such as after, at, before, or every) to trigger transitions. For more information, see Control Chart Behavior by Using Implicit Events and Control Chart Execution by Using Temporal Logic.

Conditions

To add a condition to a transition label, enter a Boolean expression enclosed in square brackets ([]). Follow these guidelines for defining conditions:

  • The condition expression must be a Boolean expression that evaluates to true (1) or false (0).

  • To combine multiple Boolean expressions, use the logical AND (&&) and OR (||) operators.

  • To enter the condition expression on more than one line, use an ellipsis (...).

  • The condition expression can call graphical functions, truth table functions, MATLAB® functions, or Simulink® functions that return a numeric value. However, the function must not modify any data values or cause the chart to change state.

  • Do not use assignment statements in condition expressions.

A transition with a condition is valid only when the specified expression is true. For example, in this chart, the transitions between substates Off and On have conditions that compare the value of the chart input temp to a threshold. These transitions are valid when the source state is active and the condition is true.

Transitions that are guarded by a condition.

Condition Actions

The chart executes a condition action as soon as it determines that the transition is valid. To add a condition action, after the condition, enter one or more statements enclosed in braces ({}). To separate multiple statements, use a comma or a semicolon. Alternatively, you can enter each statement on a separate line. To enter a single statement on more than one line, use an ellipsis (...).

If the transition is part of a transition path that consists of multiple segments, that chart executes the condition action before it evaluates any subsequent segments of the transition path. For example, this chart contains a transition path with two transition segments. When the chart receives a broadcast of the input event SWITCH, the chart executes the condition action on the first transition segment regardless of whether the second transition segment is valid. For more information, see Control Chart Execution by Using Condition Actions.

Transition that contains a condition action.

Transition Actions

The chart executes a transition action when it determines that the entire transition path is valid. To add a transition action, after the condition action, enter a forward slash (/) followed by one or more statements enclosed in braces ({}). To separate multiple statements, use a comma or a semicolon. Alternatively, you can enter each statement on a separate line. To enter a single statement on more than one line, use an ellipsis (...).

If the transition is part of a transition path that consists of multiple segments, that chart executes the transition action after it determines that there is a sequence of valid segments to a destination state or a terminal junction. For example, this chart contains a transition path with two transition segments. When the chart receives a broadcast of the input event SWITCH, the chart executes the transition action on the first transition segment only if the second transition segment is valid. For more information, see Evaluate Outer Transitions with Condition and Transition Actions.

Transition that contains a transition action.

Transition actions are not supported in standalone Stateflow charts in MATLAB.

Tip

In charts that use C as the action language, you do not have to enclose transition actions in braces. In charts that use MATLAB as the action language, the syntax is automatically corrected if the braces are missing from the transition action. See Auto Correction When Using MATLAB as the Action Language.

Change Transition Arrowhead Size

To adjust the size of the arrowhead on a transition:

  1. Right-click the transition.

  2. Select Arrowhead Size.

  3. Choose an arrowhead size from the drop-down list.

Alternatively, you can adjust the arrowhead size of more than one transitions at the same time.

  1. Select multiple transitions.

  2. Right-click one of the selected transitions.

  3. Select Format > Arrowhead Size.

  4. Choose an arrowhead size from the drop-down list.

Changing the arrowhead size on a transition also changes the arrowhead size of the other transitions with the same destination.

Specify Properties for Transitions

The properties listed below enable you to specify how a transition interacts with the other components in your Stateflow chart. You can modify these properties in the Property Inspector, the Model Explorer, or the Transition properties dialog box.

To use the Property Inspector:

  1. In the Modeling tab, under Design Data, select Property Inspector.

  2. In the Stateflow Editor, select the transition.

  3. In the Property Inspector, edit the transition properties.

To use the Model Explorer:

  1. In the Modeling tab, under Design Data, select Model Explorer.

  2. In the Model Hierarchy pane, select the parent state or chart for the transition.

  3. In the Contents pane, select the transition.

  4. In the Dialog pane, edit the transition properties.

To use the Transition properties dialog box:

  1. In the Stateflow Editor, right-click the transition.

  2. Select Properties.

  3. In the properties dialog box, edit the transition properties.

You can also modify transition properties programmatically by using Stateflow.Transition objects. For more information about the Stateflow programmatic interface, see Overview of the Stateflow API.

Source

Source of the transition. This property is read-only and is not available in the Property Inspector. When you click the source hyperlink, the Stateflow Editor brings the transition source to the foreground.

Destination

Destination of the transition. This property is read-only and is not available in the Property Inspector. When you click the destination hyperlink, the Stateflow Editor brings the transition destination to the foreground.

Parent

Parent of the transition. This property is read-only and is not available in the Property Inspector. When you click the parent hyperlink, the Stateflow Editor brings the parent to the foreground.

Execution order

Execution order for the transition. For more information, see Transition Evaluation Order.

Treat as variant transition

Whether the transition is a variant transition. For more information, see Create Variant Configurations in Stateflow Charts.

Label

The label for the transition. This property is not available in the Property Inspector. For more information, see Define Actions in a Transition.

Description

Description of the transition.

Document link

Link to online documentation for the transition. You can enter a web URL address or a MATLAB command that displays documentation as an HTML file or as text in the MATLAB Command Window. When you click the Document link hyperlink, Stateflow evaluates the link and displays the documentation.

See Also

Objects

Tools

Related Topics