Go Down

Topic: [Projet en cours] Régulation chauffage / Avis PID ? (Read 2190 times) previous topic - next topic

BrUnO14200

Feb 21, 2016, 06:31 pm Last Edit: Feb 24, 2016, 11:09 pm by BrUnO14200
Bonjour

Je fais ce post pour partager l'avancement du projet qui m'occupe actuellement .
M'interessant beaucoup à la domotique, je cherchais une idée pour commencer de manière soft.. elle est arrivée assez vite .

Je m'explique : chez moi, nous avons une petite salle de bain avec uniquement un sèche serviette comme chauffage. Le soucis de ce dernier est qu'il ne nous donne jamais pleinement satisfaction .. soit trop chaud , soit trop froid.. j'ai donc trouvé ma première victime ^^ !

L'idée est donc de réguler le machin à la température voulue à une heure donnée pendant une période donnée.. rien de bien extraordinaire je sais mais faut bien commencer par quelque chose ;) !

Je souhaite tester différentes régulations (TOR , PID , ou autres ?? ) à fin de voir laquelle nous correspond le plus selon un rapport confort/économie à définir .
Le facteur économie sera déduit par approximation via la durée de mise en marche du chauffage : c'est clairement approximatif et partiellement faux notamment dûe aux surconso au cycle de démarrage, bref j'y reviendrais plutard et si je vois que c'est aberrant , on verra pour autre chose ;) !

Côté matos il y a du classique :
1 Méga
1 DS1307
1 DS18B20
1 LCD 16X2
1 Relais statique Celduc

Je vais faire un beau schéma sous Fritzing quand j'aurai un peu pratiqué ce logiciel .

J'ai déja fait quelques essais en régulation Tout ou Rien (TOR) sans être en conditions réelles : j'a utilisé un autre radiateur et j'ai mis la sonde à une 20ainte de cms dans une pièce ouverte et près d'un escalier .. bref pas vraiment un endroit stable ..

Une courbe histoire de ...




La suite c'est de gérer l'heure de déclenchement, mettre aussi un détecteur pour savoir si la porte de la salle de bain est bien fermée , tester un système de communication sans fil pour relier ça au PC familial , bref encore pleins d'autres choses à faire ;) !

Ma couveuse :https://forum.arduino.cc/index.php?topic=571843.0

BrUnO14200

Bonsoir à tous !

Je suis entrain d'essayer de régler mon PID pour le chauffage de ma salle de bain de 5m2.

J'utilise la formule suivante :

Commande = (Kp * erreur ) + ( Kd * somme_erreurs ) + ( Ki * delta_erreur )
Avec erreur = consigne - mesure
Somme_erreurs .. Bah somme des erreurs ^^
Delta_erreur : erreur - erreur précédente

En commençant mes tests de Kp , j'arrive à trouver une valeur qui me satisfait , sans trop de d'oscillations mais en étant un peu éloigné de ma consigne (env. 0,5 °C) , du coup j'ai voulu faire intervenir le Kd mais le soucis est que la pièce a une certaine inertie et donc elle met un peu de temps à atteindre une tempêrature proche de ma consigne et que pendant ce temps ma somme d'erreurs augmente tout le temps ... Et donc une fois la consigne dépassée, avec l'inertie , elle met du temps à revenir proche de zéro . Je me suis dit que j'allais augmenter le Kd , sauf que ça fait s'emballer le système et si à l'inverse je le diminue .. bah il me sert plus à rien ^^ !

Auriez vous une piste pour éviter ce phénomène ? Je pensais imposer des limites au produit Kd*somme_erreurs ou alors commencer à compter la somme d'erreurs "le plus tard possible" et non dès le début ...

Merci
Ma couveuse :https://forum.arduino.cc/index.php?topic=571843.0

Artouste

Bonsoir à tous !

Je suis entrain d'essayer de régler mon PID pour le chauffage de ma salle de bain de 5m2.
bonsoir
Si tu n'arrive pas à regler ton PID
c'est peut etre aussi que tu  ne réflechi qu'en surface et pas en volume :smiley-mr-green:

BrUnO14200

J'ai une seule sonde au milieu de la pièce à 1m80 du sol mais je ne comprends pas ceque tu veux dire ... Je devrais utiliser plus de sondes ou rapprocher celle que j'ai de ma source de chauffage ?
Ma couveuse :https://forum.arduino.cc/index.php?topic=571843.0

bilbo83

Bonjour,

Dans ton équation, tu as inversé Kd et Ki.
Ki, c'est intégral et Kd, c'est dérivé. Mais c'est secondaire.
Le Ki permet d'annuler l'erreur statique, c'est à dire qu'au bout d'un certain temps (comme disait Fernand Raynaud), si rien ne change par ailleurs, l'erreur sera nulle.
Par contre, selon la valeur de ce Ki, tu pourras avoir un dépassement.
C'est la qu'intervient le Kd.
D'où la difficulté de régler un PID.

Avec un PID, l'inertie est prise en compte, donc, pas de souci.

Par contre la mesure de la température de l'air, est difficile à faire et à mon avis, c'est le plus gros problème.

Roger.

bilbo83

J'ajouterai qu'un PID pour réguler la température avec un chauffage ne peut pas être optimal puisqu'il n'as pas la possibilité de faire du froid et éviter les dépassements. Cela implique, soit un temps très long pour arriver à température, soit accepter un certain dépassement.

BrUnO14200

Ok merci de ton avis .

J'ai vu pour l'inversion des coeff mais je me suis "bien" trompé partout  donc comme tu dis ça résoud pas le problème.

