chauffage PID

Vous avez crée un script lua dont vous êtes fier, un .sh génial, un programme python hors du commun, un tuto , c'est ici que vous pouvez les partager.
Soyez précis quant aux prérequis, les manips à faire pour que votre bijou fonctionne (des chmod ?, un apt-get à faire ...)
Décrivez précisément son fonctionnement
Placez votre code entre [Quote] et {/Quote]
ogulf
Messages : 104
Inscription : 15 juin 2017, 14:41

Re: chauffage PID

Messagepar ogulf » 10 avr. 2018, 08:40

Je vais regarder l'évolution de cette nuit pour :
- température extérieure sous abris
- température salon, exposé ouest
- les consignes de chauffe
J'applique ensuite le calcul proposé par Hawk49 pour estimer la perte de température du salon.
Je refais l'exercice ensuite avec l'historique des derniers jours (je sauvegarde les données de température de toutes mes sondes : faut bien que ça serve !)
J'arriverai peut-être à trouver une formule identique quelque soit l'évolution de la température extérieure.

Sujet très intéressant !
Domoticz Beta sur Raspberry Pi3 + RFPlayer + ZWave+ + RFLink R48 :
- 5 x récepteurs RF660P (gestion chauffage)
- 1 x FGSD-002 (détecteur fumée)
- 7 x F007TH (sonde température/hygro)
- 5 x Emcoluxr EV1527 (contacteur ouverture porte)

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


vil1driver
Messages : 4250
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: chauffage PID

Messagepar vil1driver » 10 avr. 2018, 11:47

il y a un vrai lien avec la température extérieur, pour preuve cet hivers, lors d'une période très froide, mon installation de chauffage devait tourner à 100% pour tout juste atteindre la consigne...

les déperditions dépassaient l'apport.. il faut dire que je ne suis pas super bien isolé et volontairement sous dimensionné en chauffage (je trouve la régule plus souple ainsi)

Le besoin en chauffage est donc bien dépendant de la température extérieure.
Et le réglage du PID est directement fonction de ce besoin.
un réglage optimal est fonction de conditions fixes, consigne, environnement..
un bon réglage par 5°C extérieur ne sera plus forcément idéal s'il fait 15..

j'ai ici récemment adapté les paramètres d'une pièce dont la température commençait à jouer aux montagnes russes

tu n'es pas hors sujet Hawk49, bien au contraire.. ;) tout ceci est très intéressant.

j'ai beaucoup cherché à faire de l'autocalibration mais je suis totalement dépassé :D

Domoticz v3.9203 (ubuntu server) OpenZwave v1.4-3000 (zwave+ sigma designs) mysensors v1.5 (serial gateway) rfxtrx433 fw1015T1

433mhz : thgn800, ms13e2, phenix, Di.O, zk1pa, creasol sender
868mhz : fgms-001, fgfs-101, dsd37-zweu, ZW098
2.4ghz : RGB-3D

modules.lua

ogulf
Messages : 104
Inscription : 15 juin 2017, 14:41

Re: chauffage PID

Messagepar ogulf » 10 avr. 2018, 13:31

Voilà la méthode appliquée pour moi sur ces 3 derniers jours (historique Domoticz) :

Nuit lundi 9 mardi 10 avril
======================
Tx = 11,3 à 22h, f(0)=20
Tx = 9,1 à 04h, f(6)=18,8

Tx=10 (moyenne) entre 22h et 4h
f(0)=l+10=20 ==> l=10
f(6)=18,8 ==> a=(ln(18,8-10)-ln(10))/6=-0.021

==> 0,02°C/heure/degrés écart Tx


