Go Down

Topic: Chauffage centrale et inertie (Read 6598 times) previous topic - next topic

zoroastre

Bonjour,

Je prépare le code de mon arduino afin de gérer un chauffage centrale. La partie qui me pose problème se situe au niveau de la gestion des plages de chauffe. En effet, j'aimerais éviter de 'surchauffer' ma maison lorsque mon système passerait d'une plage de nuit ou d'absence à une plage dite  optimale.
En effet, à l'aide de sonde DS1820, j'enclenche mon relais thermostat à une température mini et stoppe mon relais à t+0.2. L'inertie de mes radiateur en fonte fait le reste.

J'aimerais avoir votre avis sur le meilleur moyen de connaitre l'inertie de mon chauffage. J'ai pensé à integrer une variable de temporisation afin de suspendre la chauffe pendant x temps, mais cela ne me semble pas être le meilleur moyen.
Je songe plutôt à comparer les valeurs de temperatures et ainsi savoir si je suis en pente ascendante ou descendante. Peut-être avec la fonction 'map', que je ne maitrise pas...

Merci pour vos aide.

Zoroastre.
Gné! ;)

Jean-François

#1
Jan 02, 2011, 01:39 pm Last Edit: Jan 02, 2011, 01:40 pm by jfs Reason: 1
Il faut programmer un régulateur PID

Il me semble qu'il existe un librairie PID pour Arduino, mais je ne sais pas si elle concerne la même chose.
MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

zoroastre

Merci Jean-Francois pour ta réponse.

Un régulateur PID semble être une idée interessante, le seul souci est qu'il faut piloter un relais à deux positions uniques ON/OFF.
Et un régulateur PID est un algorithme servant à maintenir une tendance...idéal pour maintenir une charge.

La solution, il est vrai, est de calculer la dérivée de mes mesures de température afin de trouver la tendance et ainsi d'agir ou non en conséquence.
Peut-être avec un 'Array' dynamique qui comparerait ses propres valeurs.

@+
Gné! ;)

Bidouille

Bonjour zoroastre,

Si tu veux faire de la régulation de chauffage, y a pas 36 solutions :
- soit tu travailles en tout ou rien pendant des durées ( c'est comme cela que travaille les thermostats d'ambiance).
- soit tu travailles en modulant la température ( c'est comme cela que travaille les régulations de chauffage).

Dans tous les cas, je te conseille de rajouter une sonde de température externe pour capter la température externe ( CQFD  ;D ) car ça permettra ainsi d'intègrer les déperditions de ton habitat qui varient en fonction de cette température externe.

Enfin, si tu as une exposition plein sud, tu peux mettre un capteur de lumière pour détecter le plein soleil / ciel nuageux afin de diminuer la demande du fait de cet apport.

Le but de ces 2 capteurs est d'anticiper pour améliorer le résultat.  

Quelles valeurs prévois-tu pour le fonctionnement "ECO" et "Confort" ?

Euh, c'est quoi la : "fonction 'map'" S.T.P ?

A+

vincelge

Bonjour,
certains régulateurs fonctionnent avec une base de temps de régulation pour améliorer la tenue de la température et éviter les variations dues à l'inertie.
Plutôt que d'avoir 2 modes de fonctionnements (ça chauffe en dessous de la temp de consigne, puis ça s'arrête quand elle est atteinte), ca chauffe de manière discontinue sur une période fixe (10mn par exemple).
Tu as alors un truc du genre:











Chauffearrêt
1mn9mnT°+0.8
2mn8mnT°+0.6
3mn7mnT°+0.4
4mn6mnT°+0.2
5mn5mnT° consigne
6mn4mnT°-0.2
7mn3mnT°-0.4
8mn2mnT°-0.6
9mn1mnT°-0.8


Plus tu t'approches de la T° de consigne, plus les temps d'arrêt sont importants pour que l'inertie soit minimisée.
Si tu es au dessus de la temp de consigne mais que la temp diminue, tu anticipes en chauffant peu de temps, ce qui limite la chute. Le système doit s'auto réguler.

