-
        

Ergebnis 1 bis 3 von 3

Thema: Digitaler Tiefpass höherer Ordnung

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    25.03.2006
    Ort
    nahe Tulln (Niederösterreich)
    Alter
    26
    Beiträge
    460

    Digitaler Tiefpass höherer Ordnung

    Anzeige

    Hi,

    ich will auf einem ATmega128 einen digitalen Tiefpass 4. Ordnung realisieren.
    Er dient als Sanftanlauf für einen Radnabenmotor. Ich weiß, das kann man auch mit einer Rampe machen - ich würde aber gerne probieren, ob ich mit einem Tiefpass bessere Ergebnisse bekomme.

    Ich habe es bis jetzt leider nur geschafft, einen Tiefpass 1. Ordnung nach dieser Formel zu bauen:
    http://de.wikipedia.org/wiki/PT1-Gli...etes_PT1-Glied

    Nun habe ich in Matlab vier davon hintereinandergeschalten - hier der Code falls jemand Matlab hat:

    Code:
    t=1:48;
    x=[0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1];
    
    y=[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0];
    y2=y;
    y3=y;
    y4=y;
    
    
    K=1;
    T=4;
    dt=1;
    
    for n=2:48; y(n)=(1/(T/dt+1))*(K*x(n)-y(n-1))+y(n-1); end
    
    for n=2:48; y2(n)=(1/(T/dt+1))*(K*y(n)-y2(n-1))+y2(n-1); end
    
    for n=2:48; y3(n)=(1/(T/dt+1))*(K*y2(n)-y3(n-1))+y3(n-1); end
    
    for n=2:48; y4(n)=(1/(T/dt+1))*(K*y3(n)-y4(n-1))+y4(n-1); end
    
    plot(t,y4);
    Das funktioniert gut - auf dem PC.
    Für den uC ist es aber etwas rechenaufwendig.
    Gibt es da eine einfachere Methode, mit der er in einem Durchgang auf die letzten 4 Ausgangswerte + den aktuellen Eingangswert zugreift, und mir ein Ergebnis liefert?

    Ein guter Link würde mir schon reichen... Ich hab heut den ganzen Tag gegoogled, aber leider nichts gefunden was ich auch verstanden habe.

    lg
    Christoph

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    15.03.2005
    Ort
    gerne in den Bergen
    Alter
    33
    Beiträge
    429
    Kennst oder hast du die DSP System Toolbox? mit der ist es einfach digitale Filter zu entwerfen. Das Resultat ist dann eine Reihe Faktoren die so y(n) = x(n)*k0 + x(n-1)*k1 + x(n-2)*k3 + .... miteinander verrechnet werden. Das heisst du musst pro Ausgabewert eine Anzahl Multiplikationen und Additionen machen. Die Architektur eines DSPs ist auf diese Funktionen optimiert, denn damit kann man sehr viele Filter realisieren (sogenannte FIR-Filter). Bei IIR-Filter werden zusätzlich mit einer zweiten Reihe Faktoren die y(n-1),y(n-2),... dazuaddiert. Damit können höhere Filterordnungen realisiert werden, aber auch instabile Filter sind möglich.

    Einfacher würde ein "Moving Average"-Filter aussehen. Du speicherst zum Beispiel immer die letzten 10 Werte. Der gefilterte Wert besteht dann aus der Summe dieser letzten Werte geteilt durch die Anzahl. Das ergibt auch ein Tiefpassverhalten, abhängig von der Anzahl Werte. Wenn du das einigermassen schlau progorammierst, dann kannst du damit experimentieren bis dir das Ergebnis passt. Das geht auf dem uC und mit Matlab...

    Soweit sogut?

    Gruss
    Peter
    ...wer nicht findet hat nicht gesucht...

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    25.03.2006
    Ort
    nahe Tulln (Niederösterreich)
    Alter
    26
    Beiträge
    460
    Hi,

    vielen Dank für die Antwort!

    Ich habe jetzt einen Moving Average filter mit einstellbarer Anzahl der zu mittelnden Werte programmiert.
    Es funktioniert erstaunlich gut! Ich glaube das lass ich so.

    lg
    Christoph

Ähnliche Themen

  1. Halogentrafo mit höherer Frequenz versorgen.
    Von colindrovin im Forum Elektronik
    Antworten: 3
    Letzter Beitrag: 24.07.2012, 17:13
  2. Schrittmotorsteuerung mit höherer Leistung
    Von Karsten6 im Forum Motoren
    Antworten: 7
    Letzter Beitrag: 04.08.2010, 16:20
  3. Motor: höherer Strom und Bürstenfunken
    Von Jobot im Forum Robby RP6
    Antworten: 4
    Letzter Beitrag: 21.02.2010, 17:00
  4. Tiefpass
    Von The Man im Forum C - Programmierung (GCC u.a.)
    Antworten: 2
    Letzter Beitrag: 27.05.2009, 05:39
  5. Höherer Takt bei C-Control
    Von narayan im Forum Controller- und Roboterboards von Conrad.de
    Antworten: 14
    Letzter Beitrag: 14.06.2004, 18:07

Berechtigungen

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