Ableiten mit MatLab < Matlab < Mathe-Software < Mathe < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 17:51 Mo 30.04.2007 | Autor: | cleophus |
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
Hallo!
Für ein technisches Projekt in meinem Studium habe ich die Aufgabe gestellt bekommen, das Manövrierverhalten eines Schiffes während eines Drehkreises mit MatLab zu analysieren. In dem Zusammenhang musste ich die Drehkreisdaten digitalisieren, u.a. auch den Geschwindigkeitsverlauf. Das habe ich mit Stützstellen gemacht, die ich dann durch eine Spline Approximation verbunden habe, was auch ganz wunderbar funktioniert hat.
In einem weiteren Schritt muss ich aber nun noch eine Kurve für die Beschleunigung zeichnen. Dazu würde es ja theoretisch reichen, wenn ich die Geschwindigkeitskurve nach der Zeit ableiten würde, mein Problem ist nur: Wie geht das mit MatLab, wenn ich doch keine klare Funktion habe??
Ich poste mal, was ich für die Geschwindigkeit programmiert habe und vielleicht kann mir ja jemand helfen, das Ganze nach der Zeit abzuleiten? Die Hoffnung stirbt zuletzt....
%Geschwindigkeitverlauf für MS Beluga Revolution
%loaded condition, deep water
%
x=[0,115,244,355,482,500]
y=[12,7.3,6.1,3.8,4.0,4.0]
t=0:1:500;
yy=spline(x,y,t);
plot(t,yy,0,0)
title('Geschwindigkeitsverlauf für MS Beluga Revolution')
xlabel('Zeit t [s]')
ylabel('Geschwindigkeit v [kn]')
grid on
PS. Ich mach das als function files, damit ich später die einzelnen Unterprogramme zusammenfügen und so ein Hauptprogramm auf die hier ermittelten Werte zugreifen kann.
|
|
|
|
Geht das nicht mit a=diff(yy) ?
Viele Grüße
nschlange
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 10:58 Di 01.05.2007 | Autor: | cleophus |
Theoretisch ist das der Befehl zum Ableiten, ja. Und ich krieg auch tatsächlich Werte, wenn ich das im Command Window mal durchführen lasse. Aber ich habe dann noch Probleme mit dem Plotten! Du hast jetzt die Ableitung der Geschwindigkeit nach der Zeit (sinnvollerweise a genannt, und eigentlich müsste ich doch dann
plot(a,t) angeben, um mein gewünschtes Ergebnis zu kriegen.. Stattdessen kommt da aber nur die Fehlermeldung '' ??? Error using ==> plot
Vectors must be the same lengths.''
Kann mir jemand weiterhelfen?
|
|
|
|
|
diff(yy) liefert einen Wert weniger als yy Elemente hat.
Plotten z.B. mit
plot(t(1:length(a)),a)
Viele Grüße
nschlange
|
|
|
|