J'ai ce système depuis peu. J'y trouve un inconvénient: le chauffe-eau tourne plus souvent et comme chez moi il est bruyant (bruit d'eau dans les conduites) c'est un peu chiant la nuit.
Je pense qu'à l'utilisation, c'est par contre plus économique & plus confortable
Tous les jours, je roule en Electrique
Arretons de polluer !

Moi & mon Ardu

zoroastre

#5
Jan 03, 2011, 06:53 pm Last Edit: Jan 03, 2011, 06:57 pm by zoroastre Reason: 1
Bonjour Bidouille,

Pour la fonction map, c'est ici : http://arduino.cc/en/Reference/Map

Elle permet de classer par ordre croissant ou décroissant une série de valeurs...Ce n'est pas tout à fait ce que je cherche en fait !!!

Pour ma régulation, je prévois une température d'enclenchement en mode normal à environ 18,2 °C, et un mode Eco à environ 17,2 °C

Pour démarrer mon circulateur, je pilote une carte relais RS485 8 canaux, donc en mode tor.

Le problème et ce que je crains le plus ce sont les pertes inutiles d'energie, surtout lors du passage entre une plage Eco et normale.
En effet, si je décide de retourner en mode normale à 06h00 et que mon chauffage s'enclenche à 05h59 à t°=17,2, ma maison continuera à chauffer jusqu'à la consigne de température normale c-a-d t°=18,2+0.2
Du fait, l'inertie de mes radiateurs est occultée, ce que je cherche à éviter naturellement.

J'ai entrevu sur le forum un solution pour le calcul de moyenne, elle me semble être interessante, pas trop lourde.
Si je calcule la moyenne d'un nombre prédefinis de mesure et la compare à la moyenne précedente, j'aurais ainsi une image de ma tendance, inertie haute ou inertie basse.

Je cherche la meilleur solution tout simplement et aussi généraliste, car je compte intégrer également un mode vacances et absence.

@+
Gné! ;)

zoroastre

Merci Vincelge

Mais ton système est loin d'être optimum me semble-t'il ?

Je cherche plutôt un algoritme ou une régulation contrôlée prenant en compte l'inertie de chauffe...

Je ne doute pas que ton système fonctionne. Pour ma part, hors froid exeptionnel, mon sytème de chauffage démarre environ une fois toutes les 3h30.

Merci bien !

@+
Gné! ;)

vincelge

Ce n'est pas vraiment MON système  ;) .
C'est ce qu'on trouve sur bon nombre de thermostats du commerce.
Pour ma part je cherchais juste un système sans fil qui ne me coute pas les yeux de la tête, la notion des yeux de la tête étant définie par le cout d'un Arduino, d'un LCD, d'une sonde, de modules sans fils. Je trouvais le tout un peu cher, je me suis donc dirigé vers une solution toute faite pour moins cher, et il se trouve qu'elle fonctionne selon ce mode.

En jetant un oeil à la doc de mon thermostat, j'ai vu qu'ils indiquaient que c'était une régulation de type PI.
Plus d'explications sur les types de regulation ici

Ton système démarre toutes les 3h30, mais combien de temps chauffe-t'il ?
S'il tourne une demi-heure, c'est peut-être moins performant que s'il chauffait 5mn toutes les heures ...
Tous les jours, je roule en Electrique
Arretons de polluer !

Moi & mon Ardu

Jean-François

#8
Jan 03, 2011, 08:47 pm Last Edit: Jan 03, 2011, 08:50 pm by jfs Reason: 1
La fréquence de démarrage d'un système à combustion est très importante.
Le démarrage est de loin le moment ou le rendement est le plus mauvais, donc si la chaufferie est surdimensionnée (mise en température rapide), elle démarrera plus souvent et aura un consommation élevée, car phases de démarrage plus fréquentes.
MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

zoroastre

Tout à fait Jean-Francois, et le but de ma quête actuelle est d'obtenir la meilleur inertie pour une régulation optimum et économique.

