You are on page 1of 13

UNIVERSIDAD DEL ATLÁNTICO

FACULTAD DE INGENIERIA
INGENIERIA QUÍMICA

Cell Culture Reactor Design Fed-Batch Operation


Authors: Yourladys Acosta – Roberto Altamar - Stephanie Vargas
Bioprocesses
Delivery date: 19/05/2022

Problem 1
Design a reactor for nisin production (V =50l)
Kinetic parameters are defined:
𝜇𝑚 = 1.024 ℎ−1
𝛼 = 0.279 ℎ−1
𝜇 = 𝜇𝑚 − 𝛼 = 0.745 ℎ−1
𝑋0 = 0.0256 𝑔/𝐿
𝑃0 = 0.0056 𝑔/𝐿
𝑌𝑋⁄𝑆 = 1.154
𝑚𝑆 = 0.3886 ℎ−1
𝑌𝑃⁄𝑋 = 0.00285
𝑚𝑃 = 0.00332 ℎ−1
Solution
Table 1: Biomass, Substrate and Product Concentrations:
UNIVERSIDAD DEL ATLÁNTICO
FACULTAD DE INGENIERIA
INGENIERIA QUÍMICA

Volumetric productivity of product (𝑄𝑃 ):


𝑃 − 𝑃0
𝑄𝑃 =
𝑡

Calculation of fermentation time


- Substrate profile
Time values are determined in 3 different cases to check their fit.
Case 1: If substrate maintenance can be considered neglected and 𝜇 = 𝜇𝑚

1 𝜇𝑚 (𝑆0 − 𝑆)
𝑡= ln [ + 1]
𝜇𝑚 𝜇
(𝑌 𝑚 ) 𝑋0
𝑋⁄𝑆

Case 2: If no product is formed or if production is directly linked with energy metabolism and 𝜇 =
𝜇𝑚 − 𝛼:
UNIVERSIDAD DEL ATLÁNTICO
FACULTAD DE INGENIERIA
INGENIERIA QUÍMICA

1 𝜇(𝑆0 − 𝑆)
𝑡= ln [ + 1]
𝜇 𝜇
(𝑌 + 𝑚𝑆 ) 𝑋0
𝑋⁄𝑆

Case 3: If substrate maintenance can be considered neglected and 𝜇 = 𝜇𝑚 − 𝛼

1 𝜇(𝑆0 − 𝑆)
𝑡= ln [ + 1]
𝜇 𝜇
( ) 𝑋0
𝑌𝑋⁄𝑆

The simulation indicates 99.3 % of substrate conversion at t = 8.5 hours and real values showed a
substrate conversion of 100 % at t = 8.15 hours.
- Biomass profile
1 𝑋
𝑡= ln ( )
𝜇𝑚 𝑋0
UNIVERSIDAD DEL ATLÁNTICO
FACULTAD DE INGENIERIA
INGENIERIA QUÍMICA

The maximum concentration in biomass growth is 4.13 g/L in a time of 7.5 h.


- Product profile
As with the substrate, the time values are determined in 3 different cases to check their fit.
Case 1: If product maintenance can be considered neglected and 𝜇 = 𝜇𝑚
1 𝜇𝑚 (𝑃 − 𝑃0 )
𝑡= ln [ + 1]
𝜇𝑚 (𝜇𝑚 𝑌𝑃⁄𝑋 )𝑋0

Case 2: If production is directly linked with energy metabolism and 𝜇 = 𝜇𝑚 − 𝛼:


1 𝜇(𝑃 − 𝑃0 )
𝑡= ln [ + 1]
𝜇 (𝜇𝑌𝑃⁄𝑋 + 𝑚𝑃 )𝑋0

Case 3: If product maintenance can be considered neglected and 𝜇 = 𝜇𝑚 − 𝛼


1 𝜇(𝑃 − 𝑃0 )
𝑡= ln [ + 1]
𝜇 (𝜇𝑌𝑃⁄𝑋 )𝑋0
UNIVERSIDAD DEL ATLÁNTICO
FACULTAD DE INGENIERIA
INGENIERIA QUÍMICA

