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

nach ode Aufruf Funktion und deren Ableitungen plotten

 

EinSportfreund
Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 13.04.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.04.2009, 20:49     Titel: nach ode Aufruf Funktion und deren Ableitungen plotten
  Antworten mit Zitat      
Liebes Forum,

habe gerade folgendes Problem:
Nach dem lösen einer DGL: [t x]=ode23(@dgl_1, [ta te], xa);
kann ich diese ausgeben mit: plot(t,x);
Jetzt möchte ich noch die ien oder andere Ableuitung dazu ausgeben, habe es folgendermassen versucht:
xd=diff(x)./diff(t);
plot(t,xd);
Jetzt haben wohl die Vectoren t und xd nicht die gleiche Länge. hat jemand eine Idee, wie ich dies anpassen kann?

Grüsse, Sportfreund.

Noch einen Hinweis, vielleicht mache ich es zu kompliziert. Bei der DGL geht es um ein Feder-Masse-Schwingsystem.
Also in der Funktjon dgl_1 steht ungefähr folgendes:
dxdt = [x(2); -x(1)-x(2)]
wenn ich nach dem lösen plot (t,x) mache, kommt der Weg und die Geschwindigkeit, aber nicht die Beschleunigung. Der Wert muss aber doch bereits vorliegen, wie komme ich an den ran?
Private Nachricht senden Benutzer-Profile anzeigen


spawnferkel
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 53
Anmeldedatum: 11.03.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.04.2009, 10:08     Titel: Re: nach ode Aufruf Funktion und deren Ableitungen plotten
  Antworten mit Zitat      
EinSportfreund hat Folgendes geschrieben:
wenn ich nach dem lösen plot (t,x) mache, kommt der Weg und die Geschwindigkeit, aber nicht die Beschleunigung. Der Wert muss aber doch bereits vorliegen, wie komme ich an den ran?


Das ist doch gerade die Differentialgleichung.
Du kannst Die DGL nach x'' auflösen und alles einsetzen.
Code:
function emsdgl
% Beispiel aus
% http://www.ians.uni-stuttgart.de/nm.....sem0708/matlab_ode_2p.pdf

T=[0 30];
IC=[0;0];

c=4.5e9/150^3;
m=5e3;

[t,y] = ode45(@ems,T,IC);

plot(t,y,t,(F(t)-c*y(:,1))/m);
legend('Weg','Geschwindigkeit','Beschleunigung');

function dy = ems(t, y) % Einmassenschwinger
% y1=x
% y2=x'
dy = [y(2); 1/m*(F(t)-c*y(1)) ];
end

function f = F(t) % Kraftanregung
f = 20*t.*(t<=5)+20*(10-t).*(t>5 & t<=10);
end

end
Private Nachricht senden Benutzer-Profile anzeigen
 
Martin
Admin

Admin



Beiträge: 652
Anmeldedatum: 16.06.07
Wohnort: Bietigheim-Bissingen
Version: ---
     Beitrag Verfasst am: 14.04.2009, 10:15     Titel:
  Antworten mit Zitat      
Glückwunsch zum 20.000 Beitrag im goMatlab.de-Forum Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
zahlendreher
Forum-Newbie

Forum-Newbie


Beiträge: 1
Anmeldedatum: 26.12.08
Wohnort: Mannheim
Version: 7
     Beitrag Verfasst am: 17.04.2009, 19:22     Titel:
  Antworten mit Zitat      
Hallo Experten,
ich hänge mich mal hier dran, weil meine Frage so ähnlich zu sein scheint, mir hilft die Erklärung aber nicht weiter. ich habe im Prinzip eine ode45 angewandt auf ein DGL-System, das funktioniert auch. Ich will aber eine zeitabghängige Eingangsgröße (zur Information sozusagen) auch plotten, das ist eine Kraft. Von dieser Kraft ist aber nur ein Spaltenvektor übrig aus dem letzten Zeitschritt vermute ich - über die Zeit kann cih das nicht plotten. Vielleicht weiß jemand weiter. Vielen Dank!
Helmut
Private Nachricht senden Benutzer-Profile anzeigen
 
EinSportfreund
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 13.04.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.04.2009, 21:43     Titel: Re: nach ode Aufruf Funktion und deren Ableitungen plotten
  Antworten mit Zitat      
spawnferkel hat Folgendes geschrieben:


Das ist doch gerade die Differentialgleichung.
Du kannst Die DGL nach x'' auflösen und alles einsetzen.

Vielen Dank. Jetzt klappts.
Private Nachricht senden Benutzer-Profile anzeigen
 
