Contenu principal

Chart

Implémenter une logique de contrôle avec une machine à états finis

  • Chart block

Bibliothèques :
Stateflow

Description

Le bloc Chart représente sous forme graphique une machine à états finis. Dans un diagramme Stateflow®, les états et les transitions constituent les blocs de base élémentaires d’un système de logique modale séquentielle. Les états correspondent aux modes de fonctionnement et les transitions représentent le passage du système d'un mode de fonctionnement à un autre. Pour plus d’informations, veuillez consulter Model a Finite State Machine.

Pour implémenter une logique de contrôle, les diagrammes Stateflow peuvent utiliser MATLAB® ou 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 le diagramme Stateflow au moyen du volet Symbols, Stateflow crée un port d’entrée correspondant sur le bloc Chart.

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 le diagramme Stateflow au moyen du volet Symbols, Stateflow crée un port de sortie correspondant sur le bloc Chart.

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 diagrammes comportent également des paramètres de bloc Subsystem (Simulink) auxquels vous pouvez accéder en cliquant avec le bouton droit de la souris lorsque vous êtes sur le diagramme, et en cliquant sur Block Parameters (Subsystem). Toutefois, il est déconseillé de mettre à jour ces paramètres.

Méthode de mise à jour ou d’activation d’un diagramme Stateflow, spécifiée en tant que Inherited, Discrete ou Continuous.

Inherited

L’entrée issue du modèle Simulink détermine le moment où le diagramme s’active au cours d'une simulation.

Si vous définissez des événements d'entrée pour le diagramme, le signal issu du bloc Simulink connecté au port de déclenchement, déclenche le diagramme. 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 un diagramme Stateflow en envoyant des événements en entrée.

Si vous ne définissez pas d'événements d'entrée, le diagramme 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 au diagramme. Si vous définissez des entrées de données, le diagramme 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 le diagramme, celui-ci s’active en fonction du comportement d'exécution de son sous-système parent.

Discrete

Le diagramme 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 du diagramme. Les autres blocs du modèle Simulink peuvent présenter différents pas d’échantillonnage.

Continuous

Le diagramme Stateflow met à jour son état uniquement pendant les pas de temps majeurs. Il calcule les sorties et variables continues locales pendant les pas de temps majeurs et mineurs. Le diagramme peut enregistrer des passages par zéro, ce qui permet aux modèles Simulink d'échantillonner les diagrammes Stateflow chaque fois qu'un changement d'état se produit. Le diagramme 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 du diagramme de manière programmatique, accédez à l'objet Stateflow.Chart du diagramme et modifiez la propriété de l'objet au moyen de la notation par points.

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

Spécifiez l’intervalle de temps pendant lequel le diagramme s’active pendant la simulation. La valeur par défaut indique que le diagramme 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 du diagramme de manière programmatique, accédez à l'objet Stateflow.Chart du diagramme et modifiez la propriété de l'objet au moyen de la notation par points.

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

Activation ou non de la détection du passage par zéro lors des transitions d'état dans le diagramme. Pour plus d’informations, veuillez consulter Continuous-Time Modeling in Stateflow.

Dépendances

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

Utilisation programmatique

Pour définir la valeur du paramètre du diagramme de manière programmatique, accédez à l'objet Stateflow.Chart du diagramme et modifiez la propriété de l'objet au moyen de la notation par points.

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

Utilisation ou non d'opérations en bits dans les actions d'état et de transition du diagramme, spécifiée sous la forme d'un 1 (vrai) ou d'un 0 (faux), numérique ou logique.

Dépendances

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

Utilisation programmatique

Pour définir la valeur du paramètre du diagramme de manière programmatique, accédez à l'objet Stateflow.Chart du diagramme et modifiez la propriété de l'objet au moyen de la notation par points.

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

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

Dépendances

Pour activer ce paramètre, créez un état Stateflow, une table de transition d'état ou un sous-diagramme atomique.

Utilisation programmatique