As can be seen, no case fits the actual profile, so another model should be used.
Proposed model
𝑃 − 𝑃0 ~ 𝑡
UNIVERSIDAD DEL ATLÁNTICO
FACULTAD DE INGENIERIA
INGENIERIA QUÍMICA

By observing the trend of the data, the following model is proposed:

𝑃 − 𝑃0 = (𝑎𝑡 2 + 𝑏𝑡 + 𝑐)𝑋0 𝑒 𝜇𝑡
Applying nonlinear regression, we have the following parameter values:
𝑎 = 0.00207
𝑏 = −0.0387
𝑐 = 0.18423

Codifying to do a simulation of the time


The model found can be further improved by calculating the time values that coincide with the product
concentrations.
UNIVERSIDAD DEL ATLÁNTICO
FACULTAD DE INGENIERIA
INGENIERIA QUÍMICA

Problem 2
Penicillin is produced by Penicillium chrysogenum in a fed-batch culture with the intermittent
addition of glucose solution to the culture medium. The initial culture volume is V0 = 200 L, and
glucose-containing nutrient solution is added with a flow rate of F = 30 L/h. Glucose concentration
in the feed solution and the initial concentrations in the reactor are S0 = 300 g/L, Si = 1 g/L, and X0
= 20 g/L. The kinetic and yield factors of the organism are µm = 0.2 h-1, KS = 0.5 g/L, and YX/S =
0.3 g-dw/g-glucose. Using the pseudo-steady state approximation,
We determine:
1.The culture volume at t = 24 h.
2.The concentration of glucose at t = 24 h.
3.The concentration and total amount of cells when t = 24 h.
4.The product (penicillin) concentration in the vessel at 24 h, if m qP = 0.05 gproduct/(g-cells h) P0
= 0.1 g/L.
UNIVERSIDAD DEL ATLÁNTICO
FACULTAD DE INGENIERIA
INGENIERIA QUÍMICA

Solution
Table 2:Data given by problem
V0 200 L
F 30 L/h
S0 300 g/L
Si 1 g/L
X0 20 g/L
µm 0,2 1/h
Ks 0,5 g/L
YX/S 0,3 g X/g S

It calculated 𝑋̅0 using equation 1 and 𝑋̅ with equation 2

𝑋̅0 = 𝑋0 𝑉0 𝑒𝑐. 1

𝑋̅ = 𝑋̅0 + 𝐹𝑌𝑋/𝑆 𝑆𝑖 𝑡𝑓𝑏 𝑒𝑐. 2

Biomaas concentration are calcualted with equation 3 and after that volume value with equation 4

𝑋 = 𝑌𝑋/𝑆 𝑆𝑖 𝑒𝑐. 3

𝑋̅
V= 𝑒𝑐. 4
𝑋

For Substrate concentration, isneccesaty calculate disolution rate (D) using equation 5 and using
equation 6 is determinated value
𝐹
𝐷= 𝑒𝑐. 5
𝑉

𝐾𝑠 𝐷
𝑆= 𝑒𝑐. 6
𝜇𝑚 + 𝐷
UNIVERSIDAD DEL ATLÁNTICO
FACULTAD DE INGENIERIA
INGENIERIA QUÍMICA

To determinate Product concentration it use equation 7 and equation 8

𝑉0
𝛾= 𝑒𝑐. 7
𝑉
2
𝑡𝑓𝑏
𝑃 = 𝛾𝑃0 + 𝛾𝑞𝑃 𝑋0 𝑡𝑓𝑏 + 𝑞𝑃 𝐷𝑋 𝑒𝑞. 8
2
#Problem 1
# Operative Design of a Batch Fermenter for the Nisin Production
# Nisin production
#install.packages("rstudioapi")
rstudioapi::getActiveDocumentContext
setwd(dirname(rstudioapi::getActiveDocumentContext()$path))
#install.packages("readxl")
library(readxl)
Data <- read_excel("Problem 1.xlsx", sheet = "Data", range = "B2:E27",
col_types = c("numeric", "numeric", "numeric", "numeric"))
u_max <- 1.024
alpha <- 0.279
u <- u_max - alpha
X0 <- 0.0256
P0 <- 0.0056
Yxs <- 1.154
ms <- 0.3886
Ypx <- 0.00285
mp <- 0.00332

