Glättung eines Analogwertes

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. :cool:
 

Anhänge

  • Pt1-Glied.zip
    29,9 KB · Aufrufe: 303
PS:
Wenn du ein digitales Tiefpass reinhängst solltest du auf eine gleichmässige Abtastung schauen, also im Zeitgesteuerten OB 35 aufrufen...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
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 ?
 
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
 
Zurück
Oben