Pour définir la valeur du paramètre du diagramme de manière programmatique, accédez à l'objet Stateflow.Chart du diagramme et modifiez la propriété de l'objet au moyen de la notation par points.

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. Pour plus d’informations, veuillez consulter Monitor State Activity Through Active State Data.

Dépendances

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

Utilisation programmatique

Pour définir la valeur du paramètre du diagramme de manière programmatique, accédez à l'objet Stateflow.Chart du diagramme et modifiez la propriété de l'objet au moyen de la notation par points.

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 du diagramme de manière programmatique, accédez à l'objet Stateflow.Chart du diagramme et modifiez la propriété de l'objet au moyen de la notation par points.

Paramètre : OutputPortName
Valeurs : "ChartMode" (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 du diagramme de manière programmatique, accédez à l'objet Stateflow.Chart du diagramme et modifiez la propriété de l'objet au moyen de la notation par points.

Paramètre : EnumTypeName
Valeurs : "ChartModeType" (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 du diagramme de manière programmatique, accédez à l'objet Stateflow.Chart du diagramme et modifiez la propriété de l'objet au moyen de la notation par points.

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 du diagramme 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 du diagramme de manière programmatique, accédez à l'objet Stateflow.Chart du diagramme et modifiez la propriété de l'objet au moyen de la notation par points.

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

Saturation ou non des données du diagramme en cas de dépassement d‘entier. Lorsque vous effacez ce paramètre, les données du diagramme s'enroulent sur le 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 du diagramme de manière programmatique, accédez à l'objet Stateflow.Chart du diagramme et modifiez la propriété de l'objet au moyen de la notation par points.

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 du diagramme.

Lorsque vous sélectionnez ce paramètre, le diagramme réinitialise ses valeurs de sortie à chaque fois qu'il s’active et pas uniquement au temps 0. Le diagramme réinitialise les valeurs de sortie chaque fois qu'un appel de fonction, un déclenchement de front ou un compte à rebours déclenche le diagramme. 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 :

  • Veillez à ce que toutes les sorties soient définies dans chaque exécution de diagramme.

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

  • Attribuez une valeur initiale significative à toutes les sorties du diagramme.

Pour plus d’informations, veuillez consulter Initial value.

Utilisation programmatique

Pour définir la valeur du paramètre du diagramme de manière programmatique, accédez à l'objet Stateflow.Chart du diagramme et modifiez la propriété de l'objet au moyen de la notation par points.

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

Prise en charge ou non par le diagramme des données de taille variable. Pour plus d’informations, veuillez consulter Declare Variable-Size Data in Stateflow Charts.

Utilisation programmatique

Pour définir la valeur du paramètre du diagramme de manière programmatique, accédez à l'objet Stateflow.Chart du diagramme et modifiez la propriété de l'objet au moyen de la notation par points.

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

Exportation ou non de fonctions au niveau du diagramme vers d’autres blocs du modèle Simulink. Pour plus d’informations, veuillez consulter Export Stateflow Functions for Reuse.

Dépendances

Pour activer ce paramètre, ajoutez une fonction à votre diagramme.

Utilisation programmatique

Pour définir la valeur du paramètre du diagramme de manière programmatique, accédez à l'objet Stateflow.Chart du diagramme et modifiez la propriété de l'objet au moyen de la notation par points.

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

Visibilité globale ou non des fonctions exportées depuis le diagramme dans le modèle Simulink. Lorsque cette propriété est activée, les blocs du modèle peuvent appeler les fonctions exportées du diagramme sans utiliser la notation qualifiée.

Dépendances

Pour activer ce paramètre, activez Export chart level functions.

Utilisation programmatique

Pour définir la valeur du paramètre du diagramme de manière programmatique, accédez à l'objet Stateflow.Chart du diagramme et modifiez la propriété de l'objet au moyen de la notation par points.

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

Activation ou non de la sémantique des super pas pour le diagramme. Sélectionnez ce paramètre pour permettre au diagramme d'effectuer plusieurs transitions à chaque pas de temps jusqu'à ce qu'il atteigne un état stable. Cette option n’est pas disponible quand vous définissez la propriété de diagramme Update method sur Continuous. 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 du diagramme de manière programmatique, accédez à l'objet Stateflow.Chart du diagramme et modifiez la propriété de l'objet au moyen de la notation par points.

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 du diagramme de manière programmatique, accédez à l'objet Stateflow.Chart du diagramme et modifiez la propriété de l'objet au moyen de la notation par points.

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 du diagramme de manière programmatique, accédez à l'objet Stateflow.Chart du diagramme et modifiez la propriété de l'objet au moyen de la notation par points.

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

Depuis R2022b

Traitement ou non, par le diagramme, des données non scalaires présentant une dimension de longueur 1 comme étant de taille fixe. Lorsque vous sélectionnez ce paramètre, le diagramme 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 effacez ce paramètre, le diagramme 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 du diagramme de manière programmatique, accédez à l'objet Stateflow.Chart du diagramme et modifiez la propriété de l'objet au moyen de la notation par points.

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

Spécifiez les variants de bloc que Stateflow analyse lors de la simulation et de la génération de code. Selon l'option choisie, Stateflow détermine si le code généré doit contenir uniquement le choix actif ou à la fois les choix actifs et inactifs.

  • update diagram analyze all choices - Lorsque vous sélectionnez cette option, Stateflow analyse à la fois les choix actifs et inactifs à la recherche d'incompatibilités dans les attributs du signal et génère le code uniquement pour le choix actif.

  • code compile - Lorsque vous sélectionnez cette option, Stateflow analyse à la fois les choix actifs et inactifs des transitions de variant et génère le code à la fois pour les choix actifs et inactifs. Les choix figurent dans les instructions conditionnelles #if et #endif du dispositif de prétraitement C, compilées de manière conditionnelle lorsque vous compilez le code généré.

Utilisation programmatique

Pour définir la valeur du paramètre du diagramme de manière programmatique, accédez à l'objet Stateflow.Chart du diagramme et modifiez la propriété de l'objet au moyen de la notation par points.

Paramètre : VariantActivationTime
Valeurs : "update diagram analyze all choices" (par défaut) | "code compile"

Langage d’action à utiliser pour programmer le diagramme, 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 du diagramme de manière programmatique, accédez à l'objet Stateflow.Chart du diagramme et modifiez la propriété de l'objet au moyen de la notation par points.

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

Sémantique des machines à états mise en oeuvre par le diagramme, 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 du diagramme de manière programmatique, accédez à l'objet Stateflow.Chart du diagramme et modifiez la propriété de l'objet au moyen de la notation par points.

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 — Le diagramme traite toutes les entrées à virgule fixe en tant qu’objets fi.

  • Fixed-point & Integer — Le diagramme traite toutes les entrées entières et à virgule fixe en tant qu’objets fi.

Dépendances

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

Utilisation programmatique

Pour définir la valeur du paramètre du diagramme de manière programmatique, accédez à l'objet Stateflow.Chart du diagramme et modifiez la propriété de l'objet au moyen de la notation par points.

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

Propriétés fimath par défaut du diagramme, spécifiées sous la forme de l’une des valeurs suivantes :

  • Same as MATLAB - Le diagramme 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 de l'une des deux manières suivantes :

    • Construction de l’objet fimath au sein de la zone de texte.

    • Construction de l’objet fimath dans le MATLAB ou l’espace de travail du modèle, puis saisie de son nom de variable dans la zone de texte. Si vous utilisez cette option et que vous prévoyez de partager votre modèle avec d’autres personnes, définissez la variable dans l’espace de travail du modèle.

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 du diagramme de manière programmatique, accédez à l'objet Stateflow.Chart du diagramme et modifiez la propriété de l'objet au moyen de la notation par points.

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

Capacités étendues

développer tout

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

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

Historique des versions

Introduit avant R2006a

développer tout