Pré. | Proc. |
Régulateur de pression du réservoir d'eau
Dans cette section, nous allons parcourir la création d'un modèle SysML Paramétriques pour un régulateur de pression de réservoir d'eau, composé de deux réservoirs connectés, d'une source d'eau et de deux contrôleurs, chacun surveillant le niveau d'eau et contrôlant la vanne pour réguler le système.
Nous expliquerons le modèle SysML, le créerons et configurerons les Configurations SysMLSim. Nous exécuter ensuite la Simulation avec OpenModelica.
Système en cours de modélisation
Ce diagramme représente deux réservoirs reliés entre eux et une source d'eau qui remplit le premier réservoir. Chaque réservoir est relié à un contrôleur continu proportionnel-intégral (PI), qui régule le niveau d'eau contenu dans les réservoirs à un niveau de référence. Pendant que la source remplit le premier réservoir d'eau, le contrôleur continu PI régule le débit sortant du réservoir en fonction de son niveau réel. L'eau du premier réservoir s'écoule dans le deuxième réservoir, que le contrôleur continu PI tente également de réguler. Il s'agit d'un problème physique naturel, non spécifique à un domaine.
Créer Modèle SysML
Composant |
Discussion |
---|---|
Types de ports |
Le char dispose de quatre ports qui sont typés sur ces trois blocs :
|
Interrompre lorsqu'une Variable Change de Valeur |
LiquidSource : l'eau entrant dans le réservoir doit provenir de quelque part, c'est pourquoi nous avons un composant de source liquide dans le système de réservoir, avec la propriété flowLevel ayant une unité de « m 3 /s ». Un port « qOut » est typé sur « LiquidFlow ». Réservoir : Les réservoirs sont connectés aux contrôleurs et aux sources de liquide via des ports.
|
Blocs de contraintes |
Le débit augmente brusquement à l'instant = 150 jusqu'à un facteur trois du niveau de débit précédent, ce qui crée un problème de contrôle intéressant que le contrôleur du réservoir doit gérer.
L'équation centrale régulant le comportement du réservoir est l'équation de bilan massique . Le débit de sortie est lié à la position de la vanne par un paramètre « flowGain ». Le capteur lit simplement le niveau du réservoir.
Les contraintes définies pour « BaseController » et « PIcontinuousController » sont illustrées dans ces figures.
|
Diagramme Interne de Bloc |
Il s'agit du diagramme Bloc interne d'un système avec un seul réservoir.
Il s'agit du diagramme Bloc interne d'un système avec deux réservoirs connectés.
|
Exécuter Simulation
Étant donné que TankPI et TanksConnectedPI sont définis comme « SysMLSimModel », ils seront répertoriés dans la zone de liste déroulante « Modèle » sur la page « Simulation ».
Sélectionnez TanksConnectedPI et observez les modifications suivantes dans l'interface graphique :
- Combobox « Ensemble de données » : sera rempli avec tous les ensembles de données définis dans TanksConnectedPI
- Liste « Dépendances » : collectera automatiquement tous les blocs, contraintes, fonctions SimFunctions et types de valeurs directement ou indirectement référencés par TanksConnectedPI (ces éléments seront générés sous forme de code OpenModelica)
- « Propriétés à tracer » : une longue liste de propriétés de variables « feuille » (c'est-à-dire qui n'ont pas de propriétés) sera collectée ; vous pouvez en choisir une ou plusieurs à simuler, et les Propriétés seront affichées dans la légende du tracé
Créer un artefact et configurer
Sélectionnez 'Simulate > Comportement du Système > Modelica/Simulink > SysMLSim Configuration Manager'.
Les éléments du Paquetage seront chargés dans le Gestionnaire de Configuration.
Configurez ces blocs et leurs propriétés comme indiqué dans ce tableau .
Note : Propriétés non configurées comme 'SimConstant' sont 'SimVariable' par défaut.
Bloc |
Propriétés |
---|---|
Source liquide |
Configurer comme « SysMLSimClass ». Configuration Propriétés :
|
Réservoir |
Configurer comme « SysMLSimClass ». Configuration Propriétés :
|
Contrôleur de base |
Configurer comme « SysMLSimClass ». Configuration Propriétés :
|
Contrôleur continu PI |
Configurer comme « SysMLSimClass ». |
RéservoirPI |
Configurer comme « SysMLSimModel ». |
RéservoirsConnectedPI |
Configurer comme « SysMLSimModel ». |
Configuration du jeu de données
Cliquez-droit sur chaque élément, sélectionnez l'option « Créer un jeu de données Simulation » et configurez les jeux de données comme indiqué dans ce tableau .
Élément |
Ensemble de données |
---|---|
Source liquide |
Niveau de débit : 0,02 |
Réservoir |
h.début: 0 Gain de débit : 0,05 superficie: 0,5 maxV: 10 minV: 0 |
Contrôleur de base |
T: 10 K: 2 Ts: 0,1 |
Contrôleur continu PI |
Aucune configuration nécessaire. Par défaut, le Bloc spécifique utilisera les valeurs configurées à partir du jeu de données par défaut du super Bloc . |
RéservoirPI |
Ce qui est intéressant ici, c'est que la valeur par défaut peut être chargée dans la dialogue « Configurer les données Simulation ». Par exemple, les valeurs que nous avons configurées comme dataSet par défaut sur chaque élément Bloc ont été chargées comme valeurs par défaut pour les propriétés de TankPI. Cliquez sur l'icône de chaque ligne pour étendre les structures internes de la propriété à une profondeur arbitraire.
Cliquez sur le bouton OK et revenez au gestionnaire de configuration. Les valeurs suivantes sont alors configurées :
|
RéservoirsConnectedPI |
|
Simulation et analyse 1
Sélectionnez ces variables et cliquez sur le bouton Résoudre. Ce graphique devrait prompt :
- source.qOut.lflow
- réservoir1.qOut.lflow
- réservoir1.h
- réservoir2.h
Voici les analyses du résultat :
- Le débit du liquide augmente brusquement à l'instant = 150, jusqu'à 0,06 m 3 /s, soit un facteur trois du débit précédent (0,02 m 3 /s)
- Réservoir 1 régulé à une hauteur de 0,25 et réservoir 2 régulé à une hauteur de 0,4 comme prévu (nous avons défini la valeur du paramètre via l'ensemble de données)
- Les réservoirs 1 et 2 ont été régulés deux fois pendant la simulation ; la première fois avec un débit de 0,02 m 3 /s ; la deuxième fois avec un débit de 0,06 m 3 /s
- Le réservoir 2 était vide avant qu'il n'y ait un flux provenant du réservoir 1
Simulation et analyse 2
Dans l'exemple, nous avons défini les propriétés du réservoir « minV » et « maxV » sur les valeurs 0 et 10 respectivement. Dans le monde réel, un débit de 10 m 3 /s nécessiterait l'installation d'une vanne de très grande taille sur le réservoir.
Que se passerait-il si nous changions la valeur de « maxV » à 0,05 m 3 /s ? Sur la base du modèle précédent, nous pourrions effectuer les modifications suivantes :
- Sur le « DataSet_1 » existant de TanksConnectedPI, cliquez-droit et sélectionnez « Dupliquer le DataSet », puis renommez-le en « Tank2WithLimitValveSize »
- Cliquez sur le bouton pour configurer, développez « tank2 » et saisissez « 0,05 » dans la colonne « Valeur » pour la propriété « maxV »
- Sélectionnez « Tank2WithLimitValveSize » sur la page « Simulation » et tracez les propriétés
- Cliquez sur le bouton Résoudre pour exécuter la simulation
Voici les analyses des résultats :
- Notre changement s'applique uniquement au réservoir 2 ; le réservoir 1 peut réguler comme avant sur 0,02 m 3 /s et 0,06 m 3 /s
- Lorsque le débit de la source est de 0,02 m 3 /s, le réservoir 2 peut réguler comme avant
- Cependant, lorsque le débit de la source augmente à 0,06 m 3 /s, la vanne est trop petite pour permettre au débit de sortie de correspondre au débit d'entrée ; le seul résultat est que le niveau d'eau du réservoir 2 augmente
- Il appartient alors à l'utilisateur de résoudre ce problème ; par exemple, changer pour une vanne plus grande, réduire le débit de la source ou fabriquer une vanne supplémentaire.