Ajouter des données Stateflow
Lorsque vous souhaitez stocker des valeurs visibles à un niveau donné de la hiérarchie Stateflow®, ajoutez des données à votre diagramme. Lorsque vous simulez votre modèle, les objets de données du diagramme conservent leurs valeurs pendant la durée de la simulation.
Les données définies dans un diagramme Stateflow sont visibles par plusieurs objets Stateflow dans le diagramme, y compris les états, les transitions, les fonctions MATLAB® et les tables de vérité. Pour déterminer les données utilisées dans un état ou une transition, cliquez avec le bouton droit de la souris sur l'état ou la transition en question et sélectionnez Explore. Un menu contextuel répertorie les noms et étendues de tous les symboles identifiés dans l'état ou la transition. Lorsque vous sélectionnez un symbole dans le menu contextuel, ses propriétés sont affichées dans Model Explorer. Lorsque vous sélectionnez un événement de sortie dans le menu contextuel, le sous-système Simulink® ou le diagramme Stateflow associé à l'événement s’ouvre.
Remarque
Les données Stateflow ne sont pas disponibles pour les fonctions Simulink d’un diagramme Stateflow.
Vous pouvez ajouter des données à un diagramme Stateflow au moyen du volet Symbols, du menu de l'éditeur Stateflow ou de Model Explorer.
Ajout de données au moyen du volet Symbols
Dans l’onglet Modeling, sous Design Data, sélectionnez Symbols Pane.
Cliquez sur l'icône Create Data
.Dans la ligne des nouvelles données, sous Type, cliquez sur l'icône et sélectionnez :
Input DataLocal DataOutput DataConstantData Store MemoryParameterTemporary
Pour plus d’informations sur ces options, consultez Scope.
Modifiez le nom des données.
Pour les données d’entrée et de sortie, cliquez sur le champ Port et choisissez un numéro de port.
Pour spécifier les propriétés des données, ouvrez le Property Inspector. Dans le volet Symbols, cliquez avec le bouton droit de la souris sur la ligne correspondant au symbole et sélectionnez Explore. Pour plus d’informations, veuillez consulter Set Data Properties.
Ajout de données au moyen du menu de l’éditeur Stateflow
Dans le diagramme Stateflow d'un modèle Simulink, sélectionnez l'option de menu correspondant à l'étendue des données à ajouter. Pour plus d’informations sur ces options, consultez Scope.
Étendue Option du menu InputDans l’onglet Modeling, sous Design Data, sélectionnez Data Input.
OutputDans l’onglet Modeling, sous Design Data, sélectionnez Data Output.
LocalDans l’onglet Modeling, sous Design Data, sélectionnez Local.
ConstantDans l’onglet Modeling, sous Design Data, sélectionnez Constant.
ParameterDans l’onglet Modeling, sous Design Data, sélectionnez Parameter.
Data Store MemoryDans l’onglet Modeling, sous Design Data, sélectionnez Data Store.
Dans la boîte de dialogue Data, spécifiez les propriétés des données. Pour plus d’informations, veuillez consulter Set Data Properties.
Ajout de données au moyen du Model Explorer
Pour ajouter des données liées à une fonction ou à un état à des diagrammes Stateflow dans des modèles Simulink, utilisez le Model Explorer :
Dans l’onglet Modeling, sous Design Data, sélectionnez Model Explorer.
Dans le volet Model Hierarchy, sélectionnez l’objet dans la hiérarchie Stateflow dans laquelle les nouvelles données doivent être visibles. L'objet que vous sélectionnez devient le parent des nouvelles données.
Dans la barre d’outils du Model Explorer, sélectionnez le bouton Add Data
. Vous pouvez également sélectionner Add > Data dans le menu du Model Explorer. Les nouvelles données avec une définition par défaut apparaissent dans le volet Contents du Model Explorer.Dans le volet Data, spécifiez les propriétés des données. Pour plus d’informations, veuillez consulter Set Data Properties.
Conseil
Vous n’avez pas besoin de créer explicitement des données locales ou temporaires dans ces types de fonctions :
Fonctions graphiques des diagrammes utilisant MATLAB comme langage d’action
Fonctions de table de vérité utilisant MATLAB comme langage d’action
Fonctions MATLAB
En revanche, dans ces fonctions, vous pouvez utiliser des variables non définies pour stocker des valeurs qui ne sont accessibles que pendant le reste de l'appel de la fonction. Pour stocker des valeurs qui reviennent dans divers appels de fonction, utilisez des données locales au niveau du diagramme. Dans les fonctions MATLAB, vous pouvez également utiliser le mot-clé persistent.
Bonnes pratiques concernant l’utilisation de données dans des diagrammes
Prévention de l'héritage de propriétés de données de sortie depuis des blocs Simulink
Les données de sortie Stateflow ne doivent pas hériter des propriétés des signaux de sortie. En effet, les valeurs se propagent à partir des blocs Simulink et peuvent être imprévisibles.
Génération d’un code plus efficace au moyen des données in situ
Vous pouvez améliorer les performances et réduire l'empreinte mémoire du code généré pour vos diagrammes Stateflow, vos tables de vérité et vos tables de transition d’état, au moyen des données in situ. Vous créez des données in situ lorsque vous utilisez le même nom de données pour une entrée et une sortie de diagramme. Lorsque vous générez du code à partir du diagramme, le code généré traite les données d'entrée et de sortie comme un seul argument in situ transmis par référence. L'utilisation de données in situ réduit le nombre de fois où le code généré copie des données intermédiaires et rend ce dernier plus efficace.
Lorsque les données d'entrée et de sortie portent le même nom, vous ne pouvez modifier les propriétés que pour les données d'entrée. Les propriétés des données de sortie sont en lecture seule.