Contenu principal

State Transition Table

Représenter la logique modale au format tabulaire

  • State Transition Table block

Bibliothèques :
Stateflow

Description

Le bloc State Transition Table représente une machine à états finis au format tabulaire. Au lieu d’ajouter des états et des transitions dans un diagramme Stateflow®, vous pouvez utiliser une table de transition d’état pour modéliser une machine à états dans un format concis et compact nécessitant une maintenance minimale des objets graphiques. Pour plus d’informations, veuillez consulter Model Finite State Machines Using State Transition Tables.

Pour implémenter une logique de contrôle, les blocs State Transition Table peuvent utiliser MATLAB® ou le C comme langage d’action. Pour plus d’informations, veuillez consulter Differences Between MATLAB and C as Action Language Syntax.

Exemples

Ports

Entrée

développer tout

Lorsque vous créez des données d’entrée dans la table de transition d’état Stateflow au moyen du volet Symbols, Stateflow crée un port d’entrée correspondant sur le bloc State Transition Table.

Types de données : single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus | string

Sortie

développer tout

Lorsque vous créez des données de sortie dans la table de transition d’état Stateflow au moyen du volet Symbols, Stateflow crée un port de sortie correspondant sur le bloc State Transition Table.

Types de données : single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus | string

Paramètres

développer tout

Pour modifier les paramètres de bloc de manière interactive, utilisez le Property Inspector. À partir de la barre d’outils Simulink®, dans l’onglet Simulation, dans la galerie Prepare, sélectionnez Property Inspector.

Remarque

Les blocs State Transition Table comportent également des paramètres de bloc Subsystem (Simulink) auxquels vous pouvez accéder en faisant un clic droit sur le bloc et en cliquant sur le bouton « Block Parameters » . Toutefois, il est déconseillé de mettre à jour ces paramètres de bloc.

Méthode de mise à jour ou d’activation d’une table de transition d’état Stateflow, spécifiée comme Inherited, Discrete ou Continuous.

Inherited

L’entrée issue du modèle Simulink détermine le moment où la table de transition d’état s’active au cours d’une simulation.

Si vous définissez des événements d’entrée pour la table de transition d’état, le signal issu du bloc Simulink connecté au port de déclenchement déclenche la table. Le signal Simulink peut être Rising, Falling ou Either (montant et descendant), ou en réponse à un Function Call. Pour plus d’informations, veuillez consulter Activer les diagrammes Stateflow en envoyant des événements en entrée.

Si vous ne définissez pas d’événements d’entrée, la table de transition d’état Stateflow hérite implicitement des déclencheurs du modèle Simulink. Ces événements implicites sont les pas d’échantillonnage discrets ou continus des signaux Simulink qui fournissent des entrées à la table. Si vous définissez des entrées de données, la table de transition d’état s’active à la vitesse d’entrée de données la plus rapide. Si vous ne définissez pas d’entrée de données pour la table de transition d’état, celle-ci s’active en fonction du comportement d’exécution de son sous-système parent.

Discrete

La table de transition d’état Stateflow s’active lorsque le modèle Simulink génère un événement implicite à des intervalles de temps réguliers que vous spécifiez dans la propriété Sample Time de la table. Les autres blocs du modèle Simulink peuvent présenter différents pas d’échantillonnage.

Continuous

La table de transition d’état Stateflow met à jour son état uniquement pendant les pas de temps majeurs. Elle calcule les sorties et les variables continues locales pendant les pas de temps majeurs et mineurs. La table peut enregistrer les passages par zéro, ce qui permet aux modèles Simulink d’échantillonner les tables de transition d’état Stateflow chaque fois qu’un changement d’état se produit. La table de transition d’état Stateflow calcule les dérivées pour les variables continues locales. Pour plus d’informations, veuillez consulter Continuous-Time Modeling in Stateflow.

Utilisation programmatique

Pour définir la valeur du paramètre de bloc de manière programmatique, accédez à l’objet Stateflow.StateTransitionTableChart du bloc et modifiez la propriété de l’objet en utilisant la notation pointée.

Paramètre : ChartUpdate
Valeurs : "INHERITED" (par défaut) | "CONTINUOUS" | "DISCRETE"

L’intervalle de temps par défaut est -1, ce qui indique que la table de transition d’état Stateflow hérite du pas d’échantillonnage de Simulink.