# Volumetric productivity of product (Q_p)


Q_p <- (Data$Psim[7:25] - P0)/Data$Time[7:25]
# Maximum of product productivity.
print(paste("The maximum volumetric productivity of the product with a value
of", round(max(Q_p),6), "g/(L*h) occurs in a time between 5.5 and 6.5 hours"))
plot(Data$Time[7:25], Q_p, main = "Volumetric Productivity of Product", xlab =
"Time [h]", ylab = "Qp [g/(L*h)]", type="p", col="blue", lwd = 2, pch = 16)
grid()

# Calculation of fermentation time


# Substrate profile
Data_S <- data.frame(SS = seq(9.60, 0, -0.4))
# ms negligible and u = umax.
Data_S$tS1 <- (1/u_max)*log((u_max*(Data_S$SS[1] - Data_S$SS))/((u_max/
Yxs)*X0) + 1)
# u = umax - alpha.
Data_S$tS2 <- (1/u)*log((u*(Data_S$SS[1] - Data_S$SS))/((u/Yxs + ms)*X0) + 1)
# u = umax - alpha and ms negligible.
Data_S$tS3 <- (1/u)*log((u*(Data_S$SS[1] - Data_S$SS))/((u/Yxs)*X0) + 1)

plot(Data$Time[7:17], Data$Ssim[7:17], main = "Profile of Substrate Uptake",


xlab = "Time [h]", ylab = "S [g/l]", type="p", col="black", lwd = 2, pch = 16)
lines(Data_S$tS1, Data_S$SS, col="dark green", lwd = 2)
lines(Data_S$tS2, Data_S$SS, col = "blue", lwd = 2)
lines(Data_S$tS3, Data_S$SS, col = "red", lwd = 2)
grid()
legend("bottomleft", legend=c("Actual profile", "Case 1", "Case 2", "Case 3"),
col=c("black", "dark green", "blue", "red"), lty = c(1) , cex = 0.6)
# The simulation indicates 99.3 % of substrate conversion at t = 8.5 hours and
real values showed a substrate conversion of 100 % at t = 8.15 hours.

# Biomass profile
Data_X <- data.frame(XX = seq(Data$Xsim[1], 4.25, 0.1))
Data_X$tx <- (1/u)*log(Data_X$XX/Data$Xsim[1])
# The maximum concentration at t = 7.5 h the X = 4.13 g/L.
plot(Data$Time, Data$Xsim, main = "Profile of Biomass", xlab = "Time [h]",
ylab = "X [g/l]", type="p", col="blue", lwd = 2, pch = 16)
lines(Data_X$tx, Data_X$XX, col = "red", lwd = 2)
grid()
legend("topleft", legend=c("Actual profile", "fit"), col=c("blue", "red"), lty
= c(1) , cex = 0.6)

# Product profile
Data_P <- data.frame(PP = seq(Data$Psim[1], 0.042, 0.002))
# mp negligible.
Data_P$tp1 <- (1/u_max)*log((u_max*(Data_P$PP - Data_P$PP[1]))/
((u_max*Ypx)*X0) + 1)
# u = umax - alpha.
Data_P$tp2 <- (1/u)*log((u*(Data_P$PP - Data_P$PP[1]))/((u*Ypx + mp)*X0) + 1)
# u = umax - alpha and mp negligible.
Data_P$tp3 <- (1/u)*log((u*(Data_P$PP - Data_P$PP[1]))/((u*Ypx)*X0) + 1)

plot(Data$Time[1:17], Data$Psim[1:17], main = "Profile of Nisis Production",


xlab = "Time [h]", ylab = "P [g/l]", type="p", col="black", lwd = 2, pch = 16)
lines(Data_P$tp1, Data_P$PP, col="dark green", lwd = 2)
lines(Data_P$tp2, Data_P$PP, col = "blue", lwd = 2)
lines(Data_P$tp3, Data_P$PP, col = "red", lwd = 2)
grid()
legend("topleft", legend=c("Actual profile", "Case 1", "Case 2", "Case 3"),
col=c("black", "dark green", "blue", "red"), lty = c(1) , cex = 0.6)

# Statistical model
dat_pro <- data.frame(P_P0 = (Data$Psim[1:18] - Data$Psim[1]))
dat_pro$Time_P <- Data$Time[1:18]
plot(dat_pro$Time_P, dat_pro$P_P0, xlab = "Time [h]", ylab = "P-P0 [g/L]",
type="p", col="blue", lwd = 2, pch = 16)
grid()
X0_p <- Data$Xsim[1]

# Propose a model for (P - P0)


library(minpack.lm)
f_P <- nlsLM(P_P0 ~ (a*Time_P^2 + b*Time_P + c)*X0_p*exp(u*Time_P), data =
dat_pro, start = c(a=1, b=1, c=1))
summary(f_P)
cf_P <- coefficients(f_P)
a <- cf_P[1]; b <- cf_P[2]; c <- cf_P[3]
fn_P <- function(time){
(a*time^2 + b*time + c)*X0_p*exp(u*time)
}
dat_pro$fn_Pcal <- fn_P(dat_pro$Time_P)
lines(dat_pro$Time_P, dat_pro$fn_Pcal, col = "red", lwd = 2)
grid()
legend("topleft", legend=c("Actual profile", "fit"), col=c("blue", "red"), lty
= c(1) , cex = 0.6)

# Codifying to do a simulation of the time


f1 <- function(y) {
uniroot(function(x) {
(a*x^2 + b*x + c)*X0_p*exp(u*x) - y
}, interval = c(0, 10) )$root
}
dat2 <- data.frame(PP2 = seq(Data$Psim[4], 0.0439, 0.001)) # A new data range
for (P - P0)
dat2$t_P2 <- mapply(f1, dat2$PP2)
plot(Data$Time[4:18], Data$Psim[4:18], xlab = "Time [h]", ylab = "P - P0",
type="p", col="blue", lwd = 2, pch = 16)
lines(dat2$t_P2, dat2$PP2, col = "red", lwd = 2)
grid()
legend("topleft", legend=c("Actual profile", "fit"), col=c("blue", "red"), lty
= c(1) , cex = 0.6)
QP_2 <- dat2$PP2/dat2$t_P2
print(paste("The biological conversion time is close to",
round(dat2$t_P2[which(QP_2 == max(QP_2))],2), "hours"))
# Problem 2

V0 <- 200 #L
F <- 30 #L/h
S0 <- 300 #g/L
Si <- 1 #g/L
X0 <- 20 #g/L
um <- 0.2 #h^-1
Ks <- 0.5 #g/L
Y_XS <- 0.3 #gX/gS

#1 The culture volume at t = 24 h


t_fb = 24 #h
X0_bar <- X0*V0
X_bar <- X0_bar + F*Y_XS*Si*t_fb
X <- Y_XS*Si
V <- X_bar/X
print(paste("The culture volume =", round(V,2), "L"))

#2 The concentration of glucose at t = 24 h


D <- F/V
S <- (Ks*D)/(um + D)
print(paste("The concentration of glucose =", round(S,4), "g/L"))

#3 The concentration and total amount of cells when t = 24 h


print(paste("The concentration of cells =", X, "g/L"))
print(paste("The amount of cells =", X_bar, "g/L"))

#4 The product (penicillin) concentration in the vessel at 24 h, if m q_P =


0.05 gP/(gX*h) y P0 = 0.1 g/L
q_P <- 0.05 #gP/(gX*h)
P0 <- 0.1 #g/L
ganma <- V0/V
P <- ganma*P0 + ganma*q_P*X0*t_fb + q_P*D*X*((t_fb^2)/2)
print(paste("The concentration of product (penicillin) =", round(P,4), "g/L"))

You might also like