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

dde23 Differentialgleichungssystem

 

Biokuh
Forum-Newbie

Forum-Newbie


Beiträge: 1
Anmeldedatum: 26.12.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.12.2014, 23:26     Titel: dde23 Differentialgleichungssystem
  Antworten mit Zitat      
Hallo!

Ich möchte ein Differentialgleichungssystem mit Totzeiten lösen, bekomme jedoch nicht den erwarteten Output. Bei diesem Gleichungssystem handelt es sich um ein Fahrzeugfolgemodell, d.h. jede DGL beschreibt ein Fahrzeug das vom anderen abhängig ist.

Ich ändere die Geschwindigkeit des 1. Fahrzeuges nach 10 Sekunden (mir ist klar, dass sich der Wert in der Realität nicht sprungartig ändern wird), was eine Auswirkung auf alle anderen Differentialgleichungen haben müsste. Bei den restlichen DGLs passiert jedoch überhaupt nichts und die Geschwindigkeit bleibt konstant.

Im Anhang befindet sich die besagte Differentialgleichung.

Folgend mein Code:

FUNKTION
Code:
function dy = ode_gazis(t,y,Z)

n=4; % Anzahl der Autos
N=2*n;

% beschleunigen
ma=1;
la=1.1;
% bremsen
% mb=1.1;
% lb=1.4;
a=1.2;
l=5; %Fahrzeuglänge

% Fahrzeug 1
if (t>10)
dy(1)= 25;
dy(2)= 0;
else
dy(1)= 33;
dy(2)= 0;
end
% weitere Fahrzeuge
for i=3:2:N-1
    dy(i)=y(i+1);
    dx=Z(i-2,i-2)-Z(i,i)-l;  
    dv=Z(i-1,i-1)-Z(i+1,i+1);
    dy(i+1)= a*y(i+1)^ma * dv/dx^la;
end
dy=dy';
end


HISTORY
Code:
function y=history(t)
L=220;
n= 4; % Anzahl der Fahrzeuge
for i=1:2:(n*2)-1
    y(i)=L;
    y(i+1)=33; % Geschw. m/s
    L=L-20;
end

end

 

FUNKTION AUFRUF
Code:
tspan = linspace(0,40,4000);
n= 4; % Anzahl der Fahrzeuge

lags=ones(n*2,1);

%DGL lösen
sol = dde23(@ode_gazis,lags,@history,tspan);


[m,n]=size(sol.y);

x=[];
i=1;
while i<=m
    x=[x;sol.y(i,:)];
    i=i+2;
end

v=[];
i=2;
while i<=m
    v=[v;sol.y(i,:)];
    i=i+2;
end


plot(sol.x,x);
xlabel('Zeit [s]');
ylabel('Position [km]');
title('GHR','Fontsize',14);


Ich finde einfach nicht den Fehler, hat vielleicht jemand eine Idee?

Vielen Dank!

GHR.JPG
 Beschreibung:

Download
 Dateiname:  GHR.JPG
 Dateigröße:  16.28 KB
 Heruntergeladen:  502 mal
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.