Aller au contenu
Dgille

Heating Manager - PID and more

Recommended Posts

 

Winter is coming !

 

Cela fait un moment que jalouse les thermostats connectés NetAtmo et Nest, mais le coté connecté me gène. Les beaux thermostats MCO ne gèrent la régulation que par hystérisis, bref, il fallait une solution pour nos box préférées.

 

En y réfléchissant, l'excellent Heating Manager de @OJC fourni déjà presque tout le nécessaire, voici donc une version 3.2 qui intègre une gestion de la régulation par PID, en plus des autres modes déjà présents.

 

Le fonctionnement de l'ensemble reste le même, donc si vous êtes nouveaux sur le sujet, commencez par :

 

Citation

 

 

J'en ai profité pour intégrer quelques corrections remontées par les autres membres du forum et d'autres que j'ai découverte.

 

Pour activer le mode PID, il suffit de remplacer les directives setHysteresisMode ou   setProportionalMode par  setPIDMode(default_Kp, default_Ki, default_Kpd, cycle, minCycle).

 

La partie la plus difficile est de fixer les coefficients. Il y a pléthore d'articles sur le sujet, donc interrogez Google !

 

Je vous en propose par défaut, mais pour faire simple :

      - la partie proportionnelle peut être fixée autour de 50 à 60 %

      - la partie intégrale peut être fixée à 20 % de la partie proportionnelle

      - la partie dérivée aux 2/3 de la partie intégrale.

 

Tout cela est à ajuster à votre installation et dépend des caractéristiques de celle-ci, de votre isolation, du type de chauffage et de son inertie, etc....

 

Ayez à l'esprit que le mode PID n'est pas adapté à de brusques variations de consigne, donc si vos règles font de votre thermostat un yoyo, oubliez le PID et utilisez les autres modes !

 

La régulation PID peut générer des temps d'activation très court quand le système est stable, j'ai donc introduit un nouveau paramètre global minP (fixé à 2%), pour ne pas activer chaudières et convecteurs sur de très courtes durées, ce qui est inutile voire néfaste pour l'installation.

 

Amusez vous bien !

 

 

Voici le code de la scène :

 

Heating-manager-scene with PID-3.2.lua

 

Anticipation de chauffe :

Un peu de théorie:

 

En fouillant sur internet, je n'ai pas trouvé beaucoup de littérature sur l'anticipation de chauffe, je n'ai pas beaucoup cherché non plus...
L'algo imaginé consiste à effectuer une approximation linéaire de la montée en température de la pièce à chauffer lors des cycles de chauffe de Heating Manager. Pour ce faire, une fonction d'apprentissage alimente une matrice creuse dont les couples {température de départ, température d'arrivée) donnent une durée pour y parvenir, généralement, la durée du cycle.

 

Pour déterminer la durée d'anticipation, une fonction récursive va chercher un chemin dans cette matrice pour déterminer la durée nécessaire pour aller de la température actuelle à la température de la consigne.

La courbe résultant de la régulation PID ou UBat de Heating manager est en fait découpée en petits morceaux de droite si on en faisant une représentation géométrique.

 

On compare ensuite la durée nécessaire pour arriver à la consigne cible à l'heure H à l'heure actuelle.

 

Passons à la pratique:

 

Cette version de Heating Manager, réalise un apprentissage basé sur les cycles de chauffe, en permanence, même lorsque la fonctionnalité est désactivée (par défaut). Pour avoir une anticipation fiable, il est conseillé de laisser tourner ainsi quelques jours pour constituer la matrice, stockée dans une table Lua, sauvegardée dans la VG HeatingManagerAA.

 

L'apprentissage moyenne les températures de fin de cycle, pour compenser les périodes de chauffe rapide en demi saison et les périodes de chauffe lente en hiver. En cas de brusque changement des conditions climatiques, l'anticipation pourra ne pas être optimale pendant quelques jours, le temps que la matrice s'adapte. Il faut prévoir dans ce cas une marge de sécurité sur vos panneaux, j'intègrerai peut être celle-ci dans une prochaine version.


Pour activer la fonctionnalité, il suffit d'activer la ligne


 self:setAutoAdapt(true)


dans la section configuration de la scène.


Par contre, pour anticiper les cycles, il faut un planning, vous devez donc vous appuyer, soit sur le Heating Provider, soit sur les panneaux de chauffage de la HC2.

Les horaires indiquée deviennent ceux ou la température doit être atteinte.

 

Si vous utilisez les panneaux de chauffage et si une température de vacance ou une dérogation de consigne est en cours, la scène en tient compte et désactive l'anticipation de chauffe.

 

La scène vérifie que le temps d'anticipation ne dépasse pas 3h par défaut. Si vous devez chauffer 6h à l'avance pour obtenir votre consigne, c'est que vous avez un problème de chauffage ou de porte ouverte....:2:

 

J'ai ajouté également une version du VD Heating Provider intègrant la fonctionnalité AutoAdapt.

 

Il aura besoin, en plus du planning, de connaitre la sonde de température de la zone et de l'ID déclaré dans la scène pour identifier le dispositif de chauffe. Deux fonctions pour cela :

 

HeatingManager:addheater("lblZoneJour", "id du qubino ou du FGS" )
HeatingManager:addprobe("lblZoneJour", {id de la sonde,"value"} )

 

Je pense que l'algo peut encore être amélioré, mais je partage cette première version avant de passer à la HC3...

 

Amusez vous bien....

 

 

 

 

Heating_Provider with AutoAdapt 3.4.vfib

heating-manager-scene with PID and AutoAdapt.lua-3.5.lua

Heating Manager V4.0 HC3 BETA with PID and AutoAdapt.lua

Modifié par Dgille
  • Like 4

Partager ce message


Lien à poster
Partager sur d’autres sites

Bah dis donc, sacré boulot, bravo !!

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci, nos box méritent le meilleur (algo) !

Partager ce message


Lien à poster
Partager sur d’autres sites

Et voila, publication de la version 3.4 avec anticipation des cycles de chauffage...

  • Like 2

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour, une nouvelle version 3.5 pour HC2, dans le premier post, qui gère mieux l'anticipation de chauffe lorsque l'horaire de démarrage se situe le jour précédent.

 

En bonus, une première version 4.0 BETA de la scène pour HC3. La version sous forme de QA est en préparation !

 

Bonnes fêtes de fin d'année !

 

 

 

Modifié par Dgille
  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

×