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

Seite 2 von 5 ErsteErste 1234 ... LetzteLetzte
Ergebnis 11 bis 20 von 41

Thema: Bandpassfilter programmieren

  1. #11
    Registriert seit
    29.03.2004
    Beiträge
    5.735
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Bei einem FIR-Filter steckt die Charakteristik in den Filterkoeffizienten. Darum gibt es dazu Programme die diese Werte berechnen, oder Tabellen (z.B. aus dem Tietze-Schenk) in denen diese Werte für verschiedene Typen aufgelistet sind. Mit den mathematischen Kenntnissen kann man das auch zu Fuß berechnen. Ich kann es leider nicht, meine Filterkenntnisse kommen eher aus dem analogen Bereich.
    Das was viele als gleitenden Mittelwert z.B. über 5 Werte programmieren, ist quasi ein FIR-Filter bei dem alle Werte gleich gewichtet werden.

  2. #12
    Registriert seit
    28.01.2011
    Beiträge
    43
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    es ist eine Hydraulische Axialkolbenpumpe--> Hydraulikantrieb.
    Also kein Servomotor. nur über DASM aus den 80er Jahre.
    Also ich beschäftige mich gerade intensiv mit FIR und IIR.
    Aber ich verstehe nicht wie oder wo Grenzfrequnzen angegeben werden. Man gewichtet irgendwie nur die Eingangssignale auf den alten Ausgangsignal über die Koeffizienten.
    Aber dadurch werden meinem Verständnis nach , doch noch keine Frequenzen gefiltert?

  3. #13
    Registriert seit
    28.01.2011
    Beiträge
    43
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Die PT1-Formel ,die ich am Anfang erwähnte, die ich angwendet habe: Das müsste dann doch ein IIR-Filter sein?
    Und die Koeffizienten sind exp(2*PI*fg*T) oder nicht?

  4. #14
    Registriert seit
    19.05.2008
    Beiträge
    648
    Danke
    117
    Erhielt 136 Danke für 105 Beiträge

    Standard

    Zitat Zitat von Jo-Janzen Beitrag anzeigen
    Warum bekommt man denn keine Werte mehr bei Stillstand?
    Hallo Johann,

    ich dachte, es geht dir um die Position. Wenn du nur ein gewisses Frequenz-Band passieren lässt, kommt im Stillstand nichts mehr an. Wenn deine Berechnungen und Filter auf die Geschwindigkeit aufsetzen, wäre das ja OK.

    Wieso beschränkst du die Anzahl der Messungen mit dem OB35?

    Ich wäre mal von einem „Weißen Rauschen“ ausgegangen und dann spielen kleine Schwankungen der Programm-Laufzeit keine große Rolle. Angenommen die Zykluszeit liegt irgendwo bei 5ms, dann kannst du wenn 0,5s nicht zu träge ist den „Gleiteden Mittelwert“ über 100 Messungen bilden. Das sollte das Signal deutlich glätten!

    Alternativ könntest du den Gleiteden Mittelwert nur über 15 Messungen bilden und in die eine Fahrtrichtung nur die Spitzenwerte, in der Gegenrichtung nur Minimalwerte verwenden...

    Gruß
    Chräshe

  5. #15
    Registriert seit
    21.05.2008
    Beiträge
    98
    Danke
    8
    Erhielt 9 Danke für 8 Beiträge

    Standard

    Einen IIR oder FIR Filter in S7 zu programmieren ist vom Grundsatz her kein Thema.
    Habe dies vor einiger Zeit schon mal gemacht.
    Um dies aber mit einem vernünftigen Aufwand hinzubekommen, muss dies unbedingt in SCL umgesetzt werden. Die Filterkoeffizienten müssen extern berechnet werden.
    Ich mache dies mit MathCAD oder MatLab.

    Die Frage ist, ob dies bei der hiesigen Problemstellung überhaupt dienlich ist.
    Ein Mittelwertbildung führt grundsätzlich zu Abweichungen und wäre mir zu ungenau. Als grobe Anfangslösung OK, aber sonst zu ungenau.
    Ein Bandpass macht nur bei der Geschwindigkeitsermittlung Sinn, da die absolute Position bei Anlagenstillstand herausgefiltert wird (v=dx/dt).
    Ein zusätzlicher Schingungssensor, der die Schwinungen der Anlage aufnimmt, die auf den Positionssensor einwirken wäre evtl. eine Lösung.
    Anhand der ermittelten Schwinungen könnte man mit einem adaptiven Filter die Störungen aus dem Positionssignal filtern.
    Dies wird z.B. auch bei Kopfhörern und Mikros für Piloten so gemacht. Der Umgebungslärm des Flugzeugs wird aufgenommen und vom Stimmsignal des Piloten gewissermaßen "subtrahiert" (active noise cancelling). Nur auf diese Weise wird die Stimme des Piloten verständlich. Ein anderes Beispiel sind aktive Noise Cancelling Kofphörer. Dies in S7 umzusetzten wird aber schon aufwändig.

    Gibt es keine Möglichkeit des Positionssensor von der Anlage schwingungstechnsich zu entkoppeln? Wäre denkbar unaufwändiger.

  6. #16
    Registriert seit
    28.01.2011
    Beiträge
    43
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von Chräshe Beitrag anzeigen
    Hallo Johann,

    Wieso beschränkst du die Anzahl der Messungen mit dem OB35?
    Weil, bei 10 ms Zyklus da haben die Vibrationen noch stärkeren Einfluss auf das Positions-Geschwindigkeitssignal.



    Zitat Zitat von Chräshe Beitrag anzeigen

    Ich wäre mal von einem „Weißen Rauschen“ ausgegangen und dann spielen kleine Schwankungen der Programm-Laufzeit keine große Rolle. Angenommen die Zykluszeit liegt irgendwo bei 5ms, dann kannst du wenn 0,5s nicht zu träge ist den „Gleiteden Mittelwert“ über 100 Messungen bilden. Das sollte das Signal deutlich glätten!
    Da hast du recht, aber ich würde schon gerne die 0,5 sekunden reduzieren.

    Zitat Zitat von Chräshe Beitrag anzeigen
    Alternativ könntest du den Gleiteden Mittelwert nur über 15 Messungen bilden und in die eine Fahrtrichtung nur die Spitzenwerte, in der Gegenrichtung nur Minimalwerte verwenden...
    Könntest du mir das genauer erklären?

  7. #17
    Registriert seit
    28.01.2011
    Beiträge
    43
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von LT Smash Beitrag anzeigen
    Einen IIR oder FIR Filter in S7 zu programmieren ist vom Grundsatz her kein Thema.
    Die Frage ist, ob dies bei der hiesigen Problemstellung überhaupt dienlich ist.
    Ein Mittelwertbildung führt grundsätzlich zu Abweichungen und wäre mir zu ungenau. Als grobe Anfangslösung OK, aber sonst zu ungenau.
    Ein Bandpass macht nur bei der Geschwindigkeitsermittlung Sinn, da die absolute Position bei Anlagenstillstand herausgefiltert wird (v=dx/dt).
    Ein zusätzlicher Schingungssensor, der die Schwinungen der Anlage aufnimmt, die auf den Positionssensor einwirken wäre evtl. eine Lösung.
    Anhand der ermittelten Schwinungen könnte man mit einem adaptiven Filter die Störungen aus dem Positionssignal filtern.
    Dies wird z.B. auch bei Kopfhörern und Mikros für Piloten so gemacht. Der Umgebungslärm des Flugzeugs wird aufgenommen und vom Stimmsignal des Piloten gewissermaßen "subtrahiert" (active noise cancelling). Nur auf diese Weise wird die Stimme des Piloten verständlich. Ein anderes Beispiel sind aktive Noise Cancelling Kofphörer. Dies in S7 umzusetzten wird aber schon aufwändig.

    Gibt es keine Möglichkeit des Positionssensor von der Anlage schwingungstechnsich zu entkoppeln? Wäre denkbar unaufwändiger.
    Ok. Es geht mit dem Bandpassfilter gar nicht. Danke, dann kann ich mir das ersparen.
    Das mit dem adaptiven Filter habe ich schon probiert.
    Ich habe einen 2. Positionsmagneten (Geber) auf dem MTS-Stab angebracht. Beide Magneten sollten dabei die selben Vibrationen erfahren .
    Damit wollte ich die Vibrationen vom losen Magneten von dem fahrendem Magneten subtrahieren um ein Vibrationsfreies Signal zu erhalten.
    Das Ergebniss war, dass in der Praxis die beiden Magneten unterschieldich auf die Vibrationen reagieren. Die Amplitudenhöhe-und dauer waren meist unterschiedlich. Von der Tendenz passte es schon, aber im feinem hat man doch die Unterschiede gesehen.

    Mechanisch kann man den Sensor nicht ohne Weiteres Vibrationsfrei anbringen, weil alles im Umfeld der Anlage vibriert.

  8. #18
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.712
    Danke
    398
    Erhielt 2.397 Danke für 1.997 Beiträge

    Standard

    Hallo,
    ich habe mir den Thread und auch deine FFT mal angesehen ...
    Dazu habe ich noch ein paar Fragen :
    1.) Wie kommt den der Messwert deines Wegaufnehmers in deine Steuerung ? Analog oder als (wie hoch auflösender ?) Digitalwert ?
    2.) Bist du dir hinsichtlich der Abtastfrequenz deiner Steuerung sicher, dass du die Messwerte wirklich in der Frequenz erhälst und einliest ? Was ist deine Hardware ?
    3.) Bist du dir hinsichtlich der ermittelten FFT sicher, dass du in dem kleinen Frequenzband und mit der daraus abgeleiteten Aussage überhaupt einen sinnvollen Rückschluß von Sinn- und Störsignalen treffen kannst ?

    Aus dem Bauch heraus würde ich mich hier auch für eine gleitenden Mittelwertbildung entscheiden - es würden mich aber dennoch die Antworten auf die Fragen interessieren ...

    Gruß
    Larry

  9. #19
    Registriert seit
    28.01.2011
    Beiträge
    43
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von Larry Laffer Beitrag anzeigen
    Hallo,
    ich habe mir den Thread und auch deine FFT mal angesehen ...
    Dazu habe ich noch ein paar Fragen :
    1.) Wie kommt den der Messwert deines Wegaufnehmers in deine Steuerung ? Analog oder als (wie hoch auflösender ?) Digitalwert ?
    Es kommt in digitaler Form mit einer Auflösung von 1 um


    Zitat Zitat von Larry Laffer Beitrag anzeigen
    Hallo,
    2.) Bist du dir hinsichtlich der Abtastfrequenz deiner Steuerung sicher, dass du die Messwerte wirklich in der Frequenz erhälst und einliest ? Was ist deine Hardware ?
    3.) Bist du dir hinsichtlich der ermittelten FFT sicher, dass du in dem kleinen Frequenzband und mit der daraus abgeleiteten Aussage überhaupt einen sinnvollen Rückschluß von Sinn- und Störsignalen treffen kannst ?
    Nein bin mir nicht sicher. Also ich lese bisher mit der CPU 313C alle 100 ms ein. Mit einem SPS-Analyzer zeichne ich auf. Die Werte aus dem
    Analyzer exportiere ich mit Intervall von 100 ms in eine Exceltabelle. Mit der Excel mache ich die FFT. Und das FFT-Bild bis 10 Hz kam dabei heraus.
    Wenn ich das ganze mit 10 ms mache, dann wird eine FFT bis 100Hz dargestellt. Die Werte (0-10Hz) aus beiden FFT passen weitgehend überein.
    Deshalb denke ich schon, dass die FFT richtig ist. Ich deute die FFT so, dass die Frequenzen mit niedriger Amplitude eher die nur Nutzsignale darstellen und Frequenzen mit hoher Apmlitude stellen die Nutzsignale mit Störsignale dar. Ist doch so richtig oder?

    Als ich mit dem PT1-filter experimentierte habe ich bei einer Grenzfrequenz von fg= 0,8 ein relatives gutes Ergebniss erhalten.
    Daraus habe ich Rückschlüsse gezogen, dass man mit geeigneten Grenzfrequnzen die Störsignale elemenieren kann.
    Aber beide deiner Fragen muss ich mit Nein beantworten.

  10. #20
    Registriert seit
    28.01.2011
    Beiträge
    43
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Also ich denke ich werde den PT1 FIlter mit einer Mittelwertbildung kombinieren. Um so die Verzugszeit klein zu halten.
    Nur leider verstehe ich nicht was hinter dem Algorithmus steckt: hier mal der ganze SCL-Code

    PT1-Tiefpass-Filter
    Grenzfrequenz fg in Hz
    Abtastzeit T in sec.
    Ausgang = Ausgang(n-1)*exp(-wT)-Eingang(n-1)*(exp(-wT)-1)

    mit w = 2*pi*fg
    Ausgang(n-1) = Berechneter Wert vor einem Zyklus
    Eingang(n-1) = Messwert vor einem Zyklus
    ******************************************************************************** ********)
    FUNCTION_Block FB13

    VAR
    Grenzfrequenz :REAL;
    END_VAR

    VAR_INPUT
    Eingang:REAL; //Messwert roh
    Abtastzeit:REAL; //Zeit zwischen zwei Aufrufen in Sekunden (In Sekunden)
    Delta_T:REAL; //In welchem Zeitraum soll die Gewichtung der Messwerte erfolgen? (In Sekunden)
    END_VAR

    VAR_IN_OUT
    Eingang_Alt:REAL; //Zwischenspeicher
    Ausgang_Alt:REAL; //Zwischenspeicher
    END_VAR

    VAR_OUTPUT
    Ausgang:REAL; //Gefilteter Messwert
    END_VAR

    BEGIN
    Grenzfrequenz:=1/Delta_T; //Umrechnung in Hertz (Hz= 1/T)

    Ausgang := Ausgang_Alt * EXP (-1.0 * (2.0 * 3.14159 * Grenzfrequenz * Abtastzeit)) -
    Eingang_Alt * ( EXP (-1.0 * (2.0 * 3.14159 * Grenzfrequenz * Abtastzeit))-1.0);

    Ausgang_Alt := Ausgang; // Altwert für nächsten Zyklus speichern
    Eingang_Alt := Eingang; // Altwert für nächsten Zyklus speichern


    END_FUNCTION_block


    Das man hier auch mit der Gewichtung arbeitet ist klar. aber ist das exp(2*PI*fg*T) auch der Filterkoeffizient. Wenn ja, dann hätten wir doch
    immer gleichwertige Koeffizienten und somit ein gleitende Mittelwertbildung?
    Ist das überhaupt ein PT1-Filter?
    Ich habe den Code so we er ist erhalten zur Anwendung. Nur keiner konnte mir das erklären.

Ähnliche Themen

  1. Wärmerückgewinnung programmieren
    Von Syntaxfehler im Forum Programmierstrategien
    Antworten: 23
    Letzter Beitrag: 24.11.2014, 08:41
  2. PT100 Programmieren!
    Von Krma1985 im Forum Simatic
    Antworten: 99
    Letzter Beitrag: 13.12.2011, 07:38
  3. Taktmerker programmieren
    Von Benno97 im Forum Simatic
    Antworten: 12
    Letzter Beitrag: 04.07.2010, 23:52
  4. S5 EPROM programmieren
    Von Helmpflicht im Forum Simatic
    Antworten: 19
    Letzter Beitrag: 14.08.2009, 22:12
  5. Förderband programmieren
    Von Scrub im Forum Simatic
    Antworten: 19
    Letzter Beitrag: 31.07.2009, 11:04

Lesezeichen

Berechtigungen

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