IMA4 2017/2018 P60 : Différence entre versions

De Wiki de Projets IMA
(Fonction de transfert du système)
(Fonction de transfert du système)
Ligne 349 : Ligne 349 :
 
On décrira notre système linéaire du second ordre avec le modèle mathématique, il aura une fonction transfert sous la forme suivante :  
 
On décrira notre système linéaire du second ordre avec le modèle mathématique, il aura une fonction transfert sous la forme suivante :  
  
[[Fichier:FT1.png||vignette|center|100px|Fonction transfert en forme canonique]]
+
[[Fichier:FT1.png||vignette|200px|Fonction transfert en forme canonique]] [[Fichier:FTt.png||vignette|300px|Fonction transfert par rapport au temp]]
 
 
[[Fichier:FTt.png||vignette|center|200px|Fonction transfert par rapport au temp]]
 
  
 
On a choisi les valeurs de la fonction, en tenant compte la courbe de la cuve 1 à 6 volts. Le gain (K) est la différence entre la hauteur maximale et la minimale, cet à dire 35,5-21,5= 14. Nous utiliserons … ? 63% du le gain (14*0,63=8,82). Pour les valeurs des τ_n on a tracé un tangent au point de flexion de cette courbe, La tangente à t=0 est horizontale et la tangente au point d'inflexion de la courbe coupe l'axe des abscisses en τ1 et l'asymptote de la valeur finale en τ1+τ2.
 
On a choisi les valeurs de la fonction, en tenant compte la courbe de la cuve 1 à 6 volts. Le gain (K) est la différence entre la hauteur maximale et la minimale, cet à dire 35,5-21,5= 14. Nous utiliserons … ? 63% du le gain (14*0,63=8,82). Pour les valeurs des τ_n on a tracé un tangent au point de flexion de cette courbe, La tangente à t=0 est horizontale et la tangente au point d'inflexion de la courbe coupe l'axe des abscisses en τ1 et l'asymptote de la valeur finale en τ1+τ2.

Version du 11 avril 2018 à 13:32


Présentation générale : Commande de niveau d'eau

Système 2 cuves

Objectifs

Observateur.png

Le principal objectif de ce projet est de créer un observateur, c’est-à-dire reconstruire des valeurs dont on ne dispose pas directement (débit de sortie, niveau d’eau, débit dans le tube reliant les 2 cuves) et de celle dont on dispose, à partir de valeurs mesurées et du modèle du système qui sera identifié.

Cet observateur va nous permettre de détecter s’il y a des anomalies (exemple : fuites) dans le système lors d’une simulation grâce à un capteur logiciel. Avec celui-ci nous allons pouvoir d’ailleurs voir la différence des valeurs entre le capteur physique et le capteur logiciel obtenu par l’observateur pour savoir si cela est cohérent. Et pouvoir alors gérer les pannes de capteurs s'il y en a.

Analyse du projet

Positionnement par rapport à l'existant

La mesure d'eau est essentielle pour la collecte de données statistiques et le commande de processus de l'industrie chimique, pétrochimique, et nombreux autres secteurs. Nous analyserons deux concurrents de différents secteurs. Le premier, ERM automatisme industriels, est chargé de la distribution d'eau potables, ils utilisent aussi une système de distribution à base de réservoirs, une pompe et de vannes. ils utilisent aussi le programme Labview pour la commande et mesures des réservoirs. Ils font études des systèmes stables et instables en boucle ouverte ou fermée. Nous analyserons juste une système en boucle fermée.

Analyse du premier concurrent : ERM automatisme industriels

Objectif

Etude des régulations de niveau, débit et pression dans les réservoirs et réseaux d’eau potable: Puisée et rendue potable, l’eau de consommation est généralement transportée vers un ou plusieurs réservoirs situés en hauteur.

Systeme

Son système doit permettre la distribution d'eau potable en quantité suffisante pour satisfaire aux besoins quotidiens des usagers et en même temps répondre à des soins exceptionnels et urgents (lutter contre les incendies. Le niveau des réservoirs, le débit et la pression de l'eau sont par conséquent contrôlés, ajustés et optimisés en permanence.

Régulation et distribution d’eau potable: Le système est constitué dans sa version de base de: •Réservoir d’eau représentant une réserve d’eau naturelle •Cuve de stockage d'eau potable •Transmetteur de niveau analogique (Ultrasons) pour mesure du niveau d'eau dans la cuve •Pompe à débit variable assurant le remplissage de la cuve •Un Transmetteur de débit analogique (Effet Vortex) •Vanne ¼ de tour manuelle permettant de régler le débit d'eau gravitaire en sortie de la cuve •Electrovanne de perturbation de débit

