Verfasst am: 23.08.2018, 09:32
Titel: Messwerte (zeitdiskret und wertkontinuierlich) ableiten
Hallo Leute,
ich habe eine Messung durchgeführt bei welcher ein Kolben aus einem Zylinder fährt.Ich will jetzt die Geschwindigkeit und Beschleunigung des Versuches plotten.
Nun habe ich als Ergebniss zwei Arrays mit ca 1500 Werten, das eine beinhaltet eine Spannung welche proportional zum Weg ist, das zweite die Zeit. (Abtastrate waren 100Hz).
Wenn ich den Weg in abhängigkeit der Zeit plotten will geh es relativ einfach mit.
plot(Data1_time,Data1_voltage);
Bei der Geschwindigkeit komme ich jedoch nicht weiter.
Ich habe online schon ein paar Ansätze versucht, bislang hat es aber noch nicht geklappt.
Kann mir jemand sagen wie ich diese Messdaten ableiten kann, damit ich Geschwindigkeit und Beschleunigung erhalte?
du könntest mit Hilfe von
diff
die Differenz zwischen zwei Zeitwerten berechnen und mit dieser Differenz und der Abtastrate dann die gemittelte Geschwindigkeit zwischen zwei Zeitpunkten berechnen.
Gleiches dann mit Geschwindigkeit und Abtastrate für die Beschleunigung.
Grüße
Jonas
_________________
1.) Ask Google & Matlab Documentation
2.) Ask gomatlab.de & Technical Support of MathWorks
3.) Go mad, your problem is unsolvable
Nun habe ich jedoch das Problem, das mein Messsignal verrauscht ist und ich beim Ableiten sehr große Amplituden bekomme.
Ich habe das Signal schon gefiltert mit:
iN = 20;
vgg = filter(ones(1,iN)/iN, 1, Y);
Das geht bei der ersten Ableitung noch, wie man sieht ist die zweite Ableitung aber schon unbrauchbar, wie man am Angehängtem Bild sieht.
Was kann ich machen, damit ich einen schöneren Verlauf bekomme?
versuch mal, die Geschwindigkeiten auch nochmal zu filtern.
Alternativ beim Weg nicht nur einen gleitenden Mittelwert, sondern einen Filter zum gezielten Unterdrücken hoher Frequenzen.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Ich hätte noch eine Frage. Wie man an meinem Beispiel-Foto von oben sieht, passier bis Sekunde 3 gar nichts und später ab Sekunde 7 auch nicht mehr viel.
Also plotte ich mit xlim([3 7]).
Jetzt wollte ich mir das Minium und Maximum ausgeben lassen.
Das geht mit dem Code von dieser Seite aber nur bedingt:
https://de.mathworks.com/examples/m.....ximum-points-and-add-text
Der Code:
Code:
x = linspace(-3,3);
y = (x/5-x.^3).*exp(-2*x.^2); %Beliebige Beispielgleichung
plot(x,y)
Dieser Befehl liefert aber das Minimum/Maximum vom gesamtem Datensatz. Da ich am anfang und Ende des Datensatzes starke Messfehler habe, gibt er mir nur diese aus und nich zwischen Sekunde 3 und 7.
Wie kann ich das ändern?
Mit freundlichen Grüßen
Tooth
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Die andere Codezeile, die ich dir vorgeschlagen habe.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
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
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.