Verfasst am: 13.04.2020, 15:49
Titel: Parametern verschiedene Initialwerte?
ich bin recht neu in Matlab und versuche die Zellaufzucht von Säugetierzellen in mehreren, nacheinander folgenden Bioreaktoren unterschiedlicher Größe zu simulieren.
Bildlich kann man sich das so vorstellen, wobei die Zellzahl gegenüber der Zeit aufgetragen ist.
In jedem Reaktor ist ein Medium mit gewissen Startkonzentrationen (Glucose, Glutamin). Die Zellen im Reaktor wachsen und verstoffwechseln dabei Glucose und Glutamin.
Die Zellen bleiben so lange im Reaktor, bis explizite Umsaatkriterien erreicht sind. Das kann entweder eine zeitliche Vorgabe sein, oder eine zu erreichende Zellzahl. Sobald ein Kriterium (oder beide) erfüllt ist, erfolgt die Umsaat in einen größeren Bioreaktor.
Die Zellen bleiben entweder eine bestimmte, zeitliche Vorgabe im Reaktor, oder bis sie eine gewisse Zellzahl erreicht haben. Danach wird die Zellkultur in einen größeren Reaktor überführt, somit ändert sich das Volumen, die Startkonzentrationen des Mediums (Glucose und Glutamin) sowie die Zellzahl mit der gestartet wird. Das passiert ca 8 mal, bevor die Zellaufzucht beendet ist.
Bisher habe ich Reaktor 1 simuliert, nun weiß ich allerdings nicht, wie ich für den Beginn des zweiten Reaktors die Zellzahl, Medienkonzentrationen und das Volumen mit einem neuen Startwert beginnen lassen kann.
Ich hoffe die Frage ist verständlich formuliert und jemand kann mir weiterhelfen
Mein bisheriger Code:
Code:
%Cultivation Length
tRange= [072];
%%
%Initial values
Xv0 = 0.3*10^6; % Initial Viable Cell Concentration - cells per mL
Xt0 = 0.5*10^6; % Initial Total Cell Concentration - cells per mL
cGlc0 = 1; % Initial Concentration of Glucose - grams per liter
cGln0 = 10; % Initial Concentration of Glutamine - grams per liter
cLac0 = 1; % Initial Concentration of Lactate - grams per liter
v0 = 0.25; % Initial Volume - L
cAmm0=1; % Initial Concentration of Ammonia - grams per liter
%%
%Vector that contains all the Initial values
c0 = [ Xv0, Xt0, cGlc0, cGln0, cLac0, cAmm0, v0];
%%
%ODE45function [t,y] = ode45(@odes, tRange, c0);
%%
if y(1) > 2*10^6
y(7) = 0.5;
else
y(7) = 0.25;
end
ich gehe davon aus, dass die Reaktoren voneinander unabhängig sein sollen.
Grundsätzlich dann nach dem Muster:
Code:
% einzelne Werte festlegen für feste Parameter
festerParam1 = Wert1;
festerParam2 = Wert2;
... % Vektoren festlegen für variable Parameter
variablerParam1 = [Wert11, Wert12, ..., Wert1n];
variablerParam2 = [Wert21, Wert22, ..., Wert2n];
... % Simulation in einer for-Schleife for k = 1:n
% Simulation mit festerParam1, festerParam2, variablerParam1(k), variablerParam2(k) % entscheidend: feste Parameter ohne Index, variable Parameter mit Index end
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Im bisherigen Code ist es so verankert, dass nach 72h die neue Schleife beginnt. Wie kann ich es erweitern, dass die neue Schelife startet, wenn entweder 72h ODER eine gewisse Zahl X erreicht ist?
Da y eine Matrix ist, kann ich mir nicht vorstellen, dass der Code das macht, was du möchtest. Möchtest du hier auf die 1. bzw. 7. Spalte zugreifen?
Dir muss auch bewusst sein, dass die Änderungen hier nachträglich sind und nicht das Lösen der DGL an sich beeinflussen.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
%%
%ODE45function
n = 9; %Anzahl an Stufen
%Laufdauer
t=0;
y=[0,0,0,0,0,0,0];
Laufdauer =[072;72144 ;144216;216288;288360;360432;432504;504576;576648];%6481392]; %Laufdauer der einzelnen Stufen
for k = 1:n
tRange= Laufdauer(k,:);
c0 = [ Xv0(k); Xt0(k); cGlc0(k); cGln0(k); cLac0(k); cAmm0(k); v0(k)]; %Vector that contains all the Initial values
%%
%ODE45 [tSpeicher,ySpeicher] = ode15s(@Model, tRange, c0);
[dVariablesdt]=[dXvdt;dXtdt;dcGlcdt;dcGlndt;dLacdt;dcAmmdt;dvdt];
end
In dem Code bestimmt die Laufdauer, wann die Schleife neu ansetzt. Nun möchte ich neben dem Kriterium noch die Möglichkeit, eine neue Schleife zu beginnen, wenn Xv0 > 1.5*10^3 ist.
Ich habe das Example ballode.m gefunden und werde es darauf basierend mal versuchen.
Einstellungen und Berechtigungen
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
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.