Main Content

Create Flow Charts in Stateflow

A Stateflow® flow chart is a graphical construct that models logic patterns such as decision trees and iterative loops. Flow charts represent combinatorial logic in which one result does not depend on prior results. You build flow charts by combining connective junctions and transitions without using any states. The junctions provide decision branches between different transition paths. Executing a flow chart begins at a default transition and ends at a terminating junction (a junction that has no valid outgoing transitions).

A best practice is to encapsulate flow charts in graphical functions to create modular and reusable logic that you can call anywhere in a chart. For more information about graphical functions, see Reuse Logic Patterns by Defining Graphical Functions.

An example of a flow chart that models simple If-Else logic:

Flow chart that models an if else statement.

The flow chart models this code:

if u > 0
   y = 1;
   y = 0;

Draw a Flow Chart

You can draw and customize flow charts manually by using connective junctions as branch points between alternate transition paths:

  1. Open a chart.

  2. From the editor toolbar, drag one or more connective junctions into the chart with the Connective Junction tool:

  3. Add transition paths between junctions.

  4. Label the transitions.

  5. Add a default transition to the junction where the flow chart execution starts.

Best Practices for Creating Flow Charts

Follow these best practices to create efficient, accurate flow charts.

Flow chart that illustrates best practices.

Use only one default transition

Flows charts have a single entry point.

Provide only one terminating junction

Multiple terminating junctions reduce readability of a flow chart.

Converge all transition paths to the terminating junction

Execution of a flow chart always reaches the termination point.

Provide an unconditional transition from every junction except the terminating junction

If unintended backtracking occurs during simulation, a warning message appears.

To control the level of diagnostic action for unintended backtracking, open the Configuration Parameters dialog box and, in the Diagnostics > Stateflow pane, set the Unexpected backtracking parameter to none, warning, or error. The default setting is warning. For more information, see Unexpected backtracking (Simulink).

Unintended backtracking can occur at a junction under these conditions:

  • The junction does not have an unconditional transition path to a state or terminating junction.

  • Multiple transition paths lead to that junction.

To process updates, use condition actions instead of transition actions

Flow charts test transitions, but do not execute them. As a result, flow charts never execute transition actions. Furthermore, in charts that use MATLAB® as the action language, using transition actions in a graphical function result in a compile-time error.

Related Topics