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

DGL system Lösen

 

eisenhauer
Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 05.03.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.03.2014, 14:47     Titel: DGL system Lösen
  Antworten mit Zitat      
Hallo zusammen ich möchte eine DGL system lösen, leider klapt es nicht so wie ich mir das so vorgestellt habe.

Das Problem dabei ist die zweite DGL gar nicht gelöst wird zu mindest steht in der Lösungs DGL nach dem Initialwert nur noch NaN.

Code:


    %Strecke
    tspan=[0:5:250];
    %Startwert für T & P
    T0=280;
    P0=5;
    %Funktionsaufruf und Solverauswahl
    [t,y]=ode45(@dT,tspan,[T0, P0]);
    %Ausgabe
    figure;
    plot(t,y);
    xlabel('t');
    ylabel('y');

%%%%%%%%%%%%%%%%%%%

function dy = dT(t,y)
    %array  mit 2 zeilen eine Spalte
    dy=zeros(2,1);
   
    m=12.5;
    Tu=10;
    T1=280;
    p1=5;
    di=0.63;
    c12=0.78*5.67E-8;
   
    %Gleichung für DT/dy(1)
    alphaK=7.63;
    alphaS=c12*(((y(1)+273.15)^4)-((Tu+273.15)^4))/(y(1)-Tu);
    ki=pi*0.63*(alphaK+alphaS);
   
    %Gleichung für DP/dy(2)
    rho1=XSteam('rho_pt',p1,T1);
    c1=m/(rho1*pi*(0.5*di)^2);
    rho=XSteam('rho_pt',y(2),y(1));
    c=m/(rho*pi*(0.5*di)^2);
    Re=(c*rho*di)/XSteam('my_pT',y(2),y(1));
    lambda=0.0032+(0.221/Re^0.237);
   
    %DGL
    %dy(1) Temperaturabfall DGL
    %dy(2) Druckabfall DGL
    dy(2)=-((c1^2*p1*rho1*lambda*y(1))/(2*T1*di*y(2)));
    dy(1)=(ki/(1000*m*XSteam('cp_pt',5,280)))*(Tu-y(1));
    %k übergeben
    k=[m;ki;alphaS;h;c;rho;Re];
end;
 


das ergebniss von dy(2) ist immer NaN.
in XSteam sind zustandsgeleichung für wasser hinterlegt falls ihr die funktionon benötig kann die mit anhägen aber vlt fehlt einer was auf anhieb auf.

hier noch mal der link zur XSteam
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 05.03.2014, 16:43     Titel:
  Antworten mit Zitat      
Hallo,

das naheliegendste wäre, dass deine Funktion NaN oder ähnliches zurückgibt.

Was ergibt:
Code:
dT([T0, P0])


Teste auch mal mit
Code:
tspan = [0, 250]
um zu sehen, ob das Problem von Anfang an auftritt.

Im Zweifelsfall mal mit dem Debugger durch die Funktion laufen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
S3r4
Forum-Anfänger

Forum-Anfänger


Beiträge: 19
Anmeldedatum: 20.08.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.03.2014, 01:10     Titel:
  Antworten mit Zitat      
ich sehe so keinen Fehler,
aber NaN bedeutet eigentlich meist du versucht einen String wie eine zahl zu verwenden. Sprich schau mal ob deine Funktionen nicht vllt einen String als ausgang haben anstatt eine Realvariable.

erste möglichkeit kleiner fehler in dT

sprich testen was für dT(0,[T0,P0]) heraus wie schon oben gesagt.
weiter würde ich die Funktion dT als Functionfile speicher, das gibt manchmal problem wenn man das als inline function definiert.

was noch auffällt beim Aufruf von Xsteam verwendest du einen String als variable, das kann volle absicht sein, kann aber vllt auch ein grund sein,
vllt gibt xsteam dir schon ein string zurück und darum dann auch y....
aber scheint beim anderen ja zu klappen.
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.