[LUA] Chauffage PID

Vous avez créé 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.
soulflydeath
Messages : 3
Inscription : 18 avr. 2018, 19:41

Re: chauffage PID

Message par soulflydeath »

Bonjour et merci d'avoir pris le temps de me répondre :)

effectivement pour la partie

Code : Tout sélectionner

pid['invert'] = true   -- si On et Off doivent être inversé ou non
j'avais bien mis à true, mais pour les test j'ai essayé en dernier à false avant de copier/coller le code sur le forum.

Et concernant le passage
soulflydeath a écrit :
et j'ai mis pid['radiateur'] = 'Qubino_fil_pilote_cuisine' dans Evenement.
je parle du menu contextuel dans l'application Domoticz > Réglages > Plus d'options > Événements

quand j'essaye de comprendre le code, j'ai l'impression qu'à la première exécution du code, il doit y avoir une création de variable.
Mais que je rentre toujours dans le cas de la première exécution et je ne passe pas a la suite du code :?:
soulflydeath
Messages : 3
Inscription : 18 avr. 2018, 19:41

Re: chauffage PID

Message par soulflydeath »

J'avance à petit pas !
j'ai trouvé le pourquoi du comment concernant la création de variable !
Un problème de vérification de certificat SSL :o
Dans la déclaration des variables du fichier modules.lua, j'ai inscrit le nom de domaine NO-IP vers lequel pointe mon serveur et j'ai pu apercevoir que dans le menu Domoticz > Réglages > Plus d'options > Variable utilisateur, cette fois ci, il y a 2 variables de créée :)
Ca avance !
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: chauffage PID

Message par vil1driver »

bonjour,

Premier jet pour déterminer automatiquement les paramètres de régulation

par le biais d'une petite fonction fraîchement ajoutée au modules.lua

l'usage est simple, il suffit de réutiliser le mini script présenté en début de topic mais en type DEVICE
et d'y changer compute(pid) par autotune(pid)

la fonction va cette fois contrôler votre chauffage en mode hystérésis +-0.1°C
il s'agit de laisser les choses ainsi durant plusieurs heures (la température doit jouer aux montagnes russes de façon régulière)
après environ 3 à 5 pics de température, la fonction devrait vous donner (dans les logs) les valeurs Kp, Ki et Kd préconisées.

ne restera plus qu'à repasser le mini script en type TIME et remettre compute(pid)

j'ai peu de recule, 4 pièces passées à la moulinette hier
pour le moment je trouve la valeur de Ki trop faible mais ai décidé de laisser une chance à la formule et l'ai laissée comme préconisée,
j'ai juste débridé un peu la valeur maxi de la somme des erreurs dans compute(pid)

ici le chiffre 5

Code : Tout sélectionner

-- calcule intégrale
somme_erreurs = round(constrain(somme_erreurs+erreur/2,0,5),2)
A suivre..
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

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

Re: chauffage PID

Message par lmet »

Bonsoir,

Super :D
En test depuis deux heures cela régule autour de la consigne seule petite inquiétude toutes les 5 minutes j'ai :

Code : Tout sélectionner

2018-11-24 16:21:31.895 Status: LUA: PID autotune RDC 
2018-11-24 16:21:31.895 Status: LUA: 0;0;0;0;20;1543072891;0 
2018-11-24 16:21:31.895 Status: LUA: Pu:0 
2018-11-24 16:21:31.895 Status: LUA: A:0 
2018-11-24 16:21:31.895 Status: LUA: Ku:inf 
2018-11-24 16:21:31.895 Status: LUA: Kp:inf Ki:inf Kd:nan 
Je m'attendais à voir une valeur numérique et non "inf" ou "nan"
J'ai du créer la variable utilisateur à la main : PID_autotune_RDC que j'ai mis à '0;0;0;0;0;0;0'
Domoticz : V4.10717
Zigate : V4.11230 plugin:4.5.4 firmware:031a
Mon petit blog domotique
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: chauffage PID

Message par vil1driver »

La variable aurait du être créé automatiquement pourtant.

Pas assez d'éléments recueillis pour calculer.
Il lui faut 2 valeurs max et une mini et les timstamp des 2 valeurs max.

le code pour détecter ces éléments est probablement perfectible.. J'avoue ne pas y avoir passé trop de temps.
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

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

Re: chauffage PID

Message par lmet »

Après huit heures :

Code : Tout sélectionner

