RSS

MonThermostat : Fonctionnement du Demon (Partie 2)

28 Juin

Je vous avais expliqué de manière simple le fonctionnement du démon (Partie 1), et me voici de retour sur ce dernier !
Dans ce billet, je vais m’attarder en détail sur la fonction qui active ou non le chauffage.

  • Dans un cas simple, le démon lit la température de consigne (qu’il a trouvé dans la base de donnée) ainsi que la température intérieur et agit sur le radiateur (Marche ou arrêt). Dans le meilleur des mondes, on pourrait se contenter de ce système.
  • Dans un cas normal, d’autre facteur entre en jeu : le temps de chauffe (combien de temps le radiateur met pour augmenter la température de la pièce de 1°C) et la température extérieur (plus dure de chauffer si il fait -12°C dehors)
  • Dans un cas réel, les pannes sont aussi des facteurs à prendre en compte : si la sonde de température intérieur ne fonctionne plus il faut passer la zone en « roue libre » et ainsi éviter : soit de couper complètement le chauffage soit de chauffer à plein régime pendant le temps de la panne.
  • Le Temps de chauffe

Le temps de chauffe varie en fonction de la puissance du radiateur et son type, la configuration de la pièce et son isolation mais aussi de la température extérieur. Voici un cas concret de ces jours-ci (ya plus de saison !) :

Superficie la pièce : 35m2
Radiateur de 2000W à inertie (en Pierre : stéotite)

Dans cette exemple ci: le premier 0,5°C gagné dans la pièce a été effectif au bout de 55 minutes, on gagne 0,5°C toutes les 23 minutes.
Donc, cette exemple montre que le temps de chauffe du radiateur à froid est très importante et qu’il doit être géré par « MonThermostat ».

  • Les mode de fonctionnement

Pour chaque zone du Thermostat, on pourra utiliser ou non une sonde de température extérieur et par ce système activé le Thermostat en mode simple ou en pré-calculé dont voici les simulations avec les paramètres relevés dans le cas réel ci-dessus.

– Mode Simple :

Note: on demande 20°C à 11h00 mais avec le temps de chauffe les 20°C sont atteint à 12:30.

– Mode pré-Calculé :

Note: Pour avoir à 11h00 20°C, le radiateur doit démarrer à 9h30.

  • Le Deamon en cours de développement

Voici la première ébauche du « deamon », ou plutôt les logs de ce dernier en « Mode Simple »:

——–DEBUT LOG————————————————————————–

daynumb=4
–[Zone_0]——————————————-
HeaterCmdCheck:http://192.168.1.20:40405/stats/37/output/latest
TempProbeCmd:http://192.168.1.20:40405/stats/4/temperature/latest
OSid:none
UseExtTempProbe:0
–SetPointReach———— Time: 14 : 26 Inputs: UseExtTempProbe=0 TempExt=15 TempInt=13.2 HeaterStat=1 Priority=1 ACMode=0 WarmupCalc=none Correction=1 SetPointTab=20 SetPointTabTomo=20 ————SetPointReach– Simple Mode SetPointTemp[28]=12; -HeaterMode Enable- T:13.2+1 Heater Temp greater than SetPoint 1
No Change on Heater Stat[Low]
HeaterStatus=low
NowTemp=13.2 with Correction 14.2
NowOpenS=NO
ZoneError=0
——————————————[Zone_0]—
Zone_1 is disable
Zone_2 is disable
Zone_3 is disable
Zone_4 is disable
Zone_5 is disable
Zone_6 is disable
Zone_7 is disable

——————————————————————– FIN LOG ——————————

Dans ce cas, il est 14h26, la consigne de température est 12°C et la pièce est 14,2°C (avec la correction de 1°C sur la sonde): résultat le chauffage doit rester arrêté (low).

 
8 Commentaires

Publié par le 28 juin 2012 dans Hardware, MonThermostat, Software

 

