Main Content

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

Pour contrôler plusieurs niveaux de complexité dans votre système, créez une hiérarchie d’états imbriqués dans votre diagramme Stateflow® en plaçant un ou plusieurs états dans les limites d’un autre état.

L’état extérieur est le parent ou super-état des états intérieurs. Les états intérieurs sont des états « child » ou sous-états de l’état extérieur. Le contenu du super-état se comporte comme un diagramme plus petit. Lorsque le super-état devient actif, l’un de ses sous-états devient également actif. Lorsque le super-état devient inactif, tous ses sous-états deviennent également inactifs.

Modéliser un lecteur multimédia

Cet exemple modélise un système multimédia composé d’une radio FM et d’un lecteur de stream Internet. Pendant la simulation, vous contrôlez le lecteur multimédia en interagissant avec les boutons de l’interface utilisateur Media Player App.

Pour exécuter le lecteur multimédia :

  1. Ouvrez le modèle Simulink et cliquez sur Run. Media Player App s’ouvre. Le lecteur multimédia est initialement désactivé. En haut de l’application, la zone « Media Player Status » affiche le message Standby (Off).

  2. Positionnez le bouton « Component Selection » sur Stream. Le message de statut indique Connecting to Handel's Greatest Hits pendant un bref instant. Après une courte pause, il indique Playing: Handel's Greatest Hits et la musique commence à jouer.

  3. Cliquez sur le bouton « Fast-Forward ». La musique s’arrête et des sons aigus la remplacent. Le message de statut indique désormais Forward >> Handel's Greatest Hits. Le nom du stream défile vers l’avant à l’écran. Pour reprendre le mode de lecture normal, cliquez sur le bouton « Play ».

  4. Cliquez sur le bouton « Reverse ». Vous entendez des sons aigus et le message de statut indique Reverse >> Handel's Greatest Hits. Le nom du stream défile vers l’arrière à l’écran. Pour reprendre le mode de lecture normal, cliquez sur le bouton « Play ».

  5. Dans la zone « Stream Name », saisissez le nom d’un nouveau stream et cliquez sur Connect. Par exemple, essayez de vous connecter aux streams Training Deep Networks ou Fun With State Machines.

  6. Positionnez le bouton « Component Selection » sur Radio. Le message de statut indique Playing: 99.5 FM. Pour sélectionner une autre station, tournez le bouton « FM Radio Station ».

  7. Pour arrêter la simulation, fermez Media Player App.

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

Cet exemple implémente le lecteur multimédia en se concentrant sur un seul niveau d’activité à la fois. Par exemple, les conditions suivantes sont nécessaires pour que le lecteur de stream passe en mode de lecture Fast-Forward :

  1. Vous allumez le lecteur multimédia.

  2. Vous sélectionnez le lecteur de stream.

  3. Vous lancez la lecture d’un stream.

  4. Vous cliquez sur le bouton « Fast-Forward ».

Le modèle utilise une hiérarchie d’états imbriqués pour examiner individuellement chaque condition. Par exemple, le Model Explorer affiche la hiérarchie d’états dans le diagramme Mode Manager. Pour ouvrir le Model Explorer, dans l’onglet Modeling, sélectionnez Model Explorer.

Au niveau supérieur (ou le plus extérieur) de la hiérarchie, le diagramme Mode Manager possède deux états qui contrôlent l’activité du lecteur multimédia :

  • Off est actif lorsque vous éteignez le lecteur multimédia.

  • On est actif lorsque vous définissez le lecteur multimédia sur le mode streaming ou radio.

Les sous-états (child) de On contrôlent les composants du lecteur multimédia :

  • Stream est actif lorsque vous sélectionnez le lecteur de stream.

  • Radio est actif lorsque vous sélectionnez la radio FM.

Les sous-états (child) de Stream contrôlent l’activité du lecteur de stream :

  • Play est actif lorsque vous lisez un stream.

  • Pause est actif lorsque vous mettez le lecteur de stream en pause.

Les sous-états (child) de Play contrôlent les modes de lecture du lecteur de stream :

  • Normal est actif en mode de lecture normal.

  • Reverse est actif lorsque vous cliquez sur le bouton « Reverse ».

  • FastForward est actif lorsque vous cliquez sur le bouton « Fast-Forward ».

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

Explorer l’exemple

Le modèle de cet exemple contient deux autres diagrammes Stateflow :

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

  • Stream Player reçoit la sortie des diagrammes App Interface et Mode Manager et simule le comportement interne du lecteur de stream.

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

Sujets associés