oscat.lib > oscat.lib fuer Step 7

Arithmetik doppelter Genauigkeit

(1/3) > >>

Langnese:
[Hallo,

wer hat mit diesen Bausteinen schon einmal gearbeitet. Ich habe das Problem, dass ich bei einer Mittelwertberechnung über folgende Formel arbeiten muss, um die Zyklusbelastung nicht zu groß werden zu lassen:

MW := MW + (Rohwert - buffer[j]); mit j:= 1 bis 3600

Wenn ich jedesmal alle Werte aufaddiere dann ist der Zyklus zu lang.

Leider gibt es bei dieser Berechnung unvermeidbare Rundungsfehler. Also wollte ich das mal mit dem Format REAL2 probieren, erhalte aber immer wieder das selbe Ergebnis, ohne dass die höhere Genauigkeit genutzt wird, der Bereich *.R1 ist immer 0.

Gruß

hugo:
kannst du mal ein kleines projekt posten das den fehler aufweist

dalbi:

--- Zitat von: hugo am 02. November 2009, 18:50:49 ---kannst du mal ein kleines projekt posten das den fehler aufweist

--- Ende Zitat ---

Ja, poste doch bitte mal ein kleines Projekt.
Kannst Du deine Berechnung nicht auf mehre Zyklen aufteilen?

Gruss Daniel

hugo:
in deinem Beispiel oben schreibst du z.b. MW + Rohwert ...

mit dem Datentyp REAL2 geht das so nicht, du musst zwingend R2_ADD(MW, ROHWERT) als funktion benutzen.
dasselbe gilt für alle anderen operationen

dalbi:
wird bei 3600 Aufrufen aber auch schwierig. :o

Gruss Daniel

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln