IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

LabVIEW Discussion :

[LabVIEW 8.6] Régulation de température en temps réel


Sujet :

LabVIEW

  1. #1
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 6
    Points : 4
    Points
    4
    Par défaut [LabVIEW 8.6] Régulation de température en temps réel
    Bonjour,

    Je doit réaliser un programme sous Labview qui doit réguler une température (provenant d'une plaque que l'on soude) en temps réel avec des paramètres PID afin que celle-ci ne dépasse pas les 510 °C avec une précision de 30°C. Pour cela, j'utilise labview Real-Time avec le module Compact RIO. J'utilise un pyromètre pour mesurer la température.

    J'ai des idées grossières pour la réalisation (boucle cadencé, algorithme PID) mais l'avis de connaisseurs est toujours le bienvenu.

    Merci d'avance à ceux qui veulent bien m'aider.

  2. #2
    Membre averti

    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    190
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2003
    Messages : 190
    Points : 305
    Points
    305
    Par défaut
    Salut,
    l'idée est là mais est-ce que tu as besoin de conseils pour le faire en labview?
    En gros, une acquisition de la température dans une boucle while et un controle de commande géré par un PID. Il existe des vi de pid, il suffit de chercher dans les exemples.
    Il te faut d'autres idées? Sinon poste un squelette de vi (en 7.1 ou jpeg), si tu veux des conseils plus précis sur la structure.
    A+
    L'ami des tout petits

  3. #3
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Tout d'abord, merci pour ton aide, c'est sympa de ta part.

    Le but de mon projet est de réaliser une régulation d'une température en temps réelle. Il y avait déjà un programme Labview qui réaliser cela mais pas en temps réelle. J'ai joins en pièces jointes le programme initial (son nom est : régulator initial) avec sa face avant ainsi que le programme que j'ai commencé à faire (son nom est : régulatior real time).

    Je veux bien des conseils sur la réalisation du programme ( quelles fonctions utilisées, .... . J'avais déjà fait des recherches sur ce qui se fait en régulation en temps réelle mais je n'ai rien trouver de similaire à ce que je fait ( avis personnel). Tu m'as parler d'exemples, pourrais-tu me joindre un lien où je pourrais les trouver.

    Mais mon tuteur ne veux pas que j'utilise une boucle while, je dois utilisé une boucle cadencé.

    merci et A+
    Images attachées Images attachées  

  4. #4
    Membre averti

    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    190
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2003
    Messages : 190
    Points : 305
    Points
    305
    Par défaut
    Salut,
    pour les exemples, tu vas sous labview dans le menu Aide->rechercher des exemples... c'est tout.
    Dans ce que tu as envoyé, il y a regulator et regulation. Je pense que regulator est l'ancien (1 chance sur 2...). Mais dans l'un comme dans l'autre, la mesure se fait bien en temps réel, et se récupère dans v[0]...
    Quant aux boucles cadencées, ce sont des while avec des horloges intégrées. Ce qui me fait penser que tu dois configurer l'horloge (qui est à 500ms) et retirer la variable "attente" et surtout le vi sablier! Il ne sert à rien puisque la boucle est auto-cadencée. C'est la principale différence avec les boucles while: tu n'as plus à mettre de tempo à l'intérieur. Le dt que tu récupères, tu peux sûrement le prendre dans la liste à gauche (où il y a le "erreur"). Ou sinon le mesurer avec "Tick Counts" (je ne l'ai qu'en anglais, c'est le vi symbolisé par un chrono).
    ((Ben d'ailleurs me dit pas qu'il marche le vi "regulation": le dt doit être bon a la 1ere boucle et à 0 toutes les suivantes vu comme c'est câblé))
    L'ami des tout petits

  5. #5
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Je viens de lire ton post, donc j'ai pas encore eu le temps pour regarder les exemples, mais je le ferais.

    En attendant, voici la nouvelle version de mon programme. Le problème actuel est celui lié au bloc PID. Labview me met l'erreur suivante, PID:Xmode non executable.
    De plus, je ne connais pas la nature de la sortie du bloc PID, est-ce un diagramme, les valeurs des différents paramètres (P, I, D), est-ce la valeur de ma température corrigée?, je ne sais pas.

    Faut-il que cette sortie je la reboucle en entrée de ma boite de calcul (entrée "T").

    Je te remercie en tout cas pour ton aide.
    Merci et A+
    Images attachées Images attachées  

  6. #6
    Membre averti

    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    190
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2003
    Messages : 190
    Points : 305
    Points
    305
    Par défaut
    Désolé, je ne connais pas ce bloc énorme... Le principe du PID, c'est de calculer la différence epsilon entre le set point et la mesure. Puis de pondérer epsilon par P, la dérivée de epsilon (par rapport au epsilon précédent) par D et l'intégrale de epsilon par I.
    A la sortie, tu obtiens donc une valeur qui dépend plus ou moins (en fonction de tes choix de P, I et D) de epsilon. Mais cette valeur n'est que la représentation de la politique de variation de la commande. Elle n'a pas d'unité spécifique pour moi. Elle ne correspond qu'à un coeff à appliquer à la commande.
    Tout ce que je peux faire, c'est de te proposer d'utiliser un tout petit carré bleu intitulé "simple PID". D'un, ça prend moins de place. Et en plus, tu peux voir le code pour comprendre les choses...
    Pour le trouver au plus vite, je vais dans la recherche d'exemples, et je tape PID. Puis j'ouvre le vi "Real-time PID control". Dans le diagramme, tu trouveras "simple PID". Il suffit de lui donner le set point, la mesure, P I D, ainsi que les valeurs limites que l'on veut avoir pour la valeur de sortie.
    Voila à+
    L'ami des tout petits

  7. #7
    Futur Membre du Club
    Profil pro
    Enseignant
    Inscrit en
    Mars 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Mars 2007
    Messages : 6
    Points : 8
    Points
    8
    Par défaut
    Bonjour,
    Le plus difficile dans ce que tu veux faire et de récupérer la mesure, ce qui est déja fait apparement.
    Pour réaliser un régulateur PID , j'utilise le PID avancé qui se trouve dans l'option control (à acheter ...) et j'ai réaliser le régulateur en pièce jointe.
    Ma carte d'aquisition est une carte Cassy de chez Leybold.
    Si tu utilise le simple PID, il faut faire attention à la gestion de la commande manuelle: il faut égaliser les 2 sorties avant de passer en auto et si il n'y a pas d'intégrale y=0 si la mesure X est égale à la consigne W (à faire avant de passer en auto!).
    Petits rappels: Dans un régulateur PID, le gain K ou Gr sert à régler la nervosité de la réponse, le Ti annule l'écart entre X et W et le Td stabilise le système et l'accèlere en réponse à un echelon de consigne.
    La PID à structure parallèlle, comme utiliser dans Labview, a un équation du type:
    y=K*e+1/ti*(integrale de e)+td*(derivée de e)+y0
    e=W-X écart y0= commande en manu avant passage en auto.
    A+
    Images attachées Images attachées   

  8. #8
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    j'ai retravaillé mon programme (qui est joins ), mais j'ai une erreur me disant que le Xnode n'est pas executable. Or apparament, j'ai un fichier de la bibliotéque, et je comprends pas comment régler ce problème.
    Si vous avez une idée pour la solution, je prends.
    Merci encore et A+
    Images attachées Images attachées  

  9. #9
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Bon j'ai régler mon problème de Xnode, j'avais créer mon VI dans l'arborescence de la partie module d'ou le problème.
    Pour le moment, je n'est plus de soucis, mais je vous dis si j'ai de nouveau problème.
    Ba merci pour tout et A+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 29/05/2012, 16h24
  2. [LabVIEW 8.6] Enregistrements de données en temps réel
    Par polo_olop dans le forum LabVIEW
    Réponses: 5
    Dernier message: 21/04/2009, 12h31
  3. [LabVIEW 8.6] Plusieurs boucles en même temps
    Par revivo10 dans le forum LabVIEW
    Réponses: 5
    Dernier message: 21/04/2009, 09h59
  4. Réponses: 3
    Dernier message: 11/06/2008, 19h17
  5. Réponses: 1
    Dernier message: 05/06/2008, 18h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo