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

Anfangswertproblematik ode45, brauche dringend Hilfe

 

B-KiNg

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.03.2009, 13:57     Titel: Anfangswertproblematik ode45, brauche dringend Hilfe
  Antworten mit Zitat      
Hallo Leute,

ich habe ein großes Problem. Im Rahmen einer Prüfungsaufgabe meines Studiums soll ich eine Teilaufgabe mit Matlab lösen. Es geht darum die zeitl. Änderung der Schadstoffbelastung von Wasser zu bestimmen, welches aus einen Kohlefilter ausfließt. Wir sollen dies mit der ode45-Funktion lösen, es ist also eine Anfangswertproblematik. Die komplette Aufgabe ist auch im Dateianhang zu finden.

Zulaufbelastung -> [Kohle, Beladung,Mikroorg,] -> Ablaufbelastung(<- die gesuchte Größe)

gegeben ist Folgendes:


>>> die Anfangswerte:

Beladung: B0
Anfangspopulationsmasse der Mikroorganismen: M0
Zulaufbelastung des Wassers (bleibt konst.): Zu
Parameter: a,b,c,d,e,f,g,r


>>> Wachstumsfunktion der Mikroorg.

wachsen=M*r*[Mmax-M/Mmax]
Mmax=e*B
sterben=c*M+f*M/B

dM/dt=wachsen-sterben


>>> Sorption

S=a*Zu^b*(K-B)
Smax=Zu


>>> Beladung

dB/dt=S-d*M-g*dM/dt



Soweit die gegebenen Dinge. Meine Funktion sieht wie folg aus:

-------------------------------------------------------------
function filterbeladung = func_1_2(t,y)

M=y(1);
B=y(2);

% M=Populationsmasse
% r=Wachstumsrate (Wachstum)
% e=Parameter für maximale Population (MaxPopulation)
% c=Sterbeparameter Alterung (StAlter)
% f=Sterbeparameter Nahrung (StNahrung)

% einlesen der SimParameter
fid = fopen('1_3_SimParameter.txt', 'r');
A = fscanf(fid, '%e', [10 inf]);

% kippen der Matrix
y=A';

fclose(fid);

a=y(1,2);
b=y(1,3);
c=y(1,6);
d=y(1,7);
e=y(1,Cool;
f=y(1,9);
g=y(1,10);
r=y(1,5);
K=y(1,4);

wachsen = M * r *((Mmax - M)/Mmax);
Mmax=e*b;
sterben = c * M + f * M / B;
wachstum = wachsen-sterben;


% a=SortptST
% b=FrExpo
% K=Kapazität (Sorptionskapazität)
% Zu=Zulaufbelastung
sorption = a*Zu^b*(K-B);
if sorption >= Zu
sorption = Zu;
end


% d=RegAtmung
% g=RegWachstum
filterbeladung = [wachstum;sorption-d*M-g*wachstum];
-------------------------------------------------------------



Der Funktionsaufruf und die Übergabe an ode45 bereiten mir allerdings die größten Probleme:


--------------------------------------
% Zulaufbelastung 2kg/d
Zu = 2;

% Anfangsmasse an Mikroorganismen
M0 = 0.01;

% Anfangsbeladung
B0 = 0.01;

% Lösen der DGLn für 0-50 Tage
[t,x] = ode45((@(t,y)func_1_2(t,y,Zu)),[0 50],B0,M0);
--------------------------------------

Vielleicht ist es nur ein Syntaxfehler, vielleicht auch ein logischer oder auch beides. Fest steht aber, es will nicht funktionieren.
Es wäre echt toll, wenn mir Jemand von euch weiterhelfen kann. Bis So 24:00 Uhr muß ich abgeben und hab eigentlich schon aufgegeben Sad.

Grüße aus Rostock und besten Dank schon mal im Vorraus!!!

Matthias

Aufgabenstellung.pdf
 Beschreibung:

Download
 Dateiname:  Aufgabenstellung.pdf
 Dateigröße:  40.98 KB
 Heruntergeladen:  1037 mal


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.