Pages: [1] 2   Go Down
Author Topic: Chauffage centrale et inertie  (Read 5423 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
God Member
*****
Karma: 2
Posts: 802
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

Veuillez indiquer [RESOLU] dans l'entête du titre en éditant votre premier message smiley-wink

Geneva
Offline Offline
Faraday Member
**
Karma: 30
Posts: 3228
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
« Last Edit: January 02, 2011, 07:40:22 am by jfs » Logged

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

0
Offline Offline
God Member
*****
Karma: 2
Posts: 802
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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.

@+
Logged

Veuillez indiquer [RESOLU] dans l'entête du titre en éditant votre premier message smiley-wink

France - Pays de la Loire
Offline Offline
Full Member
***
Karma: 0
Posts: 176
Bidouilleur du dimanche ... et des autres jours de la semaine ...
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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+
Logged

Cergy
Offline Offline
Full Member
***
Karma: 0
Posts: 137
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Tous les jours, je roule en Electrique
Arretons de polluer !

Moi & mon Ardu

0
Offline Offline
God Member
*****
Karma: 2
Posts: 802
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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.

@+
« Last Edit: January 03, 2011, 12:57:01 pm by zoroastre » Logged

Veuillez indiquer [RESOLU] dans l'entête du titre en éditant votre premier message smiley-wink

0
Offline Offline
God Member
*****
Karma: 2
Posts: 802
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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 !

@+
Logged

Veuillez indiquer [RESOLU] dans l'entête du titre en éditant votre premier message smiley-wink

Cergy
Offline Offline
Full Member
***
Karma: 0
Posts: 137
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ce n'est pas vraiment MON système  smiley-wink .
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 ...
Logged

Tous les jours, je roule en Electrique
Arretons de polluer !

Moi & mon Ardu

Geneva
Offline Offline
Faraday Member
**
Karma: 30
Posts: 3228
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
« Last Edit: January 03, 2011, 02:50:12 pm by jfs » Logged

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

0
Offline Offline
God Member
*****
Karma: 2
Posts: 802
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

Veuillez indiquer [RESOLU] dans l'entête du titre en éditant votre premier message smiley-wink

0
Offline Offline
God Member
*****
Karma: 2
Posts: 802
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
« Last Edit: January 04, 2011, 02:37:58 pm by zoroastre » Logged

Veuillez indiquer [RESOLU] dans l'entête du titre en éditant votre premier message smiley-wink

France
Offline Offline
Faraday Member
**
Karma: 36
Posts: 3438
There is an Arduino for that
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
« Last Edit: January 05, 2011, 05:06:03 am by fdufnews » Logged

0
Offline Offline
God Member
*****
Karma: 2
Posts: 802
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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 smiley-wink
« Last Edit: January 05, 2011, 05:49:46 am by zoroastre » Logged

Veuillez indiquer [RESOLU] dans l'entête du titre en éditant votre premier message smiley-wink

0
Offline Offline
God Member
*****
Karma: 2
Posts: 802
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
« Last Edit: January 05, 2011, 06:21:01 am by zoroastre » Logged

Veuillez indiquer [RESOLU] dans l'entête du titre en éditant votre premier message smiley-wink

0
Offline Offline
God Member
*****
Karma: 2
Posts: 802
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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
« Last Edit: January 08, 2011, 02:34:28 am by zoroastre » Logged

Veuillez indiquer [RESOLU] dans l'entête du titre en éditant votre premier message smiley-wink

Pages: [1] 2   Go Up
Jump to: