Go Down

Topic: PoolMaster: gestion et domotisation de ma piscine (Read 24964 times) previous topic - next topic

johnrock

D'expérience, un verre de chlore liquide change le pH de ma piscine (50 000L) d'environ 0,1.
Donc ce que tu vois avec 6000x moins d'eau ne parait pas aberrant. Je n'ai pas d'expérience avec l'eau de javel et ne sais pas si c'est plus concentré que la chlore liquide utilisé en piscine. Si plus concentré j'hésiterais à l'utiliser pour des questions de sécurité. La pompe à chlore peut tourner en journée lorsque tu as des baigneurs...
Et pour répondre à ta question, il faut réduire la valeur du Kp du PID pour réduire la dose injectée de chlore. Si tu divises par deux ça en injecte deux fois moins. Diminuer le Kp risque de ne plus permettre d'atteindre la consigne, donc moins risqué que de l'augmenter...
En Amérique du Nord, le chlore pour piscine est typiquement concentré à 12% alors que l'eau de javel est environ à 3.5%. Je commencerai donc le Kp avec une valeur de 1 et j'augmenterai progressivement. Je ne croyais pas que la pompe serait aussi efficace! 

Loulou74

Je ne croyais pas que la pompe serait aussi efficace!
Elle le sera peut-etre moins lorsqu'il faudra injecter dans une tuyauterie sous pression (filtration en route)...

johnrock

Elle le sera peut-etre moins lorsqu'il faudra injecter dans une tuyauterie sous pression (filtration en route)...
Bon point. Et pour la loop de regulation, est-ce que je comprends bien que si l'intervalle est d'une seconde, quand le PID part la pompe, il faudra attendre au moins 1 seconde pour la fermer (ou pas)? Si c'est le cas, il y a-t-il un minimum pratique d'intervalle pour la loop? Est-ce 100ms serait envisageable? 

gixy31

La science c'est que plus l'eau est chaude, plus il y a de développement bactérien. Donc plus il faut filtrer pour éviter cela : le passage dans le filtre et l'agitation de l'eau empêche le développement. La règle empirique est celle donnée par Loïc.

gixy31

Quote
D'expérience, un verre de chlore liquide change le pH de ma piscine (50 000L) d'environ 0,1.
Le chlore change le pH ?

gixy31

Le principe de la boucle de régulation est que le PID calcule un temps d'ouverture de la pompe, la boucle démarre ensuite la pompe et l'arrête au bout du temps calculé. A la fin du "sample time", le PID recalcule un temps d'ouverture et le cycle recommence. Il y a aussi une notion de "fenêtre" qui se superpose avec le sample time. Personnellement j'utilise une durée de fenêtre de 20 minutes et un sample time de 20 minutes aussi. Le maxi autorisé au PID est la largeur de la fenêtre, et le maxi par jour est d'1/2 h. J'ai aussi mis un mini de 30s, car injecter moins n'a pas de sens à mon avis (un dé à coudre dans 75 m3...).

Loulou74

Le chlore change le pH ?
Pardon, je pensais à l'Acide.
Ceci-dit, c'est la pH qui influence fortement la mesure du Redox, donc il faut commencer par bien équilibrer son eau, puis le pH, avant de réguler le redox

Loulou74

Le principe de la boucle de régulation est que le PID calcule un temps d'ouverture de la pompe, la boucle démarre ensuite la pompe et l'arrête au bout du temps calculé. A la fin du "sample time", le PID recalcule un temps d'ouverture et le cycle recommence. Il y a aussi une notion de "fenêtre" qui se superpose avec le sample time. Personnellement j'utilise une durée de fenêtre de 20 minutes et un sample time de 20 minutes aussi. Le maxi autorisé au PID est la largeur de la fenêtre, et le maxi par jour est d'1/2 h. J'ai aussi mis un mini de 30s, car injecter moins n'a pas de sens à mon avis (un dé à coudre dans 75 m3...).
Le mini de 30s est une bonne idée pour l'usure de la pompe. Dans les faits cela arrive peu souvent car on est rarement pile-poil à la consigne.

gixy31

#293
Jan 25, 2021, 11:58 am Last Edit: Jan 25, 2021, 12:01 pm by gixy31
Yes. En plus j'ai mis 30s comme ça je suis sûr de voir toutes les manœuvres de pompe dans Grafana avec l'intervalle de publication aussi à 30s.
Pour le mini, on ne peut pas utiliser la fonction SetOutputLimits(min,max) du PID, car si la logique est bonne pour le max (si sortie > max, sortie = max), ça ne le fait pas pour le min (si sortie < min, sortie = min), car dans ce cas, tout ce qui est inférieur au min devient min, et donc la pompe est toujours activée au moins pendant min, ce qui n'est pas le but ! Donc je traite le sujet à la sortie de la fonction compute() avec (si sortie < min, sortie = 0).

johnrock

Le principe de la boucle de régulation est que le PID calcule un temps d'ouverture de la pompe, la boucle démarre ensuite la pompe et l'arrête au bout du temps calculé. A la fin du "sample time", le PID recalcule un temps d'ouverture et le cycle recommence. Il y a aussi une notion de "fenêtre" qui se superpose avec le sample time. Personnellement j'utilise une durée de fenêtre de 20 minutes et un sample time de 20 minutes aussi. Le maxi autorisé au PID est la largeur de la fenêtre, et le maxi par jour est d'1/2 h. J'ai aussi mis un mini de 30s, car injecter moins n'a pas de sens à mon avis (un dé à coudre dans 75 m3...).
Je ne suis donc pas certain de comprendre la relation entre la boucle de régulation et le PID. Faudrait que je me fasse un dessin :) 
Chose certaine, la boucle de régulation recommence à chaque seconde et call la fonction Compute(). À ce moment, si je comprends bien, Compute() va rien faire si le sample time n'est pas écoulé. Si le sample time est écoulé, Compute() regarde la dernière valeur de la sonde vs la cible et si dessous (orp) va décider combien de temps faire fonctionner la pompe. La pompe va alors fonctionnier pendant le temps déterminé par le pid, assurément plus court que le sample time. Pendant tout ce temps, la boucle fait rien. Si c'est le cas, pourquoi ne pas faire aller la boucle à la même fréquence que le sample time? Ouff j'ai encore des devoirs à faire 

gixy31

