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

Seite 3 von 3 ErsteErste 123
Ergebnis 21 bis 24 von 24

Thema: Glättung eines Analogwertes

  1. #21
    Registriert seit
    12.08.2006
    Beiträge
    67
    Danke
    0
    Erhielt 70 Danke für 6 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Tja ich dachte das Thema PT1-Glied wäre längst abgehakt, hatten wir hier im Forum schon öfter. Habe vor langer Zeit mal einen Baustein geschrieben welcher im Zyklus aufgerufen eine höhere Genauigkeit mit sich bringt als eine Funktion im Zeit-OB.
    Setze ich schon seit Jahren mit Erfolg zur Meßwertglättung ein.
    Angehängte Dateien Angehängte Dateien

  2. Folgender Benutzer sagt Danke zu Hartmut Lux für den nützlichen Beitrag:

    manu36 (10.06.2013)

  3. #22
    Registriert seit
    18.03.2008
    Beiträge
    267
    Danke
    3
    Erhielt 26 Danke für 26 Beiträge

    Standard

    PS:
    Wenn du ein digitales Tiefpass reinhängst solltest du auf eine gleichmässige Abtastung schauen, also im Zeitgesteuerten OB 35 aufrufen...

  4. #23
    Registriert seit
    04.01.2008
    Ort
    Wien
    Beiträge
    773
    Danke
    136
    Erhielt 39 Danke für 35 Beiträge

    Standard

    Zitat Zitat von Feng Beitrag anzeigen
    Hi hank12 - wenn ich Dich recht verstehe, möchtest Du im Digitalen das machen, was im Analogen sonst ein PT1-Tiefpass-Filter mit der Verstärkung 1 macht.

    Da kann ich Dir aus der Abtasttheorie helfen - geht sehr einfach und sehr effektiv - Du musst die Theorie gar nicht verstehen - nur anwenden.

    Das Rezept: x(n) = a * x(n-1) + b * y(n-1).

    a und b sind konstante Koeffizienten *),
    x(n) ist der Ausgangswert des Filters zum momentanen Zeitpunkt t=n*H, H ist die Zeit zwischen zwei Berechnungen (Abtastschrittweite) kann mit OB35 elegant festgelegt werden, n ist eine mit der Zeit ganze fortlaufende Zahl.
    y ist der Eingangswert, y(n-1) ist demnach der Eingangswert einen Takt vor y(n).

    So, und der Clou sind die Koeffizienten a, b: a=exp(-H/T) und b= 1-a, wobei T die von Dir gewählte Zeitkonstante Deines PT1-Filters ist.

    Du bestimmst also einmal(!) (z.B. im OB100) die Koeffizienten a und b.
    Spendierst 2 REAL-Speicherstellen für die alten Werte x(n-1) und y(n-1)
    und berechnest mit a*x(n-1) + b*y(n-1) den neuen Ausgangswert x(n), der dann im nächsten Rechenschritt wieder bei x(n-1) eingefüllt wird. usw.

    Also mit gerade mal 2 Speicherstellen, 2 Koeffizienten, 2 Multiplikationen und 1 Addition hast Du ein Digitales PT1-Filter!

    Nebenbei bemerkt - mit Hilfe der Abtasttheorie lässt sich jedes analoge Filter sehr effektiv in ein Digitales Filter abbilden - man muss nur wissen, wie die Koeffizienten bestimmt werden (das ist das "know-how", das wir momentan zum Nulltarif nach China liefern ...)

    Gruß
    Feng

    *) Da gibt es Programmierer, die im Programm diese Koeffizienten bei jedem Rechenschritt ausrechnen lassen! Ist ja nicht falsch - und kein Schwein merkt von außen diese Sünde - man sollte denen 20 Stockschläge verpassen (in Arabien würden die Fingerkuppen abgeschnitten werden ...)
    verstehe das T nicht. Wie wird die Konstante gewählt ?
    irgendetwas ist ja immer...
    ING. Gerald Miedler

  5. #24
    Registriert seit
    11.10.2007
    Ort
    Allgäu
    Beiträge
    112
    Danke
    156
    Erhielt 14 Danke für 7 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hi Gerri - T[sec] ist die Zeitkonstante deines Tiefpassfilters. Je größer das T - umso träger wird dein Filter. Hängt also von deinem Anwendungsfall ab. Am besten mal ausprobieren mit einer y="Flatterfunktion" (z.B. Rechteckfolge) und dann das Ausgangssignal x des Tiefpassfilters ansehen...
    Jede gute elektronische Waage hat so ein Tiefpassfilter, sonst würde die letzte Stelle immer hin und her zappeln und nicht mehr ablesbar sein - wäre aber die Zeitkonstante T zu groß gewählt, dann hast du dein Gewicht erst nach Minuten...
    Gruß Feng

Ähnliche Themen

  1. Konfiguration eines PG
    Von Magni im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 01.08.2010, 14:47
  2. Verwendungsstellen eines UDT
    Von Bretti im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 03.09.2009, 14:32
  3. Aufruf eines Date_and_Time eines DB's
    Von hank12 im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 08.07.2009, 10:33
  4. Antworten: 40
    Letzter Beitrag: 08.12.2008, 13:38
  5. Auslesen des Analogwertes Et200s
    Von BaalX im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 21.02.2008, 18:21

Lesezeichen

Berechtigungen

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