Simplifier les diagrammes Stateflow en incorporant la sortie de l’état actif
Cet exemple montre la manière dont les données d’état actif peuvent simplifier le design de certains diagrammes Stateflow®, car vous n’avez pas besoin de maintenir des données fortement corrélées à la hiérarchie du diagramme. Lorsque vous activez les données d’état actif, Stateflow rapporte l’activité de l’état via un port de sortie vers Simulink® ou sous forme de données locales dans votre diagramme. Cet exemple indique comment simplifier le design d’un diagramme Stateflow en ajoutant des données de sortie de l’état actif. Pour plus d’informations, veuillez consulter Monitor State Activity Through Active State Data.
Dans le modèle traditionnel old_sf_car, le diagramme Stateflow shift_logic piste l’activité de l’état enfant dans gear_state en mettant à jour la valeur de la donnée de sortie gear.

En incorporant les données d’état actif, le modèle sf_car évite les mises à jour manuelles des données reflétant l’activité du diagramme. En revanche, le diagramme sort automatiquement l’activité de l’état enfant via la sortie d’activité d’état gear.

Modifier le modèle
Afin de simplifier le design du modèle old_sf_car, éliminez les données fortement corrélées à la hiérarchie du diagramme et activez la surveillance automatique de l’activité de l’état enfant dans gear_state.
Étape 1 : Éliminer le pistage manuel de l’activité d’état
Dans le modèle
old_sf_car, ouvrez le diagrammeshift_logic.Pour ouvrir le volet Symbols, dans l’onglet Modeling, sélectionnez Symbols Pane.
Dans chaque sous-état de
gear_state, supprimez l’action d’entrée attribuant une valeur à la variable de donnée de sortiegear.Dans le volet Symbols, faites un clic droit sur la variable de sortie
gearet sélectionnezDelete.
Étape 2 : Activer la sortie de l’état actif
Ouvrez le Property Inspector. Dans l’onglet Modeling, sélectionnez Property Inspector.
Dans l’éditeur Stateflow, sélectionnez l’état
gear_state.Dans le Property Inspector, cochez la case Create output for monitoring et choisissez
Child activity.Dans le champ Data name, saisissez le nom
gearde la donnée d’état actif.Dans le champ Enum name, saisissez le nom
gearTypedu type de données d’énumération pour les données d’état actif.

Étape 3 : Connecter le signal aux blocs Simulink
Dans le modèle Simulink, ajoutez un bloc Cast To Double. Ce bloc convertit la sortie énumérée dans le diagramme Stateflow en un signal de type
double. Pour plus d’informations, veuillez consulter Data Type Conversion (Simulink).Connectez le signal de sortie
geardu diagrammeshift_logicau bloc Cast To Double.Connectez le signal de sortie du bloc Cast To Double au sous-système d’émission.
Ajoutez un bloc Memory (Simulink). Ce bloc évite une boucle algébrique entre le diagramme Stateflow et le sous-système de calcul de seuil.
Réalisez une deuxième connexion depuis le signal de sortie du bloc Cast To Double vers le bloc Memory.
Connectez la sortie du bloc Memory au sous-système de calcul de seuil.

Afficher les résultats de simulation
Le signal de sortie gear est un type énuméré géré par Stateflow. Vous pouvez afficher le signal de sortie de l’état actif gear durant la simulation en connectant le diagramme à un bloc Scope. Les noms des valeurs énumérées correspondent aux noms des sous-états dans gear_state. La valeur énumérée supplémentaire None indique les pas de temps lorsqu’aucun enfant n’est actif.

Voir aussi
Data Type Conversion (Simulink) | Memory (Simulink)