Stateflow
Control logic tool developed by MathWorks
title: "Stateflow" type: doc version: 1 created: 2026-02-28 author: "Wikipedia contributors" status: active scope: public tags: ["simulation-programming-languages", "visual-programming-languages"] description: "Control logic tool developed by MathWorks" topic_path: "linguistics" source: "https://en.wikipedia.org/wiki/Stateflow" license: "CC BY-SA 4.0" wikipedia_page_id: 0 wikipedia_revision_id: 0
::summary Control logic tool developed by MathWorks ::
::data[format=table title="Infobox software"]
| Field | Value |
|---|---|
| name | Stateflow |
| screenshot | Automatic Transmission Logic.png |
| screenshot size | 250px |
| caption | Control logic for an automatic transmission system |
| developer | MathWorks |
| latest release version | R2018b |
| latest release date | |
| latest preview version | R2018b |
| latest preview date | |
| operating_system | Windows, macOS, Linux |
| platform | x64 |
| license | Proprietary |
| genre | Application software |
| website | Stateflow product page |
| :: |
| name = Stateflow | screenshot = Automatic Transmission Logic.png | screenshot size = 250px | caption = Control logic for an automatic transmission system | developer = MathWorks | latest release version = R2018b | latest release date = | latest preview version = R2018b | latest preview date = | operating_system = Windows, macOS, Linux | platform = x64 | license = Proprietary | genre = Application software | website = Stateflow product page
Stateflow (developed by MathWorks) is a control logic tool used to model reactive systems via state machines and flow charts within a Simulink model. Stateflow uses a variant of the finite-state machine notation established by David Harel, enabling the representation of hierarchy, parallelism and history within a state chart. Stateflow also provides state transition tables and truth tables.
Common uses
Stateflow is generally used to specify the discrete controller in the model of a hybrid system where the continuous dynamics (i.e., the behavior of the plant and environment) are specified using Simulink.
Specific applications for Stateflow include:
- Mode logic, where each discrete mode of a system is represented by a state
- Fault management, where the Stateflow chart is used to control how the system responds to faults and failures within a system
- Task scheduling, where the Stateflow chart is used to schedule when specific tasks occur, either within the Stateflow chart or within the overall Simulink model
Extensions
A number of MathWorks and third-party tools can be used with Stateflow to validate the design and generate code. For example, Simulink Verification and Validation, a MathWorks tool, can be used to check for requirements traceability and model coverage analysis. Other add-on code generation tools can be used to automatically generate C, C++, HDL, and PLC code for implementation on embedded systems.
References
References
- [http://www.mathworks.com/products/stateflow/requirements.html?s_cid=wiki_stateflow_1 MathWorks - Stateflow - Requirements]
- [http://www.mathworks.com/videos/tech-talks/state-machines/ MATLAB Tech Talks on the basics and usage of state machines]
- [http://pdf.aminer.org/000/257/915/hybrid_systems_described_by_the_complementary_formalism.pdf Simulation of Hybrid Systems Using Stateflow]
- "An Operational Semantics for Stateflow". [[SRI International]] Computer Science Laboratory.
- [http://www.mathworks.com/aerospace-defense/standards/FltDyn-CEV-08-148_MATLAB_Standards_v9_20111202.pdf Orion GN&C MATLAB/Simulink/Stateflow Standards]
- A. Tiwari. "Formal Semantics and Analysis Methods for Simulink Stateflow Models". [[SRI International]] Computer Science Laboratory.
- [http://www.mathworks.com/tagteam/28434_AIAA_2005_Mosterman_Ghidella.pdf Requirements-Based Testing in Aircraft Control Design]
- [http://www.pages.drexel.edu/~dml46/Tutorials/BalancingBot/files/Embedded_Coder_Robot_NXT_Tips_En.pdf Embedded Coder Robot NXT Modeling Tips]
::callout[type=info title="Wikipedia Source"] This article was imported from Wikipedia and is available under the Creative Commons Attribution-ShareAlike 4.0 License. Content has been adapted to SurfDoc format. Original contributors can be found on the article history page. ::