Nuit dimanche 8 à lundi 9
=====================
Tx = 13.3 à 23h, f(0)=21.0
Tx = 11.8 à 04h, f(5)=19.5
Tx = 11.4 à 06h, f(7)=19.2 (chauffe depuis 1h avec radiateurs à inertie... on mesure ici le temps de réaction puisqu'on a continué à perdre en t° intérieure !)

Tx=12.55 (moyenne) entre 23h et 04h
f(0)=l+12.55=20.8 ==> l=8.25
f(5)=19.5 ==> a=(ln(19.5-12.55)-ln(8.25))/5=-0.034
f(7)=19.2 ==> a=-0.031 (sans recalculer Tx ni l)

==> 0,03°C/heure/degrés écart Tx


Nuit samedi 7 à dimanche 8
=======================
Tx = 14.6 à 23h, f(t)=23.6 (cheminée)
Tx = 12.7 à 07h, f(t)=20.8

Tx=13.65 (moyenne) entre 23h et 07h
f(0)=l+13.65=23.6 ==> l=9.95
f(8)=19.5 ==> a=(ln(20.8-13.65)-ln(13.65))/8=-0.041

==> 0,04°C/heure/degrés écart Tx



Difficile d'en déduire qqch en l'état puisque les pertes thermiques théoriques varient du simple au double :?
Domoticz Beta sur Raspberry Pi3 + RFPlayer + ZWave+ + RFLink R48 :
- 5 x récepteurs RF660P (gestion chauffage)
- 1 x FGSD-002 (détecteur fumée)
- 7 x F007TH (sonde température/hygro)
- 5 x Emcoluxr EV1527 (contacteur ouverture porte)

rimram31
Messages : 538
Inscription : 04 oct. 2015, 11:22
Localisation : Toulouse

Re: chauffage PID

Messagepar rimram31 » 10 avr. 2018, 13:34

vil1driver a écrit :il y a un vrai lien avec la température extérieur...
Bien sur mais c'est déjà pris en compte par la régulation dont la partie proportionnelle (Kp) calcule la période de chauffe en fonction de l'écart T obtenu - T consigne. Ce que j'ai du mal a voir, mais a vérifier, c'est si la T extérieure a une influence sur la valeur elle-même de Kp (et celles de Ki, Kd ?). De ce que tu décris vil1driver, en fait tu va chauffer "a fond" plus longtemps ...

Pour rappel et/ou info, le paramètre sur lequel on joue est le % de chauffe sur une période de temps donné (je chauffe moitié du temps, 3/4 du temps, tout le temps ...) et le paramètre a controler est la T obtenue, Kp est le ratio delta T / delta % de chauffe, si en chauffant moitié du temps je suis a 15°, les 3/4 du temps a 18, alors Kp vaut (18-15) / (.75 - .50) (donné pour expliquer valeur non réaliste ....)
Raspberry Pi 2 + carte RF pi "maison" + Domoticz
Sonde Oregon + Aliexpress - Prises Chacon (3500W) - 1wire DS18B20

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


ogulf
Messages : 104
Inscription : 15 juin 2017, 14:41

Re: chauffage PID

Messagepar ogulf » 10 avr. 2018, 13:39

Justement, la température de 15°C en chauffant la moitié du temps dépend nécessairement de la température extérieure, sauf à considérer que la pièce (maison ?) est insensible aux conditions extérieures et alors une bougie devrait suffire à la chauffer, non ?

Exemple facile : l'été pas besoin de chauffer pour avoir 15°C.... enfin chez moi ;)

Édit : bien entendu cet hiver il fallait que je chauffe pour avoir 15°C
Domoticz Beta sur Raspberry Pi3 + RFPlayer + ZWave+ + RFLink R48 :
- 5 x récepteurs RF660P (gestion chauffage)
- 1 x FGSD-002 (détecteur fumée)
- 7 x F007TH (sonde température/hygro)
- 5 x Emcoluxr EV1527 (contacteur ouverture porte)

Hawk49
Messages : 16
Inscription : 05 mars 2018, 10:35

Re: chauffage PID

Messagepar Hawk49 » 10 avr. 2018, 22:30

Bon ben en fait je vois que je vous saoule pas trop ! Au contraire, le débat s'anime !

Le fait de ne pas tenir compte de la température extérieure n'empêche pas d'utiliser le PID. C'est juste que ces paramètres théoriques optimaux dépendent des conditions (pas de problème pour les exemples cités dans la littérature citée précédemment car on parle de réguler des machines dans un entrepôt avec des conditions stables ou un chauffage simulé par une résistance dans une pièce stable dans http://www.rhaaa.fr/regulation-pid-comment-la-regler-12).
Le site https://controlguru.com/ mets quand même en garde à ce sujet que la consigne souhaitée a également une influence (et la période d'échantillonage aussi, soit dit en passant)
Si les conditions sont idéales (et les nôtres ne le sont pas du tout !), la méthode (graphique ou non) permet de déterminer "process gain, Kp; process time constant, Tp; and process dead time, Өp".

Au passage, dans ce topic, nous confondons (sans que cela ne me gêne outre mesure) Kp et Kc. Kp est une des 3 caractéristiques théorique du système et Kc correspond au coefficient à appliquer à la partie proportionnelle (le coeff P).
En fait les 3 coef qui nous intéressent et que nous appliquons respectivement à l'écart avec la consigne, la somme des erreurs (intégrale) et le delta d'erreur (dérivée) se déterminent soit empiriquement, soit par calcul (à partir de Kp, Tp et Өp). Les formules sont sur le site controlguru mais aussi reprises en français sur http://www.rhaaa.fr/regulation-pid-comment-la-regler-12.

Tout cela est théorique et applicable, encore une fois dans des conditions théoriques et dans le domaine mathématique du continu. Nos problèmes pour appliquer la recette:
- nous intervenons dans un domaine discret: une mesure de température toutes les x minutes, un calcul de PID toutes les y minutes, ...
- nos données sont bruitées
--> on peut limiter cela en "lissant" un peu les choses, vil1driver le fait dans son implémentation du PID lorsqu'il calcule une moyenne des erreurs par exemple (et sa moyenne est astucieuse puisqu'elle privilégie les mesures les plus récentes d'ailleurs, j'ai pas compris de suite, puis j'ai apprécié)


Mon idée (en automatisant un peu la chose) était de prendre le parti que je n'était pas capable de déterminer convenablement les paramètres moi-même et de passer au côté empirique. Cela sans oublier mon dada pour la modélisation. Comme je suis tomber sur des conditions (presque) idéales lors de mon dernier post, j'en ai profité pour essayer de modéliser les pertes sans chauffage.
J'insiste sur "presque", j'ai pris une température extérieure moyenne car elle me semblait suffisamment stable (1°C d'écart sur 7 heures) pour me le permettre. Il faut savoir que sur le principe, c'est une erreur ! Et du coup ogulf, je pense que tu as poussé la généralisation un peu loin... Je ne suis pas rentré dans les détails pour savoir si cela pouvait expliquer l'amplitude de tes écarts ni leur sens.
De plus, j'ai pris en compte la température ressentie pour ne pas tenir compte que de la température brute pour expliquer les pertes de chaleur (as tu fait pareil ??), le vent étant également un facteur (très) important et très fluctuant.

L'idéal maintenant (et en espérant que mon calcul des pertes n'est pas trop biaisé, ogulf tu m'as quand même sérieusement mis le doute !), serait de réussir à modéliser la réaction de ma pièce en fonction du radiateur (le premier qui dit que ça chauffe quand je l'allume peut prendre la porte !!!).
Et pour ça l'équation différentielle des 2 liens précédent serait idéale mais trop compliquée à évaluer avec de simples mesures (pour moi en tout cas et dans l'état actuel de mon cerveau).

