Pré. | Proc. |
Exemple d'humidificateur
Pour cet exemple, nous allons parcourir la création d'un modèle SysPhS d'un humidificateur d'ambiance pour illustrer l'utilisation des flux de signaux et Statemachines . Les signaux de cet exemple reflètent des quantités physiques, mais diffèrent de l'interaction physique dans le sens de substances physiques avec des débits et des potentiels.
L'exemple d'humidificateur complet est un ensemble complexe de modèles SysML, mais il contient une section qui nécessite l'utilisation de Stateflow de MATLAB pour la simulation. Nous utiliserons cette section de l'exemple pour travailler sur l'utilisation de la Statemachine SysML et voir comment elle est configurée et exécuter dans MATLAB à l'aide de Stateflow, ainsi que dans Modelica.
Prérequis
L'exécution de cette simulation nécessite :
- OpenModelica ou
- Simulink et StateFlow de MATLAB
Aperçu
L'exemple de simulation complet est disponible dans le modèle WebEA . Consultez les liens sous En savoir plus à la fin de cette rubrique.
Le diagramme Statemachine SysML est :
Pour MATLAB, le diagramme Stateflow généré se compose de :
Pour Modelica, le diagramme généré ressemble à ceci :
Créer Modèle Statemachine SysML
Ce tableau montre comment nous pouvons construire le modèle SysML Statemachine pour représenter les états de commutation.
Note : les fonctionnalités complètes de SysML Statemachine ne sont que partiellement prises en charge dans Stateflow et Modelica de MATLAB. Par conséquent, pour créer diagrammes State pour la simulation dans ces produits, il est nécessaire que les types de connecteurs et les types d'objets utilisés dans le modèle Statemachine d' Enterprise Architect contiennent uniquement les fonctionnalités correspondantes prises en charge dans Stateflow et Modelica.
Étape |
Description |
---|---|
Blocs |
Dans SysML, en utilisant SysPhS, les composants principaux de l'humidificateur sont représentés par des blocs. Pour cet exemple, où nous créons une simulation Statemachine , l'accent est mis sur le Bloc « Contrôle ». Le diagramme de définition Bloc (BDD) appelé « Composants de l'humidificateur », qui inclut le Bloc « Contrôle », n'est qu'un des nombreux BDD définissant l'humidificateur.
Le Bloc « Contrôle » contient la Statemachine « ControlStateMachine » sous forme de diagramme composite ; ceci est illustré dans le premier diagramme de la section Présentation au début de cette rubrique. Le Bloc « Contrôle » est l'endroit où sont définis les ports et une constante PhS pour le contrôle de l'humidificateur. Les ports sont de type RealInSignal, qui sont des flux de signaux. |
Types courants |
Pour commencer tous les modèles SysPhS, vous devez vous assurer que les types communs SysPhS sont chargés dans le référentiel et référencés dans le nouveau modèle à l'aide du connecteur Paquetage 'Import'. Pour plus d'informations, consultez Référencement des bibliothèques SysPhS Rubrique d'aide. |
Ports Phs |
Les types de valeur utilisés pour les ports sont prédéfinis dans les bibliothèques Simulation SysPhS. Le type de clé utilisé est le RealInSignal ValueType (RealInSignalElement). Celui-ci peut être glissé sur le Bloc en tant que port, puis renommé. À titre d’exemple de définition d’un port sur le Bloc , dans ce cas le port fanPowerOut , vous faites glisser un RealInSignalElement sur le Bloc et le définissez comme port.
Note :
|
Création de la Statemachine |
Pour définir une Statemachine en tant que diagramme enfant composite du Bloc :
|
Créer les States et les transitions |
Dans le diagramme Statemachine enfant, vous ajoutez l'élément initial, quatre States et un élément final. Nommez-les ensuite de manière appropriée. Note : en appuyant sur la barre d'espace lorsque le diagramme est sélectionné, vous pouvez sélectionner un object initial dans le menu contextuel, puis utiliser le Quick Linker pour ajouter les objets restants. |
Gardes de transition |
Les Transitions entre les States contiennent des conditions dans leurs Gardes. Ces conditions sont définies dans l'onglet 'Contraintes' de la fenêtre Propriétés . Les variables utilisées sont la constante Phs et les ports du Bloc « Contrôle ». Voir l'image dans la ligne Blocs précédente.
|
Comportements |
Chaque State contient un script définissant le mode et l'état du ventilateur. Ces scripts sont définis dans l'opération « Entrée ».
Pour modifier le script, sélectionnez la Statemachine racine et appuyez sur .
|
Configurer le comportement Simulation
Ce tableau montre les étapes détaillées de la configuration de SysMLSim.
Étape |
Action |
---|---|
Créer un artefact SysMLSimConfiguration |
|
Définir le Paquetage |
|
Configurer Modelica ou Simulink |
Dans la liste déroulante supérieure, sélectionnez l’outil de simulation à utiliser :
|
Régler le Bloc pour simuler |
|
Sélectionner Propriétés à tracer |
Vous pouvez maintenant sélectionner les propriétés à tracer :
|
Exécuter Simulation
Dans la page « Simulation », cliquez sur le bouton Résoudre. Cela montre un exemple du tracé généré dans :
Modèleica
Simulink
Note : la sortie dans Simulink est différente en raison de la précision par défaut des modèles Simulink qui n'est pas suffisante pour cet exemple spécifique. Les paramètres Simulink peuvent être modifiés en ouvrant le fichier généré directement dans Simulink.
Vue le Modèle dans Modelica ou Simulink
Pour afficher le modèle généré dans les applications externes, Modelica ou Simulink, consultez la rubrique d'aide Vue le Modèle dans Modelica ou Simulink , qui inclut des conseils pour déboguer les problèmes dans le code généré.
Apprendre encore plus
- Modélisation pour Stateflows
- Référencement des bibliothèques Simulation SysPhS
- Utilisation des Motifs SysPhS
- Configurer Simulation SysML
- Affichage du Modèle généré
- Création de blocs spécifiques à Modelica
- Créer des blocs spécifiques à Simulink et Simscape
- Démonstration : Matlab Stateflow in Enterprise Architect
- WebEA : Humidifier Example
- WebEA : Humidifier IBD
- WebEA : ControlStateMachine