Je suis conscient que l'air ambiant est soumis à d'importants gradients mais faut bien faire une mesure quelque part ^^
C'est peut être là que ma sonde n'est pas correctement placée ( trop éloignée de la source de chaleur ) .

Concernant l'intérêt d'une régulation PID pour le chauffage d'une pièce, même si c'est pas optimal , c'est mieux que du tout ou rien niveau économie , non ?

Après je suis ouvert à d'autres formes de régulation ;) !
Ma couveuse :https://forum.arduino.cc/index.php?topic=571843.0

rjnc38

Concernant l'intérêt d'une régulation PID pour le chauffage d'une pièce, même si c'est pas optimal , c'est mieux que du tout ou rien niveau économie , non ?
tu n'as pas decrit comment la sortie du PID fait varier la puissance de chauffe a l'aide du relais statique ?

_ArNo_

Je suis le post, je compte aussi faire de la régulation

Et si il y avait une deuxième sondes ?:
- une pour la températures ambiantes de la pièce
- une directement collé au chauffage

un chauffagiste à tenter de m'expliquer un jour la loi d'eau pour régler la chauddière en fonction de la température ext / int et du circuit de chauffage (j'avoue que j'ai vite décroché, chacun son job  :smiley-lol:  )

JLuc

Bonjour,
J'ai fais un (2 en réalité) système de régulation de radiateurs électrique avec un système centralisé etc...
Ma régulation est bien plus simple et s'avère assez bonne dans l'ensemble.
Je mesure (DS18B20 12bits) je regarde si je suis dans la fourchette de consigne - 0.5 et + 0.5 et pour éviter les fonctionnement trop rapproché (courant d'air par exemple) je ne change un état de marche des radiateurs seulement à une valeur en minute (allant de 1 à 3 mn) qui sépare un état d'un autre. L'ensemble de la régulation des températures est homogène à ce jour.
Si cela peut aider...
@+ JLuc

bilbo83

Sans ventilation il est difficile d'avoir une température homogène, même dans une petite pièce, sauf avec un plancher chauffant qui offre une grande surface de chauffe.
Donc la position de la prise de température est importante. En général on place la sonde pas trop prés du chauffage.

@Arno: On utilise la loi d'eau pour contrôler la température à partir de la température extérieure.
Dans une pièce, si la perte de chaleur (due à la résistance thermique) est fixe, alors la puissance à fournir pour avoir une température constante est proportionnelle à l'écart de température intérieur/extérieur uniquement.
Par expérimentation on en déduit un coefficient qui donne la température d'eau qu'il faut pour avoir la température intérieure voulue.

BrUnO14200

tu n'as pas decrit comment la sortie du PID fait varier la puissance de chauffe a l'aide du relais statique ?
Ma variable "Commande" me sert à piloter en PWM une sortie qui commande donc mon relais ;) .

Bonjour,
J'ai fais un (2 en réalité) système de régulation de radiateurs électrique avec un système centralisé etc...
Ma régulation est bien plus simple et s'avère assez bonne dans l'ensemble.
Je mesure (DS18B20 12bits) je regarde si je suis dans la fourchette de consigne - 0.5 et + 0.5 et pour éviter les fonctionnement trop rapproché (courant d'air par exemple) je ne change un état de marche des radiateurs seulement à une valeur en minute (allant de 1 à 3 mn) qui sépare un état d'un autre. L'ensemble de la régulation des températures est homogène à ce jour.
Si cela peut aider...
Ca ressemble fortement à mon essai en Tout ou Rien (voir courbe plus haut ) mais je cherche un peu plus de stabilité .. d'où la PID (peut être une erreur de ma part ..)

Sans ventilation il est difficile d'avoir une température homogène, même dans une petite pièce, sauf avec un plancher chauffant qui offre une grande surface de chauffe.
Donc la position de la prise de température est importante. En général on place la sonde pas trop prés du chauffage.
Tout à fait d'accord mais transformer la salle de bain en soufflerie .. J'en connais une qui vas pas aimer ^^ !
J'aurai bien mis une sonde plus loin mais je vais avoir encore mon problème de somme_erreurs qui va tendre rapidement vers l'infini (et l'au-delà) et donc un Ki qui va foutre le bazar ..

J'ai vu une technique de calcul des différents coeff en fonction du comportement du système face à une série de rampe , on va voir ce que ça donne ;) !
Ma couveuse :https://forum.arduino.cc/index.php?topic=571843.0

rjnc38

Ma variable "Commande" me sert à piloter en PWM une sortie qui commande donc mon relais ;) .
je pense donc (comme JLuc) qu'il faut ralentir la cadence quand tu arrives dans une plage de 0.5° de la consigne. Sur certains CI spécialisés il y a un générateur de signaux triangulaire a frequence très très faible qui décale la mesure ou la consigne (dans une très faible proportion) ce qui provoque un ralentissement des impulsions de chauffages donc une approche plus douce pour éviter les dépassements

BrUnO14200

je pense donc (comme JLuc) qu'il faut ralentir la cadence quand tu arrives dans une plage de 0.5° de la consigne. Sur certains CI spécialisés il y a un générateur de signaux triangulaire a frequence très très faible qui décale la mesure ou la consigne (dans une très faible proportion) ce qui provoque un ralentissement des impulsions de chauffages donc une approche plus douce pour éviter les dépassements
Une sorte de régulation (modulation) pour aider la régulation en fait  :D
Ma couveuse :https://forum.arduino.cc/index.php?topic=571843.0

standardUser

ICI un article complet et très clair sur la loi d'eau.

Go Up