A state chart is a representation of an event-driven (reactive) system. In an event-driven system, the system makes a transition from one state or mode to another, if the condition defining the change is true.

For example, you can use a state chart 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 transitions from one state to another, such as from park to reverse.

State charts are often used to model complex logic including:

- Scheduling a sequence of tasks or steps for a system
- Defining fault detection, isolation, and recovery logic
- Supervising how to switch between different modes of operation

Using state charts can provide additional capabilities beyond traditional finite state machines, including:

- Modeling hierarchical states for large-scale systems
- Adding flow graphs to define complex decision logic
- Defining orthogonal states to represent systems with parallelism

For details on creating state charts and integrating them into a Simulink^{®} model, see Simulink and Stateflow^{®}.

- Stateflow Overview 1:58 (Video)
- Control Logic Made Easy with Stateflow 38:30 (Webinar)
- Introduction to Stateflow for Controls Applications 22:01 (Video)
- Modeling Logic in Communications Applications (Part 1) 8:20 (Video)
- Finite State Machine Concepts (Documentation)

- Fault Detection for an Aircraft Elevator Control System (Example)
- Develop Logic for a Launch Abort System 12:46 (Video)
- Spacecraft Automated Landing System 17:56 (Video)
- Requirements-Based Testing in Aircraft Control Design (AIAA paper)

- Modeling a Fault-Tolerant Fuel Control Systems (Example)
- Automotive Powertrain Control System 17:21 (Video)
- Modeling an Automatic Transmission Controller (Example)
- Hybrid Electric Vehicle Modeling and Simulation 45:15 (Webinar)

See also: *control logic*, *finite state machine*, *state diagram*, *control systems*, *embedded systems*, *state chart videos*