Stateflow

Principales fonctionnalités

  • Environnement de modélisation, composants graphiques et moteur de simulation pour modéliser et simuler la logique complexe
  • Sémantique d'exécution déterministe avec hiérarchie, parallélisme, opérateurs temporels et événements
  • Diagrammes d'états, tables de transition d'états et matrices de transition d'états représentant des machines à états finis
  • Diagrammes de flux, fonctions MATLAB et tables de vérité pour représenter les algorithmes
  • Animation des diagrammes d'états, enregistrement des états et des données, et débogage intégré pour analyser la conception et détecter les erreurs d'exécution
  • Contrôles statiques et contrôles lors de l'exécution pour résoudre les conflits de transition, les problèmes cycliques, les incohérences d'états, les violations de plages de données et les conditions de dépassement de capacité
  • Prise en charge des machines à états finis de Mealy et de Moore

Démonstration de Stateflow 3:36
Apprenez à créer et à simuler une machine d'état.

Conception de logique

Stateflow comprend des interfaces graphiques et tabulaires pour modéliser des logiques système à l'aide de machines d'état. Une machine d'état vous permet de modéliser les modes de fonctionnement du système sous la forme d'états et de représenter la logique de passage d'un mode à un autre au moyen de transitions et de jonctions. Vous pouvez modéliser les différents composants de votre système sous la forme d'états qui s'exécutent exclusivement ou en parallèle. Stateflow vous permet de gérer la complexité de votre conception en organisant hiérarchiquement les objets, fonctions et composants des diagrammes d'états.

Avec Stateflow, vous pouvez représenter la logique combinatoire graphiquement à l'aide de diagrammes de flux et sous format tabulaire avec des tables de vérité.

La conception logique requiert de définir des conditions à vérifier et des actions ultérieures à exécuter. Stateflow vous permet de définir ces conditions et actions sous C ou MATLAB®. Vous pouvez gérer les données utilisées pour ces conditions et actions à partir de Simulink® Model Explorer. Avant d'exécuter votre conception, Stateflow vous informe des possibles incohérences d'états, des données et événements inutilisés et des transitions invalides.

Stateflow diagram defining the logic for a boiler temperature control system.
Diagramme Stateflow définissant la logique d'un système de contrôle de température sur une chaudière. Le diagramme utilise des fonctions graphiques (droite) pour mettre en œuvre les algorithmes utilitaires invoqués par le système de chauffe (gauche).

Conception logique graphique

Stateflow comprend un éditeur et des objets graphiques pour dessiner des machines d'états et des diagrammes de flux. Pour créer une machine d'état, il vous suffit de sélectionner les états, transitions et jonctions dans la palette graphique et de les faire glisser vers l'éditeur Stateflow. Vous pouvez aussi créer des fonctions à l'aide de diagrammes de flux, de sous-systèmes Simulink, d’instructions MATLAB, et de tables de vérité. Vous pouvez spécifier votre diagramme Stateflow sous forme d’une machine hybride Mealy-Moore avec fonctionnalités étendues, ou bien sous forme d’une machine de Mealy ou d’une machine de Moore.

Vous pouvez créer des diagrammes de flux en dessinant les transitions qui sont connectées aux jonctions et les exécuter d'après la logique conditionnelle. L'assistant Pattern Wizard vous permet de créer des modèles de flux logiques couramment utilisés. Les diagrammes de flux peuvent être placés dans les fonctions graphiques pour être utilisés à différents endroits du diagramme d'états et dans d'autres diagrammes d'états sur ce même modèle. Vous pouvez utiliser des diagrammes de flux pour concevoir la logique de transition entre états.

Stateflow diagram that uses a graphical function generated by the pattern wizard.
Diagramme Stateflow (gauche) utilisant une fonction graphique (droite) générée par l'assistant Pattern Wizard (centre).

L'éditeur Stateflow effectue des contrôles en cours d'édition afin d'identifier des placements illégaux d'objets et des transitions invalides.

Stateflow Editor with a model of a cooling system.
Éditeur Stateflow avec un modèle de système de refroidissement. Les états dont les limites se chevauchent sont surlignés en rouge.

Conception de logique avec des tables

Les tables de transition d'états de Stateflow fournissent un environnement structuré pour la modélisation des machines d'état. Pour créer une machine d'état, il vous suffit d'ajouter des lignes correspondant aux états et des colonnes correspondant aux transitions entre les états. Les tables de transition d'états vous aident à créer des machines d'état en proposant des menus déroulants pour les noms d'états, un traitement automatique de la syntaxe des machines à états finis, et d'autres contrôles en cours d'édition. Avant d'exécuter votre modèle, vous pouvez effectuer des contrôles statiques de diagnostic afin de détecter des erreurs de syntaxe, des transitions incomplètes et des états inaccessibles.

L'affichage de la matrice de transition d'états, généré à partir des tables de transition d'états, vous permet de rapidement identifier les conditions et états de destination possibles à partir d'un état donné.

Les tables de vérité de Stateflow vous permettent de modéliser une logique qui ne requiert pas de maintenir un état sur plusieurs exécutions. Pour créer une table de vérité, il vous suffit d'indiquer les conditions à vérifier, suivies de combinaisons de résultats pour ces conditions. Des actions peuvent ensuite être saisies pour différentes combinaisons de résultats. Après avoir créé la table de vérité, vous pouvez effectuer des contrôles statiques de diagnostic pour identifier les conditions dépassant ou n'atteignant pas les spécifications.

