Activer les diagrammes Stateflow en envoyant des événements en entrée
Vous pouvez créer un diagramme Stateflow® qui s’active seulement quand le modèle Simulink® envoie un événement en entrée au diagramme. Une fois activé, le diagramme exécute ses actions.
Les modèles Simulink, les fonctions Simulink ou d’autres diagrammes Stateflow peuvent générer des événements en entrée.
Définir un événement en entrée
Pour définir un événement en entrée :
Ajoutez un événement au diagramme Stateflow. Pour plus d’informations, veuillez consulter Define Events in a Chart.
Dans le Property Inspector, définissez la propriété Scope de l’événement à
Input from Simulink. Ce paramètre crée un port d’entrée sur le bloc Chart.Pour spécifier un événement par déclenchement par front d’impulsion, définissez Trigger sur
Rising,FallingouEither. Pour spécifier un appel de fonction, définissez Trigger surFunction call.
Vous pouvez utiliser un signal de contrôle, également appelé déclenchement par front d’impulsion, ou un appel de fonction à partir d’un bloc Simulink. Vous ne pouvez pas utiliser à la fois des événements en entrée par déclenchement par front d’impulsion et par appel de fonction dans le même diagramme Stateflow. L’utilisation de ces événements en entrée ensemble engendre une erreur au moment de la compilation.
Activer un diagramme Stateflow à l’aide de déclenchements par front d’impulsion
Les événements en entrée par déclenchement par front d’impulsion activent le diagramme Stateflow quand le signal de contrôle passe d’une valeur positive à une valeur négative, d’une valeur négative à une valeur positive, ou les deux. Les événements par déclenchement par front d’impulsion s’exécutent dans le pas de temps où le signal de contrôle change. Le paramètre de la propriété Trigger détermine le moment où le diagramme s’active :
Paramètre de la propriété Trigger | Description |
|---|---|
| Le diagramme s’active lorsque le signal de contrôle passe de zéro ou d’une valeur négative à une valeur positive. |
| Le diagramme s’active lorsque le signal de contrôle passe d’une valeur positive à zéro ou à une valeur négative. |
| Le diagramme s’active lorsque le signal de contrôle passe par zéro pour devenir une valeur positive ou négative. |
Pour activer l’événement par déclenchement par front d’impulsion, la valeur du signal de contrôle doit être égale à zéro ou passer par zéro. Par exemple, un signal qui passe de -1 à 1 ou de 0 à 2 est un déclenchement par front d’impulsion montant valide. Un signal qui passe de 1 à 2 n’est pas un déclenchement par front d’impulsion montant valide.
Il ne peut y avoir plusieurs déclenchements par front d’impulsion montant que quand deux augmentations ou deux diminutions de la valeur du signal de contrôle sont séparées par plus d’un pas de temps. En d’autres termes, le diagramme traite un signal passant de -1 à 0 puis à 1 dans des pas de temps successifs comme un seul déclenchement par front d’impulsion montant et non deux. Pour plus d’informations, veuillez consulter Using Triggered Subsystems (Simulink).
Quand utiliser les événements en entrée déclenchés par front d’impulsion
Utilisez un événement en entrée par déclenchement par front d’impulsion pour activer un diagramme lorsque votre modèle requiert une exécution de diagramme régulière ou périodique. Par exemple, dans le modèle suivant, un événement en entrée par déclenchement par front d’impulsion active le diagramme Edge to Function à intervalles réguliers.

Événements en entrée par déclenchement par front d’impulsion multiples
Vous pouvez utiliser un événement en entrée par déclenchement par front d’impulsion pour activer un diagramme plusieurs fois dans le même pas de temps. À chaque pas de temps, Stateflow vérifie les événements en entrée dans l’ordre ascendant selon leurs numéros de port. Le diagramme s’active une fois pour chaque événement valide. Si plusieurs fronts d’impulsion se produisent au même pas de temps, le diagramme s’active plusieurs fois dans ce pas de temps.
Activer un diagramme Stateflow à l’aide d’appels de fonction
Un événement en entrée par appel de fonction provoque l’exécution du diagramme Stateflow pendant le pas de temps réel de la simulation.
Quand utiliser les événements en entrée par appel de fonction
Utilisez un événement en entrée par appel de fonction pour activer un diagramme lorsque votre modèle nécessite l’accès aux données de sortie depuis le diagramme dans le même pas de temps que l’appel de fonction. Par exemple, dans le modèle suivant, un événement en entrée par appel de fonction active le diagramme Looping Scheduler.

Événements en entrée par appel de fonction multiples
Pour les événements en entrée par appel de fonction, un seul événement déclencheur existe. L’appelant de l’événement appelle explicitement et exécute le diagramme.
Types de données supportés pour les événements en entrée
Lorsqu’il existe plusieurs événements en entrée sur un port de déclenchement, tous les signaux doivent posséder le même type de données. L’utilisation de signaux de différents types de données en tant qu’événements en entrée provoque une erreur durant la simulation. Par exemple, vous pouvez utiliser un bloc Mux pour combiner deux signaux d’entrée de type double et utiliser ce signal pour déclencher des événements en entrée dans un diagramme.

Vous ne pouvez pas utiliser un bloc Mux pour combiner deux signaux d’entrée de différents types de données, tels que boolean et double.
