Pré. | Proc. |
Exemple d'humidificateur
Pour cet exemple, nous passons en revue la création d'un modèle SysPhS d'un humidificateur de pièce pour illustrer l'utilisation des flux de signaux et Statemachines . Les signaux dans 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 complet d'humidificateur 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 SysML Statemachine et voir comment cela est configuré et exécuter dans MATLAB à l'aide de Stateflow, ainsi que dans Modelica.
Conditions préalables
L'exécution de cette simulation nécessite soit :
- 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 SysML Statemachine est :
Pour MATLAB, le diagramme Stateflow généré se compose de :
Pour Modelica, le diagramme généré ressemble à ceci :
Créer un modèle Statemachine Modèle
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, afin de créer des diagrammes d' 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.
Marcher |
La 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 'Control'. Le diagramme de définition de Bloc (BDD) appelé 'Composants de l'humidificateur', qui inclut le Bloc 'Control', n'est qu'un parmi une liste de BDD définissant l'humidificateur.
Le Bloc 'Control' a la Statemachine 'ControlStateMachine' sous la forme d'un diagramme composite; ceci est illustré dans le premier diagramme de la section Vue d'ensemble au début de cette rubrique. Le Bloc 'Control' est l'endroit où les ports et une constante PhS pour le contrôle de l'humidificateur sont définis. Les ports sont de type RealInSignal, qui sont des flux de signaux. |
Types communs |
En tant que démarreur pour 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 Paquetage 'Import'. Pour plus d'informations, consultez le 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 de Simulation SysPhS. Le type de clé utilisé est le RealInSignal ValueType (RealInSignalElement). Cela peut être glissé sur le Bloc en tant que port puis renommé. Comme exemple de définition d'un Port sur le Bloc , dans ce cas le fanPowerOut Port, vous faites glisser un RealInSignalElement sur le Bloc et le définissez comme un Port.
Note :
|
Création de la Statemachine |
Pour définir une Statemachine en tant que diagramme enfant composite du Bloc :
|
Création des States et des transitions |
Dans le diagramme Statemachine enfant, vous ajoutez l'élément Initial, quatre States et un élément Final. Ensuite, nommez-les 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 lien rapide 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 'Control'. Voir l'image dans la ligne précédente des blocs .
|
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 pour cela, sélectionnez la racine Statemachine et appuyez sur + 7.
|
Configurer le comportement de la Simulation
Ce tableau montre les étapes détaillées de la configuration de SysMLSim.
Marcher |
Action |
---|---|
Créer un artefact SysMLSimConfiguration |
|
Définir le Paquetage |
|
Définir Modelica ou Simulink |
Dans la liste déroulante du haut, sélectionnez l'outil de simulation à utiliser :
|
Réglez le Bloc sur Simuler |
|
Sélectionnez les 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 :
Modelica
Simulink
Note : la sortie dans Simulink semble différente car la précision par défaut des modèles Simulink n'est pas suffisante pour cet exemple spécifique. Les paramètres de 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 Afficher le modèle Vue Modèle ou Simulink , qui comprend des conseils pour déboguer tout problème dans le code généré.
Apprendre encore plus
- Modeling for Stateflows
- Referencing the SysPhS Simulation Libraries
- Using the SysPhS Patterns
- Configure SysML Simulation
- Viewing the Generated Model
- Creating Modelica-Specific Blocks
- Creating Simulink and Simscape Specific Blocks
- Démo : Matlab Stateflow dans Enterprise Architect
- WebEA : Exemple d'humidificateur
- WebEA : Humidificateur IBD
- WebEA : ControlStateMachine