Seite 1 von 2

Maximale Abweichung von einem Referenzwert ausgeben

Verfasst: 17.08.2017, 11:39
von TimSch
Hallo,

stehe leider derzeit auf dem Schlauch.

Ich habe einen Referenzwert und drei Messwerte.

Im Prinzip will ich mir jetzt automatisch den Messwert mit der größten Abweichung vom Referenzwert ausgeben lassen.
Hört sich einfach an aber irgendwie finde ich keinen Ansatz...

Hat jemand eine Idee wie man das umsetzt?

Ich danke euch.

Maximale Abweichung von einem Referenzwert ausgeben

Verfasst: 17.08.2017, 12:27
von BAlheit
Möglich ist es so:

Code: Alles auswählen

Math.max(Math.abs(wert1-referenzwert),
Math.abs(wert2-referenzwert),
Math.abs(wert3-referenzwert));
Bernd Alheit

Maximale Abweichung von einem Referenzwert ausgeben

Verfasst: 17.08.2017, 12:49
von TimSch
Hm, das gibt mir aber nur die maximale Abweichung aus.

Müsste es so haben, dass er mir den tatsächlichen Messwert ausgibt, der die größte Abweichung hat.

Maximale Abweichung von einem Referenzwert ausgeben

Verfasst: 17.08.2017, 13:23
von BAlheit
Die einzelnen Werte mit (referenzwert + abweichung) und (referenzwert - abweichung) auf Gleichheit prüfen.Wenn es zutrifft, ist der Wert gefunden.

Übrigens der Titel dieser Diskussion besagt etwas anders.

Maximale Abweichung von einem Referenzwert ausgeben

Verfasst: 17.08.2017, 13:59
von TimSch
Das übersteigt leider meine Fähigkeiten.

Mein Ansatz wäre folgender. Leider scheint da aber etwas nicht zu stimmen.
var WertA = this.getField("Abweichung");
var WertB = this.getField("Slope1");
var WertC = this.getField("Slope2");
var WertD = this.getField("Slope3");
var WertE = this.getField("Referenz");

var Plus = WertE.value + WertA.value;
var Minus = WertE.value - WertA.value;

if (Plus.value == WertB.value) {event.value = Plus.value }
if (Minus.value == WertB.value) {event.value = Minus.value }

if (Plus.value == WertC.value) {event.value = Plus.value }
if (Minus.value == WertC.value) {event.value = Minus.value }

if (Plus.value == WertD.value) {event.value = Plus.value }
if (Minus.value == WertD.value) {event.value = Minus.value }

Maximale Abweichung von einem Referenzwert ausgeben

Verfasst: 17.08.2017, 16:48
von TimSch
Ich habe meinen Ansatz überarbeitet. Es funktioniert leider nur wenn Messwert 3 (Slope3) die größte Abweichung hat.
Könnte es sein, dass durch die ganzen if Schleifen die Ausgabe bzw. Werte von Messwert 1 (Slope1) und Messwert 2 (Slope 2) überschrieben werden?
var WertB = this.getField("Slope1");
var WertC = this.getField("Slope2");
var WertD = this.getField("Slope3");
var WertA = this.getField("Abweichung");
var WertE = this.getField("Referenz");
var WertF = this.getField("Plus1");
var WertG = this.getField("Minus1");

if (WertF.value = WertB.value) {event.value = WertF.value};
if (WertG.value = WertB.value) {event.value = WertG.value };

if (WertF.value = WertC.value) {event.value = WertF.value};
if (WertG.value = WertC.value) {event.value = WertG.value };

if (WertF.value = WertD.value) {event.value = WertF.value};
if (WertG.value = WertD.value) {event.value = WertG.value };

Maximale Abweichung von einem Referenzwert ausgeben

Verfasst: 18.08.2017, 10:27
von BAlheit
So müsste es gehen:

Code: Alles auswählen

var WertA = this.getField("Abweichung");
var WertB = this.getField("Slope1");
var WertC = this.getField("Slope2");
var WertD = this.getField("Slope3");
var WertE = this.getField("Referenz");

var Plus = WertE.value + WertA.value;
var Minus = WertE.value - WertA.value;

if (Plus == WertB.value || Minus == WertB.value) event.value = WertB.value;
if (Plus == WertC.value || Minus == WertC.value) event.value = WertC.value;
if (Plus == WertD.value || Minus == WertD.value) event.value = WertD.value;

Maximale Abweichung von einem Referenzwert ausgeben

Verfasst: 18.08.2017, 10:40
von TimSch
Super, das geht.

Allerdings habe ich die Vermutung, dass es Probleme mit der zeitlichen Abfrage der einzelnen Felder gibt (siehe Anhang). Wenn ich neue Messwerte eingebe, muss ich diese manchmal doppelt eingeben oder Nachkommestellen ändern, damit er die Änderungen übernimmt und sie in der Ausgabe anzeigt.

Kann ich die Berechnung evtl. zeitlich verzögern?

Maximale Abweichung von einem Referenzwert ausgeben

Verfasst: 18.08.2017, 11:13
von BAlheit
In der Feldberechnungsreihenfolge muss das Feld Ausgabe an das Ende.

Maximale Abweichung von einem Referenzwert ausgeben

Verfasst: 18.08.2017, 12:44
von TimSch
Wo und wie hattest du die Feldrechnungsreihenfolge verändert?

Habe nämlich schon wieder das Problem, wenn ich die %Differenz von Ausgabe-Wert und dem Mittelwert der Messungen berechnen möchte, er hinterher hinkt.

Ich muss wieder die Messwerte doppelt eingeben damit er mir die richtige Differenz anzeigt bzw. er sich aktualisiert :/