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:
The flow chart models this code:
if u > 0 y = 1; else y = 0; end
Draw a Flow Chart
You can draw and customize flow charts manually by using connective junctions as branch points between alternate transition paths:
Open a chart.
From the editor toolbar, drag one or more connective junctions into the chart with the Connective Junction tool:
Add transition paths between junctions.
Label the transitions.
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.
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
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.