Spécifiez l’intervalle de temps auquel la table de transition d’état s’active pendant la simulation. La valeur par défaut indique que la table hérite du pas d’échantillonnage de Simulink. Pour plus d’informations sur la spécification du pas d’échantillonnage, veuillez consulter Spécifier les pas d'échantillonnage (Simulink).

N‘utilisez pas le paramètre Sample Time dans les paramètres du bloc Subsystem. Utilisez à la place le Property Inspector.

Dépendances

Pour activer ce paramètre, définissez Update method sur Discrete.

Utilisation programmatique

Pour définir la valeur du paramètre de bloc de manière programmatique, accédez à l’objet Stateflow.StateTransitionTableChart du bloc et modifiez la propriété de l’objet en utilisant la notation pointée.

Paramètre : SampleTime
Valeurs : "-1" (par défaut) | string scalar | character vector
Types de données : string | char

Création ou non d’un port de sortie de données d’état actif pour la table de transition d’état. Pour plus d’informations, veuillez consulter Monitor State Activity Through Active State Data.

Utilisation programmatique

Pour définir la valeur du paramètre de bloc de manière programmatique, accédez à l’objet Stateflow.StateTransitionTableChart du bloc et modifiez la propriété de l’objet en utilisant la notation pointée.

Paramètre : HasOutputData
Valeurs : false or 0 (par défaut) | true or 1
Types de données : logical

Mode de surveillance des données de la sortie de l’état actif.

Dépendances

Pour activer ce paramètre, activez Create output for monitoring.

Utilisation programmatique

Pour définir la valeur du paramètre de bloc de manière programmatique, accédez à l’objet Stateflow.StateTransitionTableChart du bloc et modifiez la propriété de l’objet en utilisant la notation pointée.

Paramètre : OutputMonitoringMode
Valeurs : "ChildActivity" (par défaut) | "LeafStateActivity"

Nom de l’objet des données d’état actif pour la table de transition d’état.

Dépendances

Pour activer ce paramètre, activez Create output for monitoring.

Utilisation programmatique

Pour définir la valeur du paramètre de bloc de manière programmatique, accédez à l’objet Stateflow.StateTransitionTableChart du bloc et modifiez la propriété de l’objet en utilisant la notation pointée.

Paramètre : OutputPortName
Valeurs : "State_Transition_TableMode" (par défaut) | string scalar | character vector
Types de données : string | char

Nom de l’objet des données d’état actif pour la table de transition d’état.

Dépendances

Pour activer ce paramètre, activez Create output for monitoring.

Utilisation programmatique

Pour définir la valeur du paramètre de bloc de manière programmatique, accédez à l’objet Stateflow.StateTransitionTableChart du bloc et modifiez la propriété de l’objet en utilisant la notation pointée.

Paramètre : EnumTypeName
Valeurs : "State_Transition_TableModeType" (par défaut) | string scalar | character vector
Types de données : string | char

Définition manuelle ou non du type de données énumérées pour la sortie de données d’état actif. Pour plus d’informations, veuillez consulter Define State Activity Enumeration Type.

Dépendances

Pour activer ce paramètre, activez Create output for monitoring.

Utilisation programmatique

Pour définir la valeur du paramètre de bloc de manière programmatique, accédez à l’objet Stateflow.StateTransitionTableChart du bloc et modifiez la propriété de l’objet en utilisant la notation pointée.

Paramètre : DoNotAutogenerateEnum
Valeurs : false or 0 (par défaut) | true or 1
Types de données : logical

Avancé

Initialisation ou non de la configuration d’état de la table de transition d’état au temps zéro plutôt qu’au premier événement d’entrée. Pour plus d’informations, veuillez consulter Execution of a Chart at Initialization.

Utilisation programmatique

Pour définir la valeur du paramètre de bloc de manière programmatique, accédez à l’objet Stateflow.StateTransitionTableChart du bloc et modifiez la propriété de l’objet en utilisant la notation pointée.

Paramètre : ExecuteAtInitialization
Valeurs : false or 0 (par défaut) | true or 1
Types de données : logical

Saturation ou non des données de la table de transition d’état en cas de dépassement d’entier. Lorsque vous désactivez ce paramètre, les données de la table de transition d’état s’enroulent en cas de dépassement d’entier. Pour plus d’informations, veuillez consulter Handle Integer and Enumeration Overflow for Chart Data.

