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

Arduino Discussion :

Régulation de température avec PID


Sujet :

Arduino

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné

    Homme Profil pro
    Technicien
    Inscrit en
    Août 2013
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Technicien
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2013
    Messages : 440
    Par défaut Régulation de température avec PID
    Bonsoir,

    Pour les besoins d'une expérience (propagation de la chaleur dans une barre), je dois mettre une source chaude à une extrémité d'une barre métallique : pour cela, j'ai mis une résistance. Le problème est qu'en l'alimentant en permanence, je n'obtiens jamais de température constante or j'ai besoin que la source chaude soit à une température constante, il me faut donc une régulation de la température.
    Je pensais utiliser une carte arduino avec un capteur de température (par exemple LM35) comme circuit de mesure et dans le circuit de régulation un relais qui commande le générateur d'alimentation de la résistance.
    Pour améliorer la régulation de la température, j'ai vu qu'il était possible d'utiliser un PID mais je n'ai jamais utilisé un tel dispositif : de ce que j'ai pu glaner comme information, une bibliothèque PID permet de le mettre en oeuvre avec un Arduino.
    D'emblée, j'ai quelques questions qui me viennent à l'esprit :
    - comment le résultat peut être transmis au relais ?
    - comment faire pour déterminer les meilleurs paramètres (Kp, Ki et Kd) ?

    Merci pour votre retour
    [Nouveau] Envie de tracer des circuits électriques : essayez le package LaTeX CircuiTikZ

    Pour créer une belle table des matières sur LibreOffice - N'oubliez pas de consulter les FAQ en cas de question !

    Envie de se lancer dans l'aventure Arduino : allez faire un tour sur ce cours.


    Ma réponse vous a plu ? Un petit vote serait sympa

  2. #2
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    13 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 13 197
    Billets dans le blog
    47
    Par défaut
    Salut,

    La loi de commande pourrait être le pourcentage de temps où le relais est fermé sur une période fixe (par exemple, 1 minute).

    Il existe des bibliothèques, mais si le système est lent, un simple correcteur P devrait déjà donner de bons résultats et reste facile à programmer.

  3. #3
    Membre chevronné

    Homme Profil pro
    Technicien
    Inscrit en
    Août 2013
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Technicien
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2013
    Messages : 440
    Par défaut
    Bonjour

    Je reviens sur mon problème après l'avoir laissé un peu de côté.
    J'ai essayé dans un premier temps une régulation par hystérésis mais qui ne me donne pas une régulation suffisamment bonne pour mon utilisation.
    Par rapport à la réponse, je ne comprends pas comment je pourrais utiliser comme loi de commande le pourcentage de temps où le relais est fermé pendant une période fixe ou plus exactement comment je programme un pourcentage de temps car les seuls exemples que j'ai trouvé dans la régulation de type PID (notamment le fichier exemple fourni avec la bibliothèque PID_v1) est (puisque j'utilise un relais pour alimenter ou non la résistance chauffante) une instruction du type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    digitalWrite(RELAY_PIN, LOW)
    .

    Merci pour l'aide.
    [Nouveau] Envie de tracer des circuits électriques : essayez le package LaTeX CircuiTikZ

    Pour créer une belle table des matières sur LibreOffice - N'oubliez pas de consulter les FAQ en cas de question !

    Envie de se lancer dans l'aventure Arduino : allez faire un tour sur ce cours.


    Ma réponse vous a plu ? Un petit vote serait sympa

  4. #4
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    13 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 13 197
    Billets dans le blog
    47
    Par défaut
    Salut,

    Tu ne peux pas faire une régulation avec une commande qui vaut seulement HIGH ou LOW.

    Exemple en pseudo-code, sans doute à améliorer :

    Boucle infinie
    ....erreur = consigne - température réelle
    ....Si erreur>0 // il faut chauffer
    ........duree_activation = Kp*Erreur + Ki*integrale_erreur + Kd*derivée_erreur
    ........Si duree_activation > 60
    ............duree_activation = 60
    ........Sinon si duree_activation <0
    ............duree_activation = 0
    ....Sinon
    ........duree_activation = 0

    ....Si duree_activation > 0
    ........Activer_relais = Vrai //activer le relais==>chauffage allumé
    ........temporiser(duree_activation)
    ........Activer_relais = Faux //couper le chauffage
    ........temporiser(60 - duree_activation)
    ....Sinon
    ........temporiser(60) // on temporise 1min chauffage coupé.
    Fin boucle infinie

  5. #5
    Membre chevronné

    Homme Profil pro
    Technicien
    Inscrit en
    Août 2013
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Technicien
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2013
    Messages : 440
    Par défaut
    La temporisation de 60 secondes est arbitraire ?
    [Nouveau] Envie de tracer des circuits électriques : essayez le package LaTeX CircuiTikZ

    Pour créer une belle table des matières sur LibreOffice - N'oubliez pas de consulter les FAQ en cas de question !

    Envie de se lancer dans l'aventure Arduino : allez faire un tour sur ce cours.


    Ma réponse vous a plu ? Un petit vote serait sympa

  6. #6
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    13 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 13 197
    Billets dans le blog
    47
    Par défaut
    Oui, 60s ce n'est qu'un exemple. Trop court et ton relais "clignote", trop long et le système n'est pas assez réactif, cela dépend de l'inertie de ton système.

Discussions similaires

  1. Régulation température avec un seul capteur
    Par DavidBoulouart dans le forum Automation
    Réponses: 22
    Dernier message: 09/02/2016, 22h29
  2. Réponses: 5
    Dernier message: 05/06/2009, 16h28
  3. Régulation de température
    Par bennacer dans le forum LabVIEW
    Réponses: 9
    Dernier message: 18/05/2009, 09h05
  4. [LabVIEW 8.6] Régulation de température en temps réel
    Par polo_olop dans le forum LabVIEW
    Réponses: 8
    Dernier message: 08/04/2009, 08h15
  5. Réponses: 4
    Dernier message: 22/11/2007, 10h34

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