Forum eedomus
http://forum.eedomus.fr/

transformer un niveau en compteur
http://forum.eedomus.fr/viewtopic.php?f=13&t=11585
Page 1 sur 1
Auteur:  Jackoncept [ 22 Oct 2022 09:53 ]
Sujet du message:  transformer un niveau en compteur

Salut,
J'ai une citerne d'eau pour laquelle j'ai fait un radar de niveau. Je voudrais transformer le niveau mesuré en calculant la surface sous la courbe entre 2 périodes pour pouvoir savoir combien j'ai consommé d'eau sur la période. Auriez-vous une idée sur comment faire ?

Capture d’écran 2022-10-22 à 10.50.29.png
Capture d’écran 2022-10-22 à 10.50.29.png (48.13 Kio) Consulté 3981 fois


Capture d’écran 2022-10-22 à 10.52.25.png
Capture d’écran 2022-10-22 à 10.52.25.png (541.03 Kio) Consulté 3981 fois
Auteur:  Kebiel [ 22 Oct 2022 17:59 ]
Sujet du message:  Re: transformer un niveau en compteur

Bonjour,
Je ne suis pas un pro des scripts ou règles, mais il me semble que c'est une équation à deux inconnus; le volume d'eau qui s'est déversé dans la cuve, et le volume d'eau qui a été soutiré de la cuve. Comme il n'y a qu'un élément connu; volume d'eau dans la cuve à l'instant t;..pour moi on ne pourras que savoir de combien le volume de la cuve a varié sur une période (variation qui est due au deversage et soutirage). Il faudrait un compteur à l’entrée ou la sortie de la cuve...du coup autant mettre un compteur qui indiquera directement le volume consommé.

désolé de ne pas avoir de solution plus simple. peut être d'autres personnes du forum ?
Keb
Auteur:  Jackoncept [ 23 Oct 2022 21:30 ]
Sujet du message:  Re: transformer un niveau en compteur

je suis d'accord mais ne pourrait-on pas prendre l'aire sous la courbe lorsque elle descend pour un soutirage et l'aire sous la courbe quand elle monte pour un remplissage ? mathematiquement je suis en butée de mes compétences, mais une fx avec une intégrale qui va bien pourrait peut-être faire le job ? :?:

Merci pour ta réponse en tout cas 8-)
Auteur:  lougarou60 [ 24 Oct 2022 08:36 ]
Sujet du message:  Re: transformer un niveau en compteur

Bonjour
C’est un peu comme le problème de la baignoire à l’école primaire ….
En fait si tu souhaites distinguer remplissage et vidange de ta citerne :
1 Remplissage et vidange peuvent-ils être simultanés ?
Si oui, alors c’est je pense rédhibitoire, insoluble, infaisable, etc..
Si non, alors on peut réfléchir ……
2 Quel niveau de précision espérer ?
Admettons qu’on cherche et qu’on trouve ….
Il faudra filtrer le signal pour masquer les petites oscillations, enchainer les calculs, tenir compte des temps de traitement et/ou de rafraichissement, etc …
Tout ça avec des modules et règles classiques Eedomus, au bout ce ne pourra être qu’un résultat « à peu près »
Un truc genre script pourrait peut être faire mieux et plus simple, mais la je sais pas faire
Auteur:  opa95 [ 24 Oct 2022 09:24 ]
Sujet du message:  Re: transformer un niveau en compteur

Bonjour
Jackoncept a écrit:je suis d'accord mais ne pourrait-on pas prendre l'aire sous la courbe lorsque elle descend pour un soutirage et l'aire sous la courbe quand elle monte pour un remplissage ? mathematiquement je suis en butée de mes compétences, mais une fx avec une intégrale qui va bien pourrait peut-être faire le job ? :?:

Merci pour ta réponse en tout cas 8-)

Lougarou60 a raison.
Avec un signal aussi "bruité" tu ne peux rien faire en direct.
Il faut d'abord filtrer le signal pour réduire le bruit : à première vue tu as un bruit fréquent d'environ 10 litres entre 2 mesures, parfois seulement de 1 litre.
Pour le réduire on peut utiliser l'historique et faire une moyenne ou une moyenne pondérée sur un certain nombre de mesures successives. Si on ne veut pas utiliser l'historique, on peut faire un filtre récursif, par exemple result1 = k*mesure +(1-k)*result0 puis ensuite result0 = result1 (j'ai un script qui fait cela).
Si k=1 il n'y a aucun filtrage (result = mesure), si k=0 il n'y a pas de mesure (result = result0) et pour filtrer on prend pour k une valeur suffisamment petite pour filtrer et suffisamment grande pour ne pas trop écraser les variations : il faudra un certain nombre de mesures pour que result s'adapte au signal (le plus simple étant d'amorcer result avec la première mesure).
Pour déterminer k, il faudrait connaitre les valeurs numériques de tes mesures et non pas seulement la courbe. Tu peux faire un test en créant un "état" "volume lissé" et en utilisant le calculateur du store avec la formule device(id_capteur)*k+device(id_volume_lissé)*(1-k) (on peut commencer avec k=0.5 et varier par pas de 0.1 pour observer les résultats, ça va prendre plusieurs jours sauf si tu récupères les valeurs mesurées et que tu testes sur excel).
Lorsque ta courbe sera suffisamment lissée, il serait intéressant de savoir quelles sont les vitesses max de remplissage et de soutirage pour faire la différence entre une augmentation normale de niveau (remplissage) et une variation liée à une mesure aberrante et l'équivalent pour le soutirage :
par exemple les débits max et l'intervalle de mesure. Cela permettra de définir une montée ou une descente du niveau.
Enfin, ce n'est pas une intégrale qu'il faut calculer, mais il faut faire une différence entre le niveau moyen avant la montée et le niveau à la fin de la montée (ou la descente).
Il faut un script pour faire tout cela.
De toute façon tu ne pourras pas être sur de tes valeurs résultantes si tu as des périodes de remplissage et de soutirage simultanées : il faudrait mesurer le débit de soutirage ou au moins le temps de fonctionnement de la pompe ou d'ouverture de la vanne, connaissant son débit.
:)
Auteur:  Jackoncept [ 24 Oct 2022 18:37 ]
Sujet du message:  Re: transformer un niveau en compteur

Super, merci pour vos réponses ça m'éclate et vous m'avez inspiré :

La précision est à 10% prêt, donc si lorsque il pleut et qu'en meme temps je fais un soutirage je "rate la conso ça ne sera pas grave!

Pour vous dire, voici mon équation pour convertir la hauteur de mesure du niveau d'eau (fait par un ultrason) : (3.14/4*1.7*1.7*2.2*(((170-device(2670351)+26)/100)/1.70))*1000

(citerne de forme cylindrique avec 2 demi-sphères.

on est pas sur une précision pharmaceutique :)

Je vais filtrer le signal et je vais me lancer dans un calcul simple : valeur avant allumage de la pompe - valeur après extinction de la pompe (j'ai le ON OFF remonté dans l'eedomus) et voir le degré de précision que ça peut donner.
Auteur:  opa95 [ 25 Oct 2022 09:08 ]
Sujet du message:  Re: transformer un niveau en compteur

Bonjour Jackoncept
Pour le soutirage, le plus simple est de faire le produit du débit de la pompe par le temps de fonctionnement, éventuellement en retirant quelques secondes pour tenir compte de l'amorçage.
Je ne suis pas convaincu de ta formule de calcul du volume du cylindre avec des embouts sphériques tronqués : je suppose qu'il est horizontal. Autant la formule pour les parties sphériques est simple (pi*h2*(R-h/3)) pour une hauteur de remplissage h autant la partie cylindrique est plus complexe, mais on doit pouvoir utiliser une formule approchée.
:)
Page 1 sur 1 Le fuseau horaire est UTC+1 heure