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]
vil1driver
Messages : 4218
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

chauffage PID

Messagepar vil1driver » 04 avr. 2017, 10:40

Bonjour,

à mon tour de partager mon script de chauffage (version PID) , bien plus simple que le précédent (version hystérésis) qui prenait en compte présence, consignes variables, conso etc..
car j'utilise celui ci dans des pièces qui doivent rester à température constante.

(Rien n'empêche d'y ajouter des plannings niveau thermostat fonction de votre présence ou autre...)

fortement inspiré du travail de certain (merci à eux..), j'ai fais ceci :D (en mode citation pour le voir dans son ensemble)

-- Ce script permet réguler la température de la zone

-- chargement des modules
dofile('/home/pi/domoticz/scripts/lua/modules.lua')

--------------------------------
------ Variables à éditer ------
--------------------------------

local pid={}

pid['debug'] = true -- true pour voir les logs dans la console log Dz ou false pour ne pas les voir
pid['zone'] = 'thomas' -- nom de la zone pour affichage dans les logs et distinction de variables
pid['sonde'] = 'thomas' -- Nom de la sonde de température
pid['OnOff'] = 'chauffage' -- Nom de l'interrupteur virtuel de mise en route
pid['thermostat'] = 19 -- consigne ou 'nom' de l'interrupteur virtuel de thermostat
-- actionneur
pid['radiateur'] = 'radiateur thomas' -- Nom de l'interrupteur de chauffage
pid['invert'] = false -- si On et Off doivent être inversé ou non

-- PID
pid['Kp'] = 45 -- Coefficient proportionnel
pid['Ki'] = 20 -- Coefficient intégrateur
pid['Kd'] = 45 -- Coefficient dérivateur

pid['cycle'] = 10 -- temps en minute d'un cycle PID
pid['secu'] = 30 -- temps mini en seconde entre 2 ordres opposés

--------------------------------
-- Fin des variables à éditer --
--------------------------------


commandArray = {}
compute(pid)
return commandArray


pas bien gros hein :mrgreen: et dupliccable à volonté.. typiquement un par pièce/zone

/!\ ce script doit être de type TIME /!\

seul pré requis à son bon fonctionnement est la création d'un fichier nommé modules.lua dans votre dossier lua, qui aura la charge des calculs utiles.
vous trouverez le lien vers ce fichier dans ma signature.
fichier dans lequel vous devrez juste changer ceci

Code : Tout sélectionner

domoticzIP = '192.168.22.100'
domoticzPORT = '8080'


au niveau des paramètre Kp, Ki et Kd, aucune méthode de calcule pour les déterminer n'a été efficace ici, la méthode empirique reste encore la meilleur..

o Commencer par le Proportionnel tout seul (ki = kd = 0) et le faire augmenter jusqu'à la limite de l'instabilité (doit pouvoir tenir une température comprise entre 1/2 degré sous la consigne et la consigne - sans la dépasser - y aller par palier de 20 puis affiner par 10 et 5)
o Passer ensuite à l'Intégral, même méthode (de bons résultats ici avec Ki = Kp/3 environs)
o Terminer par la Dérivé pour lisser les oscillations restantes (de bons résultats ici avec Kd=Kp)

Image
Dernière édition par vil1driver le 30 janv. 2018, 09:39, édité 9 fois.

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

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.


lbeaudoin
Messages : 8
Inscription : 11 oct. 2016, 10:13

Re: chauffage PID

Messagepar lbeaudoin » 02 oct. 2017, 14:39

Bonjour vil1driver,

merci pour ce partage. Est ce que ce script peut fonctionner avec un Selector Switch ?
Le chauffage que je souhaite utilisé est commandé par le fil pilote.

Merci pour ton retour
Laurent

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

Re: chauffage PID

Messagepar vil1driver » 02 oct. 2017, 21:09

Salut,

On parle ici de commande tout ou rien, On ou Off
Donc oui en ne jouant que sur arrêt et confort (avec réglage haut)
pas besoin de switch selecteur, un simple switch On/Off avec une diode permet cela

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

lbeaudoin
Messages : 8
Inscription : 11 oct. 2016, 10:13

Re: chauffage PID

Messagepar lbeaudoin » 09 oct. 2017, 14:22

Salut,

merci de ton retour.
J'ai préparé pour installation les différents éléments requis pour ton script.
J'ai une sonde dans la pièce, un interrupteur On/Off, un thermostat virtuel dans Domoticz.
C'est très clair pour ces éléments :
    pid['debug']
    pid['zone']
    pid['sonde']
    pid['OnOff']
    pid['thermostat']
Par contre je sèche pour l'actionneur :
    pid['radiateur'] = 'radiateur thomas' -- Nom de l'interrupteur de chauffage
Je ne vois pas à quoi cela correspond...

Merci de ta patience...
Laurent

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 : 4218
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: chauffage PID

Messagepar vil1driver » 09 oct. 2017, 14:52

C'est ce qui commande ton chauffage, qui le met en marche ou le coupe.

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

lbeaudoin
Messages : 8
Inscription : 11 oct. 2016, 10:13

Re: chauffage PID

Messagepar lbeaudoin » 09 oct. 2017, 15:15

Ah ok, chez moi ca correspond à un Qubino en Zwave branché sur le radiateur donc.

Je teste et je te dis
merci pour ta réactivité

rapinou
Messages : 119
Inscription : 17 nov. 2016, 01:44

Re: chauffage PID

Messagepar rapinou » 12 oct. 2017, 22:06

Bonjour vil1driver,

L'hiver approchant, je me posais justement la question de comment peaufiner mon script pour lisser la température au maximum.

Si j'ai bien compris, le PID sert à anticiper les baisses et hausses de température pour donner les ordres en conséquence, plutôt qu'attendre de passer au dessus ou en dessous de la consigne ?

Sur un rayonnant n'ayant pas beaucoup d'inertie, cela est-il efficace ou plutôt à réserver aux radiateurs type inertie fonte ou pierre ?

Merci.
RPI 3 - Raspbian 8 (Jessie) - Domoticz V3.5877

lmet
Messages : 30
Inscription : 30 juin 2017, 18:16
Localisation : Val d'Oise
Contact :

Re: chauffage PID

Messagepar lmet » 13 oct. 2017, 01:22

Bonsoir,
Merci pour ce script mais comment procéder si l'on a plusieurs radiateurs pour seule une zone de chauffage ?
Domoticz : V3.8153-AS 1602

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

Re: chauffage PID

Messagepar vil1driver » 13 oct. 2017, 14:42

@rapinou,

Je ne sais pas, fais l'essai ;)
A mon avis c'est adapté à tout type de radiateur.
Je l'utilise avec un petit soufflant dans ma sdb avec succès.

@lmet,

Fils pilote reliés ou prises obéissant au même ordre
Dernière édition par vil1driver le 13 oct. 2017, 19:39, édité 1 fois.

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

lmet
Messages : 30
Inscription : 30 juin 2017, 18:16
Localisation : Val d'Oise
Contact :

Re: chauffage PID

Messagepar lmet » 13 oct. 2017, 16:08

vil1driver a écrit :@lmet,
Fils pilote reliés ou prises obéissant au même ordre

Quatre radiateurs pilotés en on/off par un IPX800 (quatre dummy switchs avec commande http)
Merci
Domoticz : V3.8153-AS 1602

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 : jacob et 7 invités