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

Subscript indices must either be real positive integers or l

 

Pumuckl

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.01.2013, 16:27     Titel: Subscript indices must either be real positive integers or l
  Antworten mit Zitat      
Hallo, ich habe ein Problem mit folgender Fehlermeldung:

"Subscript indices must either be real positive integers or logicals.

Error in Lholdup (line 50)
dhldz=1/(rohL*uL^2+muL*uL)*(hl*rohL*g-hl^(-2.9)*eps^2.9*muL*uL(150*(1-eps)^2/(dp^2*eps^3)+1.75*rohL*uL*(1-eps)/(dp*eps^3*muL)))
Error in odearguments (line 8Cool
f0 = feval(ode,t0,y0,args{:}); % ODE15I sets args{1} to yp0.

Error in ode45 (line 114)
[neq, tspan, ntspan, next, t0, tfinal, tdir, y0, f0, odeArgs, odeFcn, ...

Error in Farah1 (line 9)
[z hl]=ode45(@Lholdup,zspan,start)"

Ich habe eine Skriptdatei zum Lösen der DGL, die Farah1.m heisst:
Code:
% Hauptprogramm
% zu function Lholdup
% Anfangsbedingungen
start=[0.045045];
% Laufzeit, hier Höhe des Reaktors
zspan = [0 1.58];
% Lösung DGL
[z hl]=ode45(@Lholdup,zspan,start);
plot(z,hl,'-');grid;title('Liquid Holdup for co-current downflow over reactor height');
legend('hL');
xlabel('height starting from top of reactor');
ylabel('Liquid Holdup');


und eine Funktionsdatei namens Lholdup.m:
Code:
function dhldz=Lholdup(z,hl)

% Modelling hydrodynamics
global ReL GaL eps g rohL muL uL Temp dp
global ReG GaG rohG muG uG DR L Ptot
% Temperatur [K]
Temp=293.15;
% Pressure [MPa]
Ptot=0.2;
% strut length [m]
dp = 0.0016;
% dynamic viscosity of nitrogen (approximation for air) at 293.15 K and 0.2 MPa [uPa*s]
% (Source: http://webbook.nist.gov/chemistry/fluid/)
muG=17.596;
% dynamic viscostiy of water at 293.15 Kand 0.2 MPa [uPa*s] &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
% (Source: http://webbook.nist.gov/chemistry/fluid/)
muL=1001.6;
% acceleration due to gravity [m^2/s]
g= 9.8;
% Bed porosity; (Source: maximum of I. Mohammed presentation, 2012:
%Hydrodynamic investigation of a flow reactor with foam packings)
eps=0.94;  %??
% Density of nitrogen (approximation for air) in 293.15 K 0.2 MPa[kg/m3]
% (Source: http://webbook.nist.gov/chemistry/fluid/)
rohG=2.2997;
% Density of Water in 293.15 K 0.2 MPa[kg/m3]
rohL=998.25;
% Reactor Diameter [m]
DR=0.5;%??
% Reactor length [m]
L=1.58;%??
% Liquid superficial velocity [m/s]
uL=0.001415;  %??(VpointL/1000/60)/(3.14*DR^2/4);
% Reynolds number of the Liquid ??
ReL=62.22731; %?? rohL*uL*de/(muL*(1-eps));
% Galileo number of the Liquid ??
GaL=rohL^2*g*dp^3*eps^3/(muL^2*(1-eps)^3);
% Hydrogen superficial velocity [m/s]
uG=0.1; %?? mpointG/rohG;
% Reynolds number of Hydrogen ??
ReG=224.1606; %?? rohG*uG*de/(muG*(1-eps));
% Galileo number of Hydrogen  ??
GaG=rohG^2*g*dp^3*eps^3/(muG^2*(1-eps)^3);
dhldz=1/(rohL*uL^2+muL*uL)*(hl*rohL*g-hl^(-2.9)*eps^2.9*muL*uL(150*(1-eps)^2/(dp^2*eps^3)+1.75*rohL*uL*(1-eps)/(dp*eps^3*muL)))


Könnte mir hier jemand helfen? Ich habe in verschiedenen anderen Threads zu dem Titel gelesen, aber ich bin mir nicht mal sicher, welchen Teil meines Programms es mit Indizes meint.


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 26.01.2013, 19:47     Titel:
  Antworten mit Zitat      
Hallo,

zwischen uL und (150 fehlt ein Operator (z.B. * oder +).

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Pumuckl

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.01.2013, 22:53     Titel:
  Antworten mit Zitat      
Hallo, ich habe bei der DGL die Laufvariable geändert von 0 bis 1.58 auf 1.58 bis 0, sprich [0, 1.58] in [1.58,0]. Dadurch läuft das Programm nun "unendlich lange" und findet kein Ende. Kann es sein, dass man nicht rückwärts laufen darf?
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 30.01.2013, 22:58     Titel:
  Antworten mit Zitat      
Hallo,

gern geschehen.

Zur aktuellen Frage: odexy kann nicht rückwärts in der Zeit simulieren. Du musst wenn deine DGL geeignet umtransformieren (z.B. t durch -t ersetzen).

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 31.01.2013, 10:43     Titel:
  Antworten mit Zitat      
Hallo,

ODE45 kann rückwärts in der Zeit integrieren.
Es wird explizit die Zeitrichtung und Monotonie geprüft, und im Fehlerfall erscheint:
Zitat:
The entries in tspan must strictly increase or decrease.

In der Dokumentation findet man auch:
Zitat:
To obtain solutions at specific times (all increasing or all decreasing), ...


Das Setzen eines Breakpoint in ODE45 hilft zu klären, ob das Program wirklich "undenlich lange" läuft, oder nur ein paar Minuten länger als erwartet.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 31.01.2013, 11:26     Titel:
  Antworten mit Zitat      
Hallo,

da kann ode45 wohl mehr als ich dachte. Danke für die Korrektur!

Wenn ode45 lange braucht, dann kann es helfen, einen anderen Solver zu verwenden - z.B. ode15s oder ode23s.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Pumuckl

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.01.2013, 22:42     Titel:
  Antworten mit Zitat      
Hallo, vielen Dank für die Tipps. "unendlich lang" war bei mir von abends bis morgens früh. ich probiere mal die anderen Solver.
 
Pumuckl

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.01.2013, 22:49     Titel:
  Antworten mit Zitat      
es funktioniert und es kommt ein physikalisch sinnvolles Ergebnis (Interpretation) heraus, vielen Dank, ihr habt mir echt sehr geholfen. Bin begeistert.
 
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.