Macht ja auch Sinn da ich bei der Geschwindigkeit z.B. 10000 Werte habe und bei dem Ableiten aber nur noch 9999 Beschleunigungswerte.
Ich möchte aber nun beides gegen die Zeit darstellen, die bei mir t ist. Das ist für die Geschwindigkeit auch kein Problem, da sie die selbe Vektorlänge besitzen (wurden zusammen aufgenommen), aber ich weiß nicht wie ich die Beschleunigung über die Zeit auftragen kann? Klar ich könnte irgendwie händisch einen Wert rauslöschen, aber das soll möglichst in ein Skript rein, da ich es fortan immer wieder machen muss.
Ich hoffe mein Problem ist verständlich und ihr könnt mir helfen.
ich bins nochmal. Also ich müsste dann ja ein Programm haben, was mir z.B. einen neuen Zeitvektor erstellt sowas wie t_neu=t_alt(-1). und dann entweder ganz vorne oder ganz hinten beim zeitvektor einen Wert wegnimmt, damit es die selbe Länge hat wie der Beschleunigungsvektor.
Ob das vorne oder hinten im Vektor ist ist egal bei über 10000 Messwerten.
Hallo nochmal, ich habe es jetzt selbstständig durch den folgenden Code gelöst:
Code:
%%% "normales" Differenzieren und plotten von v und a;
t_neu=t(1:end-1); % reduziert Zeitvektor um einen Wert
v_neu=v(1:end-1); % reduziert v-Vektor um einen Wert
Zeitabstand=0.00002; % Zeit in Sekunden zwischen Werte
a = diff(v)/Zeitabstand; % delta v / delta t figure(2), % erstellt neues Figure subplot(2,1,1),plot(t_neu,v_neu) grid on, title('v'), xlabel('Zeit in s'),ylabel('v in mm/s') subplot(2,1,2),plot(t_neu,a) grid on, title('a'), xlabel('Zeit in s'),ylabel('a in mm/s^2')
Falls jmd eine bessere Variante kennt, bin ich trotzdem noch sehr interessiert.
Nun habe ich aber ein weiteres, größeres Problem: Mein Geschwindigkeitssignal unterliegt Störungen oder einem Rauschen, sodass das daraus enstandene Beschleunigungssignal nicht zu gebrauchen ist.
Welche Möglichkeit habe ich nun das Geschwindigkeitssignal zu glätten? Wie ginge das am einfachsten?
Könntest du bitte noch auf meine zuletzt gestellte Frage antworten? Geht auch allgemeiner. Mir ist bewusst, dass ich mich dann erstmal in die Details selber rein lesen muss, aber eine grobe Orientierung wäre echt hilfreich.
Ist eine gradient funktion in matlab auch leicht umzusetzen? Wie sähe da ein Code aus? habe wie gesagt einfach nur 2 Vektor reihen, keine Funktion oder ähnliches.
könntest du bitte kurz den unterschied zwischen gradient und diff erklären?
sonst würde ich jetzt alle meine versuchsauswertungen mit diff machen, da das vernünftig aussieht. aber solange ich den unterschied nicht kenne.... wer weiß?
DIFF ist eine einfache Differenz aufeinanderfolgender Elemente. GRADIENT ist der zweiseitige Differenzen-Quotient und damit als Steigung genauer.
Gruß, Jan
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
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.