#295
Jan 26, 2021, 08:31 am Last Edit: Jan 26, 2021, 08:38 am by gixy31
C'est ça. Le temps de fonctionnement dépend de l'écart entre la valeur mesurée et la cible. Il peut être égal au sample time si l'écart est grand, voire supérieur, il est alors maximisé par l'appel préalable à la fonction SetOutputLimits qui sert à ne pas surdoser si l'écart est trop grand. Il vaut mieux alors s'occuper soi-même de l'eau avec un si gros écart.
Comme par défaut les coefficients Ki et Kd (les i et d de PID) sont nuls, le temps est bêtement égal à l'écart multiplié par Kp. Pour le pH par exemple, j'utilise du pH+ car mon eau de puits et les pluies sont acides. Un litre de pH+ augmente le pH de 0,4 pour 100m3, ma piscine fait 75m3. Donc pour augmenter le pH de 1 et une pompe de 1,5l/h, je dois injecter pendant 1,25 heure, soit 4500000 ms. Une règle empirique pour une régulation PID est de commencer avec un Kp moitié de la valeur théorique, soit ici KP=2250000. Donc le temps de fonctionnement est (pH - target)x2250000 (pour du pH+, sinon c'est (target-pH)x2250000). Même calcul pour l'ORP en fonction de l'efficacité du produit ajouté, dans mon cas KP vaut 18000. Ensuite ces valeurs sont à ajuster en fonction de la réalité du comportement de la piscine.
La boucle de régulation fait aussi d'autres choses, d'où sa fréquence différente du sample-time.
Tu constateras aussi que les fréquences des tâches sont "premières" entre elles (600ms, 1100ms, 1300ms), j'en ai aussi d'autres à 135ms et 3,1s, ceci pour éviter des "conjonctions"de tâches  à certains moments qui pourraient surcharger ponctuellement l'unité centrale (par exemple une tâche à 500ms et une à 1s seraient en collision une fois sur deux).

Loulou74

C'est ça. Le temps de fonctionnement dépend de l'écart entre la valeur mesurée et la cible. Il peut être égal au sample time si l'écart est grand, voire supérieur, il est alors maximisé par l'appel préalable à la fonction SetOutputLimits qui sert à ne pas surdoser si l'écart est trop grand. Il vaut mieux alors s'occuper soi-même de l'eau avec un si gros écart.
Comme par défaut les coefficients Ki et Kd (les i et d de PID) sont nuls, le temps est bêtement égal à l'écart multiplié par Kp. Pour le pH par exemple, j'utilise du pH+ car mon eau de puits et les pluies sont acides. Un litre de pH+ augmente le pH de 0,4 pour 100m3, ma piscine fait 75m3. Donc pour augmenter le pH de 1 et une pompe de 1,5l/h, je dois injecter pendant 1,25 heure, soit 4500000 ms. Une règle empirique pour une régulation PID est de commencer avec un Kp moitié de la valeur théorique, soit ici KP=2250000. Donc le temps de fonctionnement est (pH - target)x2250000 (pour du pH+, sinon c'est (target-pH)x2250000). Même calcul pour l'ORP en fonction de l'efficacité du produit ajouté, dans mon cas KP vaut 18000. Ensuite ces valeurs sont à ajuster en fonction de la réalité du comportement de la piscine.
La boucle de régulation fait aussi d'autres choses, d'où sa fréquence différente du sample-time.
Tu constateras aussi que les fréquences des tâches sont "premières" entre elles (600ms, 1100ms, 1300ms), j'en ai aussi d'autres à 135ms et 3,1s, ceci pour éviter des "conjonctions"de tâches  à certains moments qui pourraient surcharger ponctuellement l'unité centrale (par exemple une tâche à 500ms et une à 1s seraient en collision une fois sur deux).
Je ne l'aurais pas mieux dit :)

johnrock

Superbe explication merci! Je vais donc essayer de calculer mon Kp théorique pour mon bassin, et je vais débrancher ma pompe pour l'instant. Ce faisant, à mesure que mon orp descend, je devrais voir la pompe à ON pendant plus longtemps à chaque cycle si j'ai bien saisi.

Et quelle section s'assure de ne pas injecter du chlore et de l'acide en même temps? 

Loulou74

Superbe explication merci! Je vais donc essayer de calculer mon Kp théorique pour mon bassin, et je vais débrancher ma pompe pour l'instant. Ce faisant, à mesure que mon orp descend, je devrais voir la pompe à ON pendant plus longtemps à chaque cycle si j'ai bien saisi.
C'est cela
Quote
Et quelle section s'assure de ne pas injecter du chlore et de l'acide en même temps?
Aucune. Pourquoi, c'est nécessaire?

bwouters

#299
Jan 26, 2021, 06:02 pm Last Edit: Jan 26, 2021, 06:03 pm by bwouters
Creation de chlore gazeux mortelle!
 
Tant que vous vous assurez qu'il y a de l'eau qui coule pendant l'injection, vous pouvez injecter les deux en même temps sans risque.

C'est aussi la raison pour laquelle les deux produits chimiques doivent être stockés de manière à ce que vous ne puissiez pas les mettre en contact par accident.

Des contenants spéciaux sont vendus pour ce obectif.




Go Up