|
|
Diskreten Filter in Simulink auslegen |
|
Stephanie2 |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 28.10.2015, 16:33
Titel: Diskreten Filter in Simulink auslegen
|
|
|
|
|
Hi,
ich habe ein wahrscheinlich relativ einfaches Problem (ich finde nur leider online keine "Anleitung" keine Schrittanweisung oder Ähnliches): Ich habe ein hochgradig nichtlineares System und möchte jetzt mittels inversem System (angenähert) Störungen beobachten. Dazu habe ich im System zweimal einen diskreten Ableitungsblock (das ganze kann vereinfacht werden in ein Masse-Dämpfer-System mit kompliziertem Reibungsmodell).
Im Normalfall schau ich mir die Frequenzantwort an, such mir die gewünschte Grenzfrequenz, transformier das mit c2d und fertig. Das klappt hier aber gar nicht. Entweder ist das System dann mordsmäßig langsam oder ich bekomm das Rauschen nicht heraus - kann mir jemand helfen wie ich hier vorgehen kann?
(Im Anhang ein Bild mit Referenz und Systemantwort, sowie die frequenztransformierte -fft- Systemantwort.)
Beschreibung: |
|
Download |
Dateiname: |
systemantwort.png |
Dateigröße: |
15.17 KB |
Heruntergeladen: |
560 mal |
Beschreibung: |
|
Download |
Dateiname: |
frequenantwort.png |
Dateigröße: |
14.79 KB |
Heruntergeladen: |
570 mal |
|
|
|
|
|
Epfi |
Forum-Meister
|
|
Beiträge: 1.134
|
|
|
|
Anmeldedatum: 08.01.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 28.10.2015, 20:38
Titel:
|
|
Hast Du das schon mal erfolgreich so angewendet? Verstehe noch nicht ganz, was genau Du vor hast. Mit Rauschen behaftete Signale abzuleiten klingt aber generell nicht unbedingt nach etwas, was man tun möchte...
Ist es richtig, dass Du das Systemverhalten im zweiten Diagramm bis 0,5mHz aufgetragen hast? Das würde bedeuten, dass Du eine Abtastrate von 10000 Sekunden (etwa 3 Stunden) verwendest. Macht das Sinn?
|
|
|
Stephanie2 |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 28.10.2015, 22:53
Titel: weitere Erklärung
|
|
|
|
|
Also Sampling-Time ist 1/1000 (vorgegeben durch den Roboter).
Das Signal das aus dem Roboter kommt ist die Position, um damit das Reibungsmodell zu "füttern" brauche ich Geschwindigkeit und für das inverse Modell brauche ich die Beschleunigung, daher muss ich ableiten. Das mache ich mit jeweils einem Discrete Derivative Block aus Simulink. Allerdings bekomme ich durch die Ableitung das verrauschte Signal wie im Bild zu sehen.
Mir geht es aber eher um die generelle Vorgangsweise, wie ich systematisch ein diskretes Filter aufbauen kann, bzw. wie ich aus dem verrauschten Signal die hohen Frequenzen herauslesen kann, die ich weg haben möchte.
Bzw. auch ganz allgemein: wie wird das Filter schneller (bzw. die Signalverarbeitung) und wie steiler/aggresiver. Ich habe schon ein bisschen mit einfachen Signalen und Filtern gespielt und einiges heraus gefunden aber ich dachte, da gibt es sicher ein systematisches Verfahren - wie man die Pole des Filters setzt oder eben über die Frequenztransformierte des Signals eben SYSTEMATISCH ohne lediglich herum zu probieren auf sinnvolle Werte kommt. Oder eine Faustregel mit der man mal Startwerte bekommt - lieg ich da falsch?
|
|
|
Epfi |
Forum-Meister
|
|
Beiträge: 1.134
|
|
|
|
Anmeldedatum: 08.01.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 29.10.2015, 14:46
Titel:
|
|
Falls Du die signal processing toolbox hast, gibt es darin ein Programm namens
fdatool
. Da kannst Du Deine Filterparameter eingeben und es kommt das raus, was Du gefordert hast.
Hast Du ne Chance, noch andere Signale aus Deinem Roboter zu bekommen? Der misst ja sicherlich auch die Geschwindigkeit und womöglich sogar die Beschleunigung. Wäre deutlich robuster, als zwei mal ableiten...
|
|
|
Stephanie2 |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 29.10.2015, 16:58
Titel:
|
|
Danke, ich hab die Toolbox, kenne aber das Tool nicht - ich werde mich damit mal auseinander setzen - Danke für den Tip!
Leider nein, keine Geschwindigkeit, keine Beschleunigung, es geht um einen Roboter für Mikrochrirugie, der relativ wenig Sensoren hat (Gewicht, Platz, usw.). Es wird nur die Gelenksposition jeweils gemessen.
|
|
|
Epfi |
Forum-Meister
|
|
Beiträge: 1.134
|
|
|
|
Anmeldedatum: 08.01.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 30.10.2015, 22:18
Titel:
|
|
Trotzdem solltest Du vorher nochmal mit der Abtastrate Übersicht bekommen. Zumindest das Spektrum im ersten Posting deutet darauf hin, dass da irgendwas verrutscht ist...
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2024
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|