2018-11-24 23:55:12.381 Status: LUA: PID autotune RDC
2018-11-24 23:55:12.381 Status: LUA: 0;0;0;0;18.9;1543100112;0
2018-11-24 23:55:12.381 Status: LUA: Pu:0
2018-11-24 23:55:12.381 Status: LUA: A:0
2018-11-24 23:55:12.381 Status: LUA: Ku:inf
2018-11-24 23:55:12.381 Status: LUA: Kp:inf Ki:inf Kd:nan 
Pour une consigne de 19° on oscille entre 18,9° et 19,4° je laisse tourner cette nuit ...
Je n'ai pas touché aux valeurs Kp Ki Kd qui sont définies avant l'appel de la fonction autotune car à priori elles sont recalculées.
Domoticz : V4.10717
Zigate : V4.11230 plugin:4.5.4 firmware:031a
Mon petit blog domotique
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: chauffage PID

Message par vil1driver »

Bon.. Visiblement le code est à revoir :(
Tu aurais du avoir toutes les valeurs..

Pour tenter de debuguer
Ta sonde remonte elle bien plusieurs fois la temps sous comme au dessus de la consigne ?
Vois tu passer dans les logs 'high peak' ou 'low peak' ?
Le dernier chiffre de la série des 7 valeurs passe à 1 lorsque la temp est en hausse ?
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

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

Re: chauffage PID

Message par lmet »

Bonjour,
Non ton code est bon à priori il faut être patient.

Code : Tout sélectionner

2018-11-25 02:03:54.768 Status: LUA: PID autotune RDC 
2018-11-25 02:03:54.768 Status: LUA: 19.4;18.8;0;1543102975;19.3;1543107834;0 
2018-11-25 02:03:54.768 Status: LUA: Pu:25718383 
2018-11-25 02:03:54.768 Status: LUA: A:0.6 
2018-11-25 02:03:54.768 Status: LUA: Ku:106 
2018-11-25 02:03:54.768 Status: LUA: Kp:64 Ki:0 Kd:20446114

2018-11-25 12:23:41.473 Status: LUA: PID autotune RDC 
2018-11-25 12:23:41.473 Status: LUA: 19.3;18.8;1543137587;1543142159;19;1543145021;1 
2018-11-25 12:23:41.473 Status: LUA: Pu:76 
2018-11-25 12:23:41.473 Status: LUA: A:0.5 
2018-11-25 12:23:41.473 Status: LUA: Ku:127 
2018-11-25 12:23:41.473 Status: LUA: Kp:76 Ki:20 Kd:72
La température oscille entre 18,8° et 19,3°pour une consigne de 19°. Donc je n'ai plus qu'à renseigner les valeurs obtenues et repasser en compute(pid) :D
Je te tiens au jus ...
Domoticz : V4.10717
Zigate : V4.11230 plugin:4.5.4 firmware:031a
Mon petit blog domotique
lmet
Messages : 252
Inscription : 30 juin 2017, 18:16
Localisation : Val d'Oise
Contact :

Re: chauffage PID

Message par lmet »

Merci beaucoup @vil1driver cette fonction manquait vraiment. Chez moi cela donnait au pifomètre :
Kp : 65 Ki : 20 Kd : 45 après calcul automatique j'obtiens Kp : 76 Ki : 20 Kd : 72
J'ai remis le fonctionnement en mode compute(pid) vers 14h et ça marche :D

Code : Tout sélectionner

2018-11-25 14:10:00.905 Status: LUA: --------- RAPPORT PID CHAUFFAGE --------------
2018-11-25 14:10:00.905 Status: LUA: PID zone    : RDC 
2018-11-25 14:10:00.905 Status: LUA: Température : 19°C pour 19°C souhaité 
2018-11-25 14:10:00.905 Status: LUA: Kp          : 76 
2018-11-25 14:10:00.905 Status: LUA: Ki          : 20 
2018-11-25 14:10:00.905 Status: LUA: Kd          : 72 
2018-11-25 14:10:00.905 Status: LUA: Erreur      : 0.04 
2018-11-25 14:10:00.905 Status: LUA: Σ erreurs   : 1.75 
2018-11-25 14:10:00.905 Status: LUA: Δ erreurs   : -0.03 
2018-11-25 14:10:00.905 Status: LUA: P           : 3.04 
2018-11-25 14:10:00.905 Status: LUA: I           : 35 
2018-11-25 14:10:00.905 Status: LUA: D           : -2.16 
2018-11-25 14:10:00.905 Status: LUA: Cycle       : 10min (sécu: 30s) 
2018-11-25 14:10:00.905 Status: LUA: Commande    : 36% (03'36") 
2018-11-25 14:10:00.905 Status: LUA: ----------------------------------------------
L'ensemble est stable :
img_002.jpg
img_002.jpg (86.07 Kio) Consulté 5291 fois
Encore merci pour ce travail remarquable!
Domoticz : V4.10717
Zigate : V4.11230 plugin:4.5.4 firmware:031a
Mon petit blog domotique
Hawk49
Messages : 17
Inscription : 05 mars 2018, 10:35

Re: chauffage PID

Message par Hawk49 »

Woaw ! Vivement que j'ai le temps de remettre le nez là dedans !
Super boulot !
Répondre