Au final, cela permettrait, à partir des conditions extérieures et du temps de chauffe envisagé, d'anticiper la future température avec une fonction. Charge au système d'adapter le choix du temps de chauffe pour que cette future température colle à nos souhaits.

Et dans un monde idéal (mais nous n'y sommes pas, la réalité est bien complexe), de détecter les perturbations du type "four", "enfant qui laisse la porte ouverte trop longtemps", "amis réchauffant l'ambiance" comme des écarts entre la température réelle et celle qui était prévue.

Hawk49
Messages : 16
Inscription : 05 mars 2018, 10:35

Re: chauffage PID

Messagepar Hawk49 » 10 avr. 2018, 22:52

rimram31 a écrit :
vil1driver a écrit :il y a un vrai lien avec la température extérieur...
Bien sur mais c'est déjà pris en compte par la régulation dont la partie proportionnelle (Kp) calcule la période de chauffe en fonction de l'écart T obtenu - T consigne. Ce que j'ai du mal a voir, mais a vérifier, c'est si la T extérieure a une influence sur la valeur elle-même de Kp (et celles de Ki, Kd ?). De ce que tu décris vil1driver, en fait tu va chauffer "a fond" plus longtemps ...

Pour rappel et/ou info, le paramètre sur lequel on joue est le % de chauffe sur une période de temps donné (je chauffe moitié du temps, 3/4 du temps, tout le temps ...) et le paramètre a controler est la T obtenue, Kp est le ratio delta T / delta % de chauffe, si en chauffant moitié du temps je suis a 15°, les 3/4 du temps a 18, alors Kp vaut (18-15) / (.75 - .50) (donné pour expliquer valeur non réaliste ....)


Kp dépend de la température extérieure dans le sens où ta pièce perd avec l'extérieur mais ton radiateur aussi:
plus ton radiateur est chaud, plus il chauffe le mur localement et plus tu perds de chaleur vers l'extérieur à cet endroit du mur (les pertes sont proportionnelles à l'écart de température)
Donc, le rendement de ton radiateur est meilleur tiède que très chaud.

