Trendberechnung - Algorithmen ?

Onkel Dagobert

Level-3
Beiträge
5.817
Reaktionspunkte
1.444
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

welche Algorithmen zur Trendberechnung gibt es, und welche sind für "gestresste" Steuerungen beonders effektiv? Speziell geht es mir darum, aus einem Prozesswert (REAL, Wertebereich ca. 0.0...50.0) einen Wert zu berechnen, der nach einer bestimmten Zeit erreicht wird. Dabei möchte ich möglichst keine Zwischenwerte speichern, also nur mit dem aktuellen Wert, fortlaufenden Mittelwert, etc. rechnen.

Zur Zeit rechne ich den aktuellen Wert entsprechend der aktuellen Zeit einfach hoch. Für meine aktuelle Anwendung reicht mir das eigentlich schon. Es würde mich jedoch interessieren, wie man das ggf. besser machen könnte.

Hat jemand eine Idee?


Gruß, Onkel
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Im Prinzip mußt du immer den aktuellen Wert mit einem vorigen vergleichen. Den vorigen mußt du also immer speichern.
Das einfachste Programm wäre:
Code:
L aktuellerWert
L alterWert
-R
ST trend

L aktuellerWert
ST alterWert
Dieses hat zwei Nachteile:
1. Wenn dem Wert ein Rauschen überlagert ist, kann sich im einen oder anderen Zyklus der "Trend" sogar umkehren.
2. Wenn die Änderung zwischen zwei Zyklen kleiner ist als z.B. die Auflösung des A/D-Wandlers, mit dem du den Wert einliest, ist der Trend für viele Zyklen 0.

Gegen 1) hilft ein Tiefpass. Diesen kannst du programmtechnisch am einfachsten als "gleitenden Mittelwert" realisieren:

Code:
L aktuellerWert
L Faktor // z.B.0.05
*R
ST Zwischenspeicher

L 1.0
L Faktor
-R
L Mittelwert
*R
L Zwischenspeicher
+R
ST Mittelwert
Es ist dabei egal, ob du nun den Trend aus den Mittelwerten oder den Mittelwert aus den Trendwerten bildest.

Gegen 2) hilft es ,den Trend nicht in jedem Zyklus, sondern nur zu bestimmten (weiter auseinander liegenden) Zeitpunkten zu berechnen (OB35, Timer, oder in jedem n-ten Zyklus).

Falls die Zykluszeit nicht einigermaßen konstant ist, muß die Berechnung sowieso zeitgesteuert erfolgen.
 
schau mal in die freie lib unter www.oscat.de
dort findest du eine vielzahl von modulen die dir die berechnung ermöglichen

auch pt1 glieder und mittelwerte gleitend oder fest.
 
Hallo Leute,

ich werde mir eure Vorschläge durch den Kopf gehen lassen, heute allerdings nicht mehr (Samstag ;) ).
Es muss doch aber auch verschiedene Algorithmen geben, wie sie in statistischen Berechnungen Verwendung finden. Beim Googeln bin ich dummerweise noch nicht fündig geworden.


Gruß, Onkel
 
Zurück
Oben