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

C Discussion :

regulation temperature PID


Sujet :

C

  1. #1
    Membre du Club
    Homme Profil pro
    debutant intéressé
    Inscrit en
    mars 2005
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : debutant intéressé

    Informations forums :
    Inscription : mars 2005
    Messages : 76
    Points : 57
    Points
    57
    Par défaut regulation temperature PID
    Bonjour,

    J'ai réalisé une base de données qui enregistre des temperatures et en fonction de celle-ci, commande une résistance électrique via un relais statique afin d'arriver à une température fixée.
    Problème: je voudrais réalise une régulation PID ( Proportionnel, intégral, dérivé) et je bloque.
    J'ai trouvé ce code en C mais qui pourrait me dire à quoi correspond le Ch_i
    Code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Calcul du régulateur PID
    while(20ms)
      {
      th_value = read_therm() ;			// Lecture de la température
      old_ch_p = ch_p ;				// Mémorisation de l'ancienne Proportionnelle
      ch_p = consigne - th_value ;			// Calcul de la Proportionnelle
      ch_i += ch_p ;				// Calcul de  l'Intégrale
      ch_d = ch_p - old_ch_p ;			// Calcul de la Dérivée
      ch_pid = ch_p*KP + ch_i*KI + ch_d*KD ;	// Régulateur à PID
      ch_pwm = (ch_pid*PWM_CYCLE)/1000 ;		// Calcul de la PWM
      timer_chauffe(ch_pwm) ;			// PWM appliqué au transistor
      }
    Suivant la discussion, ce serait une variable mais alors, à quoi correspond t elle au temps 0??????

    Quelqu'un peut il m'aider ou me donner des tuyaux sur une régulation déjà écrite en VB
    j'ai egalement posté ce sujet sur le forum VBA Access.

    Merci

    Eric

  2. #2
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : juin 2005
    Messages : 5 761
    Points : 13 727
    Points
    13 727
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ch_p = consigne - th_value ;
    Calcule l'écart par rapport à la valeur de consigne. Intervient avec pour poids KP qui représente le coefficient de proportionnalité à l'erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ch_d = ch_p - old_ch_p ;
    Est une approximation de la dérivée calculée par la variation de l'écart par rapport à la valeur de consigne. Intervient avec pour poids KD qui représente le coefficient de proportionnalité à la dérivée de l'erreur

    Est une approximation de l'intégrale calculée par sommations successives de l'écart par rapport à la valeur de consigne. Intervient avec pour poids KI qui représente le coefficient de proportionnalité à l'intégrale de l'erreur. Doit donc être initialisée à 0.
    Publication : Concepts en C

    Mon avatar : Glenn Gould

    --------------------------------------------------------------------------
    Une réponse vous a été utile ? Remerciez son auteur en cliquant le pouce vert !

  3. #3
    Membre du Club
    Homme Profil pro
    debutant intéressé
    Inscrit en
    mars 2005
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : debutant intéressé

    Informations forums :
    Inscription : mars 2005
    Messages : 76
    Points : 57
    Points
    57
    Par défaut Regulation temperature PID
    Merci Diogene, cela va bcp m'aider.

    Je réecris mon code et test le système.

    Si cela marche, je cloture sinon .........

    A+

    Eric

  4. #4
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    octobre 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : octobre 2018
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ch_pwm = (ch_pid*PWM_CYCLE)/1000 ;		// Calcul de la PWM
    S'il vous plaît quelqu'un peut m'expliquer cette ligne ?

  5. #5
    Membre averti
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    juin 2012
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : juin 2012
    Messages : 257
    Points : 321
    Points
    321
    Par défaut PWM
    PWM = Pulse Wide Modulation
    C’est pour une alimentation de la résistance chauffante en tout ou rien avec une variation de rapport cyclique.
    Sur un cycle (de période constante) on alimente la résistance pendant le temps ch_pwm (compris entre 0 et le temps du cycle).

  6. #6
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    octobre 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : octobre 2018
    Messages : 3
    Points : 4
    Points
    4
    Par défaut PWM
    Ok.. merci j'aimerais savoir la valeur du PWM_cycle elle sera variable (dans ce programme)?

  7. #7
    Membre averti
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    juin 2012
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : juin 2012
    Messages : 257
    Points : 321
    Points
    321
    Par défaut
    A mon avis c'est une constante (à choisir en fonction de la durée du cycle).

  8. #8
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    octobre 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : octobre 2018
    Messages : 3
    Points : 4
    Points
    4
    Par défaut PID
    Bonjour, j'aimerais savoir comment faire pour retrouver ces paramètres Kp, Ki et Kd

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

Discussions similaires

  1. Regulation PID et autotuning
    Par Benocs dans le forum VB.NET
    Réponses: 2
    Dernier message: 01/08/2013, 22h51
  2. Regulation PID en VBA
    Par grommerch dans le forum VBA Access
    Réponses: 4
    Dernier message: 06/10/2009, 13h39
  3. Réponses: 4
    Dernier message: 01/07/2003, 15h47
  4. recuperation PID
    Par phoulosof dans le forum POSIX
    Réponses: 2
    Dernier message: 26/08/2002, 13h00

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