Page 16 sur 34
Re: chauffage PID
Publié : 19 avr. 2018, 14:04
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

Re: chauffage PID
Publié : 20 avr. 2018, 15:25
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
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 !
Re: chauffage PID
Publié : 24 nov. 2018, 12:19
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..
Re: chauffage PID
Publié : 24 nov. 2018, 18:12
par lmet
Bonsoir,
Super
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'
Re: chauffage PID
Publié : 24 nov. 2018, 18:21
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.
Re: chauffage PID
Publié : 25 nov. 2018, 00:07
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.
Re: chauffage PID
Publié : 25 nov. 2018, 08:24
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 ?
Re: chauffage PID
Publié : 25 nov. 2018, 12:34
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)

Je te tiens au jus ...
Re: chauffage PID
Publié : 25 nov. 2018, 19:41
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
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 (86.07 Kio) Consulté 5281 fois
Encore merci pour ce travail remarquable!
Re: chauffage PID
Publié : 26 nov. 2018, 08:38
par Hawk49
Woaw ! Vivement que j'ai le temps de remettre le nez là dedans !
Super boulot !