Ça renvoie à quelques post plus haut sur la question de baisser la température la nuit et de combien. Plus ta pièce est froide la nuit et moins tu perds de calories vers l'extérieur mais plus ton radiateur va galérer pour remonter la température le matin.

ogulf
Messages : 104
Inscription : 15 juin 2017, 14:41

Re: chauffage PID

Messagepar ogulf » 11 avr. 2018, 09:05

Pour précision mon capteur de température extérieure est à l'abris du vent, des intempéries et du soleil (enfin la nuit le soleil ne frappe pas trop la maison !!)

Ce qu'on peut constater dans mes 3 calculs c'est que la plus forte déperdition de chaleur (x degrés/heure/écart Tx) correspond au jour où j'ai allumé la cheminée et donc à la plus forte chaleur à l'intérieur.
Cela corrobore un peu les dires de Hawk49 : plus l'écart est important plus la perte est forte.

La méthode d'auto-apprentissage m'intéresse : elle ne sera jamais parfaite (trop de paramètres externes) mais tellement gratifiante !

Par contre, l'objectif étant d'avoir la bonne température au bon moment il y a plusieurs paramètre modifiables :
- nos 3 coefficients PID
- l'heure de début de chauffe (ou le temps alloué à la chauffe à 100% pour atteindre la consigne : temps incompressible qu'il faut connaître !)
Sur lesquels est il le plus pertinent de jouer ?
Domoticz Beta sur Raspberry Pi3 + RFPlayer + ZWave+ + RFLink R48 :
- 5 x récepteurs RF660P (gestion chauffage)
- 1 x FGSD-002 (détecteur fumée)
- 7 x F007TH (sonde température/hygro)
- 5 x Emcoluxr EV1527 (contacteur ouverture porte)

rimram31
Messages : 538
Inscription : 04 oct. 2015, 11:22
Localisation : Toulouse

Re: chauffage PID

Messagepar rimram31 » 11 avr. 2018, 09:13

Hawk49 a écrit :Bon ben en fait je vois que je vous saoule pas trop ! Au contraire, le débat s'anime ! ...
Pas de soucis, le sujet m'interpelle depuis longtemps ... et j'ai 7 zones de chauffe pour m'y essayer (quoique plutôt l'hiver prochain maintenant :-)). J'ai récemment réinvesti (maigrement ...) dans du xiaomi aqara + sonoff "pour voir" et le pid fait partie des sujets que j'ai envie de reprendre.

Quand je pense que Kp ne dépend (pas trop) de la T extérieure et/ou conditions externes / bruit (de perturbation de la régulation), c'est qu'il intervient en % d'augmentation/réduction de la consigne (elle même un % mais de temps de chauffe) et pas une simple valeur brute de proportionnalité / température. Mais ce ne sont que des hypothèses, le truc qui me fait penser que c'est pas prépondérant, c'est qu'au quotidien, je me satisfait d'une régulation au 1/2 degrés, le pid m'apporterait une progression a la consigne (eco -> confort le matin notamment) plus en douceur qu'aujourd'hui mais suis pas motivé pour évaluer les 3 valeurs de pid de mes 7 zones de chauffage ...

