Finite State Machine Concepts

What Is a Finite State Machine?

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.

Finite State Machine Representations

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.

Stateflow Chart Representations

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

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

Semantics

Semantics describe how to interpret chart notation. A typical Stateflow chart
contains actions associated with transitions and states. The semantics
describe the sequence of these actions during chart execution.