8 réponses à “MonThermostat : Fonctionnement du Demon (Partie 2)

  1. Fritz

    28 juin 2012 at 14:25

    Je n’ai pas bien compris comment tu traites l’impact de la température extérieure. Tu peux re expliquer ?

     
  2. madomotique

    28 juin 2012 at 22:23

    Salut Fritz,
    La température extérieur a un impact sur le temps de chauffe du radiateur: c’est certain. Après à quel niveau ? je n’ai pas pu faire encore le test. Il faudrait que j’exploite les données relevées cet hiver avec Domogik, mais je n’avais pas de sonde extérieur. Il faudra refaire l’expérience donc…
    Je prévois pour le moment la possibilité d’utiliser une formule type ax+b=y pour faire le calcul de pré-chauffage sur radiateur.

    Suis-je clair ?

     
  3. Fritz

    2 juillet 2012 at 18:09

    J’avoue être encore perdu sur comment tu vas gérer la formule…
    Pour moi, le chauffage sera commandé en tout ou rien : ça chauffe ou ça chauffe pas. Du coup, je vois mal comment introduire un élément (hors temporel mais celu-ci on l’aura déjà via la surveillance température voulue vs consigne) prenant en compte la température extérieure…

    A moins d’avoir une clim réversiable et de gérer le flux d’air qui rentre ?

     
  4. madomotique

    10 juillet 2012 at 11:33

    Salut Fritz,
    Exact le chauffage sera commandé en « tout ou rien » mais avec la formule sera là pour pré-calculer le démarrage du radiateur.
    Disons que tu as pour température de consignes 20°C à 10h: le système devra calculer à quelle heure démarrer le radiateur (en fonction de la température intérieur/extérieur et le temps de chauffe): pour être certain d’avoir ces 20°C à 10h.

    Plus clair ?

     
  5. Frunk

    31 août 2012 at 05:31

    Pour rebondir sur tes echanges avec fritz, tu devras gerer un nouvel etat logique « prechauffage » dans ton algo, par contre tu vas avoir des soucis de logique. Si ma consigne prevoit 19.5° jusqu’à 19h44 et 21° à 19h45, et même 19.5° à 20h45, ça va être mathematiquement difficile. Ça ne serait pas mieux de simplement glisser le planning de chauffe en fonction de l’inertie de la piece? Ex: salon =1h -> je decale la consigne, donc le on/off, de 1h sur le planning. Sdb = 10mn, idem

     
  6. madomotique

    31 août 2012 at 21:54

    C’est clair, le décalage de consigne pourrait me simplifier la vie… mon algo n’est pas encore fermé.
    A voir. Merci Frunk !

     
  7. RzBo

    4 septembre 2012 at 06:58

    salut!
    J’ai réalisé un algo de ce genre pour mon chauffage. En fait, l’algo est influencé par ton mode de chauffage : le mien est un poêle à pellets sur lequel je peux faire varier la puissance (pas de mode ON/OFF qui n’est pas adapté pour le poêle).
    si tu as un chauffage électrique, ou basse température (au sol) etc, alors la façon de réguler sera différente.

    la sonde extérieure est presque indispensable pour les chauffages basse température : l’inertie est très grande (plusieurs heures)et les variations doivent être faible, il faut donc anticiper les variations de température à l’extérieur pour réguler en avance de phase et obtenir au mieux une régulation dans la maison. mais attention aux apports solaire passifs (baie vitrée) qui peuvent ruiner la régulation!

    pour ma part j’ai procédé ainsi :
    – a partir des relevés de l’hiver précédent et des consignes que j’appliquais à mon poele, j’en ai déduis une courbe de réponse en fonction de la température intérieure. je ne prends pas en compte la T° extérieure car dans mon cas elle n’influence pas la « réponse » de la puissance de chauffe su poele (8kW) et en plus j’ai des apports solaires importants. J’ai pu en sortir un simple coefficient qui en gros me donne des °C / min / % ( % = puissance du poele). j’ai simplifié sinon j’avais des coeff avec trop de paramètres.
    Du coup, je sais à partir d’un écart de température et une consigne, déterminer combien de temps avant je dois démarrer le poele pour avec x°C à telle heure. A ce temps de montée en température, j’ajoute 45 minutes qui est le temps de mise en route du poele (ventilation, remplissage du cendrier des pellets, mise en flamme des pellets et montée en température du poele, ce temps est fixe)

    – j’ai fait un algo en 3 phase :
    1) calcul du temps restant avant démarrage du poele : fonction de la consigne, de la température actuelle et puissance de chauffe (fixée pour cette phase à 50%)
    2) phase « démarrage » : le poele est en route, il faut attendre que la consigne soit atteinte ou que le temps de montée soit atteint
    3) phase régulation : là j’ai fait un PID . J’ai obtenu les coef de façon avec la méthodique « empirique » (observation de la réponse).

    au final, ça marche super bien, j’ai fait quelques mise au point pour éviter que la température ne dépasse trop si le poele démarre trop fort, mais sinon la régulation fonctionne super bien et j’économise des pellets! ^^

    je programme 2 périodes de chauffes par jour : matin au réveil, le soir pour le retour du boulot et jusq’au couché. en intersaison, si le soleil donne, le poele ne se met pas en route. Il n’y a que l’hiver ou le poele se met en route systématiquement et la domotique régule tout ça.

    A+

     
  8. madomotique

    5 septembre 2012 at 07:37

    Merci RzBo,
    Tout d’abord: bravo pour tes travaux.
    Pour mon thermostat, je pense que je vais mettre le coté « anticipation » de coté (trop compliqué) car je voudrais le mettre en place rapidement: le Froid Arrive !!!
    Et je galère sur l’interface PHP/Mysql…

     

Commentaires...

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s