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®.
À l’invite de commande de MATLAB, saisissez :
openExample("sfGetStartedBattery")
Vous pouvez recharger ou décharger la batterie en faisant basculer le bloc Manual Switch.
Double-cliquez sur le bloc Chart pour accéder à l’éditeur Stateflow.

Les états
ChargeetDischargereprésentent les modes de fonctionnement du système de batterie. L’entréeisChargingdétermine l’état actif. Les donnéessentPoweretchargerepré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
isChargingest vraie, charger la batterie. Lorsque la conditionisChargingest 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.
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.Dans le volet Symbols, faites un clic droit sur
chargeet cliquez sur Inspect. Property Inspector s’ouvre.Dans Property Inspector, développez la section Logging et sélectionnez Log signal data.
Revenez dans l’éditeur Simulink®.
Faites un clic droit sur la ligne de signal allant du bloc Manual Switch au diagramme et cliquez sur Log Selected Signals.
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.
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.Dans l’onglet Simulation, cliquez sur Stop pour terminer la simulation.
Dans l’onglet Simulation, accédez à la section Review Results et cliquez sur Data Inspector.
Dans Simulation Data Inspector, cliquez sur « Visualization and layouts »
. Dans la section Basic layouts, cliquez sur la disposition 2x1
.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.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
ChargeetDischargecomme prévu.Pour afficher la valeur de
charge, cliquez sur le graphe du bas. Ensuite, dans l’onglet Inspect, sélectionnezchargeet désélectionnezManual 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.
Dans le diagramme, faites un clic droit sur l’état
Dischargeet 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.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.
Faites un clic droit sur la transition de
ChargeversDischargeet cliquez sur Set Breakpoint. Le point d’arrêt se déclenche quand le diagramme suit cette transition.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.
Spécifiez que le point d’arrêt
Dischargene se déclenche que lorsque la charge de la batterie est négative. Dans la ligne de la table correspondant à l’étatDischarge, double-cliquez sur la colonne Condition et saisissezcharge<0.
Simulez le modèle. La simulation s’interrompt à la transition entre
ChargeetDischarge.
Pour reprendre la simulation, accédez à l’onglet Simulation et cliquez sur Continue. La simulation s’interrompt à l’étape où
chargedevient négative.
Cliquez à nouveau sur Continue. Comme
chargeest toujours négative, le point d’arrêtDischargese déclenche à l’étape suivante.Arrêtez la simulation.
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.