\[r\left( S \right) = \frac{{{r_{\max }}S}}{{{K_s} + S}}\]
rmax <- 0.85
Ks <- 2
par(mar = c(4, 5, 0.2, 0.2))
curve(rmax*x/(Ks+x), from=0, to=10, ylim=c(0,rmax), xlab="S", ylab=expression(r(S)), las=1)
abline(h=rmax, lty=2)
segments(-1,rmax/2,Ks,rmax/2, lty=2)
segments(Ks,-1,Ks,rmax/2, lty=2)
text(Ks,rmax, labels=expression(r[max]), pos=1)
text(Ks,0, labels=expression(K[s]), pos=4)
\(r_\max\) correspond au taux de croissance bactérien lorsque la concentration en substrat est infinie, c’est-à-dire non limitante :
\[\mathop {\lim }\limits_{S \to + \infty } r\left( S \right) = {r_{\max }}\]
Par ailleurs, si la quantité de nutriment est illimitée et si on néglige le flux sortant, alors on peut considérer que \(\frac{dN}{dt} \sim r_\max N\). Ainsi \(N(t) = N_0 e^{r_\max t}\).
De plus, si on se rappelle que \(\tau_d = \frac{\ln 2}{r_\max}\), alors on dira que la quantité \(1/r_\max\) est proportionnelle au temps de doublement \(\tau_d\) de la population bactérienne lorsque l’apport en substrat est illimité.
\(K_s\) est la constante de “demie-saturation” :
\[r\left( {{K_s}} \right) = \frac{{{r_{\max }}}}{2}\]
Le paramètre \(\tau=\frac{V}{F}\) est homogène à un temps. On peut l’interpréter de trois manières différentes. Il s’agit du temps nécessaire pour :
remplacer la totalité du volume de la chambre de culture par du milieu propre ;
vidanger complètement la chambre de culture si on arrète de l’approvisionner en substrat ;
éliminer (on dit “lessiver”) la population bactérienne de la chambre de culture.
\[\alpha_2 = \frac{S_0}{K_s}\]
Si on considère le modèle du chémostat en l’absence de bactéries (\(N(t) = 0\)), alors il se réduit à la seule deuxième équation qui devient :
\[\frac{{d{S}}}{{d{t}}} = - {S} + {\alpha _2}\]
Cette équation admet \(S_{eq} = \alpha_2\) comme point d’équilibre. Ainsi, on peut interpréter le paramètre \(\alpha_2\) comme la concentration en substrat à l’intérieur de la chambre de culture lorsqu’il n’y a pas de bactéries.
On rappelle que le modèle du chémostat reparamétré s’écrit : \[\left\{ {\begin{array}{*{20}{l}} {\frac{{d{N}}}{{d{t}}} = {\alpha _1}\left( {\frac{{{S}}}{{1 + {S}}}} \right){N} - {N}}\\ {\frac{{d{S}}}{{d{t}}} = - \left( {\frac{{{S}}}{{1 + {S}}}} \right){N} - {S} + {\alpha _2}} \end{array}} \right.\]
Ce point d’équilibre correspond à une situation dans laquelle on n’aurait pas de bactéries, \(N_{eq} = 0\), et la concentration en substrat à l’équilibre \(S_{eq} = \alpha_2\).
L’existence mathématique de ce point d’équilibre nécessite que \(\alpha_1 \neq 1\).
Si on avait \(\alpha_1 = 1\), on aurait \(\tau = \frac{1}{r_\max}\), soit \(\tau < \tau_d\), c’est-à-dire que la cuve se viderait de son contenu plus vite que la population bactérienne n’aurait le temps de doubler sa population. A terme, la population bactérienne serait entièrement lessivée.
On rappelle que \(\tau_d = \frac{\ln 2}{r_{max}}\).
Biologiquement, ce deuxième point d’équilibre a du sens si \(N_{eq} > 0\) et \(S_{eq} > 0\), ce qui impose :
\[\left\{ \begin{array}{l} {\alpha _1} > 1\\ {\alpha _2}\left( {{\alpha _1} - 1} \right) > 1 \end{array} \right.\]
Cet équilibre correspond à une situation dans laquelle on a à la fois des bactéries et une concentration en substrat inférieure à \(\alpha_2\) (car \(S_2 = \frac{1}{\alpha_1 - 1} < \alpha_2\)), c’est-à-dire inférieure à celle qu’on aurait en l’absence de bactéries.
Le fait que le point d’équilibre \(\left(\alpha_1\left( \alpha_2-\frac{1}{\alpha_1-1}\right), \frac{1}{\alpha_1-1}\right)\) soit asymptotiquement stable, indique que, pour une condition initiale non nulle et différente de l’autre point d’équilibre, le modèle prédit ce qu’on attend de lui : permettre un état d’équilibre avec à la fois des bactéries et du sustrat.
library(phaseR)
m <- function(t,y,parameters){
dy <- numeric(2)
dy[1] <- parameters[1]*(y[2]/(1+y[2]))*y[1] - y[1]
dy[2] <- -(y[2]/(1+y[2]))*y[1] - y[2] + parameters[2]
list(dy)
}
# Paramètres
a1 <- 2
a2 <- 2
# Point d'équilibre (N2,S2)
N2 <- a1*(a2-1/(a1-1))
S2 <- 1/(a1-1)
par(mar=c(4,4,0.5,0.5))
VectField <- flowField(m, xlim=c(0,4), ylim=c(0,2.5),
parameters=c(a1,a2), points=20, add=FALSE,
xlab=expression(N(t)), ylab=expression(S(t)),
las=1, col="gray")
grid()
isocline <- nullclines(m, xlim=c(-0.1,4), ylim=c(-0.1,3),
parameters=c(a1,a2), points=300,
col=c("darkgreen","blue"), add=TRUE, lwd=2)
points(c(0,a2), c(N2,S2), pch=19)
init <- matrix(c(0.5,1,1.5,2,2.5,3,3.5,0.5,1,1.5,2,2.5,3,3.5,
0.1,0.1,0.1,0.1,0.1,0.1,0.1,2.25,2.25,2.25,
2.25,2.25,2.25,2.25), nrow=14,ncol=2)
trajectoire <- trajectory(m, y=init, tlim=c(0,30),
parameters=c(a1,a2), add=TRUE,
col=rep(1, nrow(init)))
par(mar=c(4,4,0.5,0.5))
myinit=c(3,2)
chronique <- numericalSolution(m, y=myinit, tlim=c(0,30),
parameters=c(a1,a2), type="one",
col=c("orange","gray"), las=1,
lwd=2, ylim=c(0,4),
ylab="Chroniques", xlab="Temps (t)",
add.legend = FALSE)
legend("topright", legend=c(expression(N(t)), expression(S(t))),
col=c("orange","gray"), lwd=2, bty="n")
\[\left\{ \begin{array}{l} \frac{{dN\left( t \right)}}{{dt}} = \left( {\frac{{{r_{\max }}S\left( t \right)}}{{{K_s} + S\left( t \right)}}} \right)N\left( t \right) - \frac{F}{V}N\left( t \right)\\ \frac{{dS\left( t \right)}}{{dt}} = - \alpha \left( {\frac{{{r_{\max }}S\left( t \right)}}{{{K_s} + S\left( t \right)}}} \right)N\left( t \right) - \frac{F}{V}S\left( t \right) + \frac{F}{V}{S_0} \end{array} \right.\]
library(phaseR)
m <- function(t,y,parameters){
dy <- numeric(2)
dy[1] <- parameters[1]*y[1]*y[2]/(parameters[2]+y[2]) - parameters[3]*y[1]/parameters[4]
dy[2] <- -parameters[5]*parameters[1]*y[1]*y[2]/(parameters[2]+y[2]) - parameters[3]*y[2]/parameters[4] + parameters[3]*parameters[6]/parameters[4]
list(dy)
}
# Paramètres initiaux
rmax <- 0.85;Ks <- 5;F <- 0.425;V <- 1;alpha <- 0.1;S0 <- 10;
# Nouveaux paramètres
alpha1 <- rmax*V/F
alpha2 <- S0/Ks
# Points d'équilibre sans dimension
N2 <- alpha1*(alpha2-(1/(alpha1-1)))
S2 <- 1/(alpha1-1)
# Paramètres d'échelle
Nc <- Ks/(alpha*alpha1)
Sc <- Ks
# Points d'équilibre dans leur dimension initiale
N2star <- N2*Nc
S2star <- S2*Sc
par(mar=c(4,4,0.5,0.5))
VectField <- flowField(m, xlim=c(0,100), ylim=c(0,10),
parameters=c(rmax,Ks,F,V,alpha,S0), points=20,
add=FALSE, xlab=expression(N(t)),
ylab=expression(S(t)), las=1, col="gray")
isocline <- nullclines(m, xlim=c(-0.1,100), ylim=c(-0.1,10),
parameters=c(rmax,Ks,F,V,alpha,S0),
points=300, col=c("darkgreen","blue"),
add=TRUE, lwd=2)
points(c(0,N2star), c(S0,S2star), pch=19)
init <- c(10,1)
traj <- trajectory(m, y=init, tlim=c(0,30), parameters=c(rmax,Ks,F,V,alpha,S0), add=TRUE)
init <- c(30,1)
traj <- trajectory(m, y=init, tlim=c(0,30), parameters=c(rmax,Ks,F,V,alpha,S0), add=TRUE)
init <- c(60,1)
traj <- trajectory(m, y=init, tlim=c(0,30), parameters=c(rmax,Ks,F,V,alpha,S0), add=TRUE)
init <- c(80,1)
traj <- trajectory(m, y=init, tlim=c(0,30), parameters=c(rmax,Ks,F,V,alpha,S0), add=TRUE)
init <- c(10,10)
traj <- trajectory(m, y=init, tlim=c(0,30), parameters=c(rmax,Ks,F,V,alpha,S0), add=TRUE)
init <- c(30,10)
traj <- trajectory(m, y=init, tlim=c(0,30), parameters=c(rmax,Ks,F,V,alpha,S0), add=TRUE)
init <- c(60,10)
traj <- trajectory(m, y=init, tlim=c(0,30), parameters=c(rmax,Ks,F,V,alpha,S0), add=TRUE)
init <- c(80,10)
traj <- trajectory(m, y=init, tlim=c(0,30), parameters=c(rmax,Ks,F,V,alpha,S0), add=TRUE)
Les points d’équilibre dans la paramétrisation initiale ont pour coordonnées :
\[(N_1,S_1) = \left( {0,{S_0}} \right)\]
d’une part, et \(\left( {{N_2},{S_2}} \right)\) d’autre part, avec :
\[{S_2} = \frac{{{K_s}}}{{V{r_{\max }}/F - 1}}\] et \[{N_2} = \frac{1}{\alpha }\left( {{S_0} - {S_2}} \right)\]
Si on augmente \(r_\max\), la concentration en substrat à l’équilibre \(S_2\) diminue tandis que la concentration bactérienne \(N_2\) augmente ;
Si \(r_\max\) est trop petit et conduit à \(\tau_d > \tau\), alors les bactéries seront lessivées ; il faut respecter la condition \(r_\max V/F > 1\) ;
Si \(K_s\) augmente (resp. diminue), le taux de croissance \(r(S)\) sera plus petit (resp. grand) pour une même quantité de substrat, ce qui entraînera une diminution (resp. augmentation) de \(N_2\) et donc une augmentation (resp. diminution) de \(S_2\) ;
Si le flux \(F\) augmente, le temps \(\tau = V/F\) diminue ce qui risque d’entraîner le lessivage des bactéries ; par ailleurs, \(S_2\) augmente et \(N_2\) diminue. Les conclusions sont inversées si \(F\) diminue ;
Si \(S_0\) augmente, alors \(N_2\) augmente ;
Concernant le volume \(V\), les conclusions sont inverses de celles avec \(F\) puisque c’est le rapport \(V/F\) qui intervient dans le modèle ;
Le rendement \(\alpha\) n’influence que le rapport entre \(S_2\) et \(N_2\).