Commande

Des exécutables Labview de contrôle commande et mesures sont fournis avec le matériel.

• Analyse fonctionnelle: systèmes de stockage et distribution d’eau potable (SysML fourni) • Etude des différents principes de mesures (Lois physiques, capteur, transmetteur,...) • Etude des pompes à débit variable et des vannes • Identification d’un système stable en BO, en BF (Description des différentes méthodes) • Régulation et asservissement de niveau simple (P, PI, PD, PID), • Régulation de niveau intégrateur • Etude d’un système instable en BO, en BF(Description des différentes méthodes) • Etude des économies d’énergie dans la gestion d’un réseau d’eau potable

Analyse du second concurrent : L'activité PISCINE

Objectif

Fondateur d’une société spécialisée dans les installations de sécurité pour les piscines. Le niveau automatique ou remplissage automatique se charge seul de compléter le niveau d’eau d’un bassin, à la suite d’une évaporation, de baignades turbulentes ou d’un lavage de filtre. On l’installe notamment en présence d’un volet automatique immergé.

Problème

La régulation du niveau d’eau de leur piscine. Soit ils n’avaient pas pensé, à la construction, à équiper leur bassin d’un système automatique, soit ce système scellé dans les plages était tombé en panne et ne pouvait être réparé qu’à grands frais. Les solutions qu’ils avaient trouvé n’étaient pas satisfaisantes : jeter un tuyau d’arrosage dans le bassin et attendre de longues minutes, ou faire « biper » une alarme (mais elle ne bipe jamais au bon moment.

Bien pratique, ce dispositif peut toutefois, si l’on n’y prend pas garde et s’il n’est pas équipé d’un dispositif d’alerte détectant un remplissage constant et anormal, masquer une éventuelle fuite. Pièce maîtresse, le robinet flotteur est relié généralement directement au réseau d’eau de la commune avec une simple vanne d’isolement, quand elle existe.

Pour peu qu’il soit défectueux (coincé en position d’ouverture à la suite d’une accumulation de dépôt de calcaire, par exemple), le remplissage ne s’arrête plus. Et si la piscine est pourvue d’un trop-plein, l’apport d’eau neuve risque de s’écouler longtemps avant que l’on ne s’en aperçoive.

Commande

Risque potentiel de fuite et des quelques contrôles indispensables à connaître afin d’éviter les mauvaises surprises, à savoir :

  • un remplissage automatique en action est généralement audible et un bruit d’eau permanent doit alerter l’utilisateur ;
  • un niveau d’eau toujours trop haut dans une piscine dépourvue de trop-plein doit lui mettre la puce à l’oreille ;
  • une température d’eau qui ne s’élève pas (et pour cause : on remplit à l’eau froide !) est anormale ;
  • un traitement d’eau, contrecarré par l’ajout d’eau incessant du réseau qui vient annuler l’effet des corrections, reste inefficace…

Sans ces contrôles, un dysfonctionnement ne peut être détecté

Solutions

Un moyen simple et efficace pour limiter ces pertes d’eau consiste à raccorder le robinet flotteur à une électrovanne pilotée par une horloge programmée 1 à 2 heures par jour, selon le débit du réseau. Cela permettra de compenser les pertes d’eau normales sans masquer d’éventuelles fuites ou un blocage du robinet flotteur. Un simple programmateur ménager suffirait techniquement pour piloter une électrovanne en 220 V, mais on la choisira impérativement en basse tension 24 V par mesure.

Scénario d'usage du produit ou du concept envisagé

Ce projet peut être mis en place dans les usines utilisant des fluides comme le pétrole, ou encore du liquide explosif. Ce qui peut représenter un grand danger notamment s'il y a des anomalies dans le processus. Il y a donc une nécessité de superviser chaque mesure du système. Pour mettre en place ceci nous avons alors besoin de redondance de capteurs. Mais dans ce cas, que faire lors d'une panne de capteurs ? On va devoir vérifier les cas d’erreurs les plus probables. Pour cela, on va avoir besoin de prévoir la valeur des variables critiques du système et l'associer avec une solution possible selon le problème.

Réponse à la question difficile

Question : Est-ce possible de réaliser un tel projet avec tout type de système (système ouvert, ...) ?

La création d'un observateur est possible pour tout système dynamique avec des mesures de grandeurs connues. Car, en soit un observateur d'état est une extension d'un modèle représenté sous forme de représentation d'état. Lorsque l'état d'un système n'est pas mesurable, on conçoit un observateur qui permet de reconstruire l'état à partir d'un modèle du système dynamique et des mesures d'autres grandeurs.

Préparation du projet

Analyse fonctionnelle

Bete a cornes.png

Choix techniques : matériel et logiciel

Pour ce projet, nous allons avoir à disposition le système à 2 réservoirs présent en C008. Celui est composé de deux réservoirs, six vannes, d'un serpentin de retard, d'une pompe et d'un panneau de commande. Ce système est commandé par un ordinateur équipé d’une carte d’acquisition National Instrument, et du noyau Temps Réel dans le logiciel Matlab.

Matlab simulink est un logiciel de modélisation visuelle des systèmes physiques et dynamiques qui peut simuler diverses données avec l'objectif d’assurer que le système marche conformément aux spécifications données et aussi l’optimiser.

Le logiciel a la fonction de réguler le système à cuve en utilisant trois solutions différentes :

  • Un correcteur PID
  • Une régulation en cascade
  • La logique floue

Selon la solution choisie, il trouvera les paramètres du correcteur, présentera la courbe du niveau d’eau en fonction du temps, et corrigera l’erreur du système en sachant les entrées mais sans la connaissance de son modèle mathématique.

Liste des tâches à effectuer

Etape 1 :

Modélisation mathématique du système à l'aide des lois physiques puis estimation des paramètres du modèle à l'aide des données (débit d'entrée et hauteurs mesurées).

Exemple : Si on a modélisé le système et on obtient un deuxième ordre qui est de la forme : Y(p)/U(p)= K/(p^2+a*p+b). Pour estimer les paramètres du modèle, il faut estimer K, a et b

Etape 2 :

Conception de l'observateur du système (fait par calcul) et son implémentation sous Matlab Simulink.

Etape 3 :

Génération des signaux indicateurs de défauts appelés résidus à partir des mesures recueillies directement sur le système physique et données générées par l'observateur

Etape 4 :

Mise en place d'un test statistique pour générer des alarmes

Réalisation du Projet

Feuille d'heures

Tâche Prélude Heures S1 Heures S2 Heures S3 Heures S4 Heures S5 Heures S6 Heures S7 Heures S8 Heures S9 Heures S10 Heures S11 Heures S12 Heures S13 Total
Analyse du projet 8 8
Travail sur le wiki 2 1 1 1 3 2 2 2 2 1 1
Modélisation sous Simulink 3 2 2 1
Filtrage du signal + Étalonnage des réservoirs (tension -> cm) 3 2 2 2
Recherche sur les différents éléments du système (principe, datasheet,..) 2 3 1 2 2 2 1
Simulation sur système réel pour récupérer des données 2 1 3

Présentation générale du système

Schéma du système des 2 cuves















Principes des éléments du système

Câblage du système
Carte d'acquisition PCI 6024-E

Le système utilise la carte d'acquisition de données de la série NI SC-2345 de National Instruments. La carte prend la mesure à haute tension à partir de capteurs (dans notre cas Pressure Transmitters P28) avec le conditionnement des signaux du NI SCC. Elle arrive à obtenir un taux d'échantillonnage jusqu'à 200k éch./s, avec une résolution de 12 bits sur 16 entrées analogiques asymétriques. En fonction de votre disque dur, le débit de transfert en continu de la carte PC 6024 peut atteindre 200k éch./s.

Serie SC-2345

Le SC-2345 est doté de connecteurs configurables qui accepte des mini-panneaux de connexion d'E/S, pour une connectivité directe aux signaux/capteurs. Ces boîtiers pour modules de conditionnement de signaux SCC se connectent directement aux matériels d'acquisition de données. Sa fonction est de conditionner des signaux analogiques et numériques de notre dispositif d'acquisition de données (PCI 6024-E)

MATLAB

En utilisant les matériels NI, nous avons en main un système d'exploitation, un environnement de développement d'application et un choix d'applications logicielles souples. On utilise alors le logiciel MATLAB pour développer le système pour les applications de test, de mesure et de contrôle/commande, qui permet d’accéder rapidement au matériel et aux informations sur les données et on peut afficher les signaux d'E/S. Une interface en ligne de commande, qui est un des éléments du bureau MATLAB, nous permet d’exécuter des commandes simples. Des séquences de commandes peuvent être sauvegardés dans un fichier texte, sous la forme d’un « script » ou encapsulé dans une fonction pour obtenir des calculs.
Par exemple, les calculs du filtre PB :

Fonction MATLAB pour calculer les paramètres d'un filtre
Capteurs de niveau des cuves

Le système utilise un capteur de niveau d'eau de type "Transmetteur de pression PCE-28" pour chaque cuve. Ce capteur est capable de mesurer la pression, sous-pression et pression absolue d'un liquide et donner une sortie analogique.

  • Câblage des capteurs aux entrées du panneau de commande (SC-2345)

- Relier les bornes "+" des entrées à l'alimentation 24Vcc

- Relier le capteur H1 à l'entrée E2 (ach3)

- Relier le capteur H2 à l'entrée E3 (ach9)

- Relier la borne du signal d'entrée du système à l'entrée E1 (ach0)

- Relier l'entrée S au débit que la pompe doit fournir (DAC0)

Sur le logiciel Matlab les entrées commencent à partir de 1, contrairement au SC-2345 qui commence en 0. Si on veut alors retrouver le numéro de channel attribué aux entrées/sorties, on notera leur numéro +1. Ici, le capteur H1 se trouvera alors en channel 4 et le capteur H2 en channel 10.

Panneau de commande SC-2345

Modélisation sous Simulink

Système Simulink

Notre premier objectif était d'abord de se familiariser avec le logiciel Matlab en lien avec la maquette des 2 cuves via la carte d'acquisition 6024E intégrée dans la tour d'ordinateur et connectée à la commande qui permet de gérer le système.

Pour commencer, afin de créer le modèle sous Simulink, il nous fallait savoir comment était contrôlée la pompe du système pour faire parvenir l'eau jusqu'aux cuves. Après quelques observations, nous constatons que la pompe est commandée par un moteur situé à l'intérieur du système. Pour faire démarrer le moteur, il nous faut donc lui envoyer une certaine tension. Sous Simulink, pour envoyer une tension, nous plaçons un bloc step, qui correspond à un signal continu de X Volts que nous avons à définir. Nous avons alors donné une valeur de 5V arbitrairement, qui pourra être modifiée par la suite mais qui pour l'instant est suffisante pour faire tourner le moteur qui déclenche la pompe et nous permet de remplir les cuves d'eau.

Pour envoyer cette tension au moteur du système on utilise le bloc "Analog Output" (car c'est une valeur qu'on envoie) en paramétrant le numéro de channel sur 1 car l'entrée de la pompe est câblée sur ACH0 (expliqué dans la partie précédente). La tension est alors envoyée via le boitier SC-2345, ce qui permet d'alimenter le moteur, et donc de démarrer la pompe qui va pouvoir remplir une ou deux cuve(s) avec un certain débit.

Ensuite, ce que l'on veut récupérer comme données pour l'instant c'est le niveau d'eau de chaque cuve. Pour récupérer ces valeurs, on regarde où sont câblés les sorties de chacun des capteurs. On note que le capteur pour la première cuve est câblé sur ACH3, et le capteur de la seconde cuve est câblé sur ACH9. On va alors placer 2 blocs "Analog Input" (car on reçoit des données) sur Simulink, un avec comme numéro de channel 4 (1ère cuve) et un avec un numéro de channel 10 (2ème cuve). On place alors dans un premier temps un scope à chaque sortie pour visualiser les signaux de chaque capteur. On remarque alors que nos signaux sont très bruités et qu'ils ont une valeur qui ne correspond pas du tout à une mesure de niveau en cm (ce qui est normal vu qu'on a des capteurs de pression). Pour avoir un signal correct à étudier, on va filtrer le signal afin de réduire un maximum le bruit. Pour cela, on va ajouter le bloc "Discrete Transfer", qui prend en paramètre les coefficients du numérateur et du dénominateur de la fonction de transfert. La démarche de cette méthode sera expliquée dans une prochaine partie.

On a désormais un signal filtré mais nous avons toujours des valeurs qui ne correspondent pas à une mesure en cm. Il va falloir, pour résoudre ce problème, étalonner notre signal. On place alors un bloc "Function Block Parameters", qui utilise la méthode d'interpolation pour réaliser notre étalonnage. On va alors affecter à chaque 5 cm, la valeur que l'on reçoit du capteur. Ceci sera également expliqué dans la prochaine partie plus en détails.

On aura alors en sortie de chaque capteurs (après avoir passé chaque bloc) un signal qui correspond au niveau d'eau en cm, de chaque cuve en temps réel.

Maintenant que ceci est fait, nous avons créer un sous système qui regroupe les blocs de filtrage et d'étalonnage du système afin que cela soit plus épuré dans notre système final.

Filtrage du signal et étalonnage

Filtre etalonnage.jpg

Pour résoudre le problème du bruit sur le signal de sortie, nous avons d'abord régler la fonction de transfert de notre filtre pour diminuer le bruit avec une valeur de gain obtenu à l'aide des fonctions tf et c2d (conversion d'un système de temps continu à temps discret) de MATLAB.

Nous avons par la suite ajouté l'étalonnage, sa fonction est de donner une relation de valeurs entre la tension reçue et la hauteur en cm du réservoir. Car les capteurs de pression du niveau d’eau mesurent seulement une tension. Ainsi, pour trouver les valeurs à mettre dans notre bloc pour l'étalonnage, une personne a visualisé la hauteur de l'eau tous les 5cm de chaque cuve, tandis que la deuxième a noté les valeurs correspondantes en tension indiquées grâce au scope placé sur notre système Simulink.

Lors de la phase d'étalonnage, il faut que les vannes restent dans la même position, par conséquent nos résultats étaient faux lors de notre première mesure et nous avons du réitérer cette opération. Car nous avions fait l'étalonnage sur le premier réservoir en fermant la vanne reliant les 2 cuves, puis nous avions ouvert celle ci pour réaliser l'étalonnage sur le second réservoir et de ce fait cela modifiait les résultats obtenus sur le premier réservoir.

De plus, notre tuteur nous a demandé de recalibrer notre signal d'entrée du système qui correspond à une tension envoyée au moteur qui commande la pompe, en regardant au niveau du signal de sortie sur le scope à partir de quelle tension la courbe devient linéaire, et ensuite ajuster le signal d'entrée en fonction de ceci.

De ce fait, nous avons choisi un signal d'entrée de 9V afin d'être dans la partie linéaire de la pompe et d'avoir un débit suffisant au niveau de la pompe pour réaliser un étalonnage correct en ayant la vanne de sortie ouverte et le remplissage des 2 cuves entièrement.


Fonction de transfert du système


Rédaction en cours

Simulation du systéme

En regardant les signaux des deux capteurs de niveau d’eau, avec notre tuteur, nous avons conclu que le système a un comportement non linéaire pour une tension d'entrée à 3 volts. De ce fait, pour la suite du projet, nous allons ignorer cette plage de valeurs (0 à 3V) en entrée. Le capteur de pression servant pour les niveaux d'eau ne sont pas précis. En effet, si on augmente le signal d’entrée entre 0 et 9 volts, le débit de la pompe change et par conséquent, la pression varie et ne donne pas en temps réel le bon résultat. Il y a toujours un laps de temps pour que cela se stabilise un minimum.

Nous identifions alors notre système de deux cuves comme système du deuxième ordre. Les équations différentielles linéaires de deuxième ordre et de coefficients constants, décrivent la dynamique d’un système qui à l’intérieur a deux éléments de stockage d'énergie, dans notre cas, il s'agit des deux réservoirs d’eau. Nous avons fait une simulation avec une signal d’entrée de 5 volts pendant 10 minutes et à 6 volts pendant 56 minutes et on a obtenu un signal pour chaque cuve de la hauteur par rapport au temp.

On décrira notre système linéaire du second ordre avec le modèle mathématique, il aura une fonction transfert sous la forme suivante :

Fonction transfert en forme canonique
Fonction transfert par rapport au temp

On a choisi les valeurs de la fonction, en tenant compte la courbe de la cuve 1 à 6 volts. Le gain (K) est la différence entre la hauteur maximale et la minimale, cet à dire 35,5-21,5= 14. Nous utiliserons … ? 63% du le gain (14*0,63=8,82). Pour les valeurs des τ_n on a tracé un tangent au point de flexion de cette courbe, La tangente à t=0 est horizontale et la tangente au point d'inflexion de la courbe coupe l'axe des abscisses en τ1 et l'asymptote de la valeur finale en τ1+τ2.

Tan.png

On a mesuré la valeur de τ_2 et dans notre cas est quasi nulle, donc si le système est équivalent à deux systèmes du 1er ordre placés en série, il est possible le simplifier à un système de second ordre.

1ordreserie.png

Finalement la fonction transfert est :

Selon la courbe obtenue, on aura un τ=200 au 63% du gain.

Documents techniques

Capteur de pression (niveau d'eau)
Vannes électriques "PD type" (pompe et cuve)
Moteur pompe (équivalent)
Boitier permettant de relier la carte d'acquisition avec la commande