J'ai effectué mes mesures lorsque la température exterieure était proche de zero, une chauffe d'environ 20 mn toutes les 3h30 avec un thermostat mécanique, dont on connait la précision de fonctionnement (+- 1°C = 2°C d'ecart !!!) me permet de passer de 18°C à plus de 19°C via l'inertie

L'équation du rendement optimal depend donc essentiellement de l'inertie des radiateurs et de la temperature exterieure. Pour la seconde partie, une sonde donnera ses mesures. Quant à la première partie, il s'agit d'une inconnue dont il faut retirer l'image...On peut établir un seuil de démarrage et une consigne d'arrêt, qui peuvent être assujetis à la temperature exterieure, et mathematiquement, coordonner ses valeurs à l'inertie de l'habitat.

Il est vrai que la frequence de fonctionnement du chauffage est une donnée importante, et que dans certain cas, il vaut mieux augmenter cette frequence et diminuer le temps de fonctionnement global.
L'experience me dira ce qu'il en est...


@+

Zoroastre.
Gné! ;)

zoroastre

#10
Jan 04, 2011, 08:09 pm Last Edit: Jan 04, 2011, 08:37 pm by zoroastre Reason: 1
Je pense avoir trouver une solution au problème.

Tout d'abord, j'effectue une moyenne sur un échantillon de mesure, que je compare à l'ancienne moyenne. Si elle est plus grande, soit le chauffage est en fonctionnement, soit il y a distribution calorifique de mes radiateurs. Si elle est plus petite que la mesure précedente, je suis en perdition.

En gros :

moy = (somme de i temperature)/i ;  # Avec i max = 5 par exemple

if (moy >= moy_precedente)
           {
           inertie = 1    #MONTANTE
           }
else
           {
           inertie = 0    #DESCENDANTE
           }

"i" étant le nombre d'echantillon.

La difficulté est d'integrer cette variante "inertie" à la régulation de mon chauffage.
Une solution peut-être :

If (inertie=0)
# Acquisition des nouvelles consignes de temperatures
if (inertie=1)
# Sauvegarde des consignes de temperatures

Ainsi, le temps de l'inertie, les consignes hautes et basses de ma régulation demeure statiques.

@+

Zoroastre.
Gné! ;)

fdufnews

#11
Jan 05, 2011, 11:03 am Last Edit: Jan 05, 2011, 11:06 am by fdufnews Reason: 1
Quote
le but de ma quête actuelle est d'obtenir la meilleur inertie pour une régulation optimum et économique


Je pense qu'il y a une petite incompréhension sur les termes utilisés l'inertie tu la subis (sauf si tu es en train de construire la maison).
Dans un système de chauffage tu vas avoir 2 inerties avec des constantes de temps différentes.
1) l'inertie du circuit de chauffage. J'arrête de chauffer et la température continue de monter. Ou inversement je commence à chauffer et la température continue de descendre.
2) l'inertie thermique du bâtiment. La température est stabilisée pendant combien de temps le bâtiment va-t-il garder cette température.

