Contenu principal

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

  1. Dans le modèle old_sf_car, ouvrez le diagramme shift_logic.

  2. Pour ouvrir le volet Symbols, dans l’onglet Modeling, sélectionnez Symbols Pane.

  3. Dans chaque sous-état de gear_state, supprimez l’action d’entrée attribuant une valeur à la variable de donnée de sortie gear.

  4. Dans le volet Symbols, faites un clic droit sur la variable de sortie gear et sélectionnez Delete.

Étape 2 : Activer la sortie de l’état actif

  1. Ouvrez le Property Inspector. Dans l’onglet Modeling, sélectionnez Property Inspector.

  2. Dans l’éditeur Stateflow, sélectionnez l’état gear_state.

  3. Dans le Property Inspector, cochez la case Create output for monitoring et choisissez Child activity.

  4. Dans le champ Data name, saisissez le nom gear de la donnée d’état actif.

  5. Dans le champ Enum name, saisissez le nom gearType du type de données d’énumération pour les données d’état actif.

Étape 3 : Connecter le signal aux blocs Simulink

  1. 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).

  2. Connectez le signal de sortie gear du diagramme shift_logic au bloc Cast To Double.

  3. Connectez le signal de sortie du bloc Cast To Double au sous-système d’émission.

  4. 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.

  5. Réalisez une deuxième connexion depuis le signal de sortie du bloc Cast To Double vers le bloc Memory.

  6. 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

(Simulink) | (Simulink)

Rubriques