## Documentation |

On this page… |
---|

What Is a Finite State Machine? Finite State Machine Representations |

Stateflow^{®} charts can contain sequential decision logic
based on state machines. A *finite state machine* is
a representation of an event-driven (reactive) system. In an event-driven
system, the system makes a transition from one state (mode) to another,
if the condition defining the change is true.

For example, you can use a state machine to represent the automatic transmission of a car. The transmission has these operating states: park, reverse, neutral, drive, and low. As the driver shifts from one position to another, the system makes a transition from one state to another, for example, from park to reverse.

Traditionally, designers used truth tables to represent relationships among the inputs, outputs, and states of a finite state machine. The resulting table describes the logic necessary to control the behavior of the system under study. Another approach to designing event-driven systems is to model the behavior of the system by describing it in terms of transitions among states. The occurrence of events under certain conditions determine the state that is active. State-transition charts and bubble charts are graphical representations based on this approach.

A Stateflow chart can contain sequential and combinatorial
logic in the form of state transition diagrams, flow charts, state
transition tables, and truth tables. A state transition diagram is
a graphical representation of a finite state machine. *States* and *transitions* form
the basic building blocks of a sequential logic system. Another way
to represent sequential logic is a state transition table, which allows
you to enter the state logic in tabular form. You can also represent
combinatorial logic in a chart with flow charts and truth tables.

You can include Stateflow charts as blocks in a Simulink^{®} model.
The collection of these blocks in a Simulink model is the Stateflow machine.

A Stateflow chart enables the representation of hierarchy, parallelism, and history. You can organize complex systems by defining a parent and offspring object structure [1]. For example, you can organize states within other higher-level states. A system with parallelism can have two or more orthogonal states active at the same time. You can also specify the destination state of a transition based on historical information.

Notation defines a set of objects and the rules that govern the relationships between those objects. Stateflow chart notation provides a way to communicate the design information in a Stateflow chart.

Stateflow chart notation consists of these elements:

A set of graphical objects

A set of nongraphical text-based objects

Defined relationships between those objects

Was this topic helpful?