Réserver une Démo
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

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 :

  • Ces ports peuvent être définis à la fois sur Modelica et Simulink en ajoutant le stéréotype pour l'autre type de port

Création de la Statemachine

Pour définir une Statemachine en tant que diagramme enfant composite du Bloc :

  • Sélectionnez 'New Child Diagramme > Statemachine ' dans le menu contextuel du Bloc , puis
  • Sélectionnez 'New Child Diagramme > Select Composite' dans le menu contextuel du Bloc , puis sélectionnez le diagramme que vous venez de créer

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 Alt + 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

  • Ouvrir le diagramme de définition de Bloc
  • Cliquez sur l'espace libre dans le diagramme
  • Appuyez sur la barre d'espace
  • Dans le sous-menu 'Artefacts', sélectionnez 'Configuration SysMLSim'
    Cela crée un nouvel artefact de configuration SysMLSim

Définir le Paquetage

  • Double-cliquez sur l'artefact de configuration SysMLSim
    Cela ouvre la fenêtre Configurer la Simulation SysML
  • Dans le champ ' Paquetage ', cliquez sur le bouton [...] et sélectionnez le Paquetage contenant le diagramme SysML

Définir Modelica ou Simulink

Dans la liste déroulante du haut, sélectionnez l'outil de simulation à utiliser :

  • Modelica
  • Simulink
Pour plus de détails sur ces paramètres, consultez la rubrique d'aide Configurer la Simulation SysML .

Réglez le Bloc sur Simuler

  • Dans la liste de gauche, sous « Bloc » dans la colonne « Nom », recherchez « HumidifierSystem »
  • Dans la colonne 'Valeur', cliquez sur la flèche déroulante et sélectionnez ' SysMLSimModel'

Sélectionnez les Propriétés à tracer

Vous pouvez maintenant sélectionner les propriétés à tracer :

  • Dans le volet de droite, sélectionnez les ports à 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