Contenu principal

La traduction de cette page n'est pas à jour. Cliquez ici pour voir la dernière version en anglais.

Enregistrer, vérifier et débugger les diagrammes

Stateflow® vous permet d’enregistrer les données et les états pour comprendre quand et comment ils changent pendant la simulation. Vous pouvez ajouter des points d’arrêt pour suspendre l’exécution sur des états ou transitions. En associant ces techniques, vous pouvez vérifier et débugger la logique de votre diagramme.

Dans cet exemple, vous allez identifier un problème de design dans un modèle de batterie rechargeable en enregistrant l’activité des états et les valeurs des données d’un diagramme. Vous allez ensuite utiliser des points d’arrêt pour identifier l’état et le pas de temps où se produit le problème de design.

Ouvrir le modèle

Pour créer le modèle, suivez les instructions de l’étape précédente du tutoriel. Vous pouvez également ouvrir le modèle sfGetStartedBattery à l’invite de commande de MATLAB®.

  1. À l’invite de commande de MATLAB, saisissez :

    openExample("sfGetStartedBattery")

    Vous pouvez recharger ou décharger la batterie en faisant basculer le bloc Manual Switch.

  2. Double-cliquez sur le bloc Chart pour accéder à l’éditeur Stateflow.

    Les états Charge et Discharge représentent les modes de fonctionnement du système de batterie. L’entrée isCharging détermine l’état actif. Les données sentPower et charge représentent la puissance en sortie (en watts) et le niveau de charge de la batterie.

Enregistrer les états et les données

Le système de batterie obéit aux exigences suivantes :

  • Lorsque la condition isCharging est vraie, charger la batterie. Lorsque la condition isCharging est fausse, décharger la batterie.

  • Le pourcentage de charge de la batterie doit toujours être compris entre 100 % et 0 %.

Vérifiez les exigences en enregistrant l’état actif du diagramme et la valeur de l’entrée charge dans Simulation Data Inspector.

  1. Pour enregistrer l’état actif du diagramme, accédez à l’onglet Simulation et dans la section Prepare, cliquez sur Log Active State. Un badge d’enregistrement apparaît dans le coin inférieur gauche du canevas.

  2. Dans le volet Symbols, faites un clic droit sur charge et cliquez sur Inspect. Property Inspector s’ouvre.

  3. Dans Property Inspector, développez la section Logging et sélectionnez Log signal data.

  4. Revenez dans l’éditeur Simulink®.

  5. Faites un clic droit sur la ligne de signal allant du bloc Manual Switch au diagramme et cliquez sur Log Selected Signals.

  6. Pour simuler le modèle, accédez à l’onglet Simulation et cliquez sur Run. La simulation du modèle continue jusqu’à ce que vous appuyiez sur Stop.

  7. Pour passer à l’état Discharge, double-cliquez sur le bloc Manual Switch. Patientez quelques secondes puis basculez à nouveau le bloc Manual Switch. Répétez cette opération plusieurs fois. Faites un dernier basculement en ramenant le bloc Manual Switch à 0.

  8. Dans l’onglet Simulation, cliquez sur Stop pour terminer la simulation.

  9. Dans l’onglet Simulation, accédez à la section Review Results et cliquez sur Data Inspector.

  10. Dans Simulation Data Inspector, cliquez sur « Visualization and layouts » . Dans la section Basic layouts, cliquez sur la disposition 2x1 .

  11. Pour afficher l’état actif du diagramme, cliquez sur le graphe du haut. Ensuite, dans l’onglet Inspect, développez la section Stateflow et sélectionnez Battery:ActiveChild.

  12. Pour afficher la sortie du bloc Manual Switch, cliquez sur le graphe du bas. Ensuite, dans l’onglet Inspect, développez la section Signals et sélectionnez Manual Switch:1.

    Lorsque vous faites basculer le bloc Manual Switch, le diagramme transitionne entre Charge et Discharge comme prévu.

  13. Pour afficher la valeur de charge, cliquez sur le graphe du bas. Ensuite, dans l’onglet Inspect, sélectionnez charge et désélectionnez Manual Switch:1.

    La batterie va à l’encontre des exigences en se rechargeant au-delà de 100 % et en dessous de 0 %.

Définir des points d’arrêt

Définissez des points d’arrêt sur les états et les transitions pour identifier le pas de temps où se produit le problème de design.

  1. Dans le diagramme, faites un clic droit sur l’état Discharge et cliquez sur Set Breakpoint. Un badge de point d’arrêt circulaire rouge apparaît sur l’état. Par défaut, les points d’arrêt sur un état se déclenchent quand le diagramme entre ou reste dans cet état.

  2. Pour empêcher le point d’arrêt de se déclencher quand le diagramme entre dans cet état, cliquez sur le badge de point d’arrêt. Dans la boîte de dialogue Discharge Breakpoints, désélectionnez le déclencheur On State Entry.

  3. Faites un clic droit sur la transition de Charge vers Discharge et cliquez sur Set Breakpoint. Le point d’arrêt se déclenche quand le diagramme suit cette transition.

  4. Dans l’onglet Debug, cliquez sur Breakpoints List.

    Dans le volet Breakpoints List, vous pouvez activer ou désactiver les points d’arrêt et modifier leurs conditions de déclenchement.

  5. Spécifiez que le point d’arrêt Discharge ne se déclenche que lorsque la charge de la batterie est négative. Dans la ligne de la table correspondant à l’état Discharge, double-cliquez sur la colonne Condition et saisissez charge<0.

  6. Simulez le modèle. La simulation s’interrompt à la transition entre Charge et Discharge.

  7. Pour reprendre la simulation, accédez à l’onglet Simulation et cliquez sur Continue. La simulation s’interrompt à l’étape où charge devient négative.

  8. Cliquez à nouveau sur Continue. Comme charge est toujours négative, le point d’arrêt Discharge se déclenche à l’étape suivante.

  9. Arrêtez la simulation.

  10. Pour supprimer les points d’arrêt, faites un clic droit sur chaque badge de point d’arrêt et sélectionnez Clear Breakpoint.

Dans l’étape suivante du tutoriel, vous réglerez le problème de design en ajoutant des modes de fonctionnement imbriqués qui ralentissent ou arrêtent la charge ou la décharge quand la batterie atteint certains niveaux de charge.

Voir aussi

Rubriques