C'est 2 paramètres sont des constantes qui ne dépendent que des caractéristiques de ton installation de chauffage pour le premier et des caractéristiques de ton bâtiment pour le second. Tu devrais pouvoir les déterminer de manière empirique et les intégrer dans ta boucle de régulation. Sachant que c'est l'inertie thermique du bâtiment qui est la plus importante. Pour donner un ordre d'idée, l'inertie thermique du circuit de chauffage et de l'ordre de la minute (1 à 5 minutes suivant la taille de l'installation). L'inertie thermique du bâtiment peut varier de la dizaines de minutes à une heure (voir plus) suivant la qualité de l'isolation de la maison.

La connaissance de ces 2 constantes te permet d'anticiper l'allumage ou l'extinction de la chaudière et d'éviter les écarts de température, par rapport à la consigne, que tu redoutes

zoroastre

#12
Jan 05, 2011, 11:25 am Last Edit: Jan 05, 2011, 11:49 am by zoroastre Reason: 1
Merci pour ta réponse fdufnews,

Ce que je cherche à determiner et à optimiser ce sont effectivement ces 2 inerties et elles ne peuvent être valables uniquement si je prend en compte la température exterieure et un facteur de correction, il est vrai empirique, que j'incluerai dans mon algoritme suivant mes mesures.

D'où l'interêt de connaitre le front montant ou descendant de l'inertie de mon installation, si l'inertie est en distribution, il n'en demeure pas moins que la temperature exterieure peut être en baisse ou en augmentation. Il en va de même pour la perdition.

Cependant, ce que je cherche avant tout à régler, est le passage d'une plage horaire économique, avec des consignes basses, à une plage dîte normale, avec des consignes supérieures.
En effet, si l'horaire de basculement ne prend pas en compte cette inertie, mon installation continuera de chauffer mes radiateurs inutilement dans le cas où les consignes, elles mêmes, aient basculées peu de temps précedent l'horaire fixé.
L'autre difficulté, est que j'aimerais inclure en plus des modes normale et économique, un mode abscence (pour des abscences supérieures à 2 ou 3 heures je pense) et un mode vacances.
Il m'est donc difficile d'y inclure une temporisation avant redemarrage du système de chauffage, trop aléatoire à mon goût.

C'est la raison pour laquelle j'ai pensé à essayer de retranscrire l'inertie du chauffage...

En esperant avoir été clair,

@+

Zoroastre.

PS : Je suis en travaux effectivement ;)
Gné! ;)

zoroastre

#13
Jan 05, 2011, 11:38 am Last Edit: Jan 05, 2011, 12:21 pm by zoroastre Reason: 1
Prenons un cas concret :

Imaginons qu'il est 5h59, soit 1 minute avant le basculement en horaire normal.

Consigne_eco = 17
Consigne_norm = 18

// 5h59 MODE ECO & temperature = 16,9°

If (temperature < Consigne_eco) :
# chauffage = ON

// 6h01 PASSAGE EN MODE NORMAL

if (temperature < Consigne_norm) :
# chauffage = ON

Mon chauffage tournera jusqu'à la consigne normale max, soit par exemple 18,3 °C (consigne_norm + 0.2 + correction). Donc en pratique de 16,9° à 18,3° !!!

Donc l'idée en effet est de sauvegarder les consignes lorsque le chauffage s'enclenche, mais la question demeure, à savoir à quel moment je réintègre les nouvelles consignes : Réponse, lorsque l'inertie est en perdition NON ???

@+

Zoroastre.
Gné! ;)

zoroastre

#14
Jan 08, 2011, 07:32 am Last Edit: Jan 08, 2011, 08:34 am by zoroastre Reason: 1
Pour illustrer un peu mieux mon propos et connaitre votre avis :

if (state = 1)                           // Chauffage ON
     {
     consigne_mini = old_consigne;    // On travaille avec la consigne sauvegardée
     }
if (state = 0) && (inertie = 0)   // Chauffage OFF && Perdition
     {
     if (consigne != old_consigne)
           {
           old_consigne = consigne;
           }
     consigne_mini = consigne;  // On réintègre la nouvelle consigne.
     }

Ainsi, lorsque mon chauffage est en marche, je travaille avec la consigne précedente.
Ainsi pour réintégrer la nouvelle consigne, il faut que mon chauffage soit à l'arret et que l'inertie soit stable ou en perdition. Ainsi, je profite au mieux de l'inertie.

Par contre, l'efficacité du calcul de ma moyenne est sujette à caution :

     // calcule moyenne sur indoor0 toutes les 5 intervalles.
     if (i = 5)
           {
           calcul_moyenne = (addition/i)
           if (calcul_moyenne > old_moyenne)
                 {
                 inertie = true;
                 }
           else if (calcul_moyenne =< old_moyenne)
                 {
                 inertie = false;
                 }
           old_moyenne = calcul_moyenne;
           i = 1
           }
     else
           {
           addition = (addition + indoor0)
           i++;
           }

Je préfererais avoir un tableau dynamique, dans lequel je comparerais l'ensemble des valeurs (genre les 5 dernières moyennes) pour connaitre la tendance !!!

Une idée ???

@+

Zoroastre
Gné! ;)

Go Up