EinSportfreund
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 13.04.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.04.2009, 00:18     Titel: Re: nach ode Aufruf Funktion und deren Ableitungen plotten
  Antworten mit Zitat      
Mein Problem geht noch weiter. Ich will nicht das normale Schwingsystem lösen, sondern den Fall mit Reibkraft und Stick-Slip.
Nach dem Modell auf dem Bild gehe ich vor, wobei zwischen Klotz mit Masse m und dem Band die Reibkraft Fr herrscht.
Mit folgendem Programm kann ich es lösen, mit einer steifen DGL:
m*x'' + k*x = Fr

Code:
function ode_schwingsystem_stribeck2
global k m v_band;

t=0:0.005:10;
IC=[0;0];

k=0.1; % [N/mm]
m=0.1; %[kg]
v_band = 0.1;
my_option = odeset('OutputFcn', @odeplot, 'RelTol',1e-4);
[t,x] = ode45(@ems,t,IC,my_option);
figure;
plot(t,-(-(k/m)*x(:,1)),t,Fr(x(:,2)));

function dy = ems(t, x) % Einmassenschwinger
global k m v_band;
dy = [x(2); -(k/m).*x(1)+Fr(x(2))/m];
end

function FrictionForce = Fr(v)
    global v_band m;
    FrictionForce=-sign(v-v_band).*(0.2+0.1*exp(-5.*abs(v-v_band))).*m;
end

end

Was mich jetzt aber interessiert sind die Kräfte, die an der Wand herrscht und die benötigt wird, um das Band zu ziehen (Fwand und Fband).
Müssen diese Kräfte nicht identisch sein?
Fband muss doch der Reibkraft entsprechen und Fwand der aktuellen Federkraft k*x.
Die Funktion von Weg und Geschwindigkeit scheint mir plausibel, aber ich gehe davon aus, dass meine Kraft am Band nicht richtig ist. Kann das jemand nachvollziehen?

Grüsse,
EinSportfreund

Fwand_Fband.jpg
 Beschreibung:

Download
 Dateiname:  Fwand_Fband.jpg
 Dateigröße:  54.21 KB
 Heruntergeladen:  704 mal
weg_geschw.jpg
 Beschreibung:

Download
 Dateiname:  weg_geschw.jpg
 Dateigröße:  56.31 KB
 Heruntergeladen:  639 mal
dgl.gif
 Beschreibung:

Download
 Dateiname:  dgl.gif
 Dateigröße:  6.86 KB
 Heruntergeladen:  636 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
EinSportfreund
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 13.04.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.05.2009, 21:59     Titel: Re: nach ode Aufruf Funktion und deren Ableitungen plotten
  Antworten mit Zitat      
spawnferkel hat Folgendes geschrieben:
EinSportfreund hat Folgendes geschrieben:
wenn ich nach dem lösen plot (t,x) mache, kommt der Weg und die Geschwindigkeit, aber nicht die Beschleunigung. Der Wert muss aber doch bereits vorliegen, wie komme ich an den ran?


Das ist doch gerade die Differentialgleichung.
Du kannst Die DGL nach x'' auflösen und alles einsetzen.

Das hat mir damals weitergeholfen. Jetzt habe ich allerdings als DÄmfungselement eine Reibkraft mit dabei und m*x'' gibt mir die Kraft heraus und nicht die Beschleunigung. Hast du hierfür auch eine Lösung?
Ich suche nach dem Nulldurchgang der Beschleunigung und will dort einen Event verarbeiten. Ableiten der Geschwindigkeit geht bei mir auch nicht, da in der Eventverarbeitung die diff Funktion nicht geht.
Private Nachricht senden Benutzer-Profile anzeigen
 
EinSportfreund
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 13.04.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.05.2009, 22:51     Titel: Re: nach ode Aufruf Funktion und deren Ableitungen plotten
  Antworten mit Zitat      
Habe das Problem folgendermassen lösen können:
in der Eventverarbeitung kann ich nicht ableiten mit diff:
a = diff(D*y(2)+ky(1)-Fr)
Folgender Fehler kommt:
??? Error using ==> .*
Matrix dimensions must agree.

Allerdings kann ich folgendermassen ableiten:
a = (D*y(2)+ky(1)-Fr)'

kann mir jemand sagen wo der Unetrschied zwischen diff und ' liegt?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 20.05.2010, 13:41     Titel:
  Antworten mit Zitat      
Hallo,

der "Unterschied" ist, dass diff die Differenzen (also sowas wie eine Ableitung) bildet, der Operator ' stattdessen transponiert. Das hat mit Ableitungen nicht das geringste zu tun!!

Grüße,
Harald
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 - 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.