Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 5 von 5

Thema: Trendberechnung - Algorithmen ?

  1. #1
    Registriert seit
    06.10.2003
    Beiträge
    3.412
    Danke
    451
    Erhielt 506 Danke für 408 Beiträge

    Standard


    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
    Es gibt viel mehr Leute, die freiwillig aufgeben, als solche, die echt scheitern.
    Henry Ford
    Zitieren Zitieren Trendberechnung - Algorithmen ?  

  2. #2
    Registriert seit
    24.04.2006
    Ort
    NRW
    Beiträge
    211
    Danke
    9
    Erhielt 2 Danke für 2 Beiträge

    Standard

    könntest du da nicht schon den PID Regler einsetzen, um eine Trenderkennung festzustellen?

  3. #3
    Registriert seit
    19.06.2003
    Beiträge
    2.200
    Danke
    85
    Erhielt 259 Danke für 175 Beiträge

    Standard

    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.

  4. #4
    Registriert seit
    29.08.2006
    Beiträge
    195
    Danke
    0
    Erhielt 35 Danke für 21 Beiträge

    Standard

    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.

  5. #5
    Avatar von Onkel Dagobert
    Onkel Dagobert ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    06.10.2003
    Beiträge
    3.412
    Danke
    451
    Erhielt 506 Danke für 408 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    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
    Es gibt viel mehr Leute, die freiwillig aufgeben, als solche, die echt scheitern.
    Henry Ford

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •