Fonction - formule avec coefficient directeur négatif

Bonjour,
J’ai un souci avec mes formules de correction de mes sondes de piscine sur la V5.
J’ai fait les calibrations et je récupère en modbus les valeurs raw.
Je connais mes équations de conversion analogique/numérique mais je n’arrive pas à obtenir les résultats corrects.
A force de trifouiller les formules j’ai l’impression que le calcul ne tient pas compte du signe - des coefficients que je rentre, ce qui donne des résultats farfelus.
Je n’ai pas trouvé sur le forum d’informations à ce sujet.
Je dois probablement mal écrire la formule (j’ai essayé avec des multiplications par -1 sans succès).
Quelqu’un a-t-il la solution ?

Merci.
Jon

Bonjour Mistoukwak,

les signes négatifs sont acceptés, par ex :

Capture d’écran 2023-05-29 à 15.32.35

qui est la formule pour une sonde TC100.

Quelle formule voulez-vous appliquer?
Comment avez-vous défini la variable x (type, décimales)?

Bonne journée

Bonjour,

Merci pour ta réponse.
Pour préciser je parle des signes négatifs dans les coefficients multiplicateurs.
Ex pour le pH : (-0.0016 * X) + 12.738
Si X = 2992, le résultat de la fonction devrait être 7.9508
Hors le résultat est 17.52 qui correspond à +0.0016*2992 + 12.738

L’entrée de la fonction est un ana16 en REAL qui provient d’un objet Modbus Lecture (qui en l’occurrence vaut 2992 dans ce cas là). Je vérifierai mais de mémoire, il n’y a pas de décimal
J’utilise un widget Afficheur Analogique qui pointe sur « fonction conversion pH:result ».

Merci.
Jon

as-tu testé :
12.738 - (0.0016 * X)

Vérifie aussi le nb de digits après la virgule de la variable de sortie A32.

Bonne journée

Non je n’ai pas testé dans ce sens mais ca devrait marcher.
Je regarde ça ce soir et je te tiens au courant.
Merci !

Bonjour,
j’ai déjà remonté l’incident concernant les multiplications ou divisions avec coeff négatif.
@GCE l’a peut-être déjà mis dans sa todo list :slight_smile:

exemples de division :
1.33 / -1 → -21474836,48
-1.33 / -1 → 21474836,47
-1.33 / 1 → 21474836,47

-1*X avec X=1 → 0
0-X avec X=1 → -1

1 « J'aime »

Bonjour,

Bon ben c’est loin d’être trivial tout ça !

Finalement c’est la formule de @grocrabe qui fonctionne !
J’ai testé hier :
12.738 - 0.0016 * X : NOK
12.738 - (0.0016 * X) : OK
Il faut bien les parenthèses et le terme fixe avant la multiplication.

@GCE, voici un sujet de plus pour la todolist ! :sweat_smile:

Merci à tous.
Je continue le paramétrage.

Jon

ça peut effectivement fonctionner lorsque les variables ont un signe prédéfini.
Mais j’ai été confronté au cas où je devais combiner le résultat de 2 objets fonction, sans en connaître le signe d’avance.
Et là, c’est mission quasi impossible, sauf à démultiplier le nombre d’objets fonction et de comparateurs.

1 « J'aime »

Bonjour,

J’ai de nouveau une difficulté pour la réalisation de fonctions.
Cette fois c’est pour un polynome de degré 2.
Mon équation :
(0,00000007588411852xx)-(-0,0005105398759*x)+1,831018817
qui ne fonctionne pas (j’ai bien une valeur mais jamais la bonne).
J’ai tenté de changer l’ordre des termes, rajouter des parenthèses, etc… rien n’y fait.

Est ce que l’un d’entre vous à une fonction en x² qui fonctionne ?

Merci.
Jon

bonjour,
cette formule est transposable si les 2 signes négatifs se suivent et que ce n’est pas une erreur de frappe

(0,00000007588411852*x*x)+(0,0005105398759*x)+1,831018817

1 « J'aime »

Pardon, erreur de frappe de ma part !
C’est bien un moins dont j’ai besoin.
(0,00000007588411852 * x * x)-(0,0005105398759 * x)+1,831018817

comme je disais plus haut, nous sommes dans l’un des cas où il faut faire plusieurs objets Fonctions en liant la même analogique .
objet1 : 0,0005105398759 * x
objet 2 : (0,00000007588411852 * x * x) -$id_resultat1$ + 1,831018817

1 « J'aime »

Merci @fgtoul,

J’avais bien vu ton message mais je n’avais pas compris ça dans ce sens là.
Là c’est limpide ! :blush:
Je vais donc partir là dessus et faire une 2ème fonction le temps qu’une solution arrive.

Merci encore !

Hello,

Enfin, j’ai fini par réussir !
Merci à @fgtoul pour l’astuce de la double formule et de la référence de l’ID qui marche super bien.

Donc pour la formule avec un polynome de degré 2, c’est de mettre le x entre parenthèses. C’est con mais encore faut-il le savoir :
La seule formule qui marche est donc :
(0.00000007588411852*(x)*(x))-$327709$+1.831018817

Merci encore pour votre aide.
Jon

1 « J'aime »

bonjour,
j’ai déjà configuré des formules polynomiales de second degré sans avoir à mettre X entre parenthèses.
Je pense que le souci vient du fait qu’il n’y a pas d’espace dans ta formule.
une écriture comme celle-ci devrait fonctionner :

(0.00000007588411852 * x * x)-$327709$+1.831018817

bonne journée

Bonjour,

Merci pour ton retour, j’ai essayé juste le terme :

x*x

qui me redonnait « 0 » alors que

(x)*(x)

fonctionne.
Je n’avais pas essayé avec les espaces mais j’ai plutôt tendance à les enlever car j’ai l’impression que ça marche mieux sans ?!
EDIT : Ecoutes, je viens d’essayer ta formule avec les espaces, sans parenthèses, ça ne fonctionne pas.
Mystère…

Bonne journée.

je viens de tester, j’ai le même comportement que toi, il faut les parenthèses.
j’ai pourtant le souvenir d’en avoir mis en place sans parenthèse, et qui fonctionnaient.

1 « J'aime »