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

  • ReadSignal : lecture du niveau de liquide ; cette propriété a une unité « m »
  • ActSignal : Le signal envoyé à l'actionneur pour régler la position de la vanne
  • LiquidFlow : Le débit de liquide aux entrées ou aux sorties ; il a une propriété « lflow » avec l'unité « m 3 /s »

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.

  • Chaque réservoir dispose de quatre ports :
    - qIn : pour le flux d'entrée
    - qOut : pour le flux de sortie
    - tSensor : pour fournir des mesures de niveau de fluide
    - tActionneur : pour régler la position de la vanne à la sortie de
    le réservoir
  • Propriétés :
    - volume (unité='m 3 ') : capacité du réservoir, intervenant dans le bilan massique
            équation
    - h (unité = 'm') : niveau d'eau, intervenant dans le bilan de masse
    équation ; sa valeur est lue par le capteur
    - flowGain (unité = 'm 3 /s') : le débit de sortie est lié à la vanne
    position par flowGain
          - minV, maxV : Limites du débit de la vanne de sortie
BaseController : ce Bloc peut être le parent ou l'ancêtre d'un contrôleur continu PI et d'un contrôleur discret PI.
  • Ports:
    - cIn : Niveau du capteur d'entrée
    - cOut : Contrôle vers l'actionneur
  • Propriétés :
    - Ts (unité = 's') : Période de temps entre les échantillons discrets (non utilisée
    dans cet exemple)
    - K : Facteur de gain
    - T (unité = 's') : Constante de temps du contrôleur
    - ref : niveau de référence
    - erreur : différence entre le niveau de référence et le niveau réel
    niveau d'eau, obtenu à partir du capteur
    - outCtr : signal de commande vers l'actionneur pour contrôler la vanne
    position
PIcontinuousController : spécialisation à partir de BaseController
  • Propriétés :
    - x : la variable d'état du contrôleur

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 :

  • flowLevel : défini comme « SimConstant »

Réservoir

Configurer comme « SysMLSimClass ».

Configuration Propriétés :

  • zone : définir comme « SimConstant »
  • flowGain : défini sur "SimConstant"
  • maxV : défini comme « SimConstant »
  • minV : défini comme « SimConstant »

Contrôleur de base

Configurer comme « SysMLSimClass ».

Configuration Propriétés :

  • K : définir comme « SimConstant »
  • T : définir comme « SimConstant »
  • Ts : définir comme « SimConstant »
  • ref : définir comme « SimConstant »

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 :

  • tank.area: 1 ceci remplace la valeur par défaut 0,5 définie dans l'ensemble de données du Tank Bloc
  • piContinuous.ref: 0.25

RéservoirsConnectedPI

  • contrôleur1.ref: 0.25
  • contrôleur2.ref: 0.4

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.
En résumé, cet exemple montre comment ajuster les valeurs des paramètres en dupliquant un DataSet existant.