stateflow

{{Infobox software

| 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 = {{Start date and age|2018|09|12}}

| latest preview version = R2018b

| latest preview date = {{Start date and age|2018|06|14}}

| operating_system = Windows, macOS, Linux[http://www.mathworks.com/products/stateflow/requirements.html?s_cid=wiki_stateflow_1 MathWorks - Stateflow - Requirements]

| platform = x64

| license = Proprietary

| genre = Application software

| website = [http://www.mathworks.com/products/stateflow?s_cid=wiki_stateflow_2 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.[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] 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.{{cite journal|author1=Gregoire Hamon |author2=John Rushby |url=http://www.csl.sri.com/users/rushby/papers/fase04.pdf|title=An Operational Semantics for Stateflow|journal=Presented at Fundamental Approaches to Software Engineering (FASE) Barcelona, Spain, March 2004|publisher=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]

Specific applications for Stateflow include:

  • Mode logic, where each discrete mode of a system is represented by a state{{cite journal|author=A. Tiwari|url=http://www.csl.sri.com/users/tiwari/papers/stateflow.pdf|title=Formal Semantics and Analysis Methods for Simulink Stateflow Models|publisher=SRI International Computer Science Laboratory}}
  • Fault management, where the Stateflow chart is used to control how the system responds to faults and failures within a system[http://www.mathworks.com/tagteam/28434_AIAA_2005_Mosterman_Ghidella.pdf Requirements-Based Testing in Aircraft Control Design]
  • 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[http://www.pages.drexel.edu/~dml46/Tutorials/BalancingBot/files/Embedded_Coder_Robot_NXT_Tips_En.pdf Embedded Coder Robot NXT Modeling Tips]

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