L'idée que j'ai pour ma part serait (d'essayer :-)) d'utiliser une approche type méthode empirique de Ziegler&Nichols ou équivalent (mes liens précédents) pour calculer et/ou réajuster "'automatiquement" les coefficients en observant la réponse du système aux conditions a l'instant t (ou presque) dont j'ignore tout, ma seule donnée c'est la réponse du système -> la T obtenue.

Démarrage (coeff encore inconnus et/ou a recalculer ?) en hystérésis simple (ou avec marge comme j'ai actuellement) et attendre d'avoir des données eco et confort. Partant de là sur une plage de temps assez large on peut avoir deux valeurs de la réponse T (obtenue en moyenne) = f(% tps de chauffe). Le % de tps de chauffe je le connais en moyennant l'historique des on/off de mon hysteresis dans les phases eco/confort. On a donc l'équivalent de ce qui est décris dans l'intro de l'article http://www.rhaaa.fr/regulation-pid-comment-la-regler-12 la réponse du système a deux valeurs de consigne et, si on a stocké qque part un historique incluant le passage de eco a confort, on a aussi les valeurs intermédiaires.

Ca c'est le principe auquel je pense, après je me fais des noeuds au cerveau pour le coucher en algo ... (qui est mon métier).

Suite de mon idée, une fois en "mode PID", on utilise une approche similaire (utilisations des données eco/confort, transition ...) pour réajuster en continu les paramètres, donc je me moque totalement des conditions extérieures, je ne fais qu'observer la réponse sur une période donnée.

Y plus qu'à :D :D :D

Un petit écueil de dz, pas trivial d'avoir un historique de valeurs (entendu en s'appuyant sur des scripts time toutes les minutes) car je pense que dans le principe il faudrait stocker les données a chaque cycle (ou minute ?).

En me promenant sur le net hier soir, je suis tombé là dessus: https://hal.archives-ouvertes.fr/tel-01144024/document oops ... pas utilisable pour notre sujet mais lecture intéressante (pour qui s'intéresse aux automatismes s'entend :-)) Pour les parties IA, c'est pour lecture, je vois pas d'intérêt évident.
Raspberry Pi 2 + carte RF pi "maison" + Domoticz
Sonde Oregon + Aliexpress - Prises Chacon (3500W) - 1wire DS18B20

Hawk49
Messages : 16
Inscription : 05 mars 2018, 10:35

Re: chauffage PID

Messagepar Hawk49 » 11 avr. 2018, 18:31

ogulf a écrit :Pour précision mon capteur de température extérieure est à l'abris du vent, des intempéries et du soleil (enfin la nuit le soleil ne frappe pas trop la maison !!)

Perso, j'utilise les données de Darksky, ça m'évite de calculer la température ressentie.

Ce qu'on peut constater dans mes 3 calculs c'est que la plus forte déperdition de chaleur (x degrés/heure/écart Tx) correspond au jour où j'ai allumé la cheminée et donc à la plus forte chaleur à l'intérieur.
Cela corrobore un peu les dires de Hawk49 : plus l'écart est important plus la perte est forte.

Ben pas vraiment... Normalement c'est déjà induit par le "par °C d'écart", y'a bien un problème dans le calcul de ton coef car il doit être caractéristique de ton isolation et de la capacité thermique de la pièce.

La méthode d'auto-apprentissage m'intéresse : elle ne sera jamais parfaite (trop de paramètres externes) mais tellement gratifiante !

On est donc carrément sur la même longueur d'onde ! :mrgreen:

Par contre, l'objectif étant d'avoir la bonne température au bon moment il y a plusieurs paramètre modifiables :
- nos 3 coefficients PID
- l'heure de début de chauffe (ou le temps alloué à la chauffe à 100% pour atteindre la consigne : temps incompressible qu'il faut connaître !)
Sur lesquels est il le plus pertinent de jouer ?

Pour ma part, je considère que les 3 coef sont là pour assurer une certaine stabilité et donc du confort et des économies.
Je pars donc sur l'heure de début de chauffe à 100% pour atteindre la consigne (ou presque: à l'approche de la consigne on bascule sur le PID pour affiner) et c'est pour ça que je veut anticiper la réaction de la pièce au chauffage d'une part et aux déperditions d'autre part.
(voir la notion de "commande par retour d'état": on pilote à partir d'une simulation de la température qui se doit d'être au plus juste avec la réalité, ce qui permet de s'affranchir en quelque sorte du caractère discret de nos mesures, le continu étant beaucoup plus facile à gérer. Reste que des radiateurs en tout ou rien seront toujours discret mais là encore, le % par période l'atténue).

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.



Revenir vers « La Bibliothèque Scripts et Tutos »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 5 invités