Truth table implementing the logic for selecting a valid sensor reading in a fault-detection algorithm, and an automatically generated graphical representation of the truth table.
Gauche : table de vérité mettant en œuvre la logique de sélection d'un relevé de capteur valide sur un algorithme de détection des défaillances. Droite : représentation graphique générée automatiquement de la table de vérité.

Intégration de composants et algorithmes de planification

Après avoir créé des composants sous Stateflow, vous pouvez les intégrer à d'autres composants afin de créer votre algorithme de machine d'état. Les composants Stateflow peuvent comprendre des fonctions MATLAB et Simulink, du code C personnalisé, des fonctions graphiques et des tables de vérité. Dans votre algorithme, vous pouvez programmer l'exécution des composants et des fonctions en utilisant une logique temporelle et conditionnelle.

Chaque composant Stateflow peut être développé, exécuté et vérifié de façon indépendante, ce qui permet à plusieurs utilisateurs de travailler en même temps sur différentes parties de l'algorithme.

Simulink model incorporating a Stateflow diagram that uses graphical functions, MATLAB functions, and truth tables.
Modèle Simulink (gauche) intégrant un diagramme Stateflow (droite). Le diagramme Stateflow modélise la logique utilisée sur un ascenseur et inclut des fonctions graphiques, des fonctions MATLAB et des tables de vérité.

Intégration de composants à votre conception

Vous pouvez réutiliser un composant sur plusieurs diagrammes et modèles, en faisant un clic droit sur celui-ci, en le convertissant en sous-diagramme atomique, et en le plaçant dans une bibliothèque. Pour utiliser ce composant, faites-le glisser de la bibliothèque vers votre diagramme ou modèle. Lorsque vous mettez à jour un composant situé dans la bibliothèque, toutes les instances de ce composant sont automatiquement mises à jour. Vous pouvez organiser hiérarchiquement les composants et les fonctions afin de représenter votre système de manière concise et précise.

Réutilisation des états dans un diagramme 3:47
Créez et réutilisez les composants sous Stateflow pour une modélisation à grande échelle.

Algorithmes de planification

Vous pouvez modéliser une logique conditionnelle et temporelle sous Stateflow pour appeler les fonctions Simulink et MATLAB. Les événements reposant sur une logique modélisée sous Stateflow peuvent être envoyés vers Simulink afin d'activer des sous-systèmes qui réagiront à un appel de fonction ou à des changements du signal de contrôle.

Stateflow emploie des opérateurs événementiels et temporels (before, after, at, et every) qui vous permettent de spécifier la logique de transition d'états en fonction du nombre d'événements et du temps écoulé, sans compteurs ni horloges.

Modélisation d’un système d'abandon du lancement 3:38
Modélisez un système d'abandon du lancement qui fait atterrir un avion en cas d’anomalie ou de défaillance lors du lancement.

Simulation d'un modèle et analyse des résultats

Vous pouvez analyser le comportement de votre système en simulant votre modèle. Vous pouvez exécuter des scénarios de simulation en relançant la simulation à partir de n'importe quel état enregistré et en analysant sa réaction avec différents paramètres et configurations.

Simulation d'un modèle

Stateflow vous permet de visualiser le comportement du système pendant la simulation, au moyen d'une animation des diagrammes d'états qui met en évidence les états et transitions actifs sur votre modèle.

Les fonctionnalités de débogage de Stateflow vous permettent d'examiner en détail la simulation. Vous pouvez définir les points d'interruption, contrôler les valeurs de données et examiner les différentes fonctions de vos diagrammes d'états. Vous pouvez contrôler l'exécution de la simulation et afficher le statut d'exécution et la pile d'appels du diagramme à partir de la fenêtre du débogueur Stateflow.

Le débogueur Stateflow détecte les erreurs d'exécution, notamment les incohérences d'états, les violations de plages de données et les boucles infinies potentielles.

Analyse des résultats

Pendant la simulation, vous pouvez visualiser les résultats en :

  • consultant les états et données au moyen des affichages et scopes de Simulink
  • affichant les données enregistrées dans l'outil Simulation Data Inspector
  • créant des affichages personnalisés avec MATLAB

Vous pouvez également enregistrer des diagrammes et des données d'activité d'état en vue d'un post-traitement sous MATLAB.

Simulation data visualization options in Stateflow: Simulink Data Inspector for comparing signals, a custom MATLAB interface for analyzing data, and the Simulink Signal Selector for comparing states.
Options de visualisation des données de simulation sous Stateflow. En haut à gauche : Simulink Data Inspector pour comparer des signaux spécifiques ; en bas à gauche : interface MATLAB personnalisée pour analyser des données ; à droite : Simulink Signal Selector pour comparer des états spécifiques.

Validation de la conception et génération de code

En utilisant Stateflow avec d'autres produits Simulink, vous pouvez valider votre conception par rapport aux spécifications et générer du code pour la mettre en œuvre sur votre système embarqué.

Grâce à Simulink Verification and Validation, vous pouvez directement relier les spécifications aux objets Stateflow, vérifier la conformité vis-à-vis des normes et obtenir des mesures de la couverture du modèle.

Simulink Design Verifier vous permet de détecter les erreurs de conception et de générer des vecteurs de test pour les erreurs difficiles à repérer à l'aide de méthodes formelles.

En utilisant des produits complémentaires de génération de code, vous pouvez générer du code C et C++, HDL, ou PLC directement depuis votre diagramme d'états.

MATLAB et Simulink pour l’enseignement des Sciences Industrielles de l’Ingénieur en Classes Préparatoires aux Grandes Ecoles

Visionner le webinar