Utilisation programmatique

Pour définir la valeur du paramètre de bloc de manière programmatique, accédez à l’objet Stateflow.StateTransitionTableChart du bloc et modifiez la propriété de l’objet en utilisant la notation pointée.

Paramètre : SaturateOnIntegerOverflow
Valeurs : true or 1 (par défaut) | false or 0
Types de données : logical

Initialisation ou non des données de sortie à chaque activation de la table de transition d’état.

Lorsque vous sélectionnez ce paramètre, la table de transition d’état réinitialise ses valeurs de sortie à chaque fois qu’elle s’active et pas uniquement au temps 0. Elle les réinitialise chaque fois qu’elle est déclenchée par un appel de fonction, par un front d’impulsion ou par un compte à rebours. Si vous définissez une valeur initiale pour un objet de données de sortie, la sortie se réinitialise sur cette valeur. Sinon, la sortie se réinitialise sur zéro. Sélectionnez ce paramètre pour :

  • Faire en sorte que toutes les sorties soient définies dans chaque exécution de la table de transition d’état.

  • Empêcher le verrouillage des sorties. Autrement dit, bloquez les valeurs des sorties calculées lors d'exécutions précédentes.

  • Affecter une valeur initiale significative à toutes les sorties de la table de transition d’état.

Pour plus d’informations, veuillez consulter Initial value.

Utilisation programmatique

Pour définir la valeur du paramètre de bloc de manière programmatique, accédez à l’objet Stateflow.StateTransitionTableChart du bloc et modifiez la propriété de l’objet en utilisant la notation pointée.

Paramètre : InitializeOutput
Valeurs : false or 0 (par défaut) | true or 1
Types de données : logical

Support ou non des données de taille variable par la table de transition d’état. Pour plus d’informations, veuillez consulter Declare Variable-Size Data in Stateflow Charts.

Utilisation programmatique

Pour définir la valeur du paramètre de bloc de manière programmatique, accédez à l’objet Stateflow.StateTransitionTableChart du bloc et modifiez la propriété de l’objet en utilisant la notation pointée.

Paramètre : SupportVariableSizing
Valeurs : true or 1 (par défaut) | false or 0
Types de données : logical

Activation ou non de la sémantique des super pas pour la table de transition d’état. Sélectionnez ce paramètre pour permettre à la table d’effectuer plusieurs transitions à chaque pas de temps jusqu’à ce qu’elle atteigne un état stable. Cette option n’est pas toujours disponible. Pour plus d’informations, veuillez consulter Super Step Semantics.

Dépendances

Pour activer ce paramètre, définissez Update method sur Discrete.

Utilisation programmatique

Pour définir la valeur du paramètre de bloc de manière programmatique, accédez à l’objet Stateflow.StateTransitionTableChart du bloc et modifiez la propriété de l’objet en utilisant la notation pointée.

Paramètre : EnableNonTerminalStates
Valeurs : false or 0 (par défaut) | true or 1
Types de données : logical

Nombre maximal de transitions pouvant être effectuées en un seul super pas. Pour plus d’informations, veuillez consulter Super Step Semantics.

Dépendances

Pour activer ce paramètre, activez Enable super step semantics.

Utilisation programmatique

Pour définir la valeur du paramètre de bloc de manière programmatique, accédez à l’objet Stateflow.StateTransitionTableChart du bloc et modifiez la propriété de l’objet en utilisant la notation pointée.

Paramètre : NonTerminalMaxCounts
Valeurs : 1000 (par défaut) | positive integer
Types de données : single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Action que Stateflow doit entreprendre si le super pas dépasse le nombre maximal de transitions possible en un super pas. Pour plus d’informations, veuillez consulter Super Step Semantics.

Dépendances

Pour activer ce paramètre, activez Enable super step semantics.

Utilisation programmatique

Pour définir la valeur du paramètre de bloc de manière programmatique, accédez à l’objet Stateflow.StateTransitionTableChart du bloc et modifiez la propriété de l’objet en utilisant la notation pointée.

Paramètre : NonTerminalUnstableBehavior
Valeurs : "Proceed" (par défaut) | "Throw Error"

Depuis R2023a

Traitement ou non, par la table de transition d’état, des données non scalaires présentant une dimension de longueur 1 comme étant de taille fixe. Lorsque vous sélectionnez ce paramètre, la table traite les données non scalaires présentant au moins une dimension de longueur 1 comme étant de taille fixe, que vous activiez ou non la propriété de données Variable size. Lorsque vous désactivez ce paramètre, la table traite les données non scalaires dont la propriété Variable size est activée comme étant de taille variable.

Utilisation programmatique

Pour définir la valeur du paramètre de bloc de manière programmatique, accédez à l’objet Stateflow.StateTransitionTableChart du bloc et modifiez la propriété de l’objet en utilisant la notation pointée.

Paramètre : TreatDimensionOfLengthOneAsFixedSize
Valeurs : true or 1 (par défaut) | false or 0
Types de données : logical

Langage d’action à utiliser pour programmer la table de transition d’état, spécifié en tant que MATLAB ou C. Pour plus d’informations, veuillez consulter Differences Between MATLAB and C as Action Language Syntax.

Utilisation programmatique

Pour définir la valeur du paramètre de bloc de manière programmatique, accédez à l’objet Stateflow.StateTransitionTableChart du bloc et modifiez la propriété de l’objet en utilisant la notation pointée.

Paramètre : ActionLanguage
Valeurs : "MATLAB" (par défaut) | "C"

Sémantique des machines à états implémentée par la table de transition d’état, spécifiée en tant que Classic, Mealy ou Moore. Pour plus d’informations, veuillez consulter Présentation des machines de Mealy et de Moore.

Utilisation programmatique

Pour définir la valeur du paramètre de bloc de manière programmatique, accédez à l’objet Stateflow.StateTransitionTableChart du bloc et modifiez la propriété de l’objet en utilisant la notation pointée.

Paramètre : StateMachineType
Valeurs : "Classic" (par défaut) | "Mealy" | "Moore"

Propriétés à virgule fixe

Signaux Simulink hérités à traiter en tant qu’objets Fixed-Point Designer™fi, spécifiés sous la forme de l’une des valeurs suivantes :

  • Fixed-point : la table de transition d’état traite toutes les entrées à virgule fixe comme des objets fi.

  • Fixed-point & Integer : la table de transition d’état traite toutes les entrées à virgule fixe et entières comme des objets fi.

Ce paramètre s’applique uniquement aux tables de transition d’état utilisant MATLAB comme langage d’action.

Utilisation programmatique

Pour définir la valeur du paramètre de bloc de manière programmatique, accédez à l’objet Stateflow.StateTransitionTableChart du bloc et modifiez la propriété de l’objet en utilisant la notation pointée.

Paramètre : TreatAsFi
Valeurs : "Fixed-point" (par défaut) | "Fixed-point & Integer"

Propriétés d’objet fimath par défaut de la table de transition d’état, spécifiées sous la forme de l’une des valeurs suivantes :

  • Same as MATLAB : la table de transition d’état utilise les mêmes propriétés d’objet fimath que l’objet fimath par défaut actuel. La zone de texte est grisée et affiche l'objet fimath global actuel en lecture seule.

  • Specify other : spécifiez votre propre objet fimath dans la zone de texte.

Pour plus d’informations, veuillez consulter fimath Object Construction (Fixed-Point Designer).

Dépendances

Pour activer ce paramètre, définissez Action language sur MATLAB.

Utilisation programmatique

Pour définir la valeur du paramètre de bloc de manière programmatique, accédez à l’objet Stateflow.StateTransitionTableChart du bloc et modifiez la propriété de l’objet en utilisant la notation pointée.

Paramètre : EmlDefaultFimath
Valeurs : "Same as MATLAB Default" (par défaut) | "Other:UserSpecified"

Conseils

  • Certaines fonctionnalités de Simulink reposent sur Stateflow. C’est pourquoi l’installation Simulink contient du code correspondant au produit Stateflow. Il est possible d’ouvrir les modèles de la documentation Stateflow sans installer explicitement Stateflow. L’ouverture d’autres modèles utilisant des blocs Stateflow nécessite une licence Stateflow.

Capacités étendues

développer tout

Génération de code C/C++
Générez du code C et C++ avec Simulink® Coder™.

Génération de code PLC
Générez du texte structuré avec Simulink® PLC Coder™.

Conversion en virgule fixe
Concevez et simulez des systèmes en virgule fixe avec Fixed-Point Designer™.

Historique des versions

Introduit dans R2012b

développer tout