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]
Répondre
vil1driver
Messages : 5095
Enregistré le : 30 janv. 2015, 11:07
Localisation : Rennes (35)

chauffage PID

Message par vil1driver » 04 avr. 2017, 10:40

Bonjour,

à mon tour de partager mon script de chauffage (version PID)

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['sonde_ext'] = '' -- Nom de la sonde de température ext si présente
pid['OnOff'] = 'chauffage' -- Nom de l'interrupteur virtuel de mise en route (été/hiver)
pid['thermostat'] = 19 -- consigne ou 'nom' de l'interrupteur virtuel de thermostat
pid['ref'] = 8 -- écart entre temp ext et consigne au moment de l'autotune

-- 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['Kb'] = 1 -- Coefficient de boucle ouverte

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)
--autotune(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.
acefx a écrit :
13 avr. 2019, 21:02
le chemin des scripts Lua sur syno 6.2 c'est
volume1/@appstore/domoticz/var/scripts/lua
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,
une fonction permet de les déterminer automatiquement, par une très légère modification du script.
il suffit simplement de passer le script en type DEVICE et de remplacer compute(pid) par autotune(pid)
votre chauffage va du coups fonctionner en mode hystérésis +-0.1°C
l'autotune va alors analyser sur plusieurs heures (la consigne doit être fixe) votre courbe de température
et vous proposer (dans les logs) un triplet de valeurs adéquates.

ne restera plus qu'a indiquer ces valeurs dans le script et à le repasser en type TIME, sans oublier de remplacer autotune(pid) par compute(pid)

ajustement dynamique des coefficients pid selon les fluctuations de température extérieure et/ou de consigne
indiquer l'écart approximatif entre consigne et température extérieure au moment de l'autotune -> pid['ref']
Kb corresponds en gros à la qualité de votre isolation (0 pour une isolation parfaite ou pour désactiver)
exemple si l'autotune à été réalisé avec 10°C extérieur pour une consigne de 19°C
indiquer ref = 9
si Kb = 1, alors 1% de modification sera appliqué aux 3 coeff pid, par degré d'écart
soit +5% s'il venait à faire 5°C dehors ou si vous passez la consigne à 24°C

Image
Modifié en dernier par vil1driver le 30 janv. 2018, 09:39, modifié 9 fois.

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 : 10
Enregistré le : 11 oct. 2016, 10:13

Re: chauffage PID

Message par 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 : 5095
Enregistré le : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: chauffage PID

Message par 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

lbeaudoin
Messages : 10
Enregistré le : 11 oct. 2016, 10:13

Re: chauffage PID

Message par 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 : 5095
Enregistré le : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: chauffage PID

Message par vil1driver » 09 oct. 2017, 14:52

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

lbeaudoin
Messages : 10
Enregistré le : 11 oct. 2016, 10:13

Re: chauffage PID

Message par 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
Enregistré le : 17 nov. 2016, 01:44

Re: chauffage PID

Message par 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 : 182
Enregistré le : 30 juin 2017, 18:16
Localisation : Val d'Oise
Contact :

Re: chauffage PID

Message par 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 : V4.10717
Zigate : Dz: 4.11230 plugin:4.5.4 firmware:031a
Mon petit blog domotique

vil1driver
Messages : 5095
Enregistré le : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: chauffage PID

Message par 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
Modifié en dernier par vil1driver le 13 oct. 2017, 19:39, modifié 1 fois.

lmet
Messages : 182
Enregistré le : 30 juin 2017, 18:16
Localisation : Val d'Oise
Contact :

Re: chauffage PID

Message par 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 : V4.10717
Zigate : Dz: 4.11230 plugin:4.5.4 firmware:031a
Mon petit blog domotique

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.


Répondre