Main Content

Créer une hiérarchie pour gérer la complexité du système

Ajoutez une structure à votre modèle, un sous-composant à la fois, en créant une hiérarchie d’états imbriqués. Vous pouvez ensuite contrôler plusieurs niveaux de complexité dans votre diagramme Stateflow®. Pour plus d’informations, veuillez consulter Modéliser des machines à états finis.

Hiérarchie d’états

Pour créer une hiérarchie d’états, placez un ou plusieurs états dans les limites d’un autre état. Les états intérieurs sont des états enfant (ou sous-états) de l’état extérieur. L’état extérieur est le parent (ou super-état) des états intérieurs.

Stateflow chart with a hierarchy of states. The outer state is called Parent. It contains two inner states called Child1 and Child2.

Le contenu d’un état parent se comporte comme un diagramme plus petit. Lorsqu’un état parent devient actif, l’un de ses états enfant devient également actif. Lorsqu’un état parent devient inactif, tous ses états enfant deviennent également inactifs.

Exemple de hiérarchie

Cet exemple modélise un système stéréo composé d’une radio AM, d’une radio FM et d’un lecteur de CD. Pendant la simulation, vous contrôlez le système stéréo en cliquant sur les boutons de l’interface utilisateur Media Player Helper.

Le système stéréo est initialement en mode veille (OFF). Lorsque vous sélectionnez l’un des boutons Radio Request, le système stéréo active le sous-composant correspondant. Si vous sélectionnez le lecteur de CD, vous pouvez cliquer sur l’un des boutons CD Request pour choisir Play, Rewind, Fast-Forward ou Stop. Vous pouvez insérer ou éjecter un CD à tout moment de la simulation.

Implémenter un comportement au moyen de la hiérarchie des états

Au départ, l'implémentation complète de ce système stéréo semble plutôt compliquée. Cependant, si vous vous concentrez sur un seul niveau d’activité à la fois, vous pouvez définir le design global du système de manière incrémentielle. Par exemple, les conditions suivantes sont nécessaires pour que le lecteur de CD passe en mode de lecture Fast-Forward :

  1. Vous allumez le système stéréo.

  2. Vous allumez le lecteur de CD.

  3. Vous lisez un CD.

  4. Vous cliquez sur le bouton FF dans l’interface utilisateur.

Vous pouvez créer un modèle hiérarchique qui considère chacune de ces conditions individuellement. Par exemple, le niveau le plus élevé peut définir les transitions entre la mise sous tension (ON) et hors tension (OFF) du système stéréo. Les niveaux intermédiaires définissent la transition entre les différents sous-composants stéréo et entre les modes d’arrêt et de lecture du lecteur de CD. Le niveau le plus bas définit la réponse aux boutons CD Request lorsque vous remplissez toutes les autres conditions pour lire un CD.

Pour implémenter le comportement du système stéréo, sf_mediaplayer utilise la hiérarchie des états imbriqués répertoriés par le Model Explorer sous le diagramme Mode Manager. Pour ouvrir le Model Explorer, dans l’onglet Modeling, sélectionnez Model Explorer.

Hierarchy of nested states, as listed by the Model Explorer.

Le tableau suivant indique le rôle de chaque état dans la hiérarchie.

Niveau de hiérarchieÉtatDescription
Niveau supérieur (diagramme Mode Manager)EjectMode d’éjection du CD (interrompt toutes les autres fonctions stéréo)
NormalOperationMode de fonctionnement normal du système stéréo

Activité du système stéréo (états enfant de NormalOperation)

StandbyLe système stéréo est en mode veille (OFF)
ONLe système stéréo est activé (ON)

Sous-composants du système stéréo (états enfant de On)

CDModeLe sous-composant lecteur de CD est actif
AMModeLe sous-composant radio AM est actif
FMModeLe sous-composant radio FM est actif

Activité du lecteur de CD (états enfant de CDMode)

StopLe lecteur de CD est arrêté
PlayLe lecteur de CD lit un CD

Modes de lecture de CD (états enfant de Play)

NormalMode de lecture normal
RewindMode de lecture retour en arrière
FastForwardMode de lecture avance rapide

Cette figure montre la disposition complète des états dans le diagramme.

Arrangement of states in the Mode Manager chart.

Les jonctions d’historisation dans les états NormalOperation et ON enregistrent le mode de fonctionnement (veille ou activé) et le sous-composant actif du lecteur multimédia (lecteur CD, radio AM ou radio FM) avant d’éjecter un CD ou d’éteindre le système.

Explorer l’exemple

L’exemple sf_mediaplayer contient deux autres diagrammes Stateflow :

  • App Interface gère l’interface avec l’interface utilisateur et transmet les entrées aux diagrammes Mode Manager et CD Player.

  • CD Player reçoit la sortie des diagrammes App Interface et Mode Manager et imite le comportement mécanique du lecteur de CD.

Simulink model that simulates a media player. The model contains the chart Media Player Mode Manager and two additional charts, User Request and CD Player Behavior Model.

Pendant la simulation, vous pouvez étudier comment chaque diagramme réagit aux interactions avec l’application Media Player Helper. Pour passer rapidement d’un diagramme à un autre, utilisez les onglets situés en haut de l’éditeur Stateflow.

Sujets associés