Using Stateflow to Provide the Logic for a MATLAB App
In this video, we use Stateflow® to graphically design state machine and timing logic that would be difficult to implement textually for a Lamp App created with MATLAB® App Designer.
Published: 20 Feb 2019
You can create a standalone State Chart from MATLAB that is stored as a .sfx file and can be instantiated as MATLAB Object for use in applications.
This Lamp Logic State Chart is part of an app created with App Designer.
Notice the animation of the off state indicating it is active. The off state contains the MATLAB code to directly turn off the lamp and disable the mode and blink speed widgets in the GUI.
When we switch the lamp on in the GUI, the on event is sent to the Stateflow chart causing the state machine to leave the off state and enter the on state. This state has the MATLAB code to enable the mode and blink speed widgets in the GUI. We can also see the sub-state “solid” is active and contains the code to turn the lamp on.
Here, we can see the code written in App Designer to generate the on and off events that are used in the Stateflow chart.
The lamp has two modes of operation: solid, which it is in now, and blinking. Selecting the blinking mode causes the lamp to start to blink. Notice transitions between the on and off states that are inside the blinking state keep occurring. The MATLAB code in these states turns the lamp in the GUI on and off.
By changing the blink speed, we can slow down or speed up the time between the transitions. These transitions occur based on a MATLAB timer that is automatically generated because the after keyword has been used.
This example shows how a Stateflow chart can be used as part of an App. However, Stateflow charts can be used to represent complex logic and state machines in any MATLAB program without writing deeply nested if-else or switch-case statements.
Featured Product
Stateflow
Up Next:
Related Videos:
Sélectionner un site web
Choisissez un site web pour accéder au contenu traduit dans votre langue (lorsqu'il est disponible) et voir les événements et les offres locales. D’après votre position, nous vous recommandons de sélectionner la région suivante : .
Vous pouvez également sélectionner un site web dans la liste suivante :
Comment optimiser les performances du site
Pour optimiser les performances du site, sélectionnez la région Chine (en chinois ou en anglais). Les sites de MathWorks pour les autres pays ne sont pas optimisés pour les visites provenant de votre région.
Amériques
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)
Asie-Pacifique
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 日本Japanese (日本語)
- 한국Korean (한국어)