WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Filter, Plotgrenzen und weiteres

 

Ikarus

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.11.2018, 09:08     Titel: Filter, Plotgrenzen und weiteres
  Antworten mit Zitat      
Hallo Leute Smile

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

Geschwindigkeit.jpg
 Beschreibung:

Download
 Dateiname:  Geschwindigkeit.jpg
 Dateigröße:  61.42 KB
 Heruntergeladen:  247 mal
Linie.jpg
 Beschreibung:

Download
 Dateiname:  Linie.jpg
 Dateigröße:  20.38 KB
 Heruntergeladen:  258 mal


Ikarus

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.11.2018, 09:20     Titel:
  Antworten mit Zitat      
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

Forum-Century


Beiträge: 123
Anmeldedatum: 07.03.17
Wohnort: Tübingen
Version: Matlab 2018a
     Beitrag Verfasst am: 06.11.2018, 11:39     Titel:
  Antworten mit Zitat      
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 Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
Ikarus

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.11.2018, 14:00     Titel:
  Antworten mit Zitat      
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

Forum-Century


Beiträge: 123
Anmeldedatum: 07.03.17
Wohnort: Tübingen
Version: Matlab 2018a
     Beitrag Verfasst am: 07.11.2018, 17:20     Titel:
  Antworten mit Zitat      
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 Smile

Naja was heißt grafisch, Very Happy so gesehen suchst du ja den Schnittpunkt deiner beiden Verläufe und das ist für mich mathematisch Smile
_________________

Grüße Equi Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.