|
|
Filter, Plotgrenzen und weiteres |
|
Ikarus |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 06.11.2018, 08:08
Titel: Filter, Plotgrenzen und weiteres
|
|
|
|
|
Hallo Leute
Ich bin bei Matlab ein ziemlicher Anfänger, kann aber mit gewissen Dingen schon ganz gut umgehen. Leider werden meine Aufgaben zusehends schwieriger und ich hab Probleme, die Codes zum Laufen zu kriegen.
Ich habe bei einem Prüfgerät für Federn eine Messreihe aufgenommen. Die Messergebnisse wurden von einem externen Programm aufgezeichnet, daher sind Startzeitpunkt von Beginn der Messung und Beginn des Prüfvorganges unterschiedlich. (siehe Anhang "Linie")
Ich habe mehrere Federn und dabei jeweils drei Messungen. Weiteres Problem - der Weg ließ sich am gerät nicht Nullen, somit habe ich in jeder Feder auch immer einen neuen Startweg.
Was ist nun mein Problem?
Ich habe mir Daten mit load bereits auslesen lassen und in den Workspace geladen.
Ich möchte nun den Plot so anpassen, dass die Grenzen des Plots genau auf den Startzeitpunkt der Messung am Prüfgerät fällt. d.h. ich muss den erstmal ermitteln und der ist ja von Reihe zu Reihe immer anders.
Dabei kam mir die Idee, mir über v=diff(s) einfach die Ableitung der Wegfunktion ausgeben zu lassen. An den Grenzen wird ja die Geschwindigkeit 0 und somit weiß ich auch, wann die Messung beginnt. (siehe Anhang "Geschwindigkeit") Das funktioniert so weit auch, nur muss ich da einen enormen Filter drüber legen, denn leider sieht die Funktion nicht ganz so aus, wie ich sie brauch (Viele Sprünge, teils sogar wieder auf 0 runter). Leider gibt es nirgends eine Dokumentation auf deutsch zum Thema Filter, ich weiß nicht wie ich die Koeffizienten a und b so anpassen muss, damit mein plot(v) "sauber" wird.
Ich brauche also eine Erklärung zur genauen Funktionsweise von Filtern (bitte kein einfacher Hinweis auf die matlab-Hilfe, das hat mir bisher nicht geholfen) sowie ein paar Hinweise darauf, wie ich mir anhand von bestimmten Parametern die Grenzen eines Plots variabel anpassen kann.
Ich hoffe ich konnte mein Problem verständlich rüber bringen und hoffe auf Hilfe von euch!
Grüße
Beschreibung: |
|
Download |
Dateiname: |
Geschwindigkeit.jpg |
Dateigröße: |
61.42 KB |
Heruntergeladen: |
309 mal |
Beschreibung: |
|
Download |
Dateiname: |
Linie.jpg |
Dateigröße: |
20.38 KB |
Heruntergeladen: |
322 mal |
|
|
|
|
|
Ikarus |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 06.11.2018, 08:20
Titel:
|
|
Kleine Ergänzung dazu noch;
im Anhang "Linie" wird die Kraft über dem Weg geplottet. Die Wegfunktion allein über der Zeit sieht dann so aus, dass es eine normale Gerade ist, die aber zu Beginn und zum Ende der Messung konstant ist (daher auch in der Gezeigten Grafik diese Steigungen zu Beginn und zum Ende).
Die gelbe Linie die dadurch geht ist ein Polyfit. Den will ich eben danach machen, aber so lange die beiden Teile vorne und hinten nicht "abgeschnitten" werden, wird auch die Kennlinie des Polyfits verfälscht.
|
|
|
equi |
Forum-Century
|
|
Beiträge: 123
|
|
|
|
Anmeldedatum: 07.03.17
|
|
|
|
Wohnort: Tübingen
|
|
|
|
Version: Matlab 2018a
|
|
|
|
|
|
Verfasst am: 06.11.2018, 10:39
Titel:
|
|
Hallo Ikarus,
ich bin mir nicht ganz sicher ob ich dich richtig verstanden habe.
Wo sieht man bei deiner Datei "Linie" den Anfang und das Ende?
Sieht aus wie sich die Werte durchweg ändern, ist "Linie" bereits zugeschnitten?
Ich vermute mal du möchtest ein Filter, da die Messwerte bei "Geschwindigkeit" zwischen t=0 und t= ca. 1200 nicht 0 sind und du deswegen mit diff nicht arbeiten kannst?
In diesem Fall würde ich ein MovingAverage filter verwenden (hatte ein ähnliches Problem und ich bin mit diesem ganz gut ans Ziel gekommen).
Oder du arbeitest einfach mit einer "Schwelle" also du legst dir eine Gerade rein bei z.B. Y=0.05 und schaust wann Punkt i kleiner Y ist und Punkt i+1 größer Y ist und nimmst dies als startwert. Als Endwert dann Punkt i größer Y und Punkt i+1 kleiner Y.
Natürlich bekommst du je nach Abtastrate deines Messinstrumentes und Schwelle geringe Abweichungen im Millisekunden Bereich
_________________
Grüße Equi
|
|
|
Ikarus |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 06.11.2018, 13:00
Titel:
|
|
|
|
|
equi hat Folgendes geschrieben: |
Hallo Ikarus,
ich bin mir nicht ganz sicher ob ich dich richtig verstanden habe.
Wo sieht man bei deiner Datei "Linie" den Anfang und das Ende?
Sieht aus wie sich die Werte durchweg ändern, ist "Linie" bereits zugeschnitten?
|
Hi equi!
Die Datei "Linie" zeigt wie gesagt die Kraft über den Weg. Wenn ich mir den Weg allein über der Zeit ausgeben lasse, DANN sieht man relativ einfach den Anfang und das Ende. Allein beim fertigen Diagramm kann man das logischerweise nicht erkennen (und halt beim Weg allein auch nicht, weil der Weg zwar konstant dort ist, ich das aber für mehrere Messreihen machen muss und da ist der Startweg immer unterschiedlich)
equi hat Folgendes geschrieben: |
Ich vermute mal du möchtest ein Filter, da die Messwerte bei "Geschwindigkeit" zwischen t=0 und t= ca. 1200 nicht 0 sind und du deswegen mit diff nicht arbeiten kannst?
In diesem Fall würde ich ein MovingAverage filter verwenden (hatte ein ähnliches Problem und ich bin mit diesem ganz gut ans Ziel gekommen).
Oder du arbeitest einfach mit einer "Schwelle" also du legst dir eine Gerade rein bei z.B. Y=0.05 und schaust wann Punkt i kleiner Y ist und Punkt i+1 größer Y ist und nimmst dies als startwert. Als Endwert dann Punkt i größer Y und Punkt i+1 kleiner Y.
Natürlich bekommst du je nach Abtastrate deines Messinstrumentes und Schwelle geringe Abweichungen im Millisekunden Bereich |
Das mit dem MovingAverage muss ich mal probieren, aber auch hier sind die tatsächlichen Funktionen der Koeffizienten a und b mir nicht ganz klar. Kannst du das mal einfach erklären, wie man die Werte da aussucht?
Die Idee mit der Schwelle ist gar nicht so schlecht, ist aber gewissermaßen eine grafische Lösung und ich würde es doch gerne mathematisch lösen.
|
|
|
equi |
Forum-Century
|
|
Beiträge: 123
|
|
|
|
Anmeldedatum: 07.03.17
|
|
|
|
Wohnort: Tübingen
|
|
|
|
Version: Matlab 2018a
|
|
|
|
|
|
Verfasst am: 07.11.2018, 16:20
Titel:
|
|
Hallo Ikarus
hier sind 2 Filter ganz gut erklärt
https://de.mathworks.com/videos/signal-smoothing-97060.html
Leider weiß ich nicht wie man die Spannweite optimal dazu ermittelt, dazu kenne ich mich mit smoothing und filtern zu schlecht aus.
Ich habe mir meinen Filter mit verschiedenen Spannweiten durchlaufen lassen und mir das Ergebnis angeschaut. Anschließend die Spannweite verwendet in der mein Ergebnis am Sinvollsten war. Sorry
Naja was heißt grafisch, so gesehen suchst du ja den Schnittpunkt deiner beiden Verläufe und das ist für mich mathematisch
_________________
Grüße Equi
|
|
|
